summaryrefslogtreecommitdiff
path: root/obsolete
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-10-14 03:01:20 +0000
committerNorbert Preining <norbert@preining.info>2023-10-14 03:01:20 +0000
commit315010c30c0dab68a71ca741364438a7a0b1261f (patch)
tree1892d65e76bc025eede34669c33667d1e8c1f218 /obsolete
parent7c1335b7f300ea31a40bf83026d6b7d24d7bafc5 (diff)
CTAN sync 202310140301
Diffstat (limited to 'obsolete')
-rw-r--r--obsolete/macros/context/contrib/context-account/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-account/doc/context/third/account/README13
-rw-r--r--obsolete/macros/context/contrib/context-account/doc/context/third/account/account-doc.pdfbin0 -> 115510 bytes
-rw-r--r--obsolete/macros/context/contrib/context-account/tex/context/interface/third/t-account.xml147
-rw-r--r--obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.mkii38
-rw-r--r--obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.mkiv84
-rw-r--r--obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.tex439
-rw-r--r--obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.mkii68
-rw-r--r--obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.mkiv37
-rw-r--r--obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.tex78
-rw-r--r--obsolete/macros/context/contrib/context-algorithmic/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-algorithmic/tex/context/third/algorithmic/t-algorithmic.mkii160
-rw-r--r--obsolete/macros/context/contrib/context-algorithmic/tex/context/third/algorithmic/t-algorithmic.mkiv317
-rw-r--r--obsolete/macros/context/contrib/context-animation/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-animation/doc/context/third/animation/README32
-rw-r--r--obsolete/macros/context/contrib/context-animation/tex/context/interface/third/t-animation.xml77
-rw-r--r--obsolete/macros/context/contrib/context-animation/tex/context/third/animation/t-animation.mkvi363
-rw-r--r--obsolete/macros/context/contrib/context-annotation/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-annotation/doc/context/third/annotation/README35
-rw-r--r--obsolete/macros/context/contrib/context-annotation/doc/context/third/annotation/annotation-doc.pdfbin0 -> 50341 bytes
-rw-r--r--obsolete/macros/context/contrib/context-annotation/tex/context/interface/third/t-annotation.xml163
-rw-r--r--obsolete/macros/context/contrib/context-annotation/tex/context/third/annotation/t-annotation.lua151
-rw-r--r--obsolete/macros/context/contrib/context-annotation/tex/context/third/annotation/t-annotation.mkvi1077
-rw-r--r--obsolete/macros/context/contrib/context-bnf/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/NEWS28
-rw-r--r--obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/README39
-rw-r--r--obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/t-bnf.pdfbin0 -> 280331 bytes
-rw-r--r--obsolete/macros/context/contrib/context-bnf/tex/context/third/bnf/t-bnf.tex195
-rw-r--r--obsolete/macros/context/contrib/context-chromato/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-demo.pdfbin0 -> 162815 bytes
-rw-r--r--obsolete/macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-doc.pdfbin0 -> 81559 bytes
-rw-r--r--obsolete/macros/context/contrib/context-chromato/tex/context/third/chromato/t-chromato.tex130
-rw-r--r--obsolete/macros/context/contrib/context-cmscbf/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-cmscbf/doc/context/third/cmscbf/cmscbf-demo.pdfbin0 -> 51786 bytes
-rw-r--r--obsolete/macros/context/contrib/context-cmscbf/doc/context/third/cmscbf/cmscbf-doc.pdfbin0 -> 123339 bytes
-rw-r--r--obsolete/macros/context/contrib/context-cmscbf/tex/context/third/cmscbf/t-cmscbf.tex42
-rw-r--r--obsolete/macros/context/contrib/context-cmttbf/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-cmttbf/doc/context/third/cmttbf/cmttbf-demo.pdfbin0 -> 49412 bytes
-rw-r--r--obsolete/macros/context/contrib/context-cmttbf/doc/context/third/cmttbf/cmttbf-doc.pdfbin0 -> 124156 bytes
-rw-r--r--obsolete/macros/context/contrib/context-cmttbf/tex/context/third/cmttbf/t-cmttbf.tex45
-rw-r--r--obsolete/macros/context/contrib/context-construction-plan/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-construction-plan/doc/context/third/construction-plan/construction-plan-demo.pdfbin0 -> 407738 bytes
-rw-r--r--obsolete/macros/context/contrib/context-construction-plan/doc/context/third/construction-plan/construction-plan-doc.pdfbin0 -> 77353 bytes
-rw-r--r--obsolete/macros/context/contrib/context-construction-plan/tex/context/third/construction-plan/t-construction-plan.tex150
-rw-r--r--obsolete/macros/context/contrib/context-degrade/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-degrade/doc/context/third/degrade/degrade-demo.pdfbin0 -> 20889 bytes
-rw-r--r--obsolete/macros/context/contrib/context-degrade/doc/context/third/degrade/degrade-doc.pdfbin0 -> 169975 bytes
-rw-r--r--obsolete/macros/context/contrib/context-degrade/tex/context/third/degrade/t-degrade.tex163
-rw-r--r--obsolete/macros/context/contrib/context-fancybreak/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-fancybreak/doc/context/third/fancybreak/README35
-rw-r--r--obsolete/macros/context/contrib/context-fancybreak/doc/context/third/fancybreak/fancybreak-doc.pdfbin0 -> 193087 bytes
-rw-r--r--obsolete/macros/context/contrib/context-fancybreak/tex/context/interface/third/t-fancybreak.xml81
-rw-r--r--obsolete/macros/context/contrib/context-fancybreak/tex/context/third/fancybreak/t-fancybreak.mkii272
-rw-r--r--obsolete/macros/context/contrib/context-fancybreak/tex/context/third/fancybreak/t-fancybreak.mkvi493
-rw-r--r--obsolete/macros/context/contrib/context-french/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-french/doc/context/third/french/french-demo.pdfbin0 -> 29058 bytes
-rw-r--r--obsolete/macros/context/contrib/context-french/doc/context/third/french/french-doc.pdf15251
-rw-r--r--obsolete/macros/context/contrib/context-french/tex/context/third/french/t-french.mkiv98
-rw-r--r--obsolete/macros/context/contrib/context-fullpage/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-fullpage/doc/context/third/fullpage/README24
-rw-r--r--obsolete/macros/context/contrib/context-fullpage/doc/context/third/fullpage/fullpage-doc.pdfbin0 -> 159117 bytes
-rw-r--r--obsolete/macros/context/contrib/context-fullpage/tex/context/interface/third/t-fullpage.xml27
-rw-r--r--obsolete/macros/context/contrib/context-fullpage/tex/context/third/fullpage/t-fullpage.mkii321
-rw-r--r--obsolete/macros/context/contrib/context-fullpage/tex/context/third/fullpage/t-fullpage.mkiv325
-rw-r--r--obsolete/macros/context/contrib/context-gantt/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/README22
-rw-r--r--obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-1.tex19
-rw-r--r--obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-2.tex25
-rw-r--r--obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-3.tex19
-rw-r--r--obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-4.tex22
-rw-r--r--obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-5.tex32
-rw-r--r--obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/gantt.txt63
-rw-r--r--obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/gantt-s-mp.tex369
-rw-r--r--obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/gantt-s-tikz.tex312
-rw-r--r--obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/t-gantt.tex23
-rw-r--r--obsolete/macros/context/contrib/context-inifile/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-inifile/doc/context/third/inifile/inifile-demo.pdfbin0 -> 8844 bytes
-rw-r--r--obsolete/macros/context/contrib/context-inifile/doc/context/third/inifile/inifile-doc.pdfbin0 -> 79148 bytes
-rw-r--r--obsolete/macros/context/contrib/context-inifile/tex/context/third/inifile/t-inifile.tex221
-rw-r--r--obsolete/macros/context/contrib/context-layout/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-layout/doc/context/third/layout/t-layout.pdfbin0 -> 216930 bytes
-rw-r--r--obsolete/macros/context/contrib/context-layout/tex/context/third/layout/t-layout.tex411
-rw-r--r--obsolete/macros/context/contrib/context-rst/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/OMakefile41
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/OMakefile.omcbin0 -> 1266 bytes
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/documentation.rst689
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/hybridtest.tex42
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-first.rst14
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-second.rst9
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-third.rst14
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc.tex11
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.bib10
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.pdfbin0 -> 118130 bytes
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.tex141
-rw-r--r--obsolete/macros/context/contrib/context-rst/doc/context/third/rst/moduletest.tex9
-rw-r--r--obsolete/macros/context/contrib/context-rst/scripts/context/lua/third/rst/mtx-t-rst.lua64
-rw-r--r--obsolete/macros/context/contrib/context-rst/tex/context/interface/third/t-rst.xml83
-rw-r--r--obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_context.lua1326
-rw-r--r--obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_directives.lua381
-rw-r--r--obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_helpers.lua657
-rw-r--r--obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_parser.lua1635
-rw-r--r--obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_setups.lua377
-rw-r--r--obsolete/macros/context/contrib/context-rst/tex/context/third/rst/t-rst.mkiv241
-rw-r--r--obsolete/macros/context/contrib/context-ruby/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-ruby/doc/context/third/ruby/README43
-rw-r--r--obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkii286
-rw-r--r--obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkiv283
-rw-r--r--obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkvi393
-rw-r--r--obsolete/macros/context/contrib/context-simplefonts/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-simplefonts/doc/context/third/simplefonts/README40
-rw-r--r--obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.lua228
-rw-r--r--obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.mkii400
-rw-r--r--obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.mkiv812
-rw-r--r--obsolete/macros/context/contrib/context-title/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-title/doc/context/third/title/title-doc.pdfbin0 -> 25415 bytes
-rw-r--r--obsolete/macros/context/contrib/context-title/tex/context/interface/third/t-title.xml79
-rw-r--r--obsolete/macros/context/contrib/context-title/tex/context/third/title/t-title.mkvi130
-rw-r--r--obsolete/macros/context/contrib/context-typearea/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-typearea/doc/context/third/typearea/typearea-demo.pdfbin0 -> 4125 bytes
-rw-r--r--obsolete/macros/context/contrib/context-typearea/doc/context/third/typearea/typearea-doc.pdfbin0 -> 75801 bytes
-rw-r--r--obsolete/macros/context/contrib/context-typearea/tex/context/third/typearea/t-typearea.tex99
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/VERSION1
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/test.pdfbin0 -> 83796 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/test.tex11
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/texnansi-urw-garamond.tex80
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/map/pdftex/context/texnansi-urw-garamond.map14
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmm8a.tfmbin0 -> 1472 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmmi8a.tfmbin0 -> 1656 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmr8a.tfmbin0 -> 1472 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmri8a.tfmbin0 -> 1684 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmm8a.tfmbin0 -> 6380 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmmi8a.tfmbin0 -> 6644 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmr8a.tfmbin0 -> 6300 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmri8a.tfmbin0 -> 6644 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmm8a.vfbin0 -> 1784 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmmi8a.vfbin0 -> 1788 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmr8a.vfbin0 -> 1784 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmri8a.vfbin0 -> 1788 bytes
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/tex/context/third/urwgaramond/t-urwgaramond.tex16
-rw-r--r--obsolete/macros/context/contrib/context-urwgaramond/tex/context/third/urwgaramond/type-urwgaramond.tex94
140 files changed, 31310 insertions, 0 deletions
diff --git a/obsolete/macros/context/contrib/context-account/VERSION b/obsolete/macros/context/contrib/context-account/VERSION
new file mode 100644
index 0000000000..5b759c095f
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/VERSION
@@ -0,0 +1 @@
+2009.02.06
diff --git a/obsolete/macros/context/contrib/context-account/doc/context/third/account/README b/obsolete/macros/context/contrib/context-account/doc/context/third/account/README
new file mode 100644
index 0000000000..5fe4b0bef1
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/doc/context/third/account/README
@@ -0,0 +1,13 @@
+ConTeXt module to create T-Accounts
+
+To use the module you could use the two predefined environment
+'TACCOUNT' and 'TKONTO' or you could define your own with
+the command \defineACCOUNT.
+
+The background is drawn from TeX but it is possible to draw
+a more fancy layout with MetaPost, the module itself comes
+with the style 'account' you could use as a example for your
+own graphic.
+
+The module is copyrighted by Wolfgang Schuster and publishes
+under public domain.
diff --git a/obsolete/macros/context/contrib/context-account/doc/context/third/account/account-doc.pdf b/obsolete/macros/context/contrib/context-account/doc/context/third/account/account-doc.pdf
new file mode 100644
index 0000000000..a40c0262f8
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/doc/context/third/account/account-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-account/tex/context/interface/third/t-account.xml b/obsolete/macros/context/contrib/context-account/tex/context/interface/third/t-account.xml
new file mode 100644
index 0000000000..e1c94bd353
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/tex/context/interface/third/t-account.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.07.14">
+
+<cd:command name="debits" type="environment" file="wolf-mis">
+ <cd:sequence>
+ <cd:string value="DEBITS"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="debit" file="wolf-mis.tex">
+ <cd:sequence>
+ <cd:string value="debit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="credits" type="environment" file="wolf-mis">
+ <cd:sequence>
+ <cd:string value="CREDITS"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="credit" file="wolf-mis.tex">
+ <cd:sequence>
+ <cd:string value="credit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="account" type="environment" file="wolf-mis">
+ <cd:sequence>
+ <cd:string value="ACCOUNT"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments optional="yes" list="yes">
+ <cd:inherit name="setupACCOUNT"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupaccount" file="wolf-mis.tex">
+ <cd:sequence>
+ <cd:string value="setupACCOUNT" />
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="screen"/>
+ <cd:constant type="color"/>
+ <cd:constant type="none"/>
+ <cd:constant type="foreground"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundscreen">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundoffset">
+ <cd:constant type="frame"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="framecolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="none"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="middle">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="defineaccount" file="wolf-mis.tex">
+ <cd:sequence>
+ <cd:string value="defineACCOUNT"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments optional="yes" list="yes">
+ <cd:inherit name="setupACCOUNT"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+</cd:interface>
diff --git a/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.mkii b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.mkii
new file mode 100644
index 0000000000..ae4785a9af
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.mkii
@@ -0,0 +1,38 @@
+%D \module
+%D [ file=t-account,
+%D version=2007.01.15, % last change: 2008.02.13
+%D title=\CONTEXT\ User Module,
+%D subtitle=Miscelaneous,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\unprotect
+
+\defineXMLpickup [account] [name=TACCOUNT]
+ {\startACCOUNT
+ [\XMLpar{account}{name}{TACCOUNT}]
+ [calculate=\XMLpar{account}{calculate}{no},
+ left=\XMLpar{account}{left}{},
+ middle=\XMLpar{account}{middle}{},
+ right=\XMLpar{account}{right}{},
+ background=\XMLpar{account}{background}{},
+ rule=\XMLpar{account}{rule}{on},
+ framecolor=\XMLpar{account}{framecolor}{black}]}
+ {\stopACCOUNT}
+
+\defineXMLpickup [debits]
+ \startDEBITS
+ \stopDEBITS
+
+\defineXMLpickup [credits]
+ \startCREDITS
+ \stopCREDITS
+
+\defineXMLsingular [debit] {\debit[\XMLpar{debit}{text}{}]{\XMLpar{debit}{value}{}}}
+
+\defineXMLsingular [credit] {\credit[\XMLpar{credit}{text}{}]{\XMLpar{credit}{value}{}}}
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.mkiv b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.mkiv
new file mode 100644
index 0000000000..6beb50b3ee
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.mkiv
@@ -0,0 +1,84 @@
+%D \module
+%D [ file=t-account,
+%D version=2007.01.15, % last change: 2008.02.13
+%D title=\CONTEXT\ User Module,
+%D subtitle=Miscelaneous,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\unprotect
+
+\startxmlsetups xml:account
+ \xmlsetsetup{\xmldocument}{account|debits|credits|debit|credit}{*}
+\stopxmlsetups
+
+\xmlregistersetup{xml:account}
+
+\startxmlsetups account
+
+ \bgroup
+
+ \startcollecting
+
+ \startcollect\startACCOUNT\stopcollect
+ \doifelsenothing{\xmlatt{#1}{name}}
+ {\startcollect[TACCOUNT]\stopcollect}
+ {\startexpandedcollect[\xmlatt{#1}{name}]\stopexpandedcollect}
+ \startcollect[\stopcollect
+ \doifsomething{\xmlatt{#1}{background}}{\startexpandedcollect background=\xmlatt{#1}{background},\stopexpandedcollect}
+ \doifsomething{\xmlatt{#1}{backgroundcolor}}{\startexpandedcollect backgroundcolor=\xmlatt{#1}{backgroundcolor},\stopexpandedcollect}
+ \doifsomething{\xmlatt{#1}{backgroundoffset}}{\startexpandedcollect backgroundoffset=\xmlatt{#1}{backgroundoffset},\stopexpandedcollect}
+ \doifsomething{\xmlatt{#1}{backgroundscreen}}{\startexpandedcollect backgroundscreen=\xmlatt{#1}{backgroundscreen},\stopexpandedcollect}
+ \doifsomething{\xmlatt{#1}{frame}}{\startexpandedcollect frame=\xmlatt{#1}{frame},\stopexpandedcollect}
+ \doifsomething{\xmlatt{#1}{framecolor}}{\startexpandedcollect framecolor=\xmlatt{#1}{framecolor},\stopexpandedcollect}
+ \doifsomething{\xmlatt{#1}{offset}}{\startexpandedcollect offset=\xmlatt{#1}{offset},\stopexpandedcollect}
+ \doifsomething{\xmlatt{#1}{calculate}}{\startexpandedcollect calculate=\xmlatt{#1}{calculate},\stopexpandedcollect}
+ \doifsomething{\xmlatt{#1}{rule}}{\startexpandedcollect rule=\xmlatt{#1}{rule},\stopexpandedcollect}
+ \startcollect]\stopcollect
+
+ \xmlflush{#1}
+
+ \startcollect\stopACCOUNT\stopcollect
+
+ \stopcollecting
+
+ \egroup
+
+\stopxmlsetups
+
+\startxmlsetups debits
+
+ \startcollect\startDEBITS\stopcollect
+ \xmlflush{#1}
+ \startcollect\stopDEBITS\stopcollect
+
+\stopxmlsetups
+
+\startxmlsetups debit
+
+ \startexpandedcollect
+ \noexpand\debit[\xmlatt{#1}{text}]{\xmlatt{#1}{value}}
+ \stopexpandedcollect
+
+\stopxmlsetups
+
+\startxmlsetups credits
+
+ \startcollect\startCREDITS\stopcollect
+ \xmlflush{#1}
+ \startcollect\stopCREDITS\stopcollect
+
+\stopxmlsetups
+
+\startxmlsetups credit
+
+ \startexpandedcollect
+ \noexpand\credit[\xmlatt{#1}{text}]{\xmlatt{#1}{value}}
+ \stopexpandedcollect
+
+\stopxmlsetups
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.tex b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.tex
new file mode 100644
index 0000000000..625d436b23
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-account.tex
@@ -0,0 +1,439 @@
+%D \module
+%D [ file=t-account,
+%D version=2007.01.15, % last change: 2009.02.06
+%D title=\CONTEXT\ User Module,
+%D subtitle=Miscelaneous,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+%M \usemodule [account]
+%M \loadsetups[t-account.xml]
+
+\writestatus{loading}{Context User Module / Miscelaneous}
+
+\unprotect
+
+\usemodule[floatnumber]
+
+\def\????ac{@@@@ac} % Account
+
+%D This is the second version of my T-Account module. If I want
+%D to be true I wrote this module the n-th time but the current
+%D version is my second version that has all things implemented
+%D that I wanted and is written as a real \CONTEXT\ module and
+%D in a simple plain \TEX\ style, although it is sometimes better
+%D to try writing things for plain \TEX\ and creating an extended
+%D for \CONTEXT\ later, after everything works.
+
+%D The next two count registers save the values for the values
+%D from the \tex{debit} and \tex{credit} macros. You can output
+%D the values at the end of the account.
+
+\definefloatnumber[creditvalue][\c!command=\accountparameter\c!numbercommand]
+\definefloatnumber[debitvalue] [\c!command=\accountparameter\c!numbercommand]
+
+\definefloatnumber[creditsum][\c!command=\accountparameter\c!numbercommand]
+\definefloatnumber[debitsum] [\c!command=\accountparameter\c!numbercommand]
+
+%D The following dimens are needed to save the textwidth in the
+%D first run with my account parser and feed these values into
+%D the account boxes, most of them only needed for the
+%D \mono{width=fit} option.
+
+\newdimen\!!debitwidth
+\newdimen\!!debitheight
+\newdimen\!!creditwidth
+\newdimen\!!creditheight
+\newdimen\!!accountwidth
+\newdimen\!!accountheight
+\newdimen\!!debittextwidth
+\newdimen\!!debitnumberwidth
+\newdimen\!!credittextwidth
+\newdimen\!!creditnumberwidth
+
+%D I collect the content from the debit environment in an box and
+%D put the content into the main box, after all values are collected.
+%D The same happens for the credit environment and his content.
+
+\newbox\debitbox
+\newbox\creditbox
+
+%D And the last thing is a private token register to save the account
+%D content and use it for both parsing the content and using it afterwards
+%D to fill the box with the processed content.
+
+\newtoks\accounttoks
+
+%D This nice thing was taken from \mono{core-rul.tex}.
+
+\def\accountparameter#1%
+ {\csname\@@account#1\endcsname}
+
+%D \macros{startACCOUNT,stopACCOUNT}
+%D
+%D \showsetup{startaccount}
+
+%D My first version used a buffers to store the content between the
+%D \tex{startACCOUNT} \unknown\ \tex{stopACCOUNT} pair. This has
+%D worked untill I tried to put the environment into a float or to
+%D put a few of them side by side in an \mono{combination} environment.
+%D A solution for this problems could have been to call the output
+%D from my \mono{ACCOUNT} environment by a command like \tex{useACCOUNT}
+%D like the \mono{MPgraphics}, but is was not what I wanted and the
+%D only solution for this was to use an delimited environment on the
+%D one side or collext the text into braces like \tex{ACCOUNT{}} on
+%D the other side. The second way would have made it easier to define
+%D new macros to for the account with presets with the sideeffect to
+%D enclose the content with braces. The first way avoids braces and
+%D uses delimitercommands instead, more to write and harder to define
+%D wrapper macros (in the way I like) but I prefered this solution
+%D as shown below.
+
+\def\startACCOUNT
+ {\dodoubleempty\dostartACCOUNT}
+
+\long\def\dostartACCOUNT[#1][#2]#3\stopACCOUNT
+ {\bgroup
+ \edef\@@account{\????ac#1}%
+ \ifsecondargument
+ \setupACCOUNT[#1][#2]%
+ \fi
+ \edef\accountwidth {\accountparameter\c!width}%
+ \edef\accountdistance {\accountparameter\c!distance}%
+ \resetfloatnumber[creditsum]%
+ \resetfloatnumber[debitsum]%
+ \def\creditsum{\getfloatnumber[creditsum]}%
+ \def\debitsum {\getfloatnumber[debitsum]}%
+ \doifvaluesomething{\accountparameter\c!bodyfont}
+ {\expanded{\switchtobodyfont
+ [\accountparameter\c!bodyfont]}}%
+ \parseACCOUNT{#3}%
+ \doifnot\accountwidth\v!fit
+ {\global\!!accountwidth\the\dimexpr\accountwidth\relax
+ \global\advance\!!accountwidth-\accountdistance
+ \global\!!accountwidth0.5\!!accountwidth}%
+ #3\removeunwantedspaces
+ \checkACCOUNT
+ \presetlocalframed[\????ac]%
+ \localframed
+ [\????ac]
+ [\c!background=\accountparameter\c!background,
+ \c!backgroundcolor=\accountparameter\c!backgroundcolor,
+ \c!backgroundoffset=\accountparameter\c!backgroundoffset,
+ \c!backgroundscreen=\accountparameter\c!backgroundscreen,
+ \c!frame=\accountparameter\c!frame,
+ \c!framecolor=\accountparameter\c!framecolor,
+ \c!offset=\accountparameter\c!offset]
+ \bgroup
+ \setbox\scratchbox\vbox
+ {\offinterlineskip
+ \doifelsenothing
+ {\accountparameter\c!left%
+ \accountparameter\c!middle%
+ \accountparameter\c!right}
+ {\xdef\MPaccountheaderheight{\the\zeropoint}}
+ {\setbox\scratchbox\hbox\!!to\dimexpr2\!!accountwidth+\accountdistance\relax
+ {\doif{\accountparameter\c!strut}\v!yes\strut
+ \rlap{\accountparameter\c!left}\hfil
+ \accountparameter\c!middle\hfil
+ \llap{\accountparameter\c!right}}%
+ \xdef\MPaccountheaderheight{\the\dimexpr\ht\scratchbox+\dp\scratchbox\relax}%
+ \box\scratchbox}
+ \doifelse{\accountparameter\c!rule}\v!on
+ {\doifsomething{\accountparameter\c!framecolor}
+ {\color[\accountparameter\c!framecolor]}
+ {\hrule\!!height\accountparameter\c!rulethickness\relax}}
+ {\vskip\accountparameter\c!rulethickness\relax}%
+ \hbox{\box\debitbox\betweenaccount\box\creditbox}%
+ \doifelse{\accountparameter\c!calculate}\v!yes
+ {\setbox\scratchbox\vbox
+ {\doifelse{\accountparameter\c!rule}\v!on
+ {\doifsomething{\accountparameter\c!framecolor}
+ {\color[\accountparameter\c!framecolor]}
+ {\hrule\!!height\accountparameter\c!rulethickness\relax}}
+ {\vskip\accountparameter\c!rulethickness\relax}
+ \hbox
+ {\hbox\!!to\!!accountwidth
+ {\doif{\accountparameter\c!strut}\v!yes\strut%
+ \hfil\debitsum}%
+ \spacebetweenaccount
+ \hbox\!!to\!!accountwidth
+ {\doif{\accountparameter\c!strut}\v!yes\strut%
+ \hfil\creditsum}}}%
+ \xdef\MPaccountfooterheight{\the\dimexpr\ht\scratchbox+\dp\scratchbox\relax}%
+ \box\scratchbox}
+ {\xdef\MPaccountfooterheight{\the\zeropoint}}}%
+ \xdef\MPaccountmaxheight{\the\dimexpr\ht\scratchbox+\dp\scratchbox\relax}%
+ \xdef\MPaccountmaxwidth {\the\wd\scratchbox}%
+ \box\scratchbox
+ \egroup
+ \egroup}
+
+\defineoverlay[account][\useMPgraphic{account}]
+
+%D We are not limited to simple rules with \TEX\ primitives.
+%D The following \METAPOST\ example graphic shows one way to
+%D draw more complicated rules behind the T-Account, you can
+%D use thus as an example for your own backgrounds.
+
+\startuseMPgraphic{account}
+ AccountNumberGap := 0.5*\MPaccountmaxwidth-\MPaccountwidth ;
+ AccountRuleWidth := \the\dimexpr\accountparameter\c!rulethickness\relax ;
+
+ z11 = (0,\MPaccountmaxheight-\MPaccountheaderheight) ;
+ z12 = (\MPaccountmaxwidth,\MPaccountmaxheight-\MPaccountheaderheight) ;
+
+ z21 = (\MPaccountwidth-\MPaccountnumberwidth-AccountNumberGap,\MPaccountmaxheight-\MPaccountheaderheight-\MPaccountdebitheight) ;
+ z22 = (0.5*\MPaccountmaxwidth,\MPaccountmaxheight-\MPaccountheaderheight-\MPaccountdebitheight) ;
+ z23 = (\MPaccountmaxwidth-\MPaccountnumberwidth-AccountNumberGap,\MPaccountmaxheight-\MPaccountheaderheight-\MPaccountcreditheight) ;
+ z24 = (\MPaccountmaxwidth,\MPaccountmaxheight-\MPaccountheaderheight-\MPaccountcreditheight) ;
+
+ z31 = (\MPaccountwidth-\MPaccountnumberwidth-AccountNumberGap,\MPaccountfooterheight) ;
+ z32 = (0.5*\MPaccountmaxwidth-AccountNumberGap,\MPaccountfooterheight) ;
+ z33 = (\MPaccountmaxwidth-\MPaccountnumberwidth-AccountNumberGap,\MPaccountfooterheight) ;
+ z34 = (\MPaccountmaxwidth,\MPaccountfooterheight) ;
+
+ z41 = (0.5*\MPaccountmaxwidth,\MPaccountmaxheight-\MPaccountheaderheight) ;
+ z42 = (0.5*\MPaccountmaxwidth,0) ;
+ z43 = whatever[z41,z42]=whatever[z22,z23] ;
+ z44 = (0.5*\MPaccountmaxwidth,\MPaccountfooterheight) ;
+
+ z51 = (0,\MPaccountfooterheight) ;
+ z52 = (\MPaccountnumberwidth,\MPaccountfooterheight) ;
+ z53 = (0.5*\MPaccountmaxwidth-\MPaccountnumberwidth-AccountNumberGap,\MPaccountmaxheight-\MPaccountheaderheight-\MPaccountdebitheight) ;
+ z54 = (0.5*\MPaccountmaxwidth-AccountNumberGap,\MPaccountmaxheight-\MPaccountheaderheight-\MPaccountdebitheight) ;
+
+ z61 = (\MPaccountwidth-\MPaccountnumberwidth-AccountNumberGap,0) ;
+ z62 = (0.5*\MPaccountmaxwidth-AccountNumberGap,0) ;
+ z63 = (\MPaccountmaxwidth-\MPaccountnumberwidth-AccountNumberGap,0) ;
+ z64 = (\MPaccountmaxwidth,0) ;
+
+ drawoptions (withpen pencircle scaled AccountRuleWidth withcolor \MPcolor{\accountparameter\c!framecolor}) ;
+ linecap := butt ; % no round end of the lines
+
+ draw z11--z12 ;
+ draw z33--z34 ;
+
+ if \MPaccountfooterheight>0pt:
+ draw z61--z62 ;
+ draw z63--z64 ;
+ fi
+
+ if \MPaccountcreditheight>\MPaccountdebitheight:
+ draw z31--z32 ;
+ draw z41--z44 ;
+ draw z51--z52--z53--z54 ;
+ else:
+ draw z21--z22--z23--z24 ;
+ draw z41--z43 ;
+ fi
+
+ setbounds currentpicture to unitsquare xyscaled (\MPaccountmaxwidth,\MPaccountmaxheight) ;
+\stopuseMPgraphic
+
+%D \showsetup{startdebits}
+%D \showsetup{debit}
+
+\long\def\startDEBITS#1\stopDEBITS
+ {\bgroup
+ \def\debit{\dosingleempty\dodebit}%
+ \def\dodebit[##1]%
+ {\def\dododebit####1{\dodododebit[##1]{####1}}%
+ \permitspacesbetweengroups
+ \dosinglegroupempty\dododebit}%
+ \def\dodododebit[##1]##2%
+ {\setfloatnumber[debitvalue]{##2}%
+ \incrementfloatnumber[debitsum]{\rawfloatnumber[debitvalue]}%
+ \hbox\!!to\hsize{\strut##1\hfill\getfloatnumber[debitvalue]}}%
+ \global\setbox\debitbox\vtop{\hsize\!!accountwidth#1}%
+ \!!debitheight\ht\debitbox
+ \advance\!!debitheight\dp\debitbox
+ \xdef\MPaccountdebitheight{\the\!!debitheight}%
+ \egroup}
+
+%D \showsetup{startcredits}
+%D \showsetup{credit}
+
+\long\def\startCREDITS#1\stopCREDITS
+ {\bgroup
+ \def\credit{\dosingleempty\docredit}%
+ \def\docredit[##1]%
+ {\def\dodocredit####1{\dododocredit[##1]{####1}}%
+ \permitspacesbetweengroups
+ \dosinglegroupempty\dodocredit}%
+ \def\dododocredit[##1]##2%
+ {\setfloatnumber[creditvalue]{##2}%
+ \incrementfloatnumber[creditsum]{\rawfloatnumber[creditvalue]}%
+ \hbox\!!to\hsize{\strut##1\hfill\getfloatnumber[creditvalue]}}%
+ \global\setbox\creditbox\vtop{\hsize\!!accountwidth#1}%
+ \!!creditheight\ht\creditbox
+ \advance\!!creditheight\dp\creditbox
+ \xdef\MPaccountcreditheight{\the\!!creditheight}%
+ \egroup}
+
+\long\def\parseACCOUNT#1%
+ {\bgroup
+ \resetfloatnumber[creditsum]%
+ \resetfloatnumber[debitsum]%
+ \def\startCREDITS##1\stopCREDITS
+ {\def\credit{\dosingleempty\docredit}%
+ \def\docredit[####1]%
+ {\def\dodocredit########1{\dododocredit[####1]{########1}}%
+ \permitspacesbetweengroups
+ \dosinglegroupempty\dodocredit}%
+ \def\dododocredit[####1]####2%
+ {\incrementfloatnumber[creditsum]{####2}%
+ \setbox\scratchbox\hbox{####1}\!!dimena\wd\scratchbox
+ \compareaccountdimen\!!credittextwidth\!!dimena}%
+ ##1\removeunwantedspaces}%
+ \def\startDEBITS##1\stopDEBITS
+ {\def\debit{\dosingleempty\dodebit}%
+ \def\dodebit[####1]%
+ {\def\dododebit########1{\dodododebit[####1]{########1}}%
+ \permitspacesbetweengroups
+ \dosinglegroupempty\dododebit}%
+ \def\dodododebit[####1]####2%
+ {\incrementfloatnumber[debitsum]{####2}%
+ \setbox\scratchbox\hbox{####1}\!!dimena\wd\scratchbox
+ \compareaccountdimen\!!debittextwidth\!!dimena}%
+ ##1\removeunwantedspaces}%
+ #1\removeunwantedspaces
+ \compareACCOUNTnumberwidth
+ \compareaccountdimen\!!debittextwidth\!!credittextwidth
+ \global\!!accountwidth\!!debittextwidth
+ \global\advance\!!accountwidth\dimexpr\MPaccountnumberwidth\relax
+ \global\advance\!!accountwidth\accountparameter\c!columndistance
+ \xdef\MPaccounttextwidth{\the\!!debittextwidth}%
+ \xdef\MPaccountwidth {\the\!!accountwidth}%
+ \resetfloatnumber[creditsum]%
+ \resetfloatnumber[debitsum]%
+ \egroup}
+
+\def\compareACCOUNTnumberwidth
+ {\bgroup
+ \setbox\plusone\hbox{\getfloatnumber[debitsum]}%
+ \setbox\plustwo\hbox{\getfloatnumber[creditsum]}%
+ \ifdim\wd\plusone>\wd\plustwo
+ \xdef\MPaccountnumberwidth{\the\wd\plusone}%
+ \else
+ \xdef\MPaccountnumberwidth{\the\wd\plustwo}%
+ \fi
+ \egroup}
+
+\def\compareaccountdimen#1#2%
+ {\ifdim#2>#1\relax
+ #1#2
+ \fi}
+
+\def\checkACCOUNT
+ {\bgroup
+ \compareaccountdimen\!!debitheight\!!creditheight
+ \xdef\MPaccountheight{\the\!!debitheight}%
+ \egroup}
+
+\def\linebetweenaccount
+ {\bgroup
+ \xdef\MPaccountdistance{\the\dimexpr\accountdistance\relax}%
+ \ifdim\accountdistance>\zeropoint\relax
+ \!!dimena\accountdistance
+ \else
+ \!!dimena\linewidth
+ \fi
+ \advance\!!dimena-\linewidth
+ \hskip.5\!!dimena
+ \doifsomething{\accountparameter\c!framecolor}
+ {\color[\accountparameter\c!framecolor]}%
+ {\vrule\!!width\accountparameter\c!rulethickness}%
+ \hskip.5\!!dimena\relax
+ \egroup}
+
+\def\spacebetweenaccount
+ {\xdef\MPaccountdistance{\zeropoint}%
+ \hskip\accountdistance}
+
+%D \macros{setupACCOUNT}
+%D
+%D \showsetup{setupaccount}
+
+\def\setupACCOUNT
+ {\dodoubleargument\dosetupACCOUNT}
+
+\def\dosetupACCOUNT[#1][#2]%
+ {\getparameters[\????ac#1][#2]%
+ \processaction
+ [\getvalue{\????ac#1\c!rule}]
+ [ \v!on=>\let\betweenaccount\linebetweenaccount,
+ \v!off=>\let\betweenaccount\spacebetweenaccount,
+ \s!default=>\let\betweenaccount\spacebetweenaccount,
+ \s!unknown=>\let\betweenaccount\spacebetweenaccount]}
+
+\def\defineACCOUNT
+ {\dodoubleempty\dodefineACCOUNT}
+
+\def\dodefineACCOUNT[#1][#2]%
+ {\setupACCOUNT
+ [#1]
+ [\c!background=,
+ \c!backgroundoffset=0pt,
+ \c!backgroundscreen=,
+ \c!backgroundcolor=,
+ \c!bodyfont=,
+ \c!calculate=\v!no,
+ \c!columndistance=\bodyfontsize,
+ \c!distance=\bodyfontsize,
+ \c!frame=\v!off,
+ \c!framecolor=,
+ \c!left=,
+ \c!middle=,
+ \c!offset=0.25ex,
+ \c!right=,
+ \c!rule=\v!on,
+ \c!rulethickness=\linewidth,
+ \c!width=\v!fit,
+ \c!strut=\v!yes,
+ \c!numbercommand=\integerrounding,
+ #2]%
+ \processbetween{#1}{\ACCOUNT[#1]}%
+ \setvalue{\e!setup#1\e!endsetup}{\dodoubleargument\setupACCOUNT[#1]}}
+
+\def\ACCOUNT[#1]#2%
+ {\startACCOUNT[#1]#2\stopACCOUNT}
+
+\defineACCOUNT[TACCOUNT]
+
+\defineACCOUNT[TKONTO]
+
+%D \subject{Example}
+%D
+%D \startbuffer
+%D \startTACCOUNT[left=S,middle=Retained Earnings,right=H]
+%D \startTACCOUNT
+%D \startDEBITS
+%D \debit [Rent Expense] {2200}
+%D \debit [Salaries Expense] {1650}
+%D \debit [Interest Expense] {3950}
+%D \debit [Dividends] {2000}
+%D \stopDEBITS
+%D \startCREDITS
+%D \credit [Sales Revenue] {8500}
+%D \credit [Interest Revenue] {1300}
+%D \stopCREDITS
+%D \stopTACCOUNT
+%D \stopbuffer
+%D
+%D A simple example:
+%D
+%D \typebuffer
+%D
+%D This results in the following output:
+%D
+%D \startlinecorrection
+%D \getbuffer
+%D \stoplinecorrection
+
+\loadmarkfile{t-account}
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.mkii b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.mkii
new file mode 100644
index 0000000000..18ce3b92af
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.mkii
@@ -0,0 +1,68 @@
+%D \module
+%D [ file=floatnumber,
+%D version=2008.02.11,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Float Numbers,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\writestatus{loading}{Context User Module / Float Numbers}
+
+\unprotect
+
+\def\@@floatnumber@@v{@@floatnumber@@v}
+\def\@@floatnumber@@s{@@floatnumber@@s}
+
+% namespace is already dealt with in the frontend
+
+% \def\@@floatnumber@@v{v:}
+% \def\@@floatnumber@@s{s:}
+
+\def\makefloatcounter#1%
+ {\global\@EA\let\csname\@@floatnumber@@v#1\endcsname\zeropoint
+ \global\@EA\let\csname\@@floatnumber@@s#1\endcsname\zeropoint}
+
+\def\floatcountervalue#1%
+ {\ifcsname\@@floatnumber@@v#1\endcsname
+ \@EA\withoutpt\the\dimexpr\csname\@@floatnumber@@v#1\endcsname\relax
+ \fi}
+
+\def\plusfloatcounter#1#2%
+ {\@EA\xdef\csname\@@floatnumber@@v#1\endcsname
+ {\the\dimexpr\csname\@@floatnumber@@v#1\endcsname+#2\points\relax}}
+
+\def\minusfloatcounter#1#2%
+ {\@EA\xdef\csname\@@floatnumber@@v#1\endcsname
+ {\the\dimexpr\csname\@@floatnumber@@v#1\endcsname-#2\points\relax}}
+
+\def\multiplyfloatcounter#1#2%
+ {\@EA\xdef\csname\@@floatnumber@@v#1\endcsname
+ {\the\dimexpr\csname\@@floatnumber@@v#1\endcsname*\integerrounding{\@EA\withoutpt\the\dimexpr#2\points*\plushundred\relax}/\plushundred\relax}}
+
+\def\multiplyfloatcounter#1#2%
+ {\@EA\xdef\csname\@@floatnumber@@v#1\endcsname
+ {\the\dimexpr\csname\@@floatnumber@@v#1\endcsname*\numexpr\number\dimexpr#2\points\relax*\plushundred/\maxcard\relax/\plushundred\relax}}
+
+\def\dividefloatcounter#1#2%
+ {\@EA\xdef\csname\@@floatnumber@@v#1\endcsname
+ {\the\dimexpr\csname\@@floatnumber@@v#1\endcsname*\plushundred/\integerrounding{\@EA\withoutpt\the\dimexpr#2\points*\plushundred\relax}\relax}}
+
+\def\dividefloatcounter#1#2%
+ {\@EA\xdef\csname\@@floatnumber@@v#1\endcsname
+ {\the\dimexpr\csname\@@floatnumber@@v#1\endcsname*\plushundred/\numexpr\number\dimexpr#2\points\relax*\plushundred/\maxcard\relax\relax}}
+
+\let\resetfloatcounter\makefloatcounter
+
+\def\setfloatcounter#1#2%
+ {\global\@EA\xdef\csname\@@floatnumber@@v#1\endcsname{\the\dimexpr#2\points\relax}}
+
+\def\savefloatcounter#1%
+ {\global\@EA\xdef\csname\@@floatnumber@@s#1\endcsname{\the\dimexpr\csname\@@floatnumber@@v#1\endcsname\relax}}
+
+\def\restorefloatcounter#1%
+ {\global\@EA\xdef\csname\@@floatnumber@@v#1\endcsname{\the\dimexpr\csname\@@floatnumber@@s#1\endcsname\relax}}
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.mkiv b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.mkiv
new file mode 100644
index 0000000000..bbd5e37916
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.mkiv
@@ -0,0 +1,37 @@
+%D \module
+%D [ file=floatnumber,
+%D version=2008.02.11,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Float Numbers,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\writestatus{loading}{Context User Module / Float Numbers}
+
+\unprotect
+
+\startluacode
+ thirddata = thirddata or { }
+ thirddata.floatnumbers = thirddata.floatnumbers or { }
+ thirddata.floatnumbers.data = thirddata.floatnumbers.data or { }
+ thirddata.floatnumbers.saved = thirddata.floatnumbers.saved or { }
+\stopluacode
+
+\def\makefloatcounter #1{\ctxlua{thirddata.floatnumbers.data ["#1"] = 0 thirddata.floatnumbers.saved["#1"] = 0}}
+\def\setfloatcounter #1#2{\ctxlua{thirddata.floatnumbers.data ["#1"] = #2}}
+
+\def\plusfloatcounter #1#2{\ctxlua{thirddata.floatnumbers.data ["#1"] = thirddata.floatnumbers.data ["#1"] + #2}}
+\def\minusfloatcounter #1#2{\ctxlua{thirddata.floatnumbers.data ["#1"] = thirddata.floatnumbers.data ["#1"] - #2}}
+\def\multiplyfloatcounter#1#2{\ctxlua{thirddata.floatnumbers.data ["#1"] = thirddata.floatnumbers.data ["#1"] * #2}}
+\def\dividefloatcounter #1#2{\ctxlua{thirddata.floatnumbers.data ["#1"] = thirddata.floatnumbers.data ["#1"] / #2}}
+\def\savefloatcounter #1{\ctxlua{thirddata.floatnumbers.saved["#1"] = thirddata.floatnumbers.data ["#1"]}}
+\def\restorefloatcounter #1{\ctxlua{thirddata.floatnumbers.data ["#1"] = thirddata.floatnumbers.saved["#1"]}}
+
+\def\floatcountervalue #1{\ctxlua{tex.print(thirddata.floatnumbers.data["#1"])}}
+
+\let\resetfloatcounter\makefloatcounter
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.tex b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.tex
new file mode 100644
index 0000000000..f0bb838312
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-account/tex/context/third/account/t-floatnumber.tex
@@ -0,0 +1,78 @@
+%D \module
+%D [ file=t-floatnumber,
+%D version=2008.02.11,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Float Numbers,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\writestatus{loading}{Context User Module / Float Numbers}
+
+\unprotect
+
+% Commands for floatnumbers:
+%
+% \definefloatnumber[name]
+% \setfloatnumber[name]{value}
+% \resetfloatnumber[name]
+% \incrementfloatnumber[name]{value}
+% \decrementfloatnumber[name]{value}
+% \multiplyfloatnumber[name]{value}
+% \dividefloatnumber[name]{value}
+% \savefloatnumber[name]
+% \restorefloatnumber[name]
+% \getfloatnumber[name]
+
+\def\setupfloatnumber
+ {\dodoubleargument\dosetupfloatnumber}
+
+\def\dosetupfloatnumber[#1][#2]%
+ {\getparameters[\s!float\s!number#1][#2]}
+
+\def\definefloatnumber
+ {\dodoubleempty\dodefinefloatnumber}
+
+\def\dodefinefloatnumber[#1][#2]%
+ {\setupfloatnumber
+ [#1]
+ [\c!command=\twodigitrounding,
+ #2]%
+ \makefloatcounter{\s!float\s!number#1}}
+
+\def\setfloatnumber[#1]#2%
+ {\setfloatcounter{\s!float\s!number#1}{#2}}
+
+\def\resetfloatnumber[#1]%
+ {\resetfloatcounter{\s!float\s!number#1}}
+
+\def\incrementfloatnumber[#1]#2%
+ {\plusfloatcounter{\s!float\s!number#1}{#2}}
+
+\def\decrementfloatnumber[#1]#2%
+ {\minusfloatcounter{\s!float\s!number#1}{#2}}
+
+\def\multiplyfloatnumber[#1]#2%
+ {\multiplyfloatcounter{\s!float\s!number#1}{#2}}
+
+\def\dividefloatnumber[#1]#2%
+ {\dividefloatcounter{\s!float\s!number#1}{#2}}
+
+\def\savefloatnumber[#1]%
+ {\savefloatcounter{\s!float\s!number#1}}
+
+\def\restorefloatnumber[#1]%
+ {\restorefloatcounter{\s!float\s!number#1}}
+
+\def\getfloatnumber[#1]%
+ {\csname\s!float\s!number#1\c!command\endcsname
+ {\floatcountervalue{\s!float\s!number#1}}}
+
+\def\rawfloatnumber[#1]%
+ {\floatcountervalue{\s!float\s!number#1}}
+
+\loadmarkfile{t-floatnumber}
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-algorithmic/VERSION b/obsolete/macros/context/contrib/context-algorithmic/VERSION
new file mode 100644
index 0000000000..9997aa3cfd
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-algorithmic/VERSION
@@ -0,0 +1 @@
+2013.06.03
diff --git a/obsolete/macros/context/contrib/context-algorithmic/tex/context/third/algorithmic/t-algorithmic.mkii b/obsolete/macros/context/contrib/context-algorithmic/tex/context/third/algorithmic/t-algorithmic.mkii
new file mode 100644
index 0000000000..0a5c3fbcdf
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-algorithmic/tex/context/third/algorithmic/t-algorithmic.mkii
@@ -0,0 +1,160 @@
+%D \module
+%D [ file=t-algorithmic,
+%D version=2012.06.22,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Algorithms,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2010 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C (at your option) any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+\writestatus{loading}{Context User Module / Algorithms}
+
+\unprotect
+
+\def\????algorithmic{@@@@algorithmic}
+
+\def\algorithmicparameter#1%
+ {\csname\ifcsname\????algorithmic#1\endcsname\????algorithmic#1\else\s!empty\fi\endcsname}
+
+\def\startalgorithmic
+ {\bgroup
+ \dosingleempty\dostartalgorithmic}
+
+\def\dostartalgorithmic[#1]%
+ {\iffirstargument
+ \setupalgorithmic[#1]%
+ \fi
+ \the\everyalgorithmic
+ \doifsomething{\algorithmicparameter\c!spacebefore}{\blank[\algorithmicparameter\c!spacebefore]}%
+ \algorithmicparameter\c!before
+ \setupwhitespace[\v!none]%
+ \doadaptleftskip{\algorithmicparameter\c!margin}%
+ \doif{\algorithmicparameter\c!numbering}\v!yes
+ {\setuplinenumbering
+ [\c!start=\algorithmicparameter\c!start,
+ \c!stop=\algorithmicparameter\c!stop,
+ \c!step=\algorithmicparameter\c!step]%
+ \startlinenumbering}}
+
+\def\stopalgorithmic
+ {\par
+ \doif{\algorithmicparameter\c!numbering}\v!yes\stoplinenumbering
+ \algorithmicparameter\c!after
+ \doifsomething{\algorithmicparameter\c!spaceafter}{\blank[\algorithmicparameter\c!spaceafter]}%
+ \egroup}
+
+\def\setupalgorithmic
+ {\dodoubleargument\getparameters[\????algorithmic]}
+
+% Commands
+
+\newtoks\everyalgorithmic
+
+\def\startsubalgorithmic
+ {\par\doadaptleftskip{\algorithmicparameter\c!width}}
+
+\def\stopsubalgorithmic
+ {\par\doadaptleftskip{-\algorithmicparameter\c!width}}
+
+\def\algorithmic!state {\par}
+\def\algorithmic!if #1{\par\algorithmicif\ #1 \algorithmicthen\startsubalgorithmic}
+\def\algorithmic!else {\stopsubalgorithmic\algorithmicelse\startsubalgorithmic}
+\def\algorithmic!elsif #1{\stopsubalgorithmic\algorithmicelsif\ #1 \algorithmicthen\startsubalgorithmic}
+\def\algorithmic!endif {\stopsubalgorithmic\algorithmicendif}
+\def\algorithmic!for #1{\par\algorithmicfor\ #1 \algorithmicdo\startsubalgorithmic}
+\def\algorithmic!forall#1{\par\algorithmicforall\ #1 \algorithmicdo\startsubalgorithmic}
+\def\algorithmic!endfor {\stopsubalgorithmic\algorithmicendfor}
+\def\algorithmic!while #1{\par\algorithmicwhile\ #1 \algorithmicdo\startsubalgorithmic}
+\def\algorithmic!endwhile{\stopsubalgorithmic\algorithmicendwhile}
+\def\algorithmic!repeat {\par\algorithmicrepeat\startsubalgorithmic}
+\def\algorithmic!until #1{\stopsubalgorithmic\algorithmicuntil\ #1}
+\def\algorithmic!loop {\par\algorithmicloop\startsubalgorithmic}
+\def\algorithmic!endloop {\stopsubalgorithmic\algorithmicendloop}
+\def\algorithmic!require {\par\algorithmicrequire\space}
+\def\algorithmic!ensure {\par\algorithmicensure\space}
+\def\algorithmic!return {\par\algorithmicreturn\space}
+\def\algorithmic!true {\algorithmictrue}
+\def\algorithmic!false {\algorithmicfalse}
+\def\algorithmic!print {\par\algorithmicprint\space}
+\def\algorithmic!comment {\algorithmiccomment}
+
+\appendtoks
+ \let\STATE \algorithmic!state
+ \let\IF \algorithmic!if
+ \let\ELSE \algorithmic!else
+ \let\ELSIF \algorithmic!elsif
+ \let\ENDIF \algorithmic!endif
+ \let\FOR \algorithmic!for
+ \let\FORALL \algorithmic!forall
+ \let\ENDFOR \algorithmic!endfor
+ \let\WHILE \algorithmic!while
+ \let\ENDWHILE\algorithmic!endwhile
+ \let\REPEAT \algorithmic!repeat
+ \let\UNTIL \algorithmic!until
+ \let\LOOP \algorithmic!loop
+ \let\ENDLOOP \algorithmic!endloop
+ \let\REQUIRE \algorithmic!require
+ \let\ENSURE \algorithmic!ensure
+ \let\RETURN \algorithmic!return
+ \let\TRUE \algorithmic!true
+ \let\FALSE \algorithmic!false
+ \let\PRINT \algorithmic!print
+ \let\COMMENT \algorithmic!comment
+\to \everyalgorithmic
+
+% I should make this multilingual
+
+\def\algorithmicrequire {{\bf Require:}}
+\def\algorithmicensure {{\bf Ensure:}}
+\def\algorithmiccomment#1{\{#1\}}
+\def\algorithmicend {{\bf end}}
+\def\algorithmicif {{\bf if}}
+\def\algorithmicthen {{\bf then}}
+\def\algorithmicelse {{\bf else}}
+\def\algorithmicelsif {\algorithmicelse\ \algorithmicif}
+\def\algorithmicendif {\algorithmicend\ \algorithmicif}
+\def\algorithmicfor {{\bf for}}
+\def\algorithmicforall {{\bf for all}}
+\def\algorithmicdo {{\bf do}}
+\def\algorithmicendfor {\algorithmicend\ \algorithmicfor}
+\def\algorithmicwhile {{\bf while}}
+\def\algorithmicendwhile {\algorithmicend\ \algorithmicwhile}
+\def\algorithmicloop {{\bf loop}}
+\def\algorithmicendloop {\algorithmicend\ \algorithmicloop}
+\def\algorithmicrepeat {{\bf repeat}}
+\def\algorithmicuntil {{\bf until}}
+\def\algorithmicprint {{\bf print}}
+\def\algorithmicreturn {{\bf return}}
+\def\algorithmictrue {{\bf true}}
+\def\algorithmicfalse {{\bf false}}
+
+% Default values
+
+\setupalgorithmic
+ [ \c!numbering=\v!no,
+ \c!start=1,
+ \c!stop=,
+ \c!step=1,
+ \c!width=1em,
+ \c!margin=1em,
+ \c!spacebefore=\v!line,
+ \c!spaceafter=\v!line]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-algorithmic/tex/context/third/algorithmic/t-algorithmic.mkiv b/obsolete/macros/context/contrib/context-algorithmic/tex/context/third/algorithmic/t-algorithmic.mkiv
new file mode 100644
index 0000000000..0a4d386b0a
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-algorithmic/tex/context/third/algorithmic/t-algorithmic.mkiv
@@ -0,0 +1,317 @@
+%D \module
+%D [ file=t-algorithmic,
+%D version=2013.06.03,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Algorithms,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2010 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C (at your option) any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+% begin info
+%
+% title : algorithmic
+% comment : context port of the algorithmic package for latex
+% status : final
+%
+% end info
+
+\writestatus{loading}{Context User Module / Algorithms}
+
+\unprotect
+
+\startinterface all
+ \setinterfaceconstant {labelstyle} {labelstyle}
+ \setinterfaceconstant {labelcolor} {labelcolor}
+\stopinterface
+
+\startinterface all
+ \setinterfacevariable {algorithmic} {algorithmic}
+\stopinterface
+
+\installnamespace {algorithmic}
+\installnamespace {algorithmiccommand}
+
+%D The algorithmic environment
+
+\installcommandhandler \????algorithmic {algorithmic} \????algorithmic
+
+\appendtoks
+ \setuevalue{\e!start\currentalgorithmic}{\algorithmic_start[\currentalgorithmic]}%
+ \setuevalue{\e!stop \currentalgorithmic}{\algorithmic_stop }%
+\to \everydefinealgorithmic
+
+\appendtoks
+ \definelinenumbering[\currentalgorithmic]%
+\to \everydefinealgorithmic
+
+\appendtoks
+ \setuplinenumbering
+ [\currentalgorithmic]
+ [\c!conversion=\algorithmicparameter\c!conversion,
+ \c!start=\algorithmicparameter\c!start,
+ \c!step=\algorithmicparameter\c!step,
+ \c!method=\algorithmicparameter\c!method,
+ \c!continue=\algorithmicparameter\c!continue,
+ \c!location=\algorithmicparameter\c!location,
+ \c!style=\algorithmicparameter\c!numberstyle,
+ \c!color=\algorithmicparameter\c!numbercolor,
+ \c!width=\algorithmicparameter\c!numberwidth,
+ \c!align=\algorithmicparameter\c!align]%
+\to \everysetupalgorithmic
+
+\unexpanded\def\algorithmic_start[#1]%
+ {\begingroup
+ \edef\currentalgorithmic{#1}%
+ \dosingleempty\algorithmic_start_indeed}
+
+\def\algorithmic_start_indeed[#1]%
+ {\iffirstargument
+ \setupcurrentalgorithmic[#1]%
+ \fi
+ \the\t_algorithmic_commands
+ \usealgorithmicstyleandcolor\c!style\c!color
+ \doifsomething{\algorithmicparameter\c!spacebefore}{\blank[\algorithmicparameter\c!spacebefore]}%
+ \algorithmicparameter\c!before
+ \setupwhitespace[\v!none ]%
+ \setupindenting [\v!never]%
+ \doadaptleftskip{\algorithmicparameter\c!margin}%
+ \doif{\algorithmicparameter\c!numbering}\v!yes\startlinenumbering}
+
+\unexpanded\def\algorithmic_stop
+ {\par
+ \doif{\algorithmicparameter\c!numbering}\v!yes\stoplinenumbering
+ \algorithmicparameter\c!after
+ \doifsomething{\algorithmicparameter\c!spaceafter}{\blank[\algorithmicparameter\c!spaceafter]}%
+ \endgroup}
+
+% Commands
+
+\def\algorithmic_begsub
+ {\par\doadaptleftskip{\algorithmicparameter\c!width}}
+
+\def\algorithmic_endsub
+ {\par\doadaptleftskip{-\algorithmicparameter\c!width}}
+
+\def\algorithmic_label#1%
+ {\begingroup
+ \usealgorithmicstyleandcolor\c!labelstyle\c!labelcolor
+ \algorithmictext{#1}%
+ \endgroup}
+
+\starttexdefinition algorithmic_state
+ \par
+\stoptexdefinition
+
+\starttexdefinition algorithmic_if #1
+ \par
+ \algorithmic_label{if} #1 \algorithmic_label{then}
+ \algorithmic_begsub
+\stoptexdefinition
+
+\starttexdefinition algorithmic_else
+ \algorithmic_endsub
+ \algorithmic_label{else}
+ \algorithmic_begsub
+\stoptexdefinition
+
+\starttexdefinition algorithmic_elsif #1
+ \algorithmic_endsub
+ \algorithmic_label{elsif} #1 \algorithmic_label{then}
+ \algorithmic_begsub
+\stoptexdefinition
+
+\starttexdefinition algorithmic_endif
+ \algorithmic_endsub
+ \algorithmic_label{endif}
+\stoptexdefinition
+
+\starttexdefinition algorithmic_for #1
+ \par
+ \algorithmic_label{for} #1 \algorithmic_label{do}
+ \algorithmic_begsub
+\stoptexdefinition
+
+\starttexdefinition algorithmic_forall #1
+ \par
+ \algorithmic_label{forall} #1 \algorithmic_label{do}
+ \algorithmic_begsub
+\stoptexdefinition
+
+\starttexdefinition algorithmic_endfor
+ \algorithmic_endsub
+ \algorithmic_label{endfor}
+\stoptexdefinition
+
+\starttexdefinition algorithmic_while #1
+ \par
+ \algorithmic_label{while} #1 \algorithmic_label{do}
+ \algorithmic_begsub
+\stoptexdefinition
+
+\starttexdefinition algorithmic_endwhile
+ \algorithmic_endsub
+ \algorithmic_label{endwhile}
+\stoptexdefinition
+
+\starttexdefinition algorithmic_repeat
+ \par
+ \algorithmic_label{repeat}
+ \algorithmic_begsub
+\stoptexdefinition
+
+\starttexdefinition algorithmic_until #1
+ \algorithmic_endsub
+ \algorithmic_label{until} #1
+\stoptexdefinition
+
+\starttexdefinition algorithmic_loop
+ \par
+ \algorithmic_label{loop}
+ \algorithmic_begsub
+\stoptexdefinition
+
+\starttexdefinition algorithmic_endloop
+ \algorithmic_endsub
+ \algorithmic_label{endloop}
+\stoptexdefinition
+
+\starttexdefinition algorithmic_require
+ \par
+ \algorithmic_label{require}
+ \space
+\stoptexdefinition
+
+\starttexdefinition algorithmic_ensure
+ \par
+ \algorithmic_label{ensure}
+ \space
+\stoptexdefinition
+
+\starttexdefinition algorithmic_return
+ \par
+ \algorithmic_label{return}
+ \space
+\stoptexdefinition
+
+\starttexdefinition algorithmic_true
+ \algorithmic_label{true}
+\stoptexdefinition
+
+\starttexdefinition algorithmic_false
+ \algorithmic_label{false}
+\stoptexdefinition
+
+\starttexdefinition algorithmic_print
+ \par
+ \algorithmic_label{print}
+ \space
+\stoptexdefinition
+
+\starttexdefinition algorithmic_comment #1
+ \textbraceleft
+ #1
+ \textbraceright
+\stoptexdefinition
+
+% The commands in the environment are all uppercase, the connection
+% between them and their defintion happens here.
+
+\newtoks\t_algorithmic_commands
+
+\def\algorithmic_define
+ {\dodoubleargument\algorithmic_define_indeed}
+
+\def\algorithmic_define_indeed[#1][#2]%
+ {\appendtoks\letvalue{#1}#2\to\t_algorithmic_commands}
+
+\algorithmic_define [STATE] [\algorithmic_state ]
+\algorithmic_define [IF] [\algorithmic_if ]
+\algorithmic_define [ELSE] [\algorithmic_else ]
+\algorithmic_define [ELSIF] [\algorithmic_elsif ]
+\algorithmic_define [ENDIF] [\algorithmic_endif ]
+\algorithmic_define [FOR] [\algorithmic_for ]
+\algorithmic_define [FORALL] [\algorithmic_forall ]
+\algorithmic_define [ENDFOR] [\algorithmic_endfor ]
+\algorithmic_define [WHILE] [\algorithmic_while ]
+\algorithmic_define [ENDWHILE] [\algorithmic_endwhile]
+\algorithmic_define [REPEAT] [\algorithmic_repeat ]
+\algorithmic_define [UNTIL] [\algorithmic_until ]
+\algorithmic_define [LOOP] [\algorithmic_loop ]
+\algorithmic_define [ENDLOOP] [\algorithmic_endloop ]
+\algorithmic_define [REQUIRE] [\algorithmic_require ]
+\algorithmic_define [ENSURE] [\algorithmic_ensure ]
+\algorithmic_define [RETURN] [\algorithmic_return ]
+\algorithmic_define [TRUE] [\algorithmic_true ]
+\algorithmic_define [FALSE] [\algorithmic_false ]
+\algorithmic_define [PRINT] [\algorithmic_print ]
+\algorithmic_define [COMMENT] [\algorithmic_comment ]
+
+% Labels
+
+\definelabelclass[algorithmic]
+
+\setupalgorithmictext[\s!en][require=Require:]
+\setupalgorithmictext[\s!en][ensure=Ensure:]
+\setupalgorithmictext[\s!en][end=end]
+\setupalgorithmictext[\s!en][if=if]
+\setupalgorithmictext[\s!en][then=then]
+\setupalgorithmictext[\s!en][else=else]
+\setupalgorithmictext[\s!en][elsif=else if]
+\setupalgorithmictext[\s!en][endif=end if]
+\setupalgorithmictext[\s!en][for=for]
+\setupalgorithmictext[\s!en][forall=for all]
+\setupalgorithmictext[\s!en][do=do]
+\setupalgorithmictext[\s!en][endfor=end for]
+\setupalgorithmictext[\s!en][while=while]
+\setupalgorithmictext[\s!en][endwhile=end while]
+\setupalgorithmictext[\s!en][loop=loop]
+\setupalgorithmictext[\s!en][endloop=end loop]
+\setupalgorithmictext[\s!en][repeat=repeat]
+\setupalgorithmictext[\s!en][until=until]
+\setupalgorithmictext[\s!en][print=print]
+\setupalgorithmictext[\s!en][return=return]
+\setupalgorithmictext[\s!en][true=true]
+\setupalgorithmictext[\s!en][false=false]
+
+% Default values
+
+\definealgorithmic[\v!algorithmic]
+
+\setupalgorithmic
+ [ \c!numbering=\v!no, % linenumbering
+ \c!conversion=\v!numbers, % linenumbering
+ \c!start=1, % linenumbering
+ \c!step=1, % linenumbering
+ \c!method=\v!first, % linenumbering
+ \c!continue=\v!no, % linenumbering
+ \c!location=\v!left, % linenumbering
+ \c!numberstyle=, % linenumbering
+ \c!numbercolor=, % linenumbering
+ \c!numberwidth=2em, % linenumbering
+ \c!align=\v!auto, % linenumbering
+ \c!width=1em,
+ \c!margin=1em,
+ \c!labelstyle=\v!bold,
+ \c!before=,
+ \c!after=,
+ \c!spacebefore=\v!line,
+ \c!spaceafter=\v!line]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-animation/VERSION b/obsolete/macros/context/contrib/context-animation/VERSION
new file mode 100644
index 0000000000..e7e307b1d6
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-animation/VERSION
@@ -0,0 +1 @@
+2013.04.07
diff --git a/obsolete/macros/context/contrib/context-animation/doc/context/third/animation/README b/obsolete/macros/context/contrib/context-animation/doc/context/third/animation/README
new file mode 100644
index 0000000000..ae79d8c4aa
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-animation/doc/context/third/animation/README
@@ -0,0 +1,32 @@
+Modulename : t-animation
+Author : Wolfgang Schuster
+License : GNU General Public License
+
+Description
+-----------
+
+Generate fieldstack based animation with ConTeXt
+with a easy to use mechanism without the need
+to define symbols, layers and fieldstacks.
+
+Usage
+-----
+
+\usemodule[animation]
+
+\setupinteraction[state=start]
+
+\starttext
+
+\startanimation
+ {One}
+ {Two}
+\stopanimation
+
+\stoptext
+
+Options
+-------
+
+- menu
+- frame \ No newline at end of file
diff --git a/obsolete/macros/context/contrib/context-animation/tex/context/interface/third/t-animation.xml b/obsolete/macros/context/contrib/context-animation/tex/context/interface/third/t-animation.xml
new file mode 100644
index 0000000000..7ad5cb55a4
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-animation/tex/context/interface/third/t-animation.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2011.05.19">
+
+<cd:command name="animation" type="environment" generated="yes" file="t-animation.mkvi">
+ <cd:sequence>
+ <cd:variable value="animation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes" optional="yes">
+ <cd:inherit name="setupanimation" n="2"/>
+ <cd:inherit name="definefieldstack" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="animation" type="environment" file="t-animation.mkvi">
+ <cd:sequence>
+ <cd:string value="animation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes" optional="yes">
+ <cd:inherit name="setupanimation" n="2"/>
+ <cd:inherit name="definefieldstack" n="3"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="defineanimation" file="t-animation.mkvi">
+ <cd:sequence>
+ <cd:string value="defineanimation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes" optional="yes">
+ <cd:inherit name="setupanimation" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupanimation" file="t-animation.mkvi">
+ <cd:sequence>
+ <cd:string value="setupanimation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2">
+ <cd:parameter name="menu">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="overlay" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="menustyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="menucolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/obsolete/macros/context/contrib/context-animation/tex/context/third/animation/t-animation.mkvi b/obsolete/macros/context/contrib/context-animation/tex/context/third/animation/t-animation.mkvi
new file mode 100644
index 0000000000..62f960c9ad
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-animation/tex/context/third/animation/t-animation.mkvi
@@ -0,0 +1,363 @@
+%D \module
+%D [ file=t-animation,
+%D version=2013.04.07,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Animations,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2011 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C (at your option) any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+% begin info
+%
+% title : animations
+% comment : simple interface to generate animations which are based on the fieldstack mechanism
+% status : useable in documents and modules
+%
+% end info
+
+%M \loadsetups[t-animation.xml]
+
+%D \showsetup{startanimation}
+%D \showsetup{defineanimation}
+%D \showsetup{setupanimation}
+
+\unprotect
+
+\startinterface all
+ \setinterfacevariable {animation} {animation}
+\stopinterface
+
+\startinterface all
+ \setinterfaceconstant {menustyle} {menustyle}
+ \setinterfaceconstant {menucolor} {menucolor}
+ \setinterfaceconstant {framerate} {framerate}
+\stopinterface
+
+\installnamespace {animation}
+\installnamespace {animationmenu}
+\installnamespace {animationrenderings}
+
+\installframedcommandhandler \????animation {animation} \????animation
+\installcommandhandler \????animationmenu {animationmenu} \????animationmenu
+
+\appendtoks
+ \setuevalue{\e!start\currentanimation}{\animation_beg{\currentanimation}}%
+ \setuevalue{\e!stop \currentanimation}{\animation_end }%
+\to \everydefineanimation
+
+\newcount\animation_current
+\newcount\animation_frame
+
+\edef\m_animation_signal_pause{+}
+
+\ifdefined\s!repeat \else \def\s!repeat {repeat} \fi
+\ifdefined\s!once \else \def\s!once {once} \fi
+\ifdefined\s!pause \else \def\s!pause {pause} \fi
+\ifdefined\s!FirstFrame \else \def\s!FirstFrame {FirstFrame} \fi
+\ifdefined\s!PreviousFrame \else \def\s!PreviousFrame {PreviousFrame} \fi
+\ifdefined\s!StartAnimation \else \def\s!StartAnimation{StartAnimation} \fi
+\ifdefined\s!StopAnimation \else \def\s!StopAnimation {StopAnimation} \fi
+\ifdefined\s!NextFrame \else \def\s!NextFrame {NextFrame} \fi
+\ifdefined\s!LastFrame \else \def\s!LastFrame {LastFrame} \fi
+
+\unexpanded\def\animation_beg#environment%
+ {\begingroup
+ \edef\currentanimation{#environment}%
+ \dodoubleempty\animation_beg_parameters}
+
+\def\animation_beg_parameters
+ {\iffirstargument
+ \ifsecondargument
+ \doubleexpandafter\animation_beg_parameters_two
+ \else
+ \doubleexpandafter\animation_beg_parameters_one
+ \fi
+ \else
+ \expandafter\animation_beg_parameters_zero
+ \fi}
+
+\def\animation_beg_parameters_zero[#name][#parameters]%
+ {\global\advance\animation_current\plusone
+ \animation_beg_parameters_two[\number\animation_current][]}
+
+\def\animation_beg_parameters_one[#name][#parameters]%
+ {\doifassignmentelse{#name}
+ {\global\advance\animation_current\plusone
+ \animation_beg_parameters_two[\number\animation_current][#name]}
+ {\animation_beg_parameters_two[#name][]}}
+
+\def\animation_beg_parameters_two[#name][#parameters]%
+ {\edef\animation_name{\currentanimation:#name}%
+ \setupcurrentanimation
+ [#parameters,
+ \c!align=\v!middle,
+ \c!background={\v!foreground,\animation_name},
+ \c!offset=\v!overlay]%
+ \animation_initialize
+ \animation_symbols
+ \doifnextbgroupelse\animation_frame_grouped\donothing}
+
+\def\animation_symbols
+ {\definesymbol[\s!FirstFrame ][\symbol\v!firstpage ]%
+ \definesymbol[\s!PreviousFrame ][\symbol\v!PreviousJump]%
+ \definesymbol[\s!StartAnimation][\symbol\v!StartMovie ]%
+ \definesymbol[\s!StopAnimation ][\symbol\v!StopMovie ]%
+ \definesymbol[\s!NextFrame ][\symbol\v!NextJump ]%
+ \definesymbol[\s!LastFrame ][\symbol\v!lastpage ]}
+
+\def\animation_initialize
+ {\animation_frame\zerocount
+ \let\m_animation_symbols\empty
+ \let\m_animation_pause \empty
+ \let\startframe\animation_frame_start
+ \let\stopframe \relax
+ \let\frame \animation_frame_direct}
+
+\unexpanded\def\animation_end
+ {\normalexpanded{\definefieldstack[\animation_name][\m_animation_symbols][]}%
+ %
+ \edef\p_animation_repeat{\animationparameter\c!repeat}%
+ \ifx\p_animation_repeat\v!no
+ \let\p_animation_repeat\s!once
+ \else
+ \let\p_animation_repeat\s!repeat
+ \fi
+ %
+ \edef\p_animation_list{\animationparameter\c!list}%
+ \ifx\m_animation_pause\empty \else
+ \let\p_animation_list\m_animation_pause
+ \fi
+ %
+ \edef\currentanimationmenu{\animationparameter\c!menu}%
+ \edef\p_animation_renderingsetup{\animationmenuparameter\c!renderingsetup}%
+ \doifsetupselse\p_animation_renderingsetup
+ {\texsetup\p_animation_renderingsetup}
+ {\texsetup{\????animationrenderings:\v!no}}%
+ \endgroup}
+
+%D \extras
+%D {menu}
+%D
+%D \subject{Control buttons}
+%D
+%D Animations are useless without any method to enable them, one way
+%D is to use \tex{goto} command (e.g. \type{\goto{...}[JS(Walk_Field{<NAME>})]})
+%D where you go to the next frame with each click. A different way to control
+%D the animation is the menu, which can be a row with buttons below the animation
+%D or a link above the graphic.
+%D
+%D The module provides for this the following values for the menu key:
+%D
+%D \startitemize[packed]
+%D \startitem no (usefull when you use the \tex{goto} command) \stopitem
+%D \startitem yes (places a row with buttons below the animation) \stopitem
+%D \startitem overlay (creates a button over the animation) \stopitem
+%D \stopitemize
+
+\defineanimationmenu[\v!yes ][\c!renderingsetup=\????animationrenderings:\v!yes ]
+\defineanimationmenu[\v!no ][\c!renderingsetup=\????animationrenderings:\v!no ]
+\defineanimationmenu[\v!overlay][\c!renderingsetup=\????animationrenderings:\v!overlay]
+
+\startsetups[\????animationrenderings:\v!yes]
+
+ \defineviewerlayer[\animation_name:\v!start][\c!state=\v!start]
+ \defineviewerlayer[\animation_name:\v!stop ][\c!state=\v!stop ]
+
+ \inheritedanimationframed\bgroup
+
+ \fieldstack[\animation_name]
+
+ \blank[\v!medium]% \animationparameter\c!inbetween
+
+ \dontleavehmode\hbox\bgroup
+
+ \setupinteraction[\c!style=,\c!color=,\c!contrastcolor=]% Use only "menustyle" and "menucolor"!
+ \useanimationstyleandcolor\c!menustyle\c!menucolor
+
+ \setupsymbolset[\animationparameter\c!symbolset]
+
+ \gotobox
+ {\symbol\s!FirstFrame}
+ [JS(Reset_Walk_Field{\animation_name}),
+ HideLayer{\animation_name:\v!stop },
+ VideLayer{\animation_name:\v!start}]
+
+ \dotfskip{\animationparameter\c!distance}
+
+ \gotobox
+ {\symbol\s!PreviousFrame}
+ [JS(Previous_Walk_Field{\animation_name}),
+ HideLayer{\animation_name:\v!stop },
+ VideLayer{\animation_name:\v!start}]
+
+ \dotfskip{\animationparameter\c!distance}
+
+ \ifx\p_animation_list\empty
+
+ \gotobox
+ {\setbox\scratchbox\hbox{\symbol\s!StopAnimation}
+ \startoverlay
+ {\startviewerlayer[\animation_name:\v!stop]
+ \hbox to \wd\scratchbox{\symbol\s!StopAnimation}
+ \stopviewerlayer}
+ {\startviewerlayer[\animation_name:\v!start]
+ \hbox to \wd\scratchbox{\hss\symbol\s!StartAnimation\hss}
+ \stopviewerlayer}
+ \stopoverlay}
+ [JS(Start_Pause_Walk_Field{\animation_name,\cldcontext{math.round(1000/\number\animationparameter\c!framerate)},\p_animation_repeat}),
+ ToggleLayer{\animation_name:\v!stop },
+ ToggleLayer{\animation_name:\v!start}]
+
+ \else
+
+ \gotobox
+ {\symbol\s!StartAnimation}
+ [JS(Start_Pause_Walk_Field{\animation_name,\cldcontext{math.round(1000/\number\animationparameter\c!framerate)},\s!pause,\p_animation_list}),
+ ToggleLayer{\animation_name:\v!stop },
+ ToggleLayer{\animation_name:\v!start}]
+
+ \fi
+
+ \dotfskip{\animationparameter\c!distance}
+
+ \gotobox
+ {\symbol\s!NextFrame}
+ [JS(Next_Walk_Field{\animation_name}),
+ HideLayer{\animation_name:\v!stop },
+ VideLayer{\animation_name:\v!start}]
+
+ \dotfskip{\animationparameter\c!distance}
+
+ \gotobox
+ {\symbol\s!LastFrame}
+ [JS(Stop_Walk_Field{\animation_name}),
+ JS(Set_Field{\animation_name,\number\animation_frame}),
+ HideLayer{\animation_name:\v!stop },
+ VideLayer{\animation_name:\v!start}]%
+
+ \egroup
+
+ \egroup
+
+\stopsetups
+
+\startsetups[\????animationrenderings:\v!no]
+
+ \inheritedanimationframed{\fieldstack[\animation_name]}
+
+\stopsetups
+
+\startsetups[\????animationrenderings:\v!overlay]
+
+ \defineoverlay[\animation_name][\overlaybutton{Walk{\animation_name}}]
+
+ \inheritedanimationframed{\fieldstack[\animation_name]}
+
+\stopsetups
+
+%D \macros
+%D {frame,startframe}
+%D
+%D The content for each frame can be set with two methods, the first is to
+%D enclose the code in brackets like you do in the overlay environment.
+%D
+%D \starttyping
+%D \startanimation
+%D {FRAME 1}
+%D {FRAME 2}
+%D \stopanimation
+%D \stoptyping
+%D
+%D The second method is the modern variant with start/stop-tags to enclose
+%D each frame, you can either you use \tex{frame} command which takes
+%D a argument, e.g.
+%D
+%D \starttyping
+%D \startanimation
+%D \frame{FRAME 1}
+%D \frame{FRAME 2}
+%D \stopanimation
+%D \stoptyping
+%D
+%D or you use the \type{frame} environment which delimits each frame
+%D by the start and stop tags.
+%D
+%D \starttyping
+%D \startanimation
+%D \startframe FRAME 1 \stopframe
+%D \startframe FRAME 2 \stopframe
+%D \stopanimation
+%D \stoptyping
+
+\unexpanded\def\animation_frame_grouped#content%
+ {\advance\animation_frame\plusone
+ \edef\animation_currentframe{\animation_name:\number\animation_frame}%
+ \appendtocommalist\animation_currentframe\m_animation_symbols
+ \definesymbol[\animation_currentframe][{#content}]%
+ \doifnextbgroupelse\animation_frame_grouped\donothing}
+
+\unexpanded\def\animation_frame_direct
+ {\dosingleempty\animation_frame_direct_indeed}
+
+\def\animation_frame_direct_indeed[#signal]#content%
+ {\advance\animation_frame\plusone
+ \edef\m_animation_signal{#signal}%
+ \ifx\m_animation_signal\m_animation_signal_pause
+ \appendtocommalist{\number\animation_frame}\m_animation_pause
+ \fi
+ \edef\animation_currentframe{\animation_name:\number\animation_frame}%
+ \appendtocommalist\animation_currentframe\m_animation_symbols
+ \definesymbol[\animation_currentframe][{#content}]}
+
+\unexpanded\def\animation_frame_start
+ {\dosingleempty\animation_frame_start_indeed}
+
+\def\animation_frame_start_indeed[#signal]#content\stopframe
+ {\advance\animation_frame\plusone
+ \edef\m_animation_signal{#signal}%
+ \ifx\m_animation_signal\m_animation_signal_pause
+ \appendtocommalist{\number\animation_frame}\m_animation_pause
+ \fi
+ \edef\animation_currentframe{\animation_name:\number\animation_frame}%
+ \appendtocommalist\animation_currentframe\m_animation_symbols
+ \definesymbol[\animation_currentframe][{#content}]}
+
+%D To use the module one has to create a new animation environment,
+%D to prevent the user from creating one first before he can use the module
+%D one environment would be always available. The name of this predefined
+%D environment is \tex{startenvironment}, to ensure it can be also by other
+%D modules when a non english interface is used it is ensured you can always
+%D use it with two commands \tex{startanimation} and \tex{stopanimation}.
+
+\defineanimation[\v!animation]
+
+\ifdefined\startanimation \else
+ \def\startanimation{\animation_beg\v!animation}%
+ \def\stopanimation {\animation_end }%
+\fi
+
+\setupanimation
+ [ \c!frame=\v!off,
+ \c!offset=\v!overlay,
+ \c!menu=\v!overlay,
+ \c!distance=\spaceamount,
+ \c!framerate=\plusone,
+ \c!symbolset=navigation 1]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-annotation/VERSION b/obsolete/macros/context/contrib/context-annotation/VERSION
new file mode 100644
index 0000000000..3ac25fd648
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-annotation/VERSION
@@ -0,0 +1 @@
+2013.05.27
diff --git a/obsolete/macros/context/contrib/context-annotation/doc/context/third/annotation/README b/obsolete/macros/context/contrib/context-annotation/doc/context/third/annotation/README
new file mode 100644
index 0000000000..74907e98ac
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-annotation/doc/context/third/annotation/README
@@ -0,0 +1,35 @@
+Modulename : t-annotation
+Author : Wolfgang Schuster
+License : GNU General Public License
+
+Description
+-----------
+
+Annotate text blocks.
+
+Usage
+-----
+
+\usemodule[annotation]
+
+\starttext
+... \annotation{...} ...
+
+... \startannotation ...\stopannotation ...
+\stoptext
+
+Options
+-------
+
+- alternative
+- before
+- after
+- inbetween
+- headstyle
+- headcolor
+- command
+- text
+- title
+- number
+- next
+- ... \ No newline at end of file
diff --git a/obsolete/macros/context/contrib/context-annotation/doc/context/third/annotation/annotation-doc.pdf b/obsolete/macros/context/contrib/context-annotation/doc/context/third/annotation/annotation-doc.pdf
new file mode 100644
index 0000000000..131665ac31
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-annotation/doc/context/third/annotation/annotation-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-annotation/tex/context/interface/third/t-annotation.xml b/obsolete/macros/context/contrib/context-annotation/tex/context/interface/third/t-annotation.xml
new file mode 100644
index 0000000000..58f3c5e162
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-annotation/tex/context/interface/third/t-annotation.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2010.12.31">
+
+<cd:command name="defineannotation" file="t-annotation.mkvi">
+ <cd:sequence>
+ <cd:string value="defineannotation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords n="2" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="3" list="yes" optional="yes">
+ <cd:inherit name="setupannotation" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="annotation" generated="yes" file="t-annotation.mkvi">
+ <cd:sequence>
+ <cd:variable value="annotation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes" optional="yes">
+ <cd:inherit name="setupannotation"/>
+ </cd:assignments>
+ <cd:content n="2" optional="yes"/>
+ <cd:content n="3"/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="annotation" generated="yes" type="environment" file="t-annotation.mkvi">
+ <cd:sequence>
+ <cd:variable value="annotation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes" optional="yes">
+ <cd:inherit name="setupannotation"/>
+ </cd:assignments>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupannotation" file="t-annotation.mkvi">
+ <cd:sequence>
+ <cd:string value="setupannotation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="text"/>
+ <cd:constant type="paragraph" default="yes"/>
+ <cd:constant type="comment"/>
+ <cd:constant type="tooltip"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="footnote"/>
+ <cd:constant type="endnote"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command" default="\blank"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="style" default="bold"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="next">
+ <cd:constant type="cd:command" default="\autoinsertnextspace"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="counter">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="export">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="list">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="auto" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="paragraph">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="spacebefore">
+ <cd:inherit name="blank" n="1" default="line"/>
+ </cd:parameter>
+ <cd:parameter name="spaceafter">
+ <cd:inherit name="blank" n="1" default="line"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:text" default="("/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:text" default=")"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:inherit name="setupindenting" n="1" default="never"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign" n="1"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/obsolete/macros/context/contrib/context-annotation/tex/context/third/annotation/t-annotation.lua b/obsolete/macros/context/contrib/context-annotation/tex/context/third/annotation/t-annotation.lua
new file mode 100644
index 0000000000..0221cc4a77
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-annotation/tex/context/third/annotation/t-annotation.lua
@@ -0,0 +1,151 @@
+if not modules then modules = { } end modules ['t-annotation'] = {
+ version = 1.000,
+ comment = "Annotations",
+ author = "Wolfgang Schuster",
+ copyright = "Wolfgang Schuster",
+ license = "GNU General Public License"
+}
+
+thirddata = thirddata or {}
+thirddata.annotation = thirddata.annotation or {}
+
+local annotation = thirddata.annotation
+
+local variables = interfaces.variables
+
+local format = string.format
+local gsub = string.gsub
+local rep = string.rep
+local validstring = string.valid
+
+local datasets = job.datasets
+
+local v_yes = variables.yes
+local v_no = variables.no
+local v_auto = variables.auto
+local v_paragraph = variables.paragraph
+local v_text = variables.text
+local v_command = variables.command
+local v_vertical = variables.vertical
+local v_horizontal = variables.horizontal
+local v_annotation = variables.annotation
+local v_buffer = variables.buffer
+
+local texsprint = tex.sprint
+local ctxcatcodes = tex.ctxcatcodes
+local txtcatcodes = tex.txtcatcodes
+
+-- Collect the content of the environment
+
+local data = { }
+
+function annotation.erasedata(name)
+ data[name] = nil
+end
+
+function annotation.getdata(name)
+ local data = data[name]
+ return data and data.content or ""
+end
+
+function annotation.printdata(environment,name)
+ local content, catcodes
+ if tex.conditionals['c_annotation_buffer'] and name ~= "" then
+ content = datasets.getdata(environment,name,"content") or ""
+ catcodes = datasets.getdata(environment,name,"catcodes") or ""
+ else
+ content = data[name] and data[name]["content"] or ""
+ catcodes = data[name] and data[name]["catcodes"] or ""
+ end
+ if catcodes == txtcatcodes then
+ context.pushcatcodes(txtcatcodes)
+ else
+ context.pushcatcodes(ctxcatcodes)
+ end
+ if tex.conditionals['c_annotation_inline'] then
+ context(content:strip()) -- remove leading/trailing spaces
+ else
+ context.viafile(content,format("annotation.%s",validstring(name,"noname")))
+ end
+ context.popcatcodes()
+end
+
+function annotation.parameters(environment,name)
+ local data = data[name]
+ local parameters = data and data.parameters or ""
+ texsprint(ctxcatcodes,parameters)
+end
+
+function annotation.dataset(environment,name,parameters,content,catcodes)
+ datasets.setdata {
+ name = environment,
+ tag = name,
+ data = {
+ parameters = parameters,
+ content = content,
+ catcodes = catcodes
+ }
+ }
+end
+
+function annotation.collectdata(environment,name,parameters,content,begintag,endtag,catcodes)
+ local oldcontent = annotation.getdata(name)
+ local content = content
+ local parameters = parameters
+ local catcodes = catcodes
+ local nesting = false
+ if oldcontent == "" then
+ -- no nested environment
+ else
+ content = oldcontent .. endtag .. " " .. content
+ end
+ if select(2,gsub(content,begintag,begintag)) > select(2,gsub(content,endtag,endtag)) then
+ nesting = true
+ else
+ nesting = false
+ end
+ if not nesting and name ~= "" then
+ annotation.dataset(environment,name,parameters,content,catcodes)
+ end
+ data[name] = { parameters = parameters, content = content, catcodes = catcodes }
+ commands.doifelse(nesting)
+end
+
+function annotation.savedata(environment,name,parameters,content,catcodes)
+ data[name] = { parameters = parameters, content = content, catcodes = catcodes }
+end
+
+-- Write the content of the environment to a file
+
+annotation.empty = true
+
+function annotation.open()
+ annotation.export = io.open(file.addsuffix(table.concat({tex.jobname,"annotation"},"-"),"txt"),"wb")
+end
+
+function annotation.write(title,content)
+ local title, content = title:strip(), content
+ if annotation.empty == true then
+ annotation.open()
+ annotation.empty = false
+ else
+ annotation.export:write("\n\n")
+ end
+ if title ~= "" then
+ annotation.export:write(title)
+ annotation.export:write("\n",rep("-",#title),"\n\n")
+ content = content:gsub(" \\par ","\n\n")
+ annotation.export:write(content)
+ end
+end
+
+--~ function annotation.write(title,content)
+--~ local title, content = title:strip(), content
+--~ if annotation.empty == true then
+--~ annotation.open()
+--~ annotation.empty = false
+--~ else
+--~ annotation.export:write("\n")
+--~ end
+--~ annotation.export:write(title.." "..content)
+--~ end
diff --git a/obsolete/macros/context/contrib/context-annotation/tex/context/third/annotation/t-annotation.mkvi b/obsolete/macros/context/contrib/context-annotation/tex/context/third/annotation/t-annotation.mkvi
new file mode 100644
index 0000000000..41ca153175
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-annotation/tex/context/third/annotation/t-annotation.mkvi
@@ -0,0 +1,1077 @@
+%D \module
+%D [ file=t-annotation,
+%D version=2013.05.27,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Annotations,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2011 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C (at your option) any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+% begin info
+%
+% title : annotate text blocks
+% comment : create todo commands and environments and inline buffers
+% status : under development, mkiv only
+%
+% end info
+
+%M \usemodule[annotation]
+%M \loadsetups[t-annotation.xml]
+%M
+%M \setupbodyfont[calluna]
+%M
+%M \definedescription[description][alternative=margin]
+%M
+%M \setuptyping[typing][bodyfont=]
+
+%D \subject{\textbackslash defineannotation}
+%D
+%D \showsetup{defineannotation}
+%D
+%D \subject{The \tex{setupannotation} command}
+%D
+%D \showsetup{setupannotation}
+%D
+%D \startdescription {alternative}
+%D With the “alternative” you can control the placement of the anootation block.
+%D
+%D \starttabulate[|l|p|]
+%D \NC \bf Name \NC \bf Description \NC\NR
+%D \NC text \EQ inline \NC\NR
+%D \NC paragraph \EQ Separate paragraph \NC\NR
+%D \NC comment \EQ pdf comment \NC\NR
+%D \NC tooltip \EQ \type{\tooltip} \NC\NR
+%D \NC inmargin \EQ \type{\inmargin} \NC\NR
+%D \NC inleft \EQ \type{\inleft} \NC\NR
+%D \NC inright \EQ \type{\inright} \NC\NR
+%D \NC margin \EQ \type{\inmargin} \NC\NR
+%D \NC leftmargin \EQ \type{\inleft} \NC\NR
+%D \NC rightmargin \EQ \type{\inright} \NC\NR
+%D \NC innermargin \EQ \type{\ininner} \NC\NR
+%D \NC outermargin \EQ \type{\inouter} \NC\NR
+%D \NC footnote \EQ \type{\footnote} \NC\NR
+%D \NC endnote \EQ \type{\endnote} \NC\NR
+%D \NC command \EQ use the “command” key \NC\NR
+%D \stoptabulate
+%D \stopdescription
+%D
+%D \startdescription {title}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {text}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {number}
+%D The “number” key let you control whether to show a number or not. Each time
+%D you show a number the associated counter is incremented by one.
+%D \stopdescription
+%D
+%D \startdescription {list}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {counter}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {reference}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {left}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {right}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {next}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {display}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {paragraph}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {command}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {export}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {before}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {after}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {inbetween}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {spacebefore}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {spaceafter}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {style}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {color}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {headstyle}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {headcolor}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {textstyle}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {textcolor}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {align}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {indenting}
+%D …
+%D \stopdescription
+%D
+%D \startdescription {indentnext}
+%D This key let you control whether the next paragraph after the annotation block
+%D is indented or not. The option is only used for annotation which are set with
+%D the “paragraph” or “command” alternative, for “command” this is only true when
+%D display is set to “yes” or “auto”.
+%D \stopdescription
+%D
+%D \subject{The \textbackslash annotation command}
+%D
+%D \showsetup{annotation}
+%D \showsetup{startannotation}
+%D
+%D \subject{Accesing values}
+%D
+%D As you saw before you can get the content of the title and content blocks
+%D with the “command” alternative but there is another way to access
+%D the raw values of each element with the following for commands.
+%D
+%D \startitemize[packed]
+%D \item \type{\placeannotationtext}
+%D \item \type{\placeannotationtitle}
+%D \item \type{\placeannotationnumber}
+%D \item \type{\placeannotationcontent}
+%D \stopitemize
+%D
+%D The following example shows you how you can use the commands for yourself
+%D in your own defintions for the annotation environment. The \type{\placeannotationtext}
+%D commands holds the value you set with the “title” key while \type{\placeannotationnumber}
+%D let you access the number countervalue.
+%D
+%D \subject{Customized Layouts}
+%D
+%D \subsubject{Example 1}
+%D
+%D \startbuffer
+%D \define[2]\AnnotationCommand
+%D {\starttabulate[|l|p|]
+%D \NC Text \EQ \rawannotationtext \NC\NR
+%D \NC Number \EQ \rawannotationcounter \NC\NR
+%D \NC Title \EQ \rawannotationtitle \NC\NR
+%D \NC Content \EQ \rawannotationcontent \NC\NR
+%D \stoptabulate}
+%D
+%D \setupannotation
+%D [alternative=command,
+%D command=\AnnotationCommand,
+%D text=Annotation ,
+%D number=yes]
+%D
+%D \startannotation {Peter D. Ward}
+%D The Earth, as a habitat for animal life, is in old age and
+%D has a fatal illness. Several, in fact. It would be happening
+%D whether humans had ever evolved or not. But our presence is
+%D like the effect of an old-age patient who smokes many packs
+%D of cigarettes per day – and we humans are the cigarettes.
+%D \stopannotation
+%D \stopbuffer
+%D
+%D \start \typebuffer[option=tex] \getbuffer \stop
+%D
+%D \subsubject{Example 2}
+%D
+%D \startbuffer
+%D \define[2]\AnnotationCommand
+%D {\textrule{#1}#2\textrule}
+%D
+%D \setupannotation
+%D [alternative=command,
+%D command=\AnnotationCommand,
+%D text=Annotation]
+%D
+%D \startannotation
+%D The Earth, as a habitat for animal life, is in old age and
+%D has a fatal illness. Several, in fact. It would be happening
+%D whether humans had ever evolved or not. But our presence is
+%D like the effect of an old-age patient who smokes many packs
+%D of cigarettes per day – and we humans are the cigarettes.
+%D \stopannotation
+%D \stopbuffer
+%D
+%D \start \typebuffer \getbuffer \stop
+%D
+%D \subsubject{Example 3}
+%D
+%D \startbuffer
+%D \define[2]\AnnotationCommand
+%D {\startblockquote
+%D “#2”\wordright{\placeannotationtitle}%
+%D \stopblockquote}
+%D
+%D \setupannotation
+%D [alternative=command,
+%D command=\AnnotationCommand]
+%D
+%D \startannotation {Peter D. Ward}
+%D The Earth, as a habitat for animal life, is in old age and
+%D has a fatal illness. Several, in fact. It would be happening
+%D whether humans had ever evolved or not. But our presence is
+%D like the effect of an old-age patient who smokes many packs
+%D of cigarettes per day – and we humans are the cigarettes.
+%D \stopannotation
+%D \stopbuffer
+%D
+%D \start \typebuffer \getbuffer \stop
+
+\writestatus{loading}{ConTeXt User Module / Annotations}
+
+\unprotect
+
+\startinterface all
+ \setinterfacevariable {annotation} {annotation}
+ \setinterfacevariable {tooltip} {tooltip}
+\stopinterface
+
+\startinterface all
+ \setinterfaceconstant {content} {content}
+ \setinterfaceconstant {leftsymbol} {leftsymbol}
+ \setinterfaceconstant {rightsymbol} {rightsymbol}
+\stopinterface
+
+\newconditional\c_annotation_header
+\newconditional\c_annotation_display
+\newconditional\c_annotation_inline
+\newconditional\c_annotation_number
+\newconditional\c_annotation_title
+\newconditional\c_annotation_paragraph
+\newconditional\c_annotation_buffer
+\newconditional\c_annotation_rightpage
+
+\installnamespace {annotation}
+\installnamespace {annotationalternative}
+\installnamespace {annotationrenderings}
+\installnamespace {annotationmethod}
+\installnamespace {annotationlevel}
+
+\installcommandhandler \????annotation {annotation} \????annotation
+
+\ctxloadluafile{t-annotation}
+
+\appendtoks
+ \expandafter\newcount\csname\????annotationlevel\currentannotation\endcsname
+ \setuevalue {\currentannotation}{\annotation_cmd{\currentannotation}}%
+ \setuevalue{\e!start\currentannotation}{\annotation_beg{\currentannotation}}%
+ \setuevalue{\e!stop \currentannotation}{\annotation_end }%
+ \setuevalue{\e!get \currentannotation}{\annotation_get{\currentannotation}}%
+\to \everydefineannotation
+
+\appendtoks
+ \definedataset[\currentannotation]%
+\to \everydefineannotation
+
+% each new environment creates a list and a counter with the same,
+% one can also use the counter of another environment but in this
+% case it has to be set with the “counter” key
+
+\appendtoks
+ \letannotationparameter\s!counter\currentannotation
+\to \everypresetannotation
+
+\appendtoks
+ \edef\p_annotation_counter{\annotationparameter\s!counter}%
+ \ifx\p_annotation_counter\currentannotation
+ \registerannotationcounter\currentannotation
+ \definelist [\currentannotation]%
+ \definecounter[\currentannotation]%
+ \synchronizeannotationcounters
+ \fi
+\to \everydefineannotation
+
+% the \setupannotation command inherits all keys from \setupstructurecounter,
+% to do this a single line is necessary which takes care of this
+
+\installcounterassociation{annotation}
+
+\appendtoks
+ \synchronizeannotationcounters
+\to \everysetupannotation
+
+% Code for the annotation environment and command
+
+\def\annotation_initialize
+ {\let\m_annotation_name \empty
+ \let\m_annotation_parameters\empty
+ %
+ \setfalse\c_annotation_header
+ \setfalse\c_annotation_display
+ \setfalse\c_annotation_inline
+ \setfalse\c_annotation_number
+ \setfalse\c_annotation_title
+ \setfalse\c_annotation_paragraph
+ \setfalse\c_annotation_buffer
+ \setfalse\c_annotation_rightpage
+ %
+ \let\currentannotationheader \annotation_header_formatted_indeed
+ \let\currentannotationcontent\annotation_content_formatted_indeed
+ \let\currentannotationtext \annotation_text_formatted
+ \let\currentannotationcounter\annotation_counter_formatted
+ \let\currentannotationtitle \annotation_title_formatted
+ %
+ \let\rawannotationheader \annotation_header_raw
+ \let\rawannotationcontent\annotation_content_raw
+ \let\rawannotationtext \annotation_text_raw
+ \let\rawannotationcounter\annotation_counter_raw
+ \let\rawannotationtitle \annotation_title_raw}
+
+\unexpanded\def\annotation_beg#environment%
+ {\begingroup
+ \annotation_initialize
+ \edef\currentannotation{#environment}%
+ \dodoubleempty\annotation_beg_parameters}
+
+\def\annotation_beg_parameters
+ {\iffirstargument
+ \ifsecondargument
+ \doubleexpandafter\annotation_beg_parameters_two
+ \else
+ \doubleexpandafter\annotation_beg_parameters_one
+ \fi
+ \else
+ \expandafter\annotation_beg_parameters_zero
+ \fi}
+
+\def\annotation_beg_parameters_two[#name][#parameters]%
+ {\edef\m_annotation_name {#name}%
+ \edef\m_annotation_parameters{#parameters}%
+ \dosinglegroupempty\annotation_beg_title}
+
+\def\annotation_beg_parameters_one[#name][#parameters]%
+ {\doifassignmentelse{#name}
+ {\edef\m_annotation_parameters{#name}}
+ {\edef\m_annotation_name {#name}}%
+ \dosinglegroupempty\annotation_beg_title}
+
+\def\annotation_beg_parameters_zero[#name][#parameters]%
+ {\dosinglegroupempty\annotation_beg_title}
+
+\def\annotation_beg_title#title%
+ {\ctxlua{thirddata.annotation.erasedata("\m_annotation_name")}%
+ \edef\m_annotation_parameters{\c!reference=,\c!list=,\c!title={#title},\m_annotation_parameters}%
+ \normalexpanded
+ {\annotation_environment
+ \expandafter\noexpand\csname\e!start\currentannotation\endcsname
+ \expandafter\noexpand\csname\e!stop \currentannotation\endcsname}}
+
+\unexpanded\def\annotation_environment#1#2%
+ {\begingroup\obeylines
+ \def\annotation_collect##1#2%
+ {\ctxlua{thirddata.annotation.collectdata("\currentannotation","\m_annotation_name",\!!bs\m_annotation_parameters\!!es,\!!bs\normalunexpanded{##1}\!!es,\!!bs#1\!!es,\!!bs#2\!!es,\number\catcodetable)}
+ \annotation_collect
+ \annotation_method}%
+ \annotation_collect}
+
+\unexpanded\def\annotation_end
+ {}
+
+\unexpanded\def\annotation_cmd#environment%
+ {\begingroup
+ \annotation_initialize
+ \edef\currentannotation{#environment}%
+ \dodoubleempty\annotation_cmd_parameters}
+
+\def\annotation_cmd_parameters
+ {\iffirstargument
+ \ifsecondargument
+ \doubleexpandafter\annotation_cmd_parameters_two
+ \else
+ \doubleexpandafter\annotation_cmd_parameters_one
+ \fi
+ \else
+ \expandafter\annotation_cmd_parameters_zero
+ \fi}
+
+\def\annotation_cmd_parameters_two[#name][#parameters]%
+ {\edef\m_annotation_name {#name}%
+ \edef\m_annotation_parameters{#parameters}%
+ \dodoublegroupempty\annotation_cmd_title}
+
+\def\annotation_cmd_parameters_one[#name][#parameters]%
+ {\doifassignmentelse{#name}
+ {\edef\m_annotation_parameters{#name}}
+ {\edef\m_annotation_name {#name}}%
+ \dodoublegroupempty\annotation_cmd_title}
+
+\def\annotation_cmd_parameters_zero[#name][#parameters]%
+ {\dodoublegroupempty\annotation_cmd_title}
+
+\def\annotation_cmd_title
+ {\ifsecondargument
+ \expandafter\annotation_cmd_content
+ \else
+ \expandafter\annotation_cmd_content\expandafter\empty
+ \fi}
+
+\def\annotation_cmd_content#title#content%
+ {\ctxlua{thirddata.annotation.erasedata("\m_annotation_name")}%
+ \edef\m_annotation_parameters{\c!reference=,\c!list=,\c!title={#title},\m_annotation_parameters}%
+ \begingroup
+ \ctxlua{thirddata.annotation.savedata("\currentannotation","\m_annotation_name","\m_annotation_parameters",\!!bs\normalunexpanded{#content}\!!es,\number\catcodetable)}%
+ \annotation_method}
+
+\unexpanded\def\annotation_get#environment%
+ {\begingroup
+ \annotation_initialize
+ \edef\currentannotation{#environment}%
+ \dodoubleempty\annotation_get_parameters}
+
+\def\annotation_get_parameters
+ {\iffirstargument
+ \iffirstargument
+ \doubleexpandafter\annotation_get_parameters_two
+ \else
+ \doubleexpandafter\annotation_get_parameters_one
+ \fi
+ \else
+ \expandafter\annotation_get_parameters_zero
+ \fi}
+
+\def\annotation_get_parameters_two[#name][#parameters]%
+ {\edef\m_annotation_name {#name}%
+ \edef\m_annotation_parameters{#parameters}%
+ \annotation_get_content}
+
+\def\annotation_get_parameters_one[#name][#parameters]%
+ {\doifassignmentelse{#name}
+ {\edef\m_annotation_parameters{#name}}
+ {\edef\m_annotation_name {#name}}%
+ \annotation_get_content}
+
+\def\annotation_get_parameters_zero[#name][#parameters]%
+ {\annotation_get_content}
+
+\def\annotation_get_content
+ {\letannotationparameter\c!method\s!default
+ \settrue\c_annotation_buffer
+ \edef\m_annotation_parameters{\ctxlua{thirddata.annotation.parameters("\currentannotation","\m_annotation_name")},\m_annotation_parameters}%
+ \begingroup
+ \annotation_method}
+
+\def\annotation_alternative
+ {\edef\currentannotationalternative {\annotationparameter \c!alternative }%
+ \edef\p_annotationalternative_renderingsetup{\annotationalternativeparameter\c!renderingsetup}%
+ \edef\p_annotationalternative_alternative {\annotationalternativeparameter\c!alternative }%
+ \ifx\p_annotationalternative_alternative\v!vertical
+ \settrue\c_annotation_display
+ \else\ifx\p_annotationalternative_alternative\v!horizontal
+ \settrue\c_annotation_inline
+ \else\ifx\p_annotationalternative_alternative\v!auto % used for \setupannotation[alternative=command]
+ \ifx\p_annotation_display\v!yes
+ \settrue\c_annotation_display
+ \else\ifx\p_annotation_display\v!no
+ \settrue\c_annotation_inline
+ \else
+ \ifvmode
+ \settrue\c_annotation_display
+ \else
+ \settrue\c_annotation_inline
+ \fi
+ \fi\fi
+ \else\ifx\p_annotationalternative_alternative\v!none % needed for \setupannotation[alternative=none]
+ \ifhmode
+ \settrue\c_annotation_inline
+ \fi
+ \else
+ % margin, comment etc. annotations
+ \fi\fi\fi\fi
+ \annotation_before
+ \annotation_tagged_start
+ \autosetups\p_annotationalternative_renderingsetup
+ \annotation_tagged_stop
+ \annotation_after}
+
+\def\annotation_before
+ {\ifconditional\c_annotation_display
+ \edef\p_annotation_spacebefore {\annotationparameter\c!spacebefore }%
+ \edef\p_annotation_before {\annotationparameter\c!before }%
+ \edef\p_annotation_spaceafter {\annotationparameter\c!spaceafter }%
+ \edef\p_annotation_after {\annotationparameter\c!after }%
+ \edef\p_annotation_inbetween {\annotationparameter\c!inbetween }%
+ \edef\p_annotation_indenting {\annotationparameter\c!indenting }%
+ \edef\p_annotation_interlinespace{\annotationparameter\c!interlinespace}%
+ \ifx\p_annotation_spacebefore\empty
+ \endgraf
+ \else
+ \blank[\p_annotation_spacebefore]%
+ \fi
+ \ifx\p_annotation_indenting\empty \else
+ \setupindenting[\p_annotation_indenting]%
+ \fi
+ \ifconditional\c_annotation_paragraph
+ \ifx\p_annotation_interlinespace\v!empty
+ \setupinterlinespace
+ \else
+ \setupinterlinespace[\p_annotation_interlinespace]%
+ \fi
+ \fi
+ \p_annotation_before
+ \fi}
+
+\def\annotation_after
+ {\ifconditional\c_annotation_display
+ \p_annotation_after
+ \ifx\p_annotation_spaceafter\empty
+ \endgraf
+ \else
+ \blank[\p_annotation_spaceafter]%
+ \fi
+ \fi}
+
+% methods
+
+\unexpanded\def\installannotationmethod#name#command%
+ {\setvalue{\????annotationmethod#name}{#command}}
+
+\def\annotation_method
+ {\endgroup
+ \expandnamespaceparameter\????annotationmethod\annotationparameter\c!method\s!default}
+
+\def\annotation_method_default
+ {\normalexpanded{\annotation_parameters[\m_annotation_parameters]}%
+ \annotation_alternative
+ \ifconditional\c_annotation_display
+ \checknextindentation[\p_annotation_indentnext]%
+ \glet\annotation_aftergroup\dorechecknextindentation
+ \else
+ \ifconditional\c_annotation_inline
+ \glet\annotation_aftergroup\p_annotation_next
+ \else
+ \glet\annotation_aftergroup\GotoPar
+ \fi
+ \fi
+ \aftergroup\annotation_aftergroup
+ \endgroup}
+
+\def\annotation_method_buffer
+ {\endgroup}
+
+\installannotationmethod \s!default \annotation_method_default
+\installannotationmethod \v!buffer \annotation_method_buffer
+
+% processing
+
+\def\c_annotation_level{\csname\????annotationlevel\currentparentannotation\endcsname}
+
+\def\annotation_level
+ {\let\currentparentannotation\currentannotation
+ \advance\c_annotation_level\plusone
+ \chaintocurrentannotation{\currentparentannotation:\number\c_annotation_level}%
+ \edef\currentannotation{\currentparentannotation:\number\c_annotation_level}}
+
+\unexpanded\def\annotation_parameters[#parameters]%
+ {\annotation_level
+ \setupcurrentannotation[#parameters]%
+ \useannotationstyleandcolor\c!style\c!color
+ \edef\p_annotation_number {\annotationparameter\c!number }%
+ \edef\p_annotation_header {\annotationparameter\c!header }%
+ \edef\p_annotation_title {\annotationparameter\c!title }%
+ \edef\p_annotation_text {\annotationparameter\c!text }%
+ \edef\p_annotation_left {\annotationparameter\c!left }%
+ \edef\p_annotation_right {\annotationparameter\c!right }%
+ \edef\p_annotation_stopper {\annotationparameter\c!stopper }%
+ \edef\p_annotation_reference {\annotationparameter\c!reference }%
+ \edef\p_annotation_list {\annotationparameter\c!list }%
+ \edef\p_annotation_counter {\annotationparameter\s!counter }%
+ \edef\p_annotation_display {\annotationparameter\c!display }%
+ \edef\p_annotation_paragraph {\annotationparameter\c!paragraph }%
+ \edef\p_annotation_export {\annotationparameter\c!export }%
+ \edef\p_annotation_indentnext {\annotationparameter\c!indentnext }%
+ \edef\p_annotation_next {\annotationparameter\c!next }%
+ \edef\p_annotation_doublesided{\annotationparameter\c!doublesided}%
+ \edef\p_annotation_leftmargin {\annotationparameter\c!leftmargin }%
+ \edef\p_annotation_rightmargin{\annotationparameter\c!rightmargin}%
+ \ifx\p_annotation_number\v!yes
+ \settrue\c_annotation_number
+ \incrementcounter[\p_annotation_counter]%
+ \fi
+ \ifx\p_annotation_title\empty \else
+ \settrue\c_annotation_title
+ \fi
+ \ifx\p_annotation_header\v!yes
+ \ifconditional\c_annotation_number
+ \settrue\c_annotation_header
+ \else\ifconditional\c_annotation_title
+ \settrue\c_annotation_header
+ \else\ifx\p_annotation_text\empty
+ % \setfalse\c_annotation_header
+ \else
+ \settrue\c_annotation_header
+ \fi\fi\fi
+ \fi
+ \ifx\p_annotation_reference\empty \else
+ \ifconditional\c_annotation_number
+ \normalexpanded{\reference[\p_annotation_reference]{\directconvertedcounter\p_annotation_counter\empty}}%
+ \else
+ \normalexpanded{\reference[\p_annotation_reference]{{\tttf ??}}}%
+ \fi
+ \fi
+ \ifx\p_annotation_list\empty \else
+ \ifconditional\c_annotation_number
+ \normalexpanded{\writetolist[\currentparentannotation]{\directconvertedcounter\p_annotation_counter\empty}{\p_annotation_list}}%
+ \else
+ \normalexpanded{\writetolist[\currentparentannotation]{}{\p_annotation_list}}%
+ \fi
+ \fi
+ \ifx\p_annotation_paragraph\v!yes
+ \settrue\c_annotation_paragraph
+ \fi
+ \ifx\p_annotation_doublesided\v!yes
+ \signalrightpage
+ \doifrightpageelse\settrue\setfalse\c_annotation_rightpage
+ \else
+ \settrue\c_annotation_rightpage
+ \fi
+ \ifx\p_annotation_export\v!yes
+ \ifconditional\c_annotation_header % do this at the lua with the raw text
+ \begingroup\simplifycommands
+ \ctxlua{thirddata.annotation.write(\!!bs\annotation_header_raw\!!es,\!!bs\normalexpanded{\noexpand\detokenize{\annotation_content_raw}}\!!es)}%
+ \endgroup
+ \fi
+ \fi}
+
+\def\annotation_tagged_start
+ {\ifconditional\c_annotation_inline
+ \dostarttagged\t!construct\currentparentannotation
+ \else
+ \dostarttagged\t!division\currentparentannotation
+ \fi}
+
+\def\annotation_tagged_stop
+ {\dostoptagged}
+
+% The title and the content of the annotation commands is accesed
+% by the following four commands, the formatted version is used
+% by alternatives which allow you to change the style and color.
+%
+% The raw version is used by alternatives where attributes are
+% not possible (comment) or undesired (footnotes).
+
+\unexpanded\def\annotation_header_formatted
+ {\edef\p_annotation_headcommand{\annotationparameter\c!headcommand}%
+ \p_annotation_headcommand\annotation_header_formatted_indeed}
+
+\unexpanded\def\annotation_header_formatted_indeed
+ {\begingroup
+ \useannotationstyleandcolor\c!headstyle\c!headcolor
+ \p_annotation_text
+ \ifconditional\c_annotation_number
+ \ifx\p_annotation_text\empty \else
+ \removeunwantedspaces\space % add space between “text” and “number” when there is text
+ \fi
+ \convertedcounter[\p_annotation_counter]%
+ \fi
+ \ifconditional\c_annotation_title
+ \ifx\p_annotation_text\empty
+ \ifconditional\c_annotation_number \space \fi % add space between “number” and “title” when there is a number
+ \else
+ \space % add space between “text” and “title” when there is a text
+ \fi
+ \p_annotation_left
+ \p_annotation_title
+ \p_annotation_right
+ \fi
+ \p_annotation_stopper
+ \endgroup}
+
+\unexpanded\def\annotation_content_formatted
+ {\edef\p_annotation_textcommand{\annotationparameter\c!textcommand}%
+ \p_annotation_textcommand\annotation_content_formatted_indeed}
+
+\unexpanded\def\annotation_content_formatted_indeed
+ {\begingroup
+ \useannotationstyleandcolor\c!textstyle\c!textcolor
+ \ifconditional\c_annotation_paragraph\setupinterlinespace\fi
+ \ctxlua{thirddata.annotation.printdata("\currentparentannotation","\m_annotation_name")}%
+ \removeunwantedspaces
+ \ifconditional\c_annotation_paragraph\par\fi
+ \endgroup}
+
+\unexpanded\def\annotation_text_formatted
+ {\begingroup
+ \useannotationstyleandcolor\c!headstyle\c!headcolor
+ \annotationparameter\c!text
+ \endgroup}
+
+\unexpanded\def\annotation_counter_formatted
+ {\begingroup
+ \useannotationstyleandcolor\c!headstyle\c!headcolor
+ \convertedcounter[\p_annotation_counter]%
+ \endgroup}
+
+\unexpanded\def\annotation_title_formatted
+ {\begingroup
+ \useannotationstyleandcolor\c!headstyle\c!headcolor
+ \p_annotation_title
+ \endgroup}
+
+\def\annotation_header_raw
+ {\p_annotation_text
+ \ifconditional\c_annotation_number
+ \ifx\p_annotation_text\empty \else
+ \removeunwantedspaces\space
+ \fi
+ \rawcountervalue[\p_annotation_counter]%
+ \fi
+ \ifconditional\c_annotation_title
+ \ifx\p_annotation_text\empty
+ \ifconditional\c_annotation_number \space \fi
+ \else
+ \space
+ \fi
+ \p_annotation_left
+ \p_annotation_title
+ \p_annotation_right
+ \fi
+ \p_annotation_stopper}
+
+\def\annotation_content_raw{\ctxlua{thirddata.annotation.printdata("\currentparentannotation","\m_annotation_name")}}
+\def\annotation_text_raw {\p_annotation_text}
+\def\annotation_counter_raw{\rawcountervalue[\p_annotation_counter]}
+\def\annotation_title_raw {\p_annotation_title}
+
+% With the command alternative one can access the formatted content and title
+% with the two arguments but it’s also possible to use the raw content of
+% each element with the \placeannotation... commands.
+
+\let\placeannotationtext \annotation_text_raw
+\let\placeannotationnumber \annotation_counter_raw
+\let\placeannotationtitle \annotation_title_raw
+\let\placeannotationcontent\annotation_content_raw
+
+% Condtionals for the users to check whether your’re in vertical or
+% horizontal mode, they are usefull when you want a command which
+% works different depenedent on the mode.
+
+\unexpanded\def\doifdisplayannotation
+ {\ifconditional\c_annotation_display
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\unexpanded\def\doifelsedisplayannotation
+ {\ifconditional\c_annotation_display
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+\unexpanded\def\doifinlineannotation
+ {\ifconditional\c_annotation_inline
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\unexpanded\def\doifelseinlineannotation
+ {\ifconditional\c_annotation_inline
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
+% All layouts for the annotation commands are accessible with the alternative key,
+% the relation between the key values and the internal layout is done with the
+% following command. This command is not meant for user because they should always
+% use the command alternative for their own layouts but the author will add new
+% layouts if they are usefull.
+
+\installcommandhandler \????annotationalternative {annotationalternative} \????annotationalternative
+
+\defineannotationalternative
+ [\v!text]
+ [ \c!alternative=\v!horizontal,
+ \c!renderingsetup=\????annotationrenderings:\v!text]
+
+\startsetups[\????annotationrenderings:\v!text]
+ \ifconditional\c_annotation_header
+ \annotation_header_formatted\space
+ \fi
+ \annotation_content_formatted
+\stopsetups
+
+\defineannotationalternative
+ [\v!paragraph]
+ [ \c!alternative=\v!vertical,
+ \c!renderingsetup=\????annotationrenderings:\v!paragraph]
+
+\startsetups[\????annotationrenderings:\v!paragraph]
+ \ifconditional\c_annotation_header
+ \noindent\annotation_header_formatted
+ \p_annotation_inbetween
+ \fi
+ \annotation_content_formatted
+\stopsetups
+
+\defineannotationalternative
+ [\v!narrow]
+ [ \c!alternative=\v!vertical,
+ \c!renderingsetup=\????annotationrenderings:\v!narrow]
+
+\startsetups[\????annotationrenderings:\v!narrow]
+ \ifconditional\c_annotation_rightpage
+ \doadaptleftskip \p_annotation_leftmargin
+ \doadaptrightskip\p_annotation_rightmargin
+ \else
+ \doadaptleftskip \p_annotation_rightmargin
+ \doadaptrightskip\p_annotation_leftmargin
+ \fi
+ \annotation_content_formatted
+\stopsetups
+
+\defineannotationalternative
+ [\v!comment]
+ [\c!renderingsetup=\????annotationrenderings:\v!comment]
+
+\startsetups[\????annotationrenderings:\v!comment]
+ \begingroup\simplifycommands
+ \doifsomething{\annotationparameter\c!color}{\setupcomment[\c!color=\annotationparameter\c!color]}
+ \removeunwantedspaces
+ \ifconditional\c_annotation_header
+ \inmargin[\c!stack=\v!yes]{\normalexpanded{\comment[\annotation_header_raw]{\annotation_content_raw}}}
+ \else
+ \inmargin[\c!stack=\v!yes]{\normalexpanded{\comment{\annotation_content_raw}}}
+ \fi
+ \endgroup
+\stopsetups
+
+\defineannotationalternative
+ [\v!tooltip]
+ [\c!renderingsetup=\????annotationrenderings:\v!tooltip]
+
+\startsetups[\????annotationrenderings:\v!tooltip]
+ \ifconditional\c_annotation_title\else\removeunwantedspaces\fi
+ \tooltip[\annotationparameter\c!location]{\annotation_title_raw}{\annotation_content_raw}
+\stopsetups
+
+\defineannotationalternative
+ [\v!inmargin]
+ [\c!command=\inmargin,
+ \c!renderingsetup=\????annotationrenderings:\v!margin]
+
+\defineannotationalternative
+ [\v!margin]
+ [\c!command=\inmargin,
+ \c!renderingsetup=\????annotationrenderings:\v!margin]
+
+\defineannotationalternative
+ [\v!inleft]
+ [\c!command=\inleft,
+ \c!renderingsetup=\????annotationrenderings:\v!margin]
+
+\defineannotationalternative
+ [\v!leftmargin]
+ [\c!command=\inleft,
+ \c!renderingsetup=\????annotationrenderings:\v!margin]
+
+\defineannotationalternative
+ [\v!inright]
+ [\c!command=\inright,
+ \c!renderingsetup=\????annotationrenderings:\v!margin]
+
+\defineannotationalternative
+ [\v!rightmargin]
+ [\c!command=\inright,
+ \c!renderingsetup=\????annotationrenderings:\v!margin]
+
+\defineannotationalternative
+ [\v!innermargin]
+ [\c!command=\ininner,
+ \c!renderingsetup=\????annotationrenderings:\v!margin]
+
+\defineannotationalternative
+ [\v!outermargin]
+ [\c!command=\inouter,
+ \c!renderingsetup=\????annotationrenderings:\v!margin]
+
+\startsetups[\????annotationrenderings:\v!margin]
+ \edef\p_annotation_command{\annotationalternativeparameter\c!command}%
+ \ifx\p_annotation_command\empty \else
+ \p_annotation_command{\annotationparameter\c!before
+ \ifconditional\c_annotation_header
+ \annotation_header_formatted
+ \fi
+ \annotationparameter\c!inbetween
+ \annotation_content_formatted
+ \annotationparameter\c!after}
+ \fi
+\stopsetups
+
+\defineannotationalternative
+ [\v!footnote]
+ [ \c!alternative=\v!horizontal,
+ \c!renderingsetup=\????annotationrenderings:\v!footnote]
+
+\startsetups[\????annotationrenderings:\v!footnote]
+ \normalexpanded{\footnote{\annotation_content_raw}}
+\stopsetups
+
+\defineannotationalternative
+ [\v!endnote]
+ [ \c!alternative=\v!horizontal,
+ \c!renderingsetup=\????annotationrenderings:\v!endnote]
+
+\startsetups[\????annotationrenderings:\v!endnote]
+ \normalexpanded{\endnote{\annotation_content_raw}}
+\stopsetups
+
+\defineannotationalternative
+ [\v!command]
+ [ \c!alternative=\v!auto,
+ \c!renderingsetup=\????annotationrenderings:\v!command]
+
+\startsetups[\????annotationrenderings:\v!command]
+ \edef\p_annotation_command{\annotationparameter\c!command}%
+ \ifx\p_annotation_command\empty \else
+ \p_annotation_command\annotation_header_formatted\annotation_content_formatted
+ \fi
+\stopsetups
+
+\defineannotationalternative
+ [\v!quotation]
+ [ \c!alternative=\v!horizontal,
+ \c!renderingsetup=\????annotationrenderings:\v!quotation]
+
+\startsetups[\????annotationrenderings:\v!quotation]
+ \annotationparameter\c!leftsymbol
+ \annotation_content_raw\removeunwantedspaces
+ \annotationparameter\c!rightsymbol
+\stopsetups
+
+\defineannotationalternative
+ [\v!none]
+ [\c!renderingsetup=\????annotationrenderings:\v!none]
+
+\startsetups[\????annotationrenderings:\v!none]
+ \removeunwantedspaces
+\stopsetups
+
+% The module provides the option to write the content of each command to a external
+% file. The values for the option are defined with \defineannotationexport and can
+% be changed with \setupannotationexport.
+
+% \definenamespace
+% [annotationexport]
+% [ type=module,
+% comment=Annotationexport,
+% version=2011.02.17,
+% name=annotationexport,
+% style=no,
+% command=yes,
+% setup=yes,
+% \s!parent=annotationexport]
+%
+% \appendtoks
+% \ctxlua{thirddata.annotation.export_define{...}}%
+% \to \everydefineannotationexport
+%
+% \appendtoks
+% \ctxlua{thirddata.annotation.export_setup{...}}%
+% \to \everysetupannotationexport
+%
+% \defineannotationexport[\v!yes][\c!type=\v!default]
+% \defineannotationexport[\v!org][\c!type=\v!org]
+
+% To make the module usefull even if there is no annotation command in a document
+% i predefine here the command \annotation. As the command is created with
+% \defineannotation you can make specific setups for this command with
+% \setupannotation[annotation][...] which won’t affect all other commands.
+
+\defineannotation[\v!annotation]
+
+% Finally i set default values for all commands, you can change them in
+% your document but all or individual annotation commands.
+
+\setupannotation
+ [ \c!headstyle=\v!bold,
+ \c!left=(,
+ \c!right=),
+ \c!spacebefore=\v!line,
+ \c!spaceafter=\annotationparameter\c!spacebefore,
+ \c!inbetween=\blank,
+ \c!alternative=\v!paragraph,
+ \c!paragraph=\v!no,
+ \c!number=\v!no,
+ \c!header=\v!yes,
+ \c!export=\v!no,
+ \c!indenting=\v!never,
+ \c!indentnext=\v!yes,
+ \c!next=\autoinsertnextspace]
+
+\setupannotationalternative
+ [\c!alternative=\v!none]
+
+% \setupannotationexport
+% [ \c!mode=\v!default,
+% \c!name=\v!annotation,
+% \c!extension=\s!txt]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-bnf/VERSION b/obsolete/macros/context/contrib/context-bnf/VERSION
new file mode 100644
index 0000000000..16307605cc
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-bnf/VERSION
@@ -0,0 +1 @@
+2006.08.09
diff --git a/obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/NEWS b/obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/NEWS
new file mode 100644
index 0000000000..2849b0784c
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/NEWS
@@ -0,0 +1,28 @@
+
+
+ BNF Module News
+
+
+
+VERSION 0.3
+
+ Nothing more than a clean-up of the project tree. Although the autotools
+ setup was working OK it was more confusing than helpful. People tend to
+ install these kinds of things in a much more ad hoc manner anyway.
+
+
+
+VERSION 0.2
+
+
+ Total rewrite of the logic. Much easier to specify grammars, as the need for
+ commas and full-stops has been lifted. Furthermore, there is now an
+ alternative way of specifying non-terminals, using '-pairs instead. The
+ output is a lot nicer now as well, albeit not as compact as before.
+
+
+
+VERSION 0.1
+
+
+ Initial release, nothing much to report here.
diff --git a/obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/README b/obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/README
new file mode 100644
index 0000000000..891661832f
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/README
@@ -0,0 +1,39 @@
+
+
+ BNF Module README
+
+
+INTRODUCTION
+
+
+ The t-bnf module implements a way to easily write BNF grammars in CONTEXT.
+ Let's look at an example BNF grammar in a document:
+
+ \starttext
+
+ Here's a \BNF\ grammar. Enjoy.
+
+ \placebnfgrammar
+ [here]
+ [bnf:test]
+ {A test of the \BNF\ module}
+ {\startbnfgrammar[]
+ <S>: a<S>b
+ <S>: $\epsilon$
+ \stopbnfgrammar}
+
+ Which will match the language $L = \{\,a^nb^n \mid n \geq 0\,\}$.
+
+ \stoptext
+
+ You may try to generate module documenation embedded in t-bnf.tex with texexec
+ as well:
+
+ % texexec --interface=en --module --pdf t-bnf.tex
+
+ If you have any issues with creating the documentation this may be a result
+ of lacking the proper language format. You can look up the proper
+ information for generating these formats in minstall.pdf at PRAGMA-ADEs site
+ (http://www.pragma-ade.com/).
+
+ Enjoy!
diff --git a/obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/t-bnf.pdf b/obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/t-bnf.pdf
new file mode 100644
index 0000000000..863553fadc
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-bnf/doc/context/third/bnf/t-bnf.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-bnf/tex/context/third/bnf/t-bnf.tex b/obsolete/macros/context/contrib/context-bnf/tex/context/third/bnf/t-bnf.tex
new file mode 100644
index 0000000000..3f40c3e797
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-bnf/tex/context/third/bnf/t-bnf.tex
@@ -0,0 +1,195 @@
+%D \module
+%D [ file=t-bnf,
+%D version=2004.6.23,
+%D title=\CONTEXT\ BNF Grammar Module,
+%D subtitle=Grammars,
+%D author={Nikolai Weibull},
+%D date=\currentdate,
+%D copyright={Nikolai Weibull}]
+%C
+%C This module is NOT part of the \CONTEXT\ macro||package.
+%C This module is free software; you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation; either version 2 of the License, or
+%C (at your option) any later version.
+%C
+%C This module is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program; if not, write to the Free Software
+%C Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+\writestatus{loading}{BNF Macros / Initialization}
+
+\unprotect
+
+%M \usemodule[bnf]
+%D We define a new system variable for our settings:
+
+\definesystemvariable{bnf}
+
+%D We need some constants for the multi||lingual interface,
+
+\startconstants english dutch
+ terminalstart: terminalstart terminalstart
+ terminalstop: terminalstop terminalstop
+ nonterminalstart: nonterminalstart nonterminalstart
+ nonterminalstop: nonterminalstop nonterminalstop
+ is: is worden
+\stopconstants
+
+%D and while we're at it, lets define some variables.
+
+\startvariables english dutch
+ bnfgrammar: bnfgrammar bnfspraakleer
+ bnfgrammars: bnfgrammars bnfspraakleer
+\stopvariables
+
+%D Finally, we want the commands to be multi||lingually accessible, so we set
+%D that up as well:
+
+\startcommands english dutch
+ setupbnfgrammar: setupbnfgrammar stelbnfspraakleer
+ startbnfgrammar: startbnfgrammar startbnfspraakleer
+ stopbnfgrammar: stopbnfgrammar startbnfspraakleer
+\stopcommands
+
+%D \macros
+%D {startbnfgrammar, stopbnfgrammar}
+%D
+%D Now to the interesting parts, those that are actually useful to the outside
+%D world. First we have the \type{\startbnfgrammar} and \type{\stopbnfgrammar}
+%D pairs, which are of course used to delimit \BNF\ grammars. We would like to
+%D define \type{\startbnfgrammar} as \type{\def\startbnfgrammar[#1]}, but a bug
+%D in \CONTEXT\ prevents us from doing this, as the first character in the
+%D grammar may be active, for example \type{<}, but while checking for the
+%D presence of \type{[}, it gets ruined. A way around it is of course to
+%D require that the user pass an empty \type{[]} pair, and we will use this
+%D method at the moment.
+
+\def\complexstartbnfgrammar[#1]%
+ {\endgraf\nobreak\medskip
+ \begingroup
+ \setupbnfgrammar[#1]%
+ \chardef\bnfsinglequote=`'
+ \defineactivecharacter : {\@@bnfis}
+ \defineactivecharacter | {\@@bnfoption}
+ \defineactivecharacter " %
+ {\thinspace\bgroup\@@bnfterminalstart\setupinlineverbatim%
+ \defineactivecharacter " {\@@bnfterminalstop\egroup\thinspace}}
+ \defineactivecharacter ' %
+ {\thinspace\bgroup\@@bnfterminalstart\setupinlineverbatim%
+ \defineactivecharacter ' {\@@bnfterminalstop\egroup\thinspace}}
+ \catcode`<=13
+ \let\par=\bnfgrammarline
+ \obeylines}
+
+\def\stopbnfgrammar{\medbreak\checknextindentation[\@@bnfindentnext]}
+
+\definecomplexorsimpleempty\startbnfgrammar
+
+%D \macros
+%D {<>,bnfgrammarrule}
+%D
+%D We need a couple more macros to deal with the interior of a \BNF\ grammar.
+%D \type{\<>} is used for non||terminals, and \type{\bnfgrammarrule} is used
+%D later on in \type{\bnfgrammarswitch} for continuing a line.
+
+\def\<#1>{\leavevmode\hbox{\@@bnfnonterminalstart#1\/\@@bnfnonterminalstop}}
+
+\bgroup
+ \catcode`<=13
+ \global\let<=\<
+ \gdef\bnfgrammarrule<#1>{\endgraf\indent\<#1>}
+\egroup
+
+%D \macros
+%D {bnfgrammarline, bnfgrammarswitch, bnfgrammarcont}
+%D
+%D These macros deal with the ending of a line in a grammar.
+%D \type{\bnfgrammarline} is called whenever a new line begins, and invokes
+%D \type{\bnfgrammarswitch} to determine what to do next. If the next token is
+%D \type{\<}, we will call upon \type{\bnfgrammarrule} to deal with the new
+%D rule. If it is \type{\stopbnfgrammar}, we end the top||level group, and let
+%D it process \type{\stopbnfgrammar} afterwards. Otherwise we invoke
+%D \type{\bnfgrammarcont}, which will end the line and add some indentation to
+%D the continuing line.
+
+\def\bnfgrammarline{\futurelet\next\bnfgrammarswitch}
+\def\bnfgrammarswitch%
+ {\ifx\next\<
+ \let\next=\bnfgrammarrule
+ \else\ifx\next\stopbnfgrammar
+ \let\next=\endgroup
+ \else
+ \let\next=\bnfgrammarcont
+ \fi\fi
+ \next}
+\def\bnfgrammarcont{\hfil\break\indent\qquad}
+
+%D \macros
+%D {setupbnfgrammar}
+%D
+%D We want to allow our users to change the way the \BNF\ grammars are typeset,
+%D so we define a setup command for them to use.
+%D
+%D It allows you to define the start and stop sequence for terminals and
+%D non||terminals, as well as colons (lhs / rhs separator) and vertical bars
+%D (alternative), and commas. This has been multi||lingualized above, so
+%D choose your language.
+
+\def\dosetupbnfgrammar[#1]%
+ {\getparameters[\??bnf][#1]}
+
+\def\setupbnfgrammar%
+ {\dosingleargument\dosetupbnfgrammar}
+
+\setupbnfgrammar
+ [\c!terminalstart=\tttf,
+ \c!terminalstop=,
+ \c!nonterminalstart=\mathematics{\langle},
+ \c!nonterminalstop=\mathematics{\rangle},
+ \c!is={ \mathematics{\longrightarrow}},
+ \c!option=\mathematics{\vert},
+ \c!indentnext=\v!no]
+
+%D \macros
+%D {BNF}
+%D
+%D We also define a useful abbreviation to be used for header texts and labels.
+
+\logo[BNF]{bnf}
+
+%D And we use it here:
+
+\setupheadtext[\s!en][\v!bnfgrammar=\BNF\ Grammar]
+\setupheadtext[\s!en][\v!bnfgrammars=\BNF\ Grammars]
+\setuplabeltext[\s!en][\v!bnfgrammar=\BNF\ Grammar ]
+
+%D Finally we define a float to be use with \BNF\ grammars, so that we can
+%D finish off with something like this:
+%D
+%D \startbuffer
+%D \placebnfgrammar
+%D [][]
+%D {An example of a placed grammar.}
+%D {\startbnfgrammar[]
+%D <exp>: <num> | <num> "+" <num>
+%D <num>: "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
+%D \stopbnfgrammar}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D which looks kind of nice.
+
+\definefloat
+ [\v!bnfgrammar]
+ [\v!bnfgrammars]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-chromato/VERSION b/obsolete/macros/context/contrib/context-chromato/VERSION
new file mode 100644
index 0000000000..d600ebb715
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-chromato/VERSION
@@ -0,0 +1 @@
+2008.04.05
diff --git a/obsolete/macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-demo.pdf b/obsolete/macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-demo.pdf
new file mode 100644
index 0000000000..b01ca2631f
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-demo.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-doc.pdf b/obsolete/macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-doc.pdf
new file mode 100644
index 0000000000..061b408157
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-chromato/tex/context/third/chromato/t-chromato.tex b/obsolete/macros/context/contrib/context-chromato/tex/context/third/chromato/t-chromato.tex
new file mode 100644
index 0000000000..0ab8ab35d8
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-chromato/tex/context/third/chromato/t-chromato.tex
@@ -0,0 +1,130 @@
+%D \module
+%D [ file=t-chromato,
+%D version=2008.04.05,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Macros for chromatograms,
+%D author=Peter Münster,
+%D date=\currentdate,
+%D copyright={Peter Münster}]
+%C This module is copyrighted by Peter Münster.
+%C Please send any comments to pmrb at free.fr.
+
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+
+% This program 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
+% GNU General Public License for more details.
+
+\startmodule[chromato]
+
+\writestatus{loading}{Macros for chromatograms}
+
+\unprotect
+
+%D Some internal dimensions:
+\doifundefined{Width}{\newdimen\Width}
+\doifundefined{Height}{\newdimen\Height}
+
+%D \macros{startChromato}
+%D Starting a chromatogram.
+\def\startChromato{\bgroup\dosingleempty\dostartChromato}
+\def\dostartChromato[#1]#2#3{\getparameters[CHROM][dim=0.6,#1]
+ \def\myChromFig{\doifdefinedelse{CHROMSdim}{%
+ \externalfigure[#2][height=\CHROMSdim\textheight]}{%
+ \externalfigure[#2][width=\CHROMdim\makeupwidth]}}%
+ \setbox\scratchbox\hbox{\myChromFig}%
+ \Width=\wd\scratchbox \Height=\ht\scratchbox \setuppositioning[unit=pt]
+ \gdef\SavedCaption{#3}\doifundefined{CHROMSdim}{\placefigure[][fig:#2]{#3}}%
+ \bgroup\startpositioning\position(0,0){\myChromFig}}
+
+%D \macros{stopChromato}
+%D End of chromatogram.
+\def\stopChromato{\stoppositioning\egroup\egroup{\doifdefined{CHROMSdim}{%
+ \SavedCaption}}}
+
+%D \macros{startChromatos}
+%D Begin set of chromatograms.
+\def\startChromatos{\dosingleempty\dostartChromatos}
+\def\dostartChromatos[#1]#2#3{\placefigure[][fig:#2]{#3}\bgroup
+ \getparameters[CHROMS][dim=0.3,#1]
+ \doifdefined{CHROMSdist}{\setupcombinations[distance=\CHROMSdist em]}%
+ \startcombination[2*1]}
+
+%D \macros{stopChromatos}
+%D End of chromatograms.
+\def\stopChromatos{\stopcombination\egroup}
+
+%D Internal macro: position left or right:
+\define[3]\LRposition{\edef\YPos{\withoutpt{\the\dimexpr(\withoutpt{%
+ \the\dimexpr(#1pt/100)}\Height - 0.1\baselineskip)}}%
+ \position(#2,\YPos){\vbox to 2pt{\vss{\hbox to 0pt{#3}\vss}}}}
+
+%D \macros{Lbrace}
+%D Place a brace at the left.
+\define[4]\Lbrace{\LRposition{#1}0{\hss\rotate[rotation=90]{%
+ $\overbrace{\hskip#2\Height}^{%
+ \displaystyle\text{\rotate[rotation=270]{#4}}}$}\hskip#3em}}
+
+%D \macros{Rbrace}
+%D Place a brace at the right.
+\define[4]\Rbrace{\LRposition{#1}{\withoutpt{\the\Width}}{\hskip#3em
+ \rotate[rotation=270]{$\overbrace{\hskip#2\Height}^{%
+ \displaystyle\text{\rotate[rotation=90]{#4}}}$}\hss}}
+
+%D \macros{Larrow}
+%D Place a flesh at the left.
+\define[2]\Larrow{\LRposition{#1}0{\hss{\tx#2} $\rightarrow$}}
+
+%D \macros{Rarrow}
+%D Place a flesh at the right.
+\define[2]\Rarrow{\LRposition{#1}{\withoutpt{\the\Width}}{$\leftarrow$ \tx#2}}
+
+%D \macros{Above,Abrace}
+%D Place something above the chromatogram.
+\define[3]\Oposition{\edef\XPos{\withoutpt{\the\dimexpr(\withoutpt{%
+ \the\dimexpr(#1pt/100)}\Width)}}%
+ \position(\XPos,-\withoutpt{\the\dimexpr(#2\baselineskip)}){%
+ \hbox to 0pt{\hss#3\hss}}}
+\define[2]\Above{\Oposition{#1}{0.8}{\tx#2}}
+\define[3]\Abrace{\Oposition{#1}{2.5}{%
+ $\overbrace{\hskip#2\Width}^{\displaystyle\text{#3}}$}}
+
+\protect
+
+\stopmodule
+
+\doifnotmode{demo}{\endinput}
+
+%D Usage example:
+\usemodule[chromato]
+\setupexternalfigures[directory=samples]
+\mainlanguage[de]
+\starttext
+\startChromato{ecolizeit}{Expression der rekombinanten Fucosyltransferase~V in
+ {\em E.~coli}.}
+ \Above{5}{BRS}\Above{15}{1h}\Above{26}{2h}\Above{38}{3h}\Above{50}{4h}
+ \Above{61}{1h}\Above{72}{2h}\Above{83}{3h}\Above{94}{4h}
+ \Larrow{12}{97\,kDa}\Larrow{20}{66\,kDa}
+ \Larrow{32}{45\,kDa}\Larrow{52}{31\,kDa}
+ \Lbrace{39}{0.75}{4}{A}
+ \Lbrace{90}{0.16}{4}{B}
+ \Abrace{32}{0.42}{löslich}
+ \Abrace{77}{0.42}{unlöslich}
+ \Rarrow{29}{FucT~V}\Rarrow{87}{FucT~V}
+\stopChromato
+\startChromatos[dim=0.17,dist=2]{saeuger}{Expression von rekombinanter
+ Fucosyltransferase~V in unterschiedlichen Säugerzellinien.}
+ \startChromato{saeuger}{A}
+ \Above{26}{CHO}\Above{74}{HEK}
+ \Larrow{4}{96\,kDa}\Larrow{37}{66\,kDa}\Larrow{81}{45\,kDa}
+ \stopChromato
+ \startChromato{saeugerred}{B}
+ \Above{26}{CHO}\Above{74}{HEK}
+ \Rarrow{81}{FucT~V}
+ \stopChromato
+\stopChromatos
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-cmscbf/VERSION b/obsolete/macros/context/contrib/context-cmscbf/VERSION
new file mode 100644
index 0000000000..5df0836645
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-cmscbf/VERSION
@@ -0,0 +1 @@
+2006.09.12
diff --git a/obsolete/macros/context/contrib/context-cmscbf/doc/context/third/cmscbf/cmscbf-demo.pdf b/obsolete/macros/context/contrib/context-cmscbf/doc/context/third/cmscbf/cmscbf-demo.pdf
new file mode 100644
index 0000000000..6f45bb60a0
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-cmscbf/doc/context/third/cmscbf/cmscbf-demo.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-cmscbf/doc/context/third/cmscbf/cmscbf-doc.pdf b/obsolete/macros/context/contrib/context-cmscbf/doc/context/third/cmscbf/cmscbf-doc.pdf
new file mode 100644
index 0000000000..bce42c35d5
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-cmscbf/doc/context/third/cmscbf/cmscbf-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-cmscbf/tex/context/third/cmscbf/t-cmscbf.tex b/obsolete/macros/context/contrib/context-cmscbf/tex/context/third/cmscbf/t-cmscbf.tex
new file mode 100644
index 0000000000..b3903fa761
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-cmscbf/tex/context/third/cmscbf/t-cmscbf.tex
@@ -0,0 +1,42 @@
+%D \useregime[il9]
+%D \enableregime[il9]
+%D \module
+%D [ file=t-cmscbf,
+%D version=2006.09.12,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Bold Small Caps for Computer/Latin Modern,
+%D author=Peter Mnster,
+%D date=\currentdate,
+%D copyright={Peter Mnster}]
+%C This module is copyrighted by Peter Mnster.
+%C Please send any comments to pmrb at free.fr.
+
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+
+% This program 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
+% GNU General Public License for more details.
+
+\writestatus{loading}{Bold Small Caps for Computer/Latin Modern}
+
+\definebodyfont[15pt,14pt,13pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt]
+ [sc] [bf=cmbcsc10 sa 1, tf=cmcsc10 sa 1]
+
+%D Hint: when producing PDF, adjust your resolution with
+%D \type{\pdfpkresolution=xxx}
+
+\doifnotmode{demo}{\endinput}
+
+%D Usage example:
+\usemodule[cmscbf]
+\useregime[il9]
+\enableregime[il9]
+\pdfpkresolution=1200
+\starttext
+{\sc Normal and \bf bold Small Caps.}
+{\sc \bf }
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-cmttbf/VERSION b/obsolete/macros/context/contrib/context-cmttbf/VERSION
new file mode 100644
index 0000000000..5df0836645
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-cmttbf/VERSION
@@ -0,0 +1 @@
+2006.09.12
diff --git a/obsolete/macros/context/contrib/context-cmttbf/doc/context/third/cmttbf/cmttbf-demo.pdf b/obsolete/macros/context/contrib/context-cmttbf/doc/context/third/cmttbf/cmttbf-demo.pdf
new file mode 100644
index 0000000000..b749878f02
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-cmttbf/doc/context/third/cmttbf/cmttbf-demo.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-cmttbf/doc/context/third/cmttbf/cmttbf-doc.pdf b/obsolete/macros/context/contrib/context-cmttbf/doc/context/third/cmttbf/cmttbf-doc.pdf
new file mode 100644
index 0000000000..773a8678d6
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-cmttbf/doc/context/third/cmttbf/cmttbf-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-cmttbf/tex/context/third/cmttbf/t-cmttbf.tex b/obsolete/macros/context/contrib/context-cmttbf/tex/context/third/cmttbf/t-cmttbf.tex
new file mode 100644
index 0000000000..77618732dd
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-cmttbf/tex/context/third/cmttbf/t-cmttbf.tex
@@ -0,0 +1,45 @@
+%D \useregime[il9]
+%D \enableregime[il9]
+%D \module
+%D [ file=t-cmttbf,
+%D version=2006.09.12,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Bold Typewriter for Computer/Latin Modern,
+%D author=Peter Mnster,
+%D date=\currentdate,
+%D copyright={Peter Mnster}]
+%C This module is copyrighted by Peter Mnster.
+%C Please send any comments to pmrb at free.fr.
+
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+
+% This program 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
+% GNU General Public License for more details.
+
+\writestatus{loading}{Bold Typewriter for Computer/Latin Modern}
+
+\definebodyfont[15pt,14pt,13pt,12pt,11pt,10pt] [tt] [bf=cmbtt10 sa 1]
+\definebodyfont[9pt] [tt] [bf=cmbtt9]
+\definebodyfont[8pt,7pt,6pt,5pt] [tt] [bf=cmbtt8 sa 1]
+%\definebodyfont[15pt,14pt,13pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt]
+% [tt] [bf=cmttb10 sa 1]
+
+%D Hint: when producing PDF, adjust your resolution with
+%D \type{\pdfpkresolution=xxx}
+
+\doifnotmode{demo}{\endinput}
+
+%D Usage example:
+\usemodule[cmttbf]
+\useregime[il9]
+\enableregime[il9]
+\pdfpkresolution=1200
+\starttext
+{\tt Normal and \bf bold Typewriter.}
+{\tt \bf }
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-construction-plan/VERSION b/obsolete/macros/context/contrib/context-construction-plan/VERSION
new file mode 100644
index 0000000000..d600ebb715
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-construction-plan/VERSION
@@ -0,0 +1 @@
+2008.04.05
diff --git a/obsolete/macros/context/contrib/context-construction-plan/doc/context/third/construction-plan/construction-plan-demo.pdf b/obsolete/macros/context/contrib/context-construction-plan/doc/context/third/construction-plan/construction-plan-demo.pdf
new file mode 100644
index 0000000000..a19a865ae3
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-construction-plan/doc/context/third/construction-plan/construction-plan-demo.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-construction-plan/doc/context/third/construction-plan/construction-plan-doc.pdf b/obsolete/macros/context/contrib/context-construction-plan/doc/context/third/construction-plan/construction-plan-doc.pdf
new file mode 100644
index 0000000000..f7466d5204
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-construction-plan/doc/context/third/construction-plan/construction-plan-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-construction-plan/tex/context/third/construction-plan/t-construction-plan.tex b/obsolete/macros/context/contrib/context-construction-plan/tex/context/third/construction-plan/t-construction-plan.tex
new file mode 100644
index 0000000000..bb48bbf055
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-construction-plan/tex/context/third/construction-plan/t-construction-plan.tex
@@ -0,0 +1,150 @@
+%D \module
+%D [ file=t-construction-plan,
+%D version=2008.04.05,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Construction plans,
+%D author=Peter Münster,
+%D date=\currentdate,
+%D copyright={Peter Münster}]
+%C This module is copyrighted by Peter Münster.
+%C Please send any comments to pmrb at free.fr.
+
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+
+% This program 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
+% GNU General Public License for more details.
+
+\writestatus{loading}{Typesetting construction plans}
+
+\unprotect
+
+%D We need a lot of space.
+\setuplayout[header=0pt,footer=0pt,backspace=2cm,width=middle,
+ topspace=1cm,height=middle]
+
+%D Doing pagenumbering on our own.
+\setuppagenumbering[state=stop]
+
+%D \macros
+%D {setupPlan}
+%D
+%D Setting up some values.
+%D
+%D Default setup:
+%D
+%D \starttyping
+%D \setupPlan[paper=A3,project=,author=,prec=10]
+%D \stoptyping
+%D
+%D Example:
+%D
+%D \starttyping
+%D \setupPlan[paper=A3,project=My garage,author=Peter Münster,
+%D prec=Precision factor for figure width]
+%D \stoptyping
+\def\setupPlan[#1]{\getparameters[CP][#1]}
+\setupPlan[paper=A4,project=,author=,date=,prec=10]
+
+%D Support for more than one language!
+\setuplabeltext[fr][project=Projet,author=Auteur,date=Date,scale=Échelle]
+\setuplabeltext[en][project=Project,author=Author,date=Date,scale=Scale]
+\setuplabeltext[de][project=Projekt,author=Autor,date=Datum,scale=Maßstab]
+
+%D \macros
+%D {Plan}
+%D
+%D Makes a page with a plan and some comments below it.
+%D
+%D Example:
+%D
+%D \starttyping
+%D \Plan[Prefix=file prefix,Scale=scale of figure,mm=width of figure in mm,
+%D Title=title of plan]
+%D \stoptyping
+%D
+%D If you want to include the file \type{plan-20000.eps} you have to use
+%D \type{Prefix=plan,mm=20000}.
+%D
+%D Sample document:
+%D
+%D \starttyping
+%D \usemodule[construction-plan]
+%D \mainlanguage[fr] % or better: \usemodule[french]
+%D \starttext
+%D \Plan[Prefix=situ,Scale=2000,mm=351000,Title=Plan de situation]
+%D \Plan[Prefix=masse,Scale=400,mm=66000,Title=Plan de masse]
+%D \Plan[Prefix=nord,Scale=100,mm=20906,Title=Façade nord]
+%D \Plan[Prefix=sud,mm=18900,Title=Façade sud]
+%D \Plan[Prefix=west,mm=23390,Title=Pignon ouest]
+%D \Plan[Prefix=ost,mm=23513,Title=Pignon est]
+%D \Plan[Prefix=rdc,mm=18456,Title=Rez-de-chaussée]
+%D \Plan[Prefix=etage,mm=16695,Title=Étage]
+%D \Plan[Prefix=haus1,Scale=150,mm=30000,Title=Simulation 1]
+%D \Plan[Prefix=haus2,Scale=100,mm=20000,Title=Simulation 2]
+%D \stoptext
+%D \stoptyping
+
+\def\@BottomLine{{\tx\doifsomething\CPproject{%
+ \labeltext{project}: \CPproject, }%
+ \doifsomething\CPauthor{\labeltext{author}: \CPauthor, }%
+ \labeltext{date}: \doifelsenothing\CPdate\currentdate\CPdate}\hfill}
+
+\newdimen\CPwidth \newdimen\CPheight
+\def\Plan[#1]{%
+ \getparameters[CP][#1]
+ \CPwidth=\dimexpr(\the\numexpr(\CPprec*\CPmm/\CPscale)mm/\CPprec)
+ \def\CPfig{\externalfigure[\CPprefix-\CPmm][width=\the\CPwidth]}%
+ \setbox\scratchbox\hbox{\CPfig}\CPheight=\ht\scratchbox
+ \ifdim\CPwidth>1.1\CPheight
+ \setuppapersize[\CPpaper,landscape,rotated][\CPpaper]
+ \else
+ \setuppapersize[\CPpaper][\CPpaper]
+ \fi
+ \startstandardmakeup
+ \midaligned{\CPfig}\vfil\@BottomLine
+ \framed[align=lohi,offset=2ex]{{\bfc\CPtitle}\blank
+ \labeltext{scale}: 1/\CPscale\quad\hfill(\currentpage/\lastpage)}%
+ \vskip0pt plus -1fil
+ \stopstandardmakeup}
+
+%D \macros
+%D {NoPlan}
+%D
+%D Makes a page with some content and some comments below it.
+%D
+%D Example:
+%D
+%D \starttyping
+%D \NoPlan[Title=Some notes]{Here are some notes about the plans.}
+%D \stoptyping
+
+\long\def\NoPlan[#1]#2{%
+ \getparameters[CP][#1]
+ \setuppapersize[\CPpaper][\CPpaper]
+ \startstandardmakeup
+ #2\vfil\@BottomLine
+ \framed[align=lohi,offset=2ex]{{\bfc\CPtitle}\blank
+ (\currentpage/\lastpage)}\vskip0pt plus -1fil
+ \stopstandardmakeup}
+
+\protect
+
+\doifnotmode{demo}{\endinput}
+
+%D Usage example:
+\usemodule[construction-plan]
+\setupexternalfigures[directory=samples]
+\mainlanguage[de]
+\setupPlan[paper=A3,project=Mein Haus,prec=15]
+\starttext
+\Plan[prefix=unten,scale=100,mm=21478,title=Erdgeschoß]
+\Plan[prefix=oben,mm=21345,title=Obergeschoß]
+\Plan[prefix=simulation,scale=250,mm=80000,title=Simulation]
+\NoPlan[title=Notizen,paper=A4]{\tfb\setupinterlinespace
+ Einige Notizen, die das Bauvorhaben beschreiben...}
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-degrade/VERSION b/obsolete/macros/context/contrib/context-degrade/VERSION
new file mode 100644
index 0000000000..5df0836645
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-degrade/VERSION
@@ -0,0 +1 @@
+2006.09.12
diff --git a/obsolete/macros/context/contrib/context-degrade/doc/context/third/degrade/degrade-demo.pdf b/obsolete/macros/context/contrib/context-degrade/doc/context/third/degrade/degrade-demo.pdf
new file mode 100644
index 0000000000..5a9d3e1558
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-degrade/doc/context/third/degrade/degrade-demo.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-degrade/doc/context/third/degrade/degrade-doc.pdf b/obsolete/macros/context/contrib/context-degrade/doc/context/third/degrade/degrade-doc.pdf
new file mode 100644
index 0000000000..1d3f34abd2
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-degrade/doc/context/third/degrade/degrade-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-degrade/tex/context/third/degrade/t-degrade.tex b/obsolete/macros/context/contrib/context-degrade/tex/context/third/degrade/t-degrade.tex
new file mode 100644
index 0000000000..b2dbba495c
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-degrade/tex/context/third/degrade/t-degrade.tex
@@ -0,0 +1,163 @@
+%D \enableregime[utf]
+%D \module
+%D [ file=t-degrade,
+%D version=2006.09.12,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Degrading JPEG images,
+%D author=Peter Münster,
+%D date=\currentdate,
+%D copyright={Peter Münster}]
+%C This module is copyrighted by Peter Münster.
+%C Please send any comments to pmrb at free.fr.
+
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+
+% This program 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
+% GNU General Public License for more details.
+
+\writestatus{loading}{Degrading JPEG images on the fly}
+
+\unprotect
+
+%D In this module we suppose, that original figures are either eps or jpg.
+%D When creating pdf, eps is converted to pdf, and when creating dvi,
+%D jpg is converted to eps.
+%D Furthermore, jpg-images can be degraded to a given resolution, to get
+%D smaller documents.
+
+%D When
+%D \type{http://context.literatesolutions.com/collector/63}
+%D is solved, we can make it better using \type{\appliedfigurefilename},
+%D \type{\figurewidth} etc, and without redefining \type{\externalfigure}.
+
+%D \macros{setupDegrade}
+%D Sets the resolution, the directory for degraded images and the
+%D directory, where the original images can be found (source directory).
+%D
+%D Default setup:
+%D
+%D \starttyping
+%D \setupDegrade[Res=100,Dir=degrade,SDir=.]
+%D \stoptyping
+%D
+%D Example:
+%D
+%D \starttyping
+%D \setupDegrade[Res=600,Dir=degraded-images,SDir=/home/peter/jpegs]
+%D \stoptyping
+
+\def\setupDegrade[#1]{\getparameters[Deg][#1]}
+\setupDegrade[Res=100,Dir=degrade,SDir=.]
+
+%D In order to use this module, you must use \type{\externalfigure}
+%D in the following way: \type{\externalfigure[file-prefix][options]},
+%D where \type{options} must contain the width or the height.
+%D Furthermore, \type{\write18} must be enabled.
+%D The shell-script is in a buffer, just to keep this module in only
+%D one file.
+
+\startbuffer[degrade-script]
+#!/bin/bash
+
+# We consider, that original figures are either eps or jpg.
+
+# Arguments:
+# $1 = filename
+# $2 = eps or pdf
+# $3 = w or h
+# $4 = resolution
+# $5 = dimension of image
+# $6 = source directory
+# $7 = destination directory
+
+for i in jpeg2ps convert identify bc; do
+ if ! type $i &>/dev/null; then
+ echo Error: $i is not installed.
+ exit 1
+ fi
+done
+
+EPSTOPDF=epstopdf
+
+if ! type epstopdf &>/dev/null; then
+ if type texmfstart &>/dev/null; then
+ EPSTOPDF="texmfstart newpstopdf"
+ else
+ EPSTOPDF="texutil --figures --epstopdf"
+ fi
+fi
+
+if [ -s "$1.jpg" ]; then
+ if [ "$2" = eps ] && [ "$1.jpg" -nt "$1.eps" ]; then
+ jpeg2ps "$1.jpg" >"$1.eps"
+ fi
+else
+ if [ "$2" = pdf ] && [ "$1.eps" -nt "$1.pdf" ]; then
+ $EPSTOPDF "$1.eps"
+ fi
+fi
+
+X=
+[ $3 = h ] && X=x
+FORMAT="%$3"
+FILE="$6/$1.jpg"
+DFILE="$7/$1.jpg"
+DFILE_EPS="$7/$1.eps"
+DPI="$4"
+IW="$5"
+MODE="$2"
+INCH=72.27
+
+mkdir -p $7
+
+if [ -s "$FILE" ]; then
+ W=`identify -format "$FORMAT" "$FILE"`
+else
+ rm -f "$DFILE"
+ exit 0
+fi
+
+NW=`echo "$DPI * $IW / $INCH" | bc`
+
+if [ $NW -ge $W ]; then
+ rm -f "$DFILE"
+else
+ if [ -s "$DFILE" ] && \
+ [ `identify -format "$FORMAT" "$DFILE"` -eq $NW ]; then
+ exit 0
+ else
+ convert -verbose -resize $X$NW "$FILE" "$DFILE"
+ [ $MODE = eps ] && jpeg2ps "$DFILE" >"$DFILE_EPS"
+ fi
+fi
+\stopbuffer
+
+\def\Command{\immediate\write18}
+\let\externalfigureO=\externalfigure
+\def\externalfigure[#1][#2]{%
+ \getparameters[Deg][height=,#2]%
+ \processaction[\Degheight][%
+ \s!default =>\scratchdimen=\Degwidth \def\Deg@WH{w},
+ \s!unknown =>\scratchdimen=\Degheight \def\Deg@WH{h}]%
+ \Command{bash ./\jobname-degrade-script.tmp #1 \ifcase\pdfoutput eps\else
+ pdf\fi\space\Deg@WH\space\DegRes\space\withoutpt\the\scratchdimen\space
+ \DegSDir\space\DegDir}%
+ \doiffileexistselse{\DegDir/#1.jpg}{\def\Deg@File{\DegDir/#1}}{%
+ \def\Deg@File{#1}}%
+ \externalfigureO[\Deg@File][#2]}
+
+\protect
+
+\doifnotmode{demo}{\endinput}
+
+%D Usage example:
+%\usemodule[degrade]
+% \setupDegrade[Res=200] Here you can adjust the resolution (unit = dpi).
+\starttext
+\externalfigure[hacker][width=0.2\textwidth]
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-fancybreak/VERSION b/obsolete/macros/context/contrib/context-fancybreak/VERSION
new file mode 100644
index 0000000000..4a2d0d3542
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fancybreak/VERSION
@@ -0,0 +1 @@
+2015.04.18
diff --git a/obsolete/macros/context/contrib/context-fancybreak/doc/context/third/fancybreak/README b/obsolete/macros/context/contrib/context-fancybreak/doc/context/third/fancybreak/README
new file mode 100644
index 0000000000..7ae0aa76f5
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fancybreak/doc/context/third/fancybreak/README
@@ -0,0 +1,35 @@
+Modulename : t-fancybreak
+Author : Wolfgang Schuster
+License : GNU General Public License
+
+Description
+-----------
+
+Fanycbreak is a module for ConTeXt to insert thought
+breaks in texts. With parameters one can adjust the
+spacing around the content and set a default symbol.
+
+Usage
+-----
+
+\usemodule[fancybreak]
+
+\starttext
+\input knuth\par
+\fancybreak{$* * *$}
+\input zapf\par
+\fancybreak{+++++++}
+\input ward\par
+\stoptext
+
+Options
+-------
+
+- spacebefore
+- spaceafter
+- spaceinbetween
+- align
+- style
+- color
+- symbol
+- indentnext
diff --git a/obsolete/macros/context/contrib/context-fancybreak/doc/context/third/fancybreak/fancybreak-doc.pdf b/obsolete/macros/context/contrib/context-fancybreak/doc/context/third/fancybreak/fancybreak-doc.pdf
new file mode 100644
index 0000000000..1bacc8eb6f
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fancybreak/doc/context/third/fancybreak/fancybreak-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-fancybreak/tex/context/interface/third/t-fancybreak.xml b/obsolete/macros/context/contrib/context-fancybreak/tex/context/interface/third/t-fancybreak.xml
new file mode 100644
index 0000000000..dfedff2b36
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fancybreak/tex/context/interface/third/t-fancybreak.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2010.06.21">
+
+<cd:command name="fancybreak" generated="yes" file="t-fancybreak.tex">
+ <cd:sequence>
+ <cd:variable value="fancybreak"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes" optional="yes">
+ <cd:inherit name="setupfancybreak"/>
+ </cd:assignments>
+ <cd:content n="2" optional="yes"/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="fancybreak" generated="yes" type="environment" file="t-fancybreak.tex">
+ <cd:sequence>
+ <cd:variable value="fancybreak"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes" optional="yes">
+ <cd:inherit name="setupfancybreak"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setupfancybreak" file="t-fancybreak.tex">
+ <cd:sequence>
+ <cd:string value="setupfancybreak"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="spacebefore">
+ <cd:inherit name="blank" n="1"/>
+ </cd:parameter>
+ <cd:parameter name="spaceafter">
+ <cd:inherit name="blank" n="1" default="nowhite"/>
+ </cd:parameter>
+ <cd:parameter name="spaceinbetween">
+ <cd:inherit name="blank" n="1"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign" n="1" default="middle"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="definefancybreak" file="t-fancybreak.tex">
+ <cd:sequence>
+ <cd:string value="definefancybreak"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes" optional="yes">
+ <cd:inherit name="setupfanycbreak" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/obsolete/macros/context/contrib/context-fancybreak/tex/context/third/fancybreak/t-fancybreak.mkii b/obsolete/macros/context/contrib/context-fancybreak/tex/context/third/fancybreak/t-fancybreak.mkii
new file mode 100644
index 0000000000..66ea139e7a
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fancybreak/tex/context/third/fancybreak/t-fancybreak.mkii
@@ -0,0 +1,272 @@
+%D \module
+%D [ file=t-fancybreak,
+%D version=2013.04.27,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Fancybreak,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2010 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+%M \usemodule[fancybreak]
+%M \loadsetups[t-fancybreak.xml]
+
+%D \subject{Examples}
+%D
+%D \subsubject{The \letterbackslash fancybreak command}
+%D
+%D \starttyping
+%D The Earth, as a habitat for animal life, is in old age …
+%D \fancybreak{$* * *$}
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D \input ward
+%D \fancybreak{$* * *$}
+%D \input ward
+%D
+%D \subsubject{The “spacebefore” and “spaceafter” keys}
+%D
+%D \starttyping
+%D \setupfancybreak[spacebefore=line,spaceafter=line]
+%D
+%D The Earth, as a habitat for animal life, is in old age …
+%D \fancybreak{$* * *$}
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D \start
+%D
+%D \setupfancybreak[spacebefore=line,spaceafter=line]
+%D
+%D \input ward
+%D \fancybreak{$* * *$}
+%D \input ward
+%D
+%D \stop
+%D
+%D \subsubject{The argumentless version of the \letterbackslash fancybreak command}
+%D
+%D \starttyping
+%D The Earth, as a habitat for animal life, is in old age …
+%D \fancybreak
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D \input ward
+%D \fancybreak
+%D \input ward
+%D
+%D \subsubject{The “spaceinbetween” key}
+%D
+%D \starttyping
+%D \setupfancybreak[spaceinbetween=3*line]
+%D
+%D The Earth, as a habitat for animal life, is in old age …
+%D \fancybreak
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D \start
+%D
+%D \setupfancybreak[spaceinbetween=3*line]
+%D
+%D \input ward
+%D \fancybreak
+%D \input ward
+%D
+%D \stop
+%D
+%D \subsubject{The “symbol” key}
+%D
+%D \starttyping
+%D \setupfancybreak[symbol=star]
+%D
+%D The Earth, as a habitat for animal life, is in old age …
+%D \fancybreak
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D \start
+%D
+%D \setupfancybreak[symbol=star]
+%D
+%D \input ward
+%D \fancybreak
+%D \input ward
+%D
+%D \stop
+%D
+%D \subsubject{How to create new \letterbackslash fancybreak commands}
+%D
+%D \starttyping
+%D \definefancybreak[starbreak] [symbol=star]
+%D \definefancybreak[squarebreak][symbol=square]
+%D
+%D The Earth, as a habitat for animal life, is in old age …
+%D \starbreak
+%D The Earth, as a habitat for animal life, is in old age …
+%D \squarebreak
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D \start
+%D
+%D \definefancybreak[starbreak] [symbol=star]
+%D \definefancybreak[squarebreak][symbol=square]
+%D
+%D \input ward
+%D \starbreak
+%D \input ward
+%D \squarebreak
+%D \input ward
+%D
+%D \stop
+
+%D \subject{Implementation}
+
+\writestatus{loading}{ConTeXt User Module / Fancybreak}
+
+\unprotect
+
+\startinterface all
+ \setinterfacevariable {fancybreak} {fancybreak}
+\stopinterface
+
+\def\????fancybreak{@@@@fancybreak}
+
+\def\fancybreakparameter#1{\csname\????fancybreak\currentfancybreak#1\endcsname}
+
+%D \macros
+%D {setupfancybreak}
+%D
+%D \subsubject{\letterbackslash setupfancybreak}
+%D
+%D With the command \type{\setupfancybreak} one can change the settings of
+%D a previous created command, the two argument version change only the values
+%D of a certain command while the one argument version change the values of
+%D all commands.
+%D
+%D \showsetup{setupfancybreak}
+
+\unexpanded\def\setupfancybreak
+ {\dodoubleempty\dosetupfancybreak}
+
+\def\dosetupfancybreak[#1][#2]%
+ {\ifsecondargument
+ \dodoubleargumentwithset\dodosetupfancybreak[#1][#2]%
+ \else
+ \dodosetupfancybreak[][#1]%
+ \fi}
+
+\def\dodosetupfancybreak[#1][#2]%
+ {\getparameters[\????fancybreak#1][#2]}
+
+%D \macros
+%D {definefancybreak}
+%D
+%D \subsubject{\letterbackslash definefancybreak}
+%D
+%D The command \type{\fancybreak} is not hardcoded in the module but created with
+%D \type{\definefancybreak}. The command takes two arguments, the first is the name
+%D of the new command and the second parameter to change the style of the commands
+%D content and distances to the surrounding text.
+%D
+%D In \MKII\ users can only change the spacing before and after the content and
+%D the alignment of it while \MKIV\ user can also change the style and color of it.
+%D
+%D \showsetup{definefancybreak}
+
+\unexpanded\def\definefancybreak
+ {\dodoubleempty\dodefinefancybreak}
+
+\def\dodefinefancybreak[#1][#2]%
+ {\copyparameters
+ [\????fancybreak#1][\????fancybreak]
+ [\c!spacebefore,\c!spaceafter,\c!spaceinbetween,\c!align,\c!indentnext,\c!symbol]%
+ \getparameters[\????fancybreak#1][#2]%
+ \setvalue {#1}{\dodoubleempty\dofancybreak [#1]}%
+ \setvalue{\e!start#1}{\dodoubleempty\dostartfancybreak[#1]}%
+ \setvalue{\e!stop #1}{\dostopfancybreak }}
+
+%D \macros
+%D {fancybreak}
+%D
+%D \subsubject{\letterbackslash fancybreak}
+%D
+%D The main macro of the module is the \type{\fancybreak} command (or a user defined
+%D variant of it), it takes one argument which can be optional.
+%D
+%D \showsetup{fancybreak}
+%D \showsetup{startfancybreak}
+
+\def\dofancybreak[#1][#2]%
+ {\par
+ \begingroup
+ \edef\currentfancybreak{#1}%
+ \ifsecondargument
+ \doifassignmentelse{#2}
+ {\getparameters[\????fancybreak\currentfancybreak][#2]}
+ {\setvalue{\????fancybreak\currentfancybreak\c!spaceinbetween}{#2}}%
+ \fi
+ \doifnextbgroupelse\dodofancybreak\nodofancybreak}
+
+\def\dodofancybreak
+ {\forgetall % \forgetparindent
+ \dowithnextboxcontent
+ {\setupalign[\fancybreakparameter\c!align]}
+ {\blank[\fancybreakparameter\c!spacebefore]%
+ \flushnextbox
+ \blank[\fancybreakparameter\c!spaceafter ]%
+ \checknextindentation[\fancybreakparameter\c!indentnext]%
+ \endgroup
+ \dorechecknextindentation}
+ \vbox}
+
+\def\nodofancybreak
+ {\doifsymboldefinedelse{\fancybreakparameter\c!symbol}
+ {\dodofancybreak{\symbol[\fancybreakparameter\c!symbol]}}
+ {\blank[\fancybreakparameter\c!spaceinbetween]%
+ \checknextindentation[\fancybreakparameter\c!indentnext]%
+ \endgroup
+ \dorechecknextindentation}}
+
+\def\dostartfancybreak[#1][#2]%
+ {\par
+ \begingroup
+ \edef\currentfancybreak{#1}%
+ \ifsecondargument
+ \getparameters[\????fancybreak#1][#2]%
+ \fi
+ \dodofancybreak\bgroup}
+
+\def\dostopfancybreak
+ {\egroup}
+
+\definefancybreak[\v!fancybreak]
+
+\setupfancybreak
+ [ \c!spacebefore=,
+ \c!spaceafter=\v!nowhite,
+ \c!spaceinbetween=\v!line,
+ \c!align=\v!middle,
+ \c!indentnext=\v!yes,
+ \c!symbol=]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-fancybreak/tex/context/third/fancybreak/t-fancybreak.mkvi b/obsolete/macros/context/contrib/context-fancybreak/tex/context/third/fancybreak/t-fancybreak.mkvi
new file mode 100644
index 0000000000..3e547186e8
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fancybreak/tex/context/third/fancybreak/t-fancybreak.mkvi
@@ -0,0 +1,493 @@
+%D \module
+%D [ file=t-fancybreak,
+%D version=2015.04.18,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Fancybreak,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2010 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+%M \usemodule[fancybreak]
+%M \loadsetups[t-fancybreak.xml]
+
+%D \subject{Examples}
+%D
+%D \macros
+%D {fancybreak}
+%D
+%D \subsubject{The \letterbackslash fancybreak command}
+%D
+%D \starttyping
+%D Making oil requires a specific series of geological accidents ...
+%D \fancybreak{$* * *$}
+%D Making oil requires a specific series of geological accidents ...
+%D \stoptyping
+%D
+%D results in
+%D
+%D \startexample
+%D \input montgomery
+%D \fancybreak{$* * *$}
+%D \input montgomery
+%D \stopexample
+%D
+%D \extras
+%D {spacebefore,spaceafter}
+%D
+%D \subsubject{The “spacebefore” and “spaceafter” keys}
+%D
+%D \starttyping
+%D \setupfancybreak[spacebefore=line,spaceafter=line]
+%D
+%D The Earth, as a habitat for animal life, is in old age …
+%D \fancybreak{$* * *$}
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D results in
+%D
+%D \start
+%D
+%D \setupfancybreak[spacebefore=line,spaceafter=line]
+%D
+%D \startexample
+%D \input ward
+%D \fancybreak{$* * *$}
+%D \input ward
+%D \stopexample
+%D
+%D \stop
+%D
+%D \extras
+%D {style}
+%D
+%D \subsubject{The “style” key}
+%D
+%D \starttyping
+%D \setupfancybreak[style=bold]
+%D
+%D The warm water spills north and south through a series of ocean currents ...
+%D \fancybreak{* * *}
+%D The warm water spills north and south through a series of ocean currents ...
+%D \stoptyping
+%D
+%D \start
+%D
+%D \setupfancybreak[style=bold,spacebefore=medium]
+%D
+%D \input linden
+%D \fancybreak{* * *}
+%D \input linden
+%D
+%D \stop
+%D
+%D \extras
+%D {color}
+%D
+%D \subsubject{The “color” key}
+%D
+%D \starttyping
+%D \setupfancybreak[color=red]
+%D
+%D Had our solar system included two suns, the problem would ...
+%D \fancybreak{* * *}
+%D Had our solar system included two suns, the problem would ...
+%D \stoptyping
+%D
+%D \start
+%D
+%D \setupfancybreak[color=red,spacebefore=medium]
+%D
+%D \input thuan
+%D \fancybreak{* * *}
+%D \input thuan
+%D
+%D \stop
+%D
+%D \extras
+%D {indentnext}
+%D
+%D \subsubject{The “indentnext” key}
+%D
+%D \starttyping
+%D The Earth, as a habitat for animal life, is in old age …
+%D \fancybreak{$* * *$}
+%D The Earth, as a habitat for animal life, is in old age …
+%D \fancybreak[indentnext=no]{$* * *$}
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D \start
+%D
+%D \setupindenting[yes,medium]
+%D
+%D \input ward
+%D \fancybreak{$* * *$}
+%D \input ward
+%D \fancybreak[indentnext=no]{$* * *$}
+%D \input ward
+%D
+%D \stop
+%D
+%D \macros
+%D {fancybreak}
+%D
+%D \subsubject{The argumentless version of the \letterbackslash fancybreak command}
+%D
+%D \starttyping
+%D Imagine trying to live in a world dominated by dihydrogen oxide ...
+%D \fancybreak
+%D Imagine trying to live in a world dominated by dihydrogen oxide ...
+%D \stoptyping
+%D
+%D \input bryson
+%D \fancybreak
+%D \input bryson
+%D
+%D \extras
+%D {spaceinbetween}
+%D
+%D \subsubject{The “spaceinbetween” key}
+%D
+%D \starttyping
+%D \setupfancybreak[spaceinbetween=3*line]
+%D
+%D If [in 2600] you stacked all the new books being published ...
+%D \fancybreak
+%D If [in 2600] you stacked all the new books being published ...
+%D \stoptyping
+%D
+%D \start
+%D
+%D \setupfancybreak[spaceinbetween=3*line]
+%D
+%D \input hawking
+%D \fancybreak
+%D \input hawking
+%D
+%D \stop
+%D
+%D \extras
+%D {symbol}
+%D
+%D \subsubject{The “symbol” key}
+%D
+%D \starttyping
+%D \setupfancybreak[symbol=star]
+%D
+%D This nation, turning 100 years old, had no {\em Odyssey}, ...
+%D \fancybreak
+%D This nation, turning 100 years old, had no {\em Odyssey}, ...
+%D \stoptyping
+%D
+%D \start
+%D
+%D \setupfancybreak[symbol=star]
+%D
+%D \input davis
+%D \fancybreak
+%D \input davis
+%D
+%D \stop
+%D
+%D \macros
+%D {startfancybreak}
+%D
+%D \subsubject{The fancybreak environment}
+%D
+%D \starttyping
+%D \useMPlibrary[txt]
+%D
+%D \setupMPvariables[EnglishRule][width=.6\hsize]
+%D
+%D \setupfancybreak[spacebefore=line,spaceafter=line]
+%D
+%D The Earth, as a habitat for animal life, is in old age …
+%D
+%D \startfancybreak
+%D \dontleavehmode\useMPgraphic{EnglishRule}
+%D \stopfancybreak
+%D
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D \start
+%D
+%D \setupfancybreak[spacebefore=line,spaceafter=line]
+%D
+%D \useMPlibrary[txt]
+%D
+%D \setupMPvariables[EnglishRule][width=.6\hsize]
+%D
+%D \input ward
+%D
+%D \startfancybreak
+%D \dontleavehmode\useMPgraphic{EnglishRule}
+%D \stopfancybreak
+%D
+%D \input ward
+%D
+%D \stop
+%D
+%D \macros
+%D {definefancybreak}
+%D
+%D \subsubject{How to create new \letterbackslash fancybreak commands}
+%D
+%D \starttyping
+%D \definefancybreak[starbreak] [symbol=star]
+%D \definefancybreak[squarebreak][symbol=square]
+%D
+%D The Earth, as a habitat for animal life, is in old age …
+%D \starbreak
+%D The Earth, as a habitat for animal life, is in old age …
+%D \squarebreak
+%D The Earth, as a habitat for animal life, is in old age …
+%D \stoptyping
+%D
+%D \start
+%D
+%D \definefancybreak[starbreak] [symbol=star]
+%D \definefancybreak[squarebreak][symbol=square]
+%D
+%D \input ward
+%D \starbreak
+%D \input bryson
+%D \squarebreak
+%D \input zapf
+%D
+%D \stop
+%D
+%D \subject{Implementation}
+
+\writestatus{loading}{ConTeXt User Module / Fancybreak}
+
+\unprotect
+
+\startinterface all
+ \setinterfacevariable {fancybreak} {fancybreak}
+\stopinterface
+
+\installnamespace {fancybreak}
+\installnamespace {fancybreakalternative}
+\installnamespace {fancybreakrenderings}
+
+\installcommandhandler \????fancybreak {fancybreak} \????fancybreak
+\installcommandhandler \????fancybreakalternative {fancybreakalternative} \????fancybreakalternative
+
+%D \macros
+%D {setupfancybreak}
+%D
+%D \subsubject{\letterbackslash setupfancybreak}
+%D
+%D With the command \type{\setupfancybreak} one can change the settings of
+%D a previous created command, the two argument version change only the values
+%D of a certain command while the one argument version change the values of
+%D all commands.
+%D
+%D \showsetup{setupfancybreak}
+%D
+%D \macros
+%D {definefancybreak}
+%D
+%D \subsubject{\letterbackslash definefancybreak}
+%D
+%D The command \type{\fancybreak} is not hardcoded in the module but created with
+%D \type{\definefancybreak}. The command takes two arguments, the first is the name
+%D of the new command and the second parameter to change the style of the commands
+%D content and distances to the surrounding text.
+%D
+%D In \MKII\ users can only change the spacing before and after the content and
+%D the alignment of it while \MKIV\ user can also change the style and color of it.
+%D
+%D \showsetup{definefancybreak}
+
+\appendtoks
+ \setuevalue {\currentfancybreak}{\fancybreak [\currentfancybreak]}%
+ \setuevalue{\e!start\currentfancybreak}{\startfancybreak[\currentfancybreak]}%
+ \setuevalue{\e!stop \currentfancybreak}{\stopfancybreak }%
+\to \everydefinefancybreak
+
+%D \macros
+%D {fancybreak}
+%D
+%D \subsubject{\letterbackslash fancybreak}
+%D
+%D The main macro of the module is the \type{\fancybreak} command (or a user defined
+%D variant of it), it takes one argument which can be optional.
+%D
+%D \showsetup{fancybreak}
+%D \showsetup{startfancybreak}
+
+\definefancybreakalternative [\s!default] [\c!renderingsetup=\????fancybreakrenderings:\s!default]
+
+\startsetups[\????fancybreakrenderings:\s!default]
+ \blank[\fancybreakparameter\c!spacebefore]
+ \flushnextbox
+ \blank[\fancybreakparameter\c!spaceafter ]
+\stopsetups
+
+\definefancybreakalternative [\v!test] [\c!renderingsetup=\????fancybreakrenderings:\v!test]
+
+\startsetups[\????fancybreakrenderings:\v!test]
+ \setbox\scratchboxone\vbox{\blank[\fancybreakparameter\c!spacebefore]}
+ \setbox\scratchboxtwo\vbox{\blank[\fancybreakparameter\c!spaceafter ]}
+ \ifzeropt\pagetotal
+ % begin of new page
+ \else
+ \ifdim\dimexpr\pagegoal-\pagetotal\relax<\dimexpr\nextboxhtdp+\ht\scratchboxone+\ht\scratchboxtwo\relax
+ \page % not enough space for the content
+ \else
+ \texsetup{\????fancybreakrenderings:\s!default}
+ \fi
+ \fi
+\stopsetups
+
+\definefancybreakalternative [\v!auto] [\c!renderingsetup=\????fancybreakrenderings:\v!auto]
+
+\startsetups[\????fancybreakrenderings:\v!auto]
+ \setexpandedfancybreakparameter\c!spacebefore{\the\dimexpr\nextboxhtdp/2\relax}
+ \setexpandedfancybreakparameter\c!spaceafter {\the\dimexpr\nextboxhtdp \relax}
+ \texsetup{\????fancybreakrenderings:\v!test}
+\stopsetups
+
+\unexpanded\def\fancybreak
+ {\par
+ \begingroup
+ \dodoubleempty\fancybreak_direct}
+
+\def\fancybreak_direct
+ {\ifsecondargument
+ \expandafter\fancybreak_direct_double
+ \else\iffirstargument
+ \doubleexpandafter\fancybreak_direct_single
+ \else
+ \doubleexpandafter\fancybreak_direct_zero
+ \fi\fi}
+
+\def\fancybreak_direct_double[#environment][#parameters]%
+ {\edef\currentfancybreak{#environment}%
+ \ifcsname\currentfancybreakhash\s!parent\endcsname
+ % the current environment does exist
+ \else
+ \let\currentfancybreak\empty
+ \fi
+ \doifassignmentelse{#parameters}
+ {\setupcurrentfancybreak[#parameters]}
+ {\setfancybreakparameter\c!spaceinbetween{#parameters}}%
+ \doifnextbgroupelse\fancybreak_direct_yes\fancybreak_direct_nop}
+
+\def\fancybreak_direct_single[#environment][#parameters]%
+ {\doifassignmentelse{#environment}
+ {\let\currentfancybreak\empty
+ \setupcurrentfancybreak[#environment]}
+ {\edef\currentfancybreak{#environment}%
+ \ifcsname\currentfancybreakhash\s!parent\endcsname
+ % the argument is the name of a environment
+ \else
+ \let\currentfancybreak\empty
+ \setfancybreakparameter\c!spaceinbetween{#parameters}
+ \fi}%
+ \doifnextbgroupelse\fancybreak_direct_yes\fancybreak_direct_nop}
+
+\def\fancybreak_direct_zero[#environment][#parameters]%
+ {\let\currentfancybreak\empty
+ \doifnextbgroupelse\fancybreak_direct_yes\fancybreak_direct_nop}
+
+\def\fancybreak_direct_yes
+ {\forgetparindent
+ \dowithnextboxcontent
+ {\dostarttagged\t!division\currentfancybreak
+ \usealignparameter\fancybreakparameter
+ \usefancybreakstyleandcolor\c!style\c!color}
+ {\edef\currentfancybreakalternative{\fancybreakparameter\c!alternative}%
+ \ifcsname\currentfancybreakalternativehash\s!parent\endcsname
+ % valid argument for the alternative key
+ \else
+ \let\currentfancybreakalternative\s!default
+ \fi
+ \edef\p_fancybreak_renderingsetup{\fancybreakalternativeparameter\c!renderingsetup}%
+ \texsetup\p_fancybreak_renderingsetup
+ \dostoptagged
+ \checknextindentation[\fancybreakparameter\c!indentnext]%
+ \endgroup
+ \dorechecknextindentation}
+ \vbox}
+
+\def\fancybreak_direct_nop
+ {\doifsymboldefinedelse{\fancybreakparameter\c!symbol}
+ {\fancybreak_direct_yes{\symbol[\fancybreakparameter\c!symbol]}}
+ {\blank[\fancybreakparameter\c!spaceinbetween]%
+ \checknextindentation[\fancybreakparameter\c!indentnext]%
+ \endgroup
+ \dorechecknextindentation}}
+
+\unexpanded\def\startfancybreak
+ {\par
+ \begingroup
+ \dodoubleempty\fancybreak_start}
+
+\def\fancybreak_start
+ {\ifsecondargument
+ \expandafter\fancybreak_start_double
+ \else\iffirstargument
+ \doubleexpandafter\fancybreak_start_single
+ \else
+ \doubleexpandafter\fancybreak_start_zero
+ \fi\fi}
+
+\def\fancybreak_start_double[#environment][#parameters]%
+ {\edef\currentfancybreak{#environment}%
+ \ifcsname\currentfancybreakhash\s!parent\endcsname
+ % the current environment does exist
+ \else
+ \let\currentfancybreak\empty
+ \fi
+ \setupcurrentfancybreak[#parameters]%
+ \fancybreak_direct_yes\bgroup}
+
+\def\fancybreak_start_single[#environment][#parameters]%
+ {\doifassignmentelse{#environment}
+ {\let\currentfancybreak\empty
+ \setupcurrentfancybreak[#parameters]}
+ {\edef\currentfancybreak{#environment}%
+ \ifcsname\currentfancybreakhash\s!parent\endcsname
+ % the current environment does exist
+ \else
+ \let\currentfancybreak\empty
+ \fi}%
+ \fancybreak_direct_yes\bgroup}
+
+\def\fancybreak_start_zero[#environment][#parameters]%
+ {\let\currentfancybreak\empty
+ \fancybreak_direct_yes\bgroup}
+
+\unexpanded\def\stopfancybreak
+ {\egroup}
+
+\setupfancybreak
+ [ \c!spacebefore=,
+ \c!spaceafter=\v!nowhite,
+ \c!spaceinbetween=\v!line,
+ \c!align=\v!middle,
+ \c!indentnext=\v!yes,
+ \c!symbol=]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-french/VERSION b/obsolete/macros/context/contrib/context-french/VERSION
new file mode 100644
index 0000000000..743a197eb2
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-french/VERSION
@@ -0,0 +1 @@
+2011.11.09
diff --git a/obsolete/macros/context/contrib/context-french/doc/context/third/french/french-demo.pdf b/obsolete/macros/context/contrib/context-french/doc/context/third/french/french-demo.pdf
new file mode 100644
index 0000000000..bd5663436d
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-french/doc/context/third/french/french-demo.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-french/doc/context/third/french/french-doc.pdf b/obsolete/macros/context/contrib/context-french/doc/context/third/french/french-doc.pdf
new file mode 100644
index 0000000000..f88e63c177
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-french/doc/context/third/french/french-doc.pdf
@@ -0,0 +1,15251 @@
+%PDF-1.6
+%
+17 0 obj
+<<
+/Length 285298
+>>
+stream
+0 g 0 G
+0 g 0 G
+% mps graphic 1: begin
+q
+0 g 0 G
+0.800 g 0.800 G
+10.000000 M
+1 j
+146.021545 531.747223 m
+259.123962 531.747223 l
+259.123962 642.893082 l
+146.021545 642.893082 l
+146.021545 531.747223 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+151.974304 537.699982 m
+253.171204 537.699982 l
+253.171204 636.940323 l
+151.974304 636.940323 l
+151.974304 537.699982 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+157.927063 543.652740 m
+247.218445 543.652740 l
+247.218445 558.530548 l
+157.927063 558.530548 l
+157.927063 543.652740 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+157.927063 564.483307 m
+247.218445 564.483307 l
+247.218445 575.250946 l
+157.927063 575.250946 l
+157.927063 564.483307 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+157.927063 581.203705 m
+247.218445 581.203705 l
+247.218445 595.876572 l
+157.927063 595.876572 l
+157.927063 581.203705 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+157.927063 601.829330 m
+247.218445 601.829330 l
+247.218445 614.230484 l
+157.927063 614.230484 l
+157.927063 601.829330 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+157.927063 620.183243 m
+247.218445 620.183243 l
+247.218445 630.987564 l
+157.927063 630.987564 l
+157.927063 620.183243 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+366.952194 280.025528 m
+480.054611 280.025528 l
+480.054611 390.096481 l
+366.952194 390.096481 l
+366.952194 280.025528 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+372.904953 285.978287 m
+474.101852 285.978287 l
+474.101852 384.143723 l
+372.904953 384.143723 l
+372.904953 285.978287 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+378.857712 291.931046 m
+468.149094 291.931046 l
+468.149094 303.264725 l
+378.857712 303.264725 l
+378.857712 291.931046 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+378.857712 309.217484 m
+468.149094 309.217484 l
+468.149094 321.949249 l
+378.857712 321.949249 l
+378.857712 309.217484 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+378.857712 327.902008 m
+468.149094 327.902008 l
+468.149094 339.859528 l
+378.857712 339.859528 l
+378.857712 327.902008 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+378.857712 345.812286 m
+468.149094 345.812286 l
+468.149094 360.223419 l
+378.857712 360.223419 l
+378.857712 345.812286 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+378.857712 366.176178 m
+468.149094 366.176178 l
+468.149094 378.190964 l
+378.857712 378.190964 l
+378.857712 366.176178 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+163.936356 539.398102 m
+277.038773 539.398102 l
+277.038773 632.868515 l
+163.936356 632.868515 l
+163.936356 539.398102 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+169.889114 545.350861 m
+271.086014 545.350861 l
+271.086014 626.915756 l
+169.889114 626.915756 l
+169.889114 545.350861 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+175.841873 551.303619 m
+265.133255 551.303619 l
+265.133255 564.588486 l
+175.841873 564.588486 l
+175.841873 551.303619 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+175.841873 570.541245 m
+265.133255 570.541245 l
+265.133255 581.826111 l
+175.841873 581.826111 l
+175.841873 570.541245 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+175.841873 587.778870 m
+265.133255 587.778870 l
+265.133255 602.583176 l
+175.841873 602.583176 l
+175.841873 587.778870 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+175.841873 608.535934 m
+265.133255 608.535934 l
+265.133255 620.962997 l
+175.841873 620.962997 l
+175.841873 608.535934 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+284.318329 157.928925 m
+397.420746 157.928925 l
+397.420746 250.613861 l
+284.318329 250.613861 l
+284.318329 157.928925 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+290.271088 163.881683 m
+391.467987 163.881683 l
+391.467987 244.661102 l
+290.271088 244.661102 l
+290.271088 163.881683 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+296.223846 169.834442 m
+385.515228 169.834442 l
+385.515228 182.133591 l
+296.223846 182.133591 l
+296.223846 169.834442 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+296.223846 188.086349 m
+385.515228 188.086349 l
+385.515228 202.051514 l
+296.223846 202.051514 l
+296.223846 188.086349 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+296.223846 208.004272 m
+385.515228 208.004272 l
+385.515228 220.694458 l
+296.223846 220.694458 l
+296.223846 208.004272 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+296.223846 226.647217 m
+385.515228 226.647217 l
+385.515228 238.708344 l
+296.223846 238.708344 l
+296.223846 226.647217 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+58.247269 261.048172 m
+171.349686 261.048172 l
+171.349686 346.587616 l
+58.247269 346.587616 l
+58.247269 261.048172 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+64.200027 267.000931 m
+165.396927 267.000931 l
+165.396927 340.634857 l
+64.200027 340.634857 l
+64.200027 267.000931 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+70.152786 272.953690 m
+159.444168 272.953690 l
+159.444168 284.545120 l
+70.152786 284.545120 l
+70.152786 272.953690 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+70.152786 290.497879 m
+159.444168 290.497879 l
+159.444168 301.346802 l
+70.152786 301.346802 l
+70.152786 290.497879 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+70.152786 307.299561 m
+159.444168 307.299561 l
+159.444168 317.969604 l
+70.152786 317.969604 l
+70.152786 307.299561 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+70.152786 323.922363 m
+159.444168 323.922363 l
+159.444168 334.682098 l
+70.152786 334.682098 l
+70.152786 323.922363 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+244.672638 710.839630 m
+357.775055 710.839630 l
+357.775055 823.035156 l
+244.672638 823.035156 l
+244.672638 710.839630 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+250.625397 716.792389 m
+351.822296 716.792389 l
+351.822296 817.082397 l
+250.625397 817.082397 l
+250.625397 716.792389 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+256.578156 722.745148 m
+345.869537 722.745148 l
+345.869537 733.462860 l
+256.578156 733.462860 l
+256.578156 722.745148 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+256.578156 739.415619 m
+345.869537 739.415619 l
+345.869537 750.330765 l
+256.578156 750.330765 l
+256.578156 739.415619 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+256.578156 756.283524 m
+345.869537 756.283524 l
+345.869537 770.245193 l
+256.578156 770.245193 l
+256.578156 756.283524 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+256.578156 776.197952 m
+345.869537 776.197952 l
+345.869537 790.993958 l
+256.578156 790.993958 l
+256.578156 776.197952 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+256.578156 796.946716 m
+345.869537 796.946716 l
+345.869537 811.129639 l
+256.578156 811.129639 l
+256.578156 796.946716 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+330.823975 -25.719849 m
+443.926392 -25.719849 l
+443.926392 84.825668 l
+330.823975 84.825668 l
+330.823975 -25.719849 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+336.776733 -19.767090 m
+437.973633 -19.767090 l
+437.973633 78.872910 l
+336.776733 78.872910 l
+336.776733 -19.767090 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+342.729492 -13.814331 m
+432.020874 -13.814331 l
+432.020874 -0.327164 l
+342.729492 -0.327164 l
+342.729492 -13.814331 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+342.729492 5.625595 m
+432.020874 5.625595 l
+432.020874 18.196472 l
+342.729492 18.196472 l
+342.729492 5.625595 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+342.729492 24.149231 m
+432.020874 24.149231 l
+432.020874 38.181076 l
+342.729492 38.181076 l
+342.729492 24.149231 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+342.729492 44.133835 m
+432.020874 44.133835 l
+432.020874 54.723831 l
+342.729492 54.723831 l
+342.729492 44.133835 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+342.729492 60.676590 m
+432.020874 60.676590 l
+432.020874 72.920151 l
+342.729492 72.920151 l
+342.729492 60.676590 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+203.319672 604.248322 m
+316.422089 604.248322 l
+316.422089 697.895050 l
+203.319672 697.895050 l
+203.319672 604.248322 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+209.272430 610.201080 m
+310.469330 610.201080 l
+310.469330 691.942291 l
+209.272430 691.942291 l
+209.272430 610.201080 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+215.225189 616.153839 m
+304.516571 616.153839 l
+304.516571 628.769821 l
+215.225189 628.769821 l
+215.225189 616.153839 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+215.225189 634.722580 m
+304.516571 634.722580 l
+304.516571 646.369431 l
+215.225189 646.369431 l
+215.225189 634.722580 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+215.225189 652.322189 m
+304.516571 652.322189 l
+304.516571 665.365524 l
+215.225189 665.365524 l
+215.225189 652.322189 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+215.225189 671.318283 m
+304.516571 671.318283 l
+304.516571 685.989532 l
+215.225189 685.989532 l
+215.225189 671.318283 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-17.199310 -12.799042 m
+95.903107 -12.799042 l
+95.903107 95.868073 l
+-17.199310 95.868073 l
+-17.199310 -12.799042 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-11.246552 -6.846283 m
+89.950348 -6.846283 l
+89.950348 89.915314 l
+-11.246552 89.915314 l
+-11.246552 -6.846283 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-5.293793 -0.893524 m
+83.997589 -0.893524 l
+83.997589 11.865845 l
+-5.293793 11.865845 l
+-5.293793 -0.893524 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-5.293793 17.818604 m
+83.997589 17.818604 l
+83.997589 29.249878 l
+-5.293793 29.249878 l
+-5.293793 17.818604 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-5.293793 35.202637 m
+83.997589 35.202637 l
+83.997589 47.382965 l
+-5.293793 47.382965 l
+-5.293793 35.202637 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-5.293793 53.335724 m
+83.997589 53.335724 l
+83.997589 64.460587 l
+-5.293793 64.460587 l
+-5.293793 53.335724 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-5.293793 70.413345 m
+83.997589 70.413345 l
+83.997589 83.962555 l
+-5.293793 83.962555 l
+-5.293793 70.413345 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+278.721771 664.996979 m
+391.824188 664.996979 l
+391.824188 778.690475 l
+278.721771 778.690475 l
+278.721771 664.996979 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+284.674530 670.949738 m
+385.871429 670.949738 l
+385.871429 772.737717 l
+284.674530 772.737717 l
+284.674530 670.949738 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+290.627289 676.902496 m
+379.918671 676.902496 l
+379.918671 689.448807 l
+290.627289 689.448807 l
+290.627289 676.902496 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+290.627289 695.401566 m
+379.918671 695.401566 l
+379.918671 706.038483 l
+290.627289 706.038483 l
+290.627289 695.401566 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+290.627289 711.991241 m
+379.918671 711.991241 l
+379.918671 725.736526 l
+290.627289 725.736526 l
+290.627289 711.991241 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+290.627289 731.689285 m
+379.918671 731.689285 l
+379.918671 746.108719 l
+290.627289 746.108719 l
+290.627289 731.689285 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+290.627289 752.061478 m
+379.918671 752.061478 l
+379.918671 766.784958 l
+290.627289 766.784958 l
+290.627289 752.061478 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+117.430695 705.322083 m
+230.533112 705.322083 l
+230.533112 816.381516 l
+117.430695 816.381516 l
+117.430695 705.322083 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+123.383453 711.274841 m
+224.580353 711.274841 l
+224.580353 810.428757 l
+123.383453 810.428757 l
+123.383453 711.274841 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.336212 717.227600 m
+218.627594 717.227600 l
+218.627594 729.324448 l
+129.336212 729.324448 l
+129.336212 717.227600 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.336212 735.277206 m
+218.627594 735.277206 l
+218.627594 747.956360 l
+129.336212 747.956360 l
+129.336212 735.277206 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.336212 753.909119 m
+218.627594 753.909119 l
+218.627594 767.911819 l
+129.336212 767.911819 l
+129.336212 753.909119 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.336212 773.864578 m
+218.627594 773.864578 l
+218.627594 785.911453 l
+129.336212 785.911453 l
+129.336212 773.864578 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.336212 791.864212 m
+218.627594 791.864212 l
+218.627594 804.475998 l
+129.336212 804.475998 l
+129.336212 791.864212 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-44.303223 504.041595 m
+68.799194 504.041595 l
+68.799194 610.798965 l
+-44.303223 610.798965 l
+-44.303223 504.041595 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-38.350464 509.994354 m
+62.846436 509.994354 l
+62.846436 604.846207 l
+-38.350464 604.846207 l
+-38.350464 509.994354 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.397705 515.947113 m
+56.893677 515.947113 l
+56.893677 526.800125 l
+-32.397705 526.800125 l
+-32.397705 515.947113 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.397705 532.752884 m
+56.893677 532.752884 l
+56.893677 547.537186 l
+-32.397705 547.537186 l
+-32.397705 532.752884 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.397705 553.489944 m
+56.893677 553.489944 l
+56.893677 564.458710 l
+-32.397705 564.458710 l
+-32.397705 553.489944 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.397705 570.411469 m
+56.893677 570.411469 l
+56.893677 581.661453 l
+-32.397705 581.661453 l
+-32.397705 570.411469 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.397705 587.614212 m
+56.893677 587.614212 l
+56.893677 598.893448 l
+-32.397705 598.893448 l
+-32.397705 587.614212 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+416.443390 376.495163 m
+529.545807 376.495163 l
+529.545807 487.257599 l
+416.443390 487.257599 l
+416.443390 376.495163 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+422.396149 382.447922 m
+523.593048 382.447922 l
+523.593048 481.304840 l
+422.396149 481.304840 l
+422.396149 382.447922 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+428.348907 388.400681 m
+517.640289 388.400681 l
+517.640289 402.666611 l
+428.348907 402.666611 l
+428.348907 388.400681 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+428.348907 408.619370 m
+517.640289 408.619370 l
+517.640289 421.684662 l
+428.348907 421.684662 l
+428.348907 408.619370 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+428.348907 427.637421 m
+517.640289 427.637421 l
+517.640289 440.058899 l
+428.348907 440.058899 l
+428.348907 427.637421 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+428.348907 446.011658 m
+517.640289 446.011658 l
+517.640289 456.813858 l
+428.348907 456.813858 l
+428.348907 446.011658 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+428.348907 462.766617 m
+517.640289 462.766617 l
+517.640289 475.352081 l
+428.348907 475.352081 l
+428.348907 462.766617 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+110.336426 240.004242 m
+223.438843 240.004242 l
+223.438843 330.610367 l
+110.336426 330.610367 l
+110.336426 240.004242 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+116.289185 245.957001 m
+217.486084 245.957001 l
+217.486084 324.657608 l
+116.289185 324.657608 l
+116.289185 245.957001 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+122.241943 251.909760 m
+211.533325 251.909760 l
+211.533325 262.529373 l
+122.241943 262.529373 l
+122.241943 251.909760 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+122.241943 268.482132 m
+211.533325 268.482132 l
+211.533325 280.185471 l
+122.241943 280.185471 l
+122.241943 268.482132 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+122.241943 286.138229 m
+211.533325 286.138229 l
+211.533325 297.885513 l
+122.241943 297.885513 l
+122.241943 286.138229 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+122.241943 303.838272 m
+211.533325 303.838272 l
+211.533325 318.704849 l
+122.241943 318.704849 l
+122.241943 303.838272 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+264.730484 10.500061 m
+377.832901 10.500061 l
+377.832901 122.682205 l
+264.730484 122.682205 l
+264.730484 10.500061 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+270.683243 16.452820 m
+371.880142 16.452820 l
+371.880142 116.729446 l
+270.683243 116.729446 l
+270.683243 16.452820 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+276.636002 22.405579 m
+365.927383 22.405579 l
+365.927383 36.623398 l
+276.636002 36.623398 l
+276.636002 22.405579 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+276.636002 42.576157 m
+365.927383 42.576157 l
+365.927383 55.352936 l
+276.636002 55.352936 l
+276.636002 42.576157 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+276.636002 61.305695 m
+365.927383 61.305695 l
+365.927383 72.981689 l
+276.636002 72.981689 l
+276.636002 61.305695 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+276.636002 78.934448 m
+365.927383 78.934448 l
+365.927383 90.520905 l
+276.636002 90.520905 l
+276.636002 78.934448 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+276.636002 96.473663 m
+365.927383 96.473663 l
+365.927383 110.776688 l
+276.636002 110.776688 l
+276.636002 96.473663 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+230.423584 86.310394 m
+343.526001 86.310394 l
+343.526001 184.061417 l
+230.423584 184.061417 l
+230.423584 86.310394 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+236.376343 92.263153 m
+337.573242 92.263153 l
+337.573242 178.108658 l
+236.376343 178.108658 l
+236.376343 92.263153 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+242.329102 98.215912 m
+331.620483 98.215912 l
+331.620483 112.738251 l
+242.329102 112.738251 l
+242.329102 98.215912 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+242.329102 118.691010 m
+331.620483 118.691010 l
+331.620483 131.449387 l
+242.329102 131.449387 l
+242.329102 118.691010 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+242.329102 137.402145 m
+331.620483 137.402145 l
+331.620483 151.657028 l
+242.329102 151.657028 l
+242.329102 137.402145 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+242.329102 157.609787 m
+331.620483 157.609787 l
+331.620483 172.155899 l
+242.329102 172.155899 l
+242.329102 157.609787 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+285.462921 641.257278 m
+398.565338 641.257278 l
+398.565338 736.031738 l
+285.462921 736.031738 l
+285.462921 641.257278 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+291.415680 647.210037 m
+392.612579 647.210037 l
+392.612579 730.078979 l
+291.415680 730.078979 l
+291.415680 647.210037 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+297.368439 653.162796 m
+386.659821 653.162796 l
+386.659821 665.426575 l
+297.368439 665.426575 l
+297.368439 653.162796 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+297.368439 671.379333 m
+386.659821 671.379333 l
+386.659821 685.555542 l
+297.368439 685.555542 l
+297.368439 671.379333 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+297.368439 691.508301 m
+386.659821 691.508301 l
+386.659821 705.724808 l
+297.368439 705.724808 l
+297.368439 691.508301 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+297.368439 711.677567 m
+386.659821 711.677567 l
+386.659821 724.126221 l
+297.368439 724.126221 l
+297.368439 711.677567 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+460.937637 253.324783 m
+574.040054 253.324783 l
+574.040054 348.556290 l
+460.937637 348.556290 l
+460.937637 253.324783 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+466.890396 259.277542 m
+568.087296 259.277542 l
+568.087296 342.603531 l
+466.890396 342.603531 l
+466.890396 259.277542 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+472.843155 265.230301 m
+562.134537 265.230301 l
+562.134537 277.344437 l
+472.843155 277.344437 l
+472.843155 265.230301 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+472.843155 283.297195 m
+562.134537 283.297195 l
+562.134537 298.018295 l
+472.843155 298.018295 l
+472.843155 283.297195 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+472.843155 303.971054 m
+562.134537 303.971054 l
+562.134537 318.823807 l
+472.843155 318.823807 l
+472.843155 303.971054 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+472.843155 324.776566 m
+562.134537 324.776566 l
+562.134537 336.650772 l
+472.843155 336.650772 l
+472.843155 324.776566 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-7.453232 436.240845 m
+105.649185 436.240845 l
+105.649185 547.115570 l
+-7.453232 547.115570 l
+-7.453232 436.240845 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-1.500473 442.193604 m
+99.696426 442.193604 l
+99.696426 541.162811 l
+-1.500473 541.162811 l
+-1.500473 442.193604 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+4.452286 448.146362 m
+93.743668 448.146362 l
+93.743668 460.457352 l
+4.452286 460.457352 l
+4.452286 448.146362 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+4.452286 466.410110 m
+93.743668 466.410110 l
+93.743668 479.529037 l
+4.452286 479.529037 l
+4.452286 466.410110 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+4.452286 485.481796 m
+93.743668 485.481796 l
+93.743668 499.036575 l
+4.452286 499.036575 l
+4.452286 485.481796 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+4.452286 504.989334 m
+93.743668 504.989334 l
+93.743668 517.796661 l
+4.452286 517.796661 l
+4.452286 504.989334 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+4.452286 523.749420 m
+93.743668 523.749420 l
+93.743668 535.210052 l
+4.452286 535.210052 l
+4.452286 523.749420 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+19.018372 573.347641 m
+132.120789 573.347641 l
+132.120789 681.482346 l
+19.018372 681.482346 l
+19.018372 573.347641 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+24.971130 579.300400 m
+126.168030 579.300400 l
+126.168030 675.529587 l
+24.971130 675.529587 l
+24.971130 579.300400 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+30.923889 585.253159 m
+120.215271 585.253159 l
+120.215271 597.362671 l
+30.923889 597.362671 l
+30.923889 585.253159 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+30.923889 603.315430 m
+120.215271 603.315430 l
+120.215271 616.567413 l
+30.923889 616.567413 l
+30.923889 603.315430 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+30.923889 622.520172 m
+120.215271 622.520172 l
+120.215271 633.822464 l
+30.923889 633.822464 l
+30.923889 622.520172 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+30.923889 639.775223 m
+120.215271 639.775223 l
+120.215271 651.489182 l
+30.923889 651.489182 l
+30.923889 639.775223 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+30.923889 657.441940 m
+120.215271 657.441940 l
+120.215271 669.576828 l
+30.923889 669.576828 l
+30.923889 657.441940 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+492.535019 299.335678 m
+605.637436 299.335678 l
+605.637436 412.805847 l
+492.535019 412.805847 l
+492.535019 299.335678 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+498.487778 305.288437 m
+599.684677 305.288437 l
+599.684677 406.853088 l
+498.487778 406.853088 l
+498.487778 305.288437 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+504.440536 311.241196 m
+593.731918 311.241196 l
+593.731918 325.624741 l
+504.440536 325.624741 l
+504.440536 311.241196 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+504.440536 331.577499 m
+593.731918 331.577499 l
+593.731918 346.442108 l
+504.440536 346.442108 l
+504.440536 331.577499 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+504.440536 352.394867 m
+593.731918 352.394867 l
+593.731918 365.234818 l
+504.440536 365.234818 l
+504.440536 352.394867 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+504.440536 371.187576 m
+593.731918 371.187576 l
+593.731918 384.267319 l
+504.440536 384.267319 l
+504.440536 371.187576 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+504.440536 390.220078 m
+593.731918 390.220078 l
+593.731918 400.900330 l
+504.440536 400.900330 l
+504.440536 390.220078 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-52.744431 662.455658 m
+60.357986 662.455658 l
+60.357986 776.069489 l
+-52.744431 776.069489 l
+-52.744431 662.455658 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-46.791672 668.408417 m
+54.405228 668.408417 l
+54.405228 770.116730 l
+-46.791672 770.116730 l
+-46.791672 668.408417 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-40.838913 674.361176 m
+48.452469 674.361176 l
+48.452469 687.530289 l
+-40.838913 687.530289 l
+-40.838913 674.361176 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-40.838913 693.483047 m
+48.452469 693.483047 l
+48.452469 706.811935 l
+-40.838913 706.811935 l
+-40.838913 693.483047 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-40.838913 712.764694 m
+48.452469 712.764694 l
+48.452469 725.799789 l
+-40.838913 725.799789 l
+-40.838913 712.764694 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-40.838913 731.752548 m
+48.452469 731.752548 l
+48.452469 746.331375 l
+-40.838913 746.331375 l
+-40.838913 731.752548 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-40.838913 752.284134 m
+48.452469 752.284134 l
+48.452469 764.163971 l
+-40.838913 764.163971 l
+-40.838913 752.284134 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+525.131119 -48.806931 m
+638.233536 -48.806931 l
+638.233536 64.400848 l
+525.131119 64.400848 l
+525.131119 -48.806931 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+531.083878 -42.854172 m
+632.280777 -42.854172 l
+632.280777 58.448090 l
+531.083878 58.448090 l
+531.083878 -42.854172 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+537.036636 -36.901413 m
+626.328018 -36.901413 l
+626.328018 -22.721207 l
+537.036636 -22.721207 l
+537.036636 -36.901413 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+537.036636 -16.768448 m
+626.328018 -16.768448 l
+626.328018 -5.888870 l
+537.036636 -5.888870 l
+537.036636 -16.768448 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+537.036636 0.063889 m
+626.328018 0.063889 l
+626.328018 13.097900 l
+537.036636 13.097900 l
+537.036636 0.063889 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+537.036636 19.050659 m
+626.328018 19.050659 l
+626.328018 31.974594 l
+537.036636 31.974594 l
+537.036636 19.050659 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+537.036636 37.927353 m
+626.328018 37.927353 l
+626.328018 52.495331 l
+537.036636 52.495331 l
+537.036636 37.927353 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+82.328400 477.967468 m
+195.430817 477.967468 l
+195.430817 590.946014 l
+82.328400 590.946014 l
+82.328400 477.967468 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+88.281158 483.920227 m
+189.478058 483.920227 l
+189.478058 584.993256 l
+88.281158 584.993256 l
+88.281158 483.920227 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+94.233917 489.872986 m
+183.525299 489.872986 l
+183.525299 503.555588 l
+94.233917 503.555588 l
+94.233917 489.872986 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+94.233917 509.508347 m
+183.525299 509.508347 l
+183.525299 522.212875 l
+94.233917 522.212875 l
+94.233917 509.508347 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+94.233917 528.165634 m
+183.525299 528.165634 l
+183.525299 538.981888 l
+94.233917 538.981888 l
+94.233917 528.165634 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+94.233917 544.934647 m
+183.525299 544.934647 l
+183.525299 558.484085 l
+94.233917 558.484085 l
+94.233917 544.934647 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+94.233917 564.436844 m
+183.525299 564.436844 l
+183.525299 579.040497 l
+94.233917 579.040497 l
+94.233917 564.436844 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+260.923691 133.380920 m
+374.026108 133.380920 l
+374.026108 245.051666 l
+260.923691 245.051666 l
+260.923691 133.380920 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+266.876450 139.333679 m
+368.073349 139.333679 l
+368.073349 239.098907 l
+266.876450 239.098907 l
+266.876450 139.333679 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.829208 145.286438 m
+362.120590 145.286438 l
+362.120590 156.752487 l
+272.829208 156.752487 l
+272.829208 145.286438 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.829208 162.705246 m
+362.120590 162.705246 l
+362.120590 177.035034 l
+272.829208 177.035034 l
+272.829208 162.705246 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.829208 182.987793 m
+362.120590 182.987793 l
+362.120590 196.510590 l
+272.829208 196.510590 l
+272.829208 182.987793 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.829208 202.463348 m
+362.120590 202.463348 l
+362.120590 214.352875 l
+272.829208 214.352875 l
+272.829208 202.463348 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.829208 220.305634 m
+362.120590 220.305634 l
+362.120590 233.146149 l
+272.829208 233.146149 l
+272.829208 220.305634 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+244.015411 73.563080 m
+357.117828 73.563080 l
+357.117828 181.214828 l
+244.015411 181.214828 l
+244.015411 73.563080 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+249.968170 79.515839 m
+351.165070 79.515839 l
+351.165070 175.262070 l
+249.968170 175.262070 l
+249.968170 79.515839 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+255.920929 85.468597 m
+345.212311 85.468597 l
+345.212311 96.228073 l
+255.920929 96.228073 l
+255.920929 85.468597 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+255.920929 102.180832 m
+345.212311 102.180832 l
+345.212311 114.476959 l
+255.920929 114.476959 l
+255.920929 102.180832 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+255.920929 120.429718 m
+345.212311 120.429718 l
+345.212311 132.067917 l
+255.920929 132.067917 l
+255.920929 120.429718 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+255.920929 138.020676 m
+345.212311 138.020676 l
+345.212311 150.060196 l
+255.920929 150.060196 l
+255.920929 138.020676 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+255.920929 156.012955 m
+345.212311 156.012955 l
+345.212311 169.309311 l
+255.920929 169.309311 l
+255.920929 156.012955 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+291.489548 335.328094 m
+404.591965 335.328094 l
+404.591965 425.921722 l
+291.489548 425.921722 l
+291.489548 335.328094 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+297.442307 341.280853 m
+398.639206 341.280853 l
+398.639206 419.968964 l
+297.442307 419.968964 l
+297.442307 341.280853 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+303.395065 347.233612 m
+392.686447 347.233612 l
+392.686447 358.144547 l
+303.395065 358.144547 l
+303.395065 347.233612 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+303.395065 364.097305 m
+392.686447 364.097305 l
+392.686447 376.026611 l
+303.395065 376.026611 l
+303.395065 364.097305 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+303.395065 381.979370 m
+392.686447 381.979370 l
+392.686447 394.029099 l
+303.395065 394.029099 l
+303.395065 381.979370 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+303.395065 399.981857 m
+392.686447 399.981857 l
+392.686447 414.016205 l
+303.395065 414.016205 l
+303.395065 399.981857 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+5.614655 238.853546 m
+118.717072 238.853546 l
+118.717072 326.900146 l
+5.614655 326.900146 l
+5.614655 238.853546 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+11.567413 244.806305 m
+112.764313 244.806305 l
+112.764313 320.947388 l
+11.567413 320.947388 l
+11.567413 244.806305 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+17.520172 250.759064 m
+106.811554 250.759064 l
+106.811554 261.383713 l
+17.520172 261.383713 l
+17.520172 250.759064 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+17.520172 267.336472 m
+106.811554 267.336472 l
+106.811554 278.401901 l
+17.520172 278.401901 l
+17.520172 267.336472 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+17.520172 284.354660 m
+106.811554 284.354660 l
+106.811554 295.163300 l
+17.520172 295.163300 l
+17.520172 284.354660 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+17.520172 301.116058 m
+106.811554 301.116058 l
+106.811554 314.994629 l
+17.520172 314.994629 l
+17.520172 301.116058 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+534.164948 92.349411 m
+647.267365 92.349411 l
+647.267365 201.033569 l
+534.164948 201.033569 l
+534.164948 92.349411 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+540.117706 98.302170 m
+641.314606 98.302170 l
+641.314606 195.080811 l
+540.117706 195.080811 l
+540.117706 98.302170 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+546.070465 104.254929 m
+635.361847 104.254929 l
+635.361847 115.000778 l
+546.070465 115.000778 l
+546.070465 104.254929 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+546.070465 120.953537 m
+635.361847 120.953537 l
+635.361847 131.434814 l
+546.070465 131.434814 l
+546.070465 120.953537 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+546.070465 137.387573 m
+635.361847 137.387573 l
+635.361847 151.260941 l
+546.070465 151.260941 l
+546.070465 137.387573 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+546.070465 157.213699 m
+635.361847 157.213699 l
+635.361847 169.805740 l
+546.070465 169.805740 l
+546.070465 157.213699 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+546.070465 175.758499 m
+635.361847 175.758499 l
+635.361847 189.128052 l
+546.070465 189.128052 l
+546.070465 175.758499 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+414.439423 220.083008 m
+527.541840 220.083008 l
+527.541840 329.822556 l
+414.439423 329.822556 l
+414.439423 220.083008 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+420.392181 226.035767 m
+521.589081 226.035767 l
+521.589081 323.869797 l
+420.392181 323.869797 l
+420.392181 226.035767 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+426.344940 231.988525 m
+515.636322 231.988525 l
+515.636322 245.928085 l
+426.344940 245.928085 l
+426.344940 231.988525 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+426.344940 251.880844 m
+515.636322 251.880844 l
+515.636322 264.165894 l
+426.344940 264.165894 l
+426.344940 251.880844 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+426.344940 270.118652 m
+515.636322 270.118652 l
+515.636322 281.737198 l
+426.344940 281.737198 l
+426.344940 270.118652 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+426.344940 287.689957 m
+515.636322 287.689957 l
+515.636322 299.200027 l
+426.344940 299.200027 l
+426.344940 287.689957 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+426.344940 305.152786 m
+515.636322 305.152786 l
+515.636322 317.917038 l
+426.344940 317.917038 l
+426.344940 305.152786 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+99.407394 497.481430 m
+212.509811 497.481430 l
+212.509811 610.260696 l
+99.407394 610.260696 l
+99.407394 497.481430 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+105.360153 503.434189 m
+206.557053 503.434189 l
+206.557053 604.307938 l
+105.360153 604.307938 l
+105.360153 503.434189 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+111.312912 509.386948 m
+200.604294 509.386948 l
+200.604294 521.310120 l
+111.312912 521.310120 l
+111.312912 509.386948 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+111.312912 527.262878 m
+200.604294 527.262878 l
+200.604294 540.914124 l
+111.312912 540.914124 l
+111.312912 527.262878 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+111.312912 546.866882 m
+200.604294 546.866882 l
+200.604294 560.676117 l
+111.312912 560.676117 l
+111.312912 546.866882 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+111.312912 566.628876 m
+200.604294 566.628876 l
+200.604294 578.319336 l
+111.312912 578.319336 l
+111.312912 566.628876 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+111.312912 584.272095 m
+200.604294 584.272095 l
+200.604294 598.355179 l
+111.312912 598.355179 l
+111.312912 584.272095 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-16.937134 653.879868 m
+96.165283 653.879868 l
+96.165283 747.280350 l
+-16.937134 747.280350 l
+-16.937134 653.879868 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-10.984375 659.832626 m
+90.212524 659.832626 l
+90.212524 741.327591 l
+-10.984375 741.327591 l
+-10.984375 659.832626 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-5.031616 665.785385 m
+84.259766 665.785385 l
+84.259766 679.213608 l
+-5.031616 679.213608 l
+-5.031616 665.785385 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-5.031616 685.166367 m
+84.259766 685.166367 l
+84.259766 698.271530 l
+-5.031616 698.271530 l
+-5.031616 685.166367 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-5.031616 704.224289 m
+84.259766 704.224289 l
+84.259766 718.561707 l
+-5.031616 718.561707 l
+-5.031616 704.224289 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-5.031616 724.514465 m
+84.259766 724.514465 l
+84.259766 735.374832 l
+-5.031616 735.374832 l
+-5.031616 724.514465 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+104.685303 395.096008 m
+217.787720 395.096008 l
+217.787720 508.020630 l
+104.685303 508.020630 l
+104.685303 395.096008 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+110.638062 401.048767 m
+211.834961 401.048767 l
+211.834961 502.067871 l
+110.638062 502.067871 l
+110.638062 401.048767 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+116.590820 407.001526 m
+205.882202 407.001526 l
+205.882202 419.219543 l
+116.590820 419.219543 l
+116.590820 407.001526 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+116.590820 425.172302 m
+205.882202 425.172302 l
+205.882202 439.860153 l
+116.590820 439.860153 l
+116.590820 425.172302 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+116.590820 445.812912 m
+205.882202 445.812912 l
+205.882202 458.125397 l
+116.590820 458.125397 l
+116.590820 445.812912 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+116.590820 464.078156 m
+205.882202 464.078156 l
+205.882202 478.221085 l
+116.590820 478.221085 l
+116.590820 464.078156 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+116.590820 484.173843 m
+205.882202 484.173843 l
+205.882202 496.115112 l
+116.590820 496.115112 l
+116.590820 484.173843 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-35.260605 505.823761 m
+77.841812 505.823761 l
+77.841812 618.422348 l
+-35.260605 618.422348 l
+-35.260605 505.823761 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-29.307846 511.776520 m
+71.889053 511.776520 l
+71.889053 612.469589 l
+-29.307846 612.469589 l
+-29.307846 511.776520 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-23.355087 517.729279 m
+65.936295 517.729279 l
+65.936295 531.301468 l
+-23.355087 531.301468 l
+-23.355087 517.729279 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-23.355087 537.254227 m
+65.936295 537.254227 l
+65.936295 550.424988 l
+-23.355087 550.424988 l
+-23.355087 537.254227 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-23.355087 556.377747 m
+65.936295 556.377747 l
+65.936295 566.826431 l
+-23.355087 566.826431 l
+-23.355087 556.377747 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-23.355087 572.779190 m
+65.936295 572.779190 l
+65.936295 586.556381 l
+-23.355087 586.556381 l
+-23.355087 572.779190 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-23.355087 592.509140 m
+65.936295 592.509140 l
+65.936295 606.516830 l
+-23.355087 606.516830 l
+-23.355087 592.509140 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+467.570679 677.516449 m
+580.673096 677.516449 l
+580.673096 789.268661 l
+467.570679 789.268661 l
+467.570679 677.516449 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+473.523438 683.469208 m
+574.720337 683.469208 l
+574.720337 783.315903 l
+473.523438 783.315903 l
+473.523438 683.469208 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+479.476196 689.421967 m
+568.767578 689.421967 l
+568.767578 700.637054 l
+479.476196 700.637054 l
+479.476196 689.421967 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+479.476196 706.589813 m
+568.767578 706.589813 l
+568.767578 718.413757 l
+479.476196 718.413757 l
+479.476196 706.589813 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+479.476196 724.366516 m
+568.767578 724.366516 l
+568.767578 737.609299 l
+479.476196 737.609299 l
+479.476196 724.366516 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+479.476196 743.562057 m
+568.767578 743.562057 l
+568.767578 758.436340 l
+479.476196 758.436340 l
+479.476196 743.562057 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+479.476196 764.389099 m
+568.767578 764.389099 l
+568.767578 777.363144 l
+479.476196 777.363144 l
+479.476196 764.389099 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+26.211121 41.596695 m
+139.313538 41.596695 l
+139.313538 152.156021 l
+26.211121 152.156021 l
+26.211121 41.596695 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+32.163879 47.549454 m
+133.360779 47.549454 l
+133.360779 146.203262 l
+32.163879 146.203262 l
+32.163879 47.549454 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+38.116638 53.502213 m
+127.408020 53.502213 l
+127.408020 68.339020 l
+38.116638 68.339020 l
+38.116638 53.502213 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+38.116638 74.291779 m
+127.408020 74.291779 l
+127.408020 85.983353 l
+38.116638 85.983353 l
+38.116638 74.291779 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+38.116638 91.936111 m
+127.408020 91.936111 l
+127.408020 105.073227 l
+38.116638 105.073227 l
+38.116638 91.936111 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+38.116638 111.025986 m
+127.408020 111.025986 l
+127.408020 122.171661 l
+38.116638 122.171661 l
+38.116638 111.025986 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+38.116638 128.124420 m
+127.408020 128.124420 l
+127.408020 140.250504 l
+38.116638 140.250504 l
+38.116638 128.124420 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+198.877014 359.130585 m
+311.979431 359.130585 l
+311.979431 456.313980 l
+198.877014 456.313980 l
+198.877014 359.130585 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+204.829773 365.083344 m
+306.026672 365.083344 l
+306.026672 450.361221 l
+204.829773 450.361221 l
+204.829773 365.083344 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+210.782532 371.036102 m
+300.073914 371.036102 l
+300.073914 385.233658 l
+210.782532 385.233658 l
+210.782532 371.036102 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+210.782532 391.186417 m
+300.073914 391.186417 l
+300.073914 405.032349 l
+210.782532 405.032349 l
+210.782532 391.186417 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+210.782532 410.985107 m
+300.073914 410.985107 l
+300.073914 425.517349 l
+210.782532 425.517349 l
+210.782532 410.985107 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+210.782532 431.470108 m
+300.073914 431.470108 l
+300.073914 444.408463 l
+210.782532 444.408463 l
+210.782532 431.470108 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+353.242798 -36.081207 m
+466.345215 -36.081207 l
+466.345215 53.720184 l
+353.242798 53.720184 l
+353.242798 -36.081207 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+359.195557 -30.128448 m
+460.392456 -30.128448 l
+460.392456 47.767426 l
+359.195557 47.767426 l
+359.195557 -30.128448 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+365.148315 -24.175690 m
+454.439697 -24.175690 l
+454.439697 -9.354584 l
+365.148315 -9.354584 l
+365.148315 -24.175690 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+365.148315 -3.401825 m
+454.439697 -3.401825 l
+454.439697 8.140289 l
+365.148315 8.140289 l
+365.148315 -3.401825 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+365.148315 14.093048 m
+454.439697 14.093048 l
+454.439697 24.540054 l
+365.148315 24.540054 l
+365.148315 14.093048 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+365.148315 30.492813 m
+454.439697 30.492813 l
+454.439697 41.814667 l
+365.148315 41.814667 l
+365.148315 30.492813 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+451.402618 5.240555 m
+564.505035 5.240555 l
+564.505035 94.389725 l
+451.402618 94.389725 l
+451.402618 5.240555 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+457.355377 11.193314 m
+558.552277 11.193314 l
+558.552277 88.436966 l
+457.355377 88.436966 l
+457.355377 11.193314 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.308136 17.146072 m
+552.599518 17.146072 l
+552.599518 27.937027 l
+463.308136 27.937027 l
+463.308136 17.146072 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.308136 33.889786 m
+552.599518 33.889786 l
+552.599518 47.561401 l
+463.308136 47.561401 l
+463.308136 33.889786 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.308136 53.514160 m
+552.599518 53.514160 l
+552.599518 64.667740 l
+463.308136 64.667740 l
+463.308136 53.514160 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.308136 70.620499 m
+552.599518 70.620499 l
+552.599518 82.484207 l
+463.308136 82.484207 l
+463.308136 70.620499 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+504.323273 500.891556 m
+617.425690 500.891556 l
+617.425690 594.209457 l
+504.323273 594.209457 l
+504.323273 500.891556 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+510.276031 506.844315 m
+611.472931 506.844315 l
+611.472931 588.256699 l
+510.276031 588.256699 l
+510.276031 506.844315 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+516.228790 512.797073 m
+605.520172 512.797073 l
+605.520172 526.250687 l
+516.228790 526.250687 l
+516.228790 512.797073 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+516.228790 532.203445 m
+605.520172 532.203445 l
+605.520172 543.712585 l
+516.228790 543.712585 l
+516.228790 532.203445 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+516.228790 549.665344 m
+605.520172 549.665344 l
+605.520172 561.605545 l
+516.228790 561.605545 l
+516.228790 549.665344 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+516.228790 567.558304 m
+605.520172 567.558304 l
+605.520172 582.303940 l
+516.228790 582.303940 l
+516.228790 567.558304 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+489.739487 111.829514 m
+602.841904 111.829514 l
+602.841904 222.213058 l
+489.739487 222.213058 l
+489.739487 111.829514 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+495.692245 117.782272 m
+596.889145 117.782272 l
+596.889145 216.260300 l
+495.692245 216.260300 l
+495.692245 117.782272 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.645004 123.735031 m
+590.936386 123.735031 l
+590.936386 136.419479 l
+501.645004 136.419479 l
+501.645004 123.735031 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.645004 142.372238 m
+590.936386 142.372238 l
+590.936386 154.033005 l
+501.645004 154.033005 l
+501.645004 142.372238 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.645004 159.985764 m
+590.936386 159.985764 l
+590.936386 173.164322 l
+501.645004 173.164322 l
+501.645004 159.985764 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.645004 179.117081 m
+590.936386 179.117081 l
+590.936386 190.486420 l
+501.645004 190.486420 l
+501.645004 179.117081 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.645004 196.439178 m
+590.936386 196.439178 l
+590.936386 210.307541 l
+501.645004 210.307541 l
+501.645004 196.439178 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+444.312592 441.853500 m
+557.415009 441.853500 l
+557.415009 552.773605 l
+444.312592 552.773605 l
+444.312592 441.853500 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+450.265350 447.806259 m
+551.462250 447.806259 l
+551.462250 546.820847 l
+450.265350 546.820847 l
+450.265350 447.806259 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.218109 453.759018 m
+545.509491 453.759018 l
+545.509491 467.360168 l
+456.218109 467.360168 l
+456.218109 453.759018 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.218109 473.312927 m
+545.509491 473.312927 l
+545.509491 484.032303 l
+456.218109 484.032303 l
+456.218109 473.312927 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.218109 489.985062 m
+545.509491 489.985062 l
+545.509491 504.021133 l
+456.218109 504.021133 l
+456.218109 489.985062 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.218109 509.973892 m
+545.509491 509.973892 l
+545.509491 524.045059 l
+456.218109 524.045059 l
+456.218109 509.973892 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.218109 529.997818 m
+545.509491 529.997818 l
+545.509491 540.868088 l
+456.218109 540.868088 l
+456.218109 529.997818 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+33.195328 301.586288 m
+146.297745 301.586288 l
+146.297745 391.862488 l
+33.195328 391.862488 l
+33.195328 301.586288 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+39.148087 307.539047 m
+140.344986 307.539047 l
+140.344986 385.909729 l
+39.148087 385.909729 l
+39.148087 307.539047 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+45.100845 313.491806 m
+134.392227 313.491806 l
+134.392227 324.721863 l
+45.100845 324.721863 l
+45.100845 313.491806 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+45.100845 330.674622 m
+134.392227 330.674622 l
+134.392227 342.188522 l
+45.100845 342.188522 l
+45.100845 330.674622 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+45.100845 348.141281 m
+134.392227 348.141281 l
+134.392227 362.738983 l
+45.100845 362.738983 l
+45.100845 348.141281 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+45.100845 368.691742 m
+134.392227 368.691742 l
+134.392227 379.956970 l
+45.100845 379.956970 l
+45.100845 368.691742 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+376.073944 573.675980 m
+489.176361 573.675980 l
+489.176361 668.016907 l
+376.073944 668.016907 l
+376.073944 573.675980 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+382.026703 579.628738 m
+483.223602 579.628738 l
+483.223602 662.064148 l
+382.026703 662.064148 l
+382.026703 579.628738 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+387.979462 585.581497 m
+477.270844 585.581497 l
+477.270844 598.077850 l
+387.979462 598.077850 l
+387.979462 585.581497 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+387.979462 604.030609 m
+477.270844 604.030609 l
+477.270844 614.734039 l
+387.979462 614.734039 l
+387.979462 604.030609 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+387.979462 620.686798 m
+477.270844 620.686798 l
+477.270844 635.546921 l
+387.979462 635.546921 l
+387.979462 620.686798 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+387.979462 641.499680 m
+477.270844 641.499680 l
+477.270844 656.111389 l
+387.979462 656.111389 l
+387.979462 641.499680 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+365.181046 98.992081 m
+478.283463 98.992081 l
+478.283463 187.417770 l
+365.181046 187.417770 l
+365.181046 98.992081 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+371.133804 104.944839 m
+472.330704 104.944839 l
+472.330704 181.465012 l
+371.133804 181.465012 l
+371.133804 104.944839 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+377.086563 110.897598 m
+466.377945 110.897598 l
+466.377945 121.356293 l
+377.086563 121.356293 l
+377.086563 110.897598 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+377.086563 127.309052 m
+466.377945 127.309052 l
+466.377945 139.981049 l
+377.086563 139.981049 l
+377.086563 127.309052 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+377.086563 145.933807 m
+466.377945 145.933807 l
+466.377945 157.817688 l
+377.086563 157.817688 l
+377.086563 145.933807 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+377.086563 163.770447 m
+466.377945 163.770447 l
+466.377945 175.512253 l
+377.086563 175.512253 l
+377.086563 163.770447 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+242.373306 358.333466 m
+355.475723 358.333466 l
+355.475723 448.798706 l
+242.373306 448.798706 l
+242.373306 358.333466 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+248.326065 364.286224 m
+349.522964 364.286224 l
+349.522964 442.845947 l
+248.326065 442.845947 l
+248.326065 364.286224 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+254.278824 370.238983 m
+343.570206 370.238983 l
+343.570206 382.702988 l
+254.278824 382.702988 l
+254.278824 370.238983 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+254.278824 388.655746 m
+343.570206 388.655746 l
+343.570206 402.427292 l
+254.278824 402.427292 l
+254.278824 388.655746 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+254.278824 408.380051 m
+343.570206 408.380051 l
+343.570206 419.420120 l
+254.278824 419.420120 l
+254.278824 408.380051 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+254.278824 425.372879 m
+343.570206 425.372879 l
+343.570206 436.893188 l
+254.278824 436.893188 l
+254.278824 425.372879 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+53.119705 194.076157 m
+166.222122 194.076157 l
+166.222122 306.588394 l
+53.119705 306.588394 l
+53.119705 194.076157 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+59.072464 200.028915 m
+160.269363 200.028915 l
+160.269363 300.635635 l
+59.072464 300.635635 l
+59.072464 200.028915 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+65.025223 205.981674 m
+154.316605 205.981674 l
+154.316605 220.224274 l
+65.025223 220.224274 l
+65.025223 205.981674 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+65.025223 226.177032 m
+154.316605 226.177032 l
+154.316605 239.689606 l
+65.025223 239.689606 l
+65.025223 226.177032 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+65.025223 245.642365 m
+154.316605 245.642365 l
+154.316605 256.376648 l
+65.025223 256.376648 l
+65.025223 245.642365 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+65.025223 262.329407 m
+154.316605 262.329407 l
+154.316605 274.668427 l
+65.025223 274.668427 l
+65.025223 262.329407 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+65.025223 280.621185 m
+154.316605 280.621185 l
+154.316605 294.682877 l
+65.025223 294.682877 l
+65.025223 280.621185 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+504.869370 782.653824 m
+617.971786 782.653824 l
+617.971786 896.717667 l
+504.869370 896.717667 l
+504.869370 782.653824 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+510.822128 788.606583 m
+612.019028 788.606583 l
+612.019028 890.764908 l
+510.822128 890.764908 l
+510.822128 788.606583 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+516.774887 794.559341 m
+606.066269 794.559341 l
+606.066269 807.319778 l
+516.774887 807.319778 l
+516.774887 794.559341 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+516.774887 813.272537 m
+606.066269 813.272537 l
+606.066269 827.094131 l
+516.774887 827.094131 l
+516.774887 813.272537 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+516.774887 833.046890 m
+606.066269 833.046890 l
+606.066269 846.600586 l
+516.774887 846.600586 l
+516.774887 833.046890 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+516.774887 852.553345 m
+606.066269 852.553345 l
+606.066269 865.668732 l
+516.774887 865.668732 l
+516.774887 852.553345 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+516.774887 871.621490 m
+606.066269 871.621490 l
+606.066269 884.812149 l
+516.774887 884.812149 l
+516.774887 871.621490 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-49.548706 233.974365 m
+63.553711 233.974365 l
+63.553711 346.540207 l
+-49.548706 346.540207 l
+-49.548706 233.974365 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-43.595947 239.927124 m
+57.600952 239.927124 l
+57.600952 340.587448 l
+-43.595947 340.587448 l
+-43.595947 239.927124 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-37.643188 245.879883 m
+51.648193 245.879883 l
+51.648193 258.375061 l
+-37.643188 258.375061 l
+-37.643188 245.879883 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-37.643188 264.327820 m
+51.648193 264.327820 l
+51.648193 276.452118 l
+-37.643188 276.452118 l
+-37.643188 264.327820 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-37.643188 282.404877 m
+51.648193 282.404877 l
+51.648193 294.561401 l
+-37.643188 294.561401 l
+-37.643188 282.404877 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-37.643188 300.514160 m
+51.648193 300.514160 l
+51.648193 314.182587 l
+-37.643188 314.182587 l
+-37.643188 300.514160 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-37.643188 320.135345 m
+51.648193 320.135345 l
+51.648193 334.634689 l
+-37.643188 334.634689 l
+-37.643188 320.135345 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+391.925537 43.501022 m
+505.027954 43.501022 l
+505.027954 139.007492 l
+391.925537 139.007492 l
+391.925537 43.501022 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+397.878296 49.453781 m
+499.075195 49.453781 l
+499.075195 133.054733 l
+397.878296 133.054733 l
+397.878296 49.453781 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+403.831055 55.406540 m
+493.122437 55.406540 l
+493.122437 68.997284 l
+403.831055 68.997284 l
+403.831055 55.406540 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+403.831055 74.950043 m
+493.122437 74.950043 l
+493.122437 89.101273 l
+403.831055 89.101273 l
+403.831055 74.950043 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+403.831055 95.054031 m
+493.122437 95.054031 l
+493.122437 109.779892 l
+403.831055 109.779892 l
+403.831055 95.054031 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+403.831055 115.732651 m
+493.122437 115.732651 l
+493.122437 127.101974 l
+403.831055 127.101974 l
+403.831055 115.732651 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+438.869690 337.858368 m
+551.972107 337.858368 l
+551.972107 424.712708 l
+438.869690 424.712708 l
+438.869690 337.858368 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+444.822449 343.811127 m
+546.019348 343.811127 l
+546.019348 418.759949 l
+444.822449 418.759949 l
+444.822449 343.811127 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.775208 349.763885 m
+540.066589 349.763885 l
+540.066589 360.441956 l
+450.775208 360.441956 l
+450.775208 349.763885 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.775208 366.394714 m
+540.066589 366.394714 l
+540.066589 376.833481 l
+450.775208 376.833481 l
+450.775208 366.394714 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.775208 382.786240 m
+540.066589 382.786240 l
+540.066589 393.611008 l
+450.775208 393.611008 l
+450.775208 382.786240 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.775208 399.563766 m
+540.066589 399.563766 l
+540.066589 412.807190 l
+450.775208 412.807190 l
+450.775208 399.563766 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+227.723312 678.094971 m
+340.825729 678.094971 l
+340.825729 789.337692 l
+227.723312 789.337692 l
+227.723312 678.094971 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+233.676071 684.047729 m
+334.872971 684.047729 l
+334.872971 783.384933 l
+233.676071 783.384933 l
+233.676071 684.047729 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+239.628830 690.000488 m
+328.920212 690.000488 l
+328.920212 702.532410 l
+239.628830 702.532410 l
+239.628830 690.000488 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+239.628830 708.485168 m
+328.920212 708.485168 l
+328.920212 721.171066 l
+239.628830 721.171066 l
+239.628830 708.485168 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+239.628830 727.123825 m
+328.920212 727.123825 l
+328.920212 737.742645 l
+239.628830 737.742645 l
+239.628830 727.123825 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+239.628830 743.695404 m
+328.920212 743.695404 l
+328.920212 757.663620 l
+239.628830 757.663620 l
+239.628830 743.695404 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+239.628830 763.616379 m
+328.920212 763.616379 l
+328.920212 777.432175 l
+239.628830 777.432175 l
+239.628830 763.616379 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+350.403519 230.046005 m
+463.505936 230.046005 l
+463.505936 323.814163 l
+350.403519 323.814163 l
+350.403519 230.046005 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+356.356277 235.998764 m
+457.553177 235.998764 l
+457.553177 317.861404 l
+356.356277 317.861404 l
+356.356277 235.998764 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+362.309036 241.951523 m
+451.600418 241.951523 l
+451.600418 252.981491 l
+362.309036 252.981491 l
+362.309036 241.951523 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+362.309036 258.934250 m
+451.600418 258.934250 l
+451.600418 273.054062 l
+362.309036 273.054062 l
+362.309036 258.934250 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+362.309036 279.006821 m
+451.600418 279.006821 l
+451.600418 291.563187 l
+362.309036 291.563187 l
+362.309036 279.006821 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+362.309036 297.515945 m
+451.600418 297.515945 l
+451.600418 311.908646 l
+362.309036 311.908646 l
+362.309036 297.515945 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+403.235184 -11.081284 m
+516.337601 -11.081284 l
+516.337601 102.162735 l
+403.235184 102.162735 l
+403.235184 -11.081284 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+409.187943 -5.128525 m
+510.384842 -5.128525 l
+510.384842 96.209976 l
+409.187943 96.209976 l
+409.187943 -5.128525 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.140701 0.824234 m
+504.432083 0.824234 l
+504.432083 13.970261 l
+415.140701 13.970261 l
+415.140701 0.824234 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.140701 19.923019 m
+504.432083 19.923019 l
+504.432083 33.719788 l
+415.140701 33.719788 l
+415.140701 19.923019 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.140701 39.672546 m
+504.432083 39.672546 l
+504.432083 54.023499 l
+415.140701 54.023499 l
+415.140701 39.672546 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.140701 59.976257 m
+504.432083 59.976257 l
+504.432083 73.535141 l
+415.140701 73.535141 l
+415.140701 59.976257 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.140701 79.487900 m
+504.432083 79.487900 l
+504.432083 90.257217 l
+415.140701 90.257217 l
+415.140701 79.487900 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+345.736252 390.882507 m
+458.838669 390.882507 l
+458.838669 504.401779 l
+345.736252 504.401779 l
+345.736252 390.882507 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+351.689011 396.835266 m
+452.885910 396.835266 l
+452.885910 498.449020 l
+351.689011 498.449020 l
+351.689011 396.835266 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+357.641769 402.788025 m
+446.933151 402.788025 l
+446.933151 415.570251 l
+357.641769 415.570251 l
+357.641769 402.788025 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+357.641769 421.523010 m
+446.933151 421.523010 l
+446.933151 435.614792 l
+357.641769 435.614792 l
+357.641769 421.523010 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+357.641769 441.567551 m
+446.933151 441.567551 l
+446.933151 456.422806 l
+357.641769 456.422806 l
+357.641769 441.567551 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+357.641769 462.375565 m
+446.933151 462.375565 l
+446.933151 474.731537 l
+357.641769 474.731537 l
+357.641769 462.375565 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+357.641769 480.684296 m
+446.933151 480.684296 l
+446.933151 492.496262 l
+357.641769 492.496262 l
+357.641769 480.684296 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+243.770309 488.836456 m
+356.872726 488.836456 l
+356.872726 581.632462 l
+243.770309 581.632462 l
+243.770309 488.836456 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+249.723068 494.789215 m
+350.919968 494.789215 l
+350.919968 575.679703 l
+249.723068 575.679703 l
+249.723068 494.789215 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+255.675827 500.741974 m
+344.967209 500.741974 l
+344.967209 514.566864 l
+255.675827 514.566864 l
+255.675827 500.741974 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+255.675827 520.519623 m
+344.967209 520.519623 l
+344.967209 532.126160 l
+255.675827 532.126160 l
+255.675827 520.519623 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+255.675827 538.078918 m
+344.967209 538.078918 l
+344.967209 552.282242 l
+255.675827 552.282242 l
+255.675827 538.078918 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+255.675827 558.235001 m
+344.967209 558.235001 l
+344.967209 569.726944 l
+255.675827 569.726944 l
+255.675827 558.235001 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+298.909256 507.807663 m
+412.011673 507.807663 l
+412.011673 619.512436 l
+298.909256 619.512436 l
+298.909256 507.807663 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+304.862015 513.760422 m
+406.058914 513.760422 l
+406.058914 613.559677 l
+304.862015 613.559677 l
+304.862015 513.760422 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+310.814774 519.713181 m
+400.106155 519.713181 l
+400.106155 533.448334 l
+310.814774 533.448334 l
+310.814774 519.713181 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+310.814774 539.401093 m
+400.106155 539.401093 l
+400.106155 552.559769 l
+310.814774 552.559769 l
+310.814774 539.401093 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+310.814774 558.512527 m
+400.106155 558.512527 l
+400.106155 570.427582 l
+310.814774 570.427582 l
+310.814774 558.512527 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+310.814774 576.380341 m
+400.106155 576.380341 l
+400.106155 590.908890 l
+310.814774 590.908890 l
+310.814774 576.380341 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+310.814774 596.861649 m
+400.106155 596.861649 l
+400.106155 607.606918 l
+310.814774 607.606918 l
+310.814774 596.861649 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+510.290649 743.430374 m
+623.393066 743.430374 l
+623.393066 856.316742 l
+510.290649 856.316742 l
+510.290649 743.430374 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+516.243408 749.383133 m
+617.440308 749.383133 l
+617.440308 850.363983 l
+516.243408 850.363983 l
+516.243408 749.383133 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+522.196167 755.335892 m
+611.487549 755.335892 l
+611.487549 769.718323 l
+522.196167 769.718323 l
+522.196167 755.335892 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+522.196167 775.671082 m
+611.487549 775.671082 l
+611.487549 786.702179 l
+522.196167 786.702179 l
+522.196167 775.671082 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+522.196167 792.654938 m
+611.487549 792.654938 l
+611.487549 807.436264 l
+522.196167 807.436264 l
+522.196167 792.654938 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+522.196167 813.389023 m
+611.487549 813.389023 l
+611.487549 824.567276 l
+522.196167 824.567276 l
+522.196167 813.389023 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+522.196167 830.520035 m
+611.487549 830.520035 l
+611.487549 844.411224 l
+522.196167 844.411224 l
+522.196167 830.520035 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+365.506760 383.547134 m
+478.609177 383.547134 l
+478.609177 490.158371 l
+365.506760 490.158371 l
+365.506760 383.547134 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+371.459518 389.499893 m
+472.656418 389.499893 l
+472.656418 484.205612 l
+371.459518 484.205612 l
+371.459518 389.499893 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+377.412277 395.452652 m
+466.703659 395.452652 l
+466.703659 406.387741 l
+377.412277 406.387741 l
+377.412277 395.452652 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+377.412277 412.340500 m
+466.703659 412.340500 l
+466.703659 425.175583 l
+377.412277 425.175583 l
+377.412277 412.340500 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+377.412277 431.128342 m
+466.703659 431.128342 l
+466.703659 443.722153 l
+377.412277 443.722153 l
+377.412277 431.128342 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+377.412277 449.674911 m
+466.703659 449.674911 l
+466.703659 461.508301 l
+377.412277 461.508301 l
+377.412277 449.674911 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+377.412277 467.461060 m
+466.703659 467.461060 l
+466.703659 478.252853 l
+377.412277 478.252853 l
+377.412277 467.461060 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+267.217834 261.194885 m
+380.320251 261.194885 l
+380.320251 351.519958 l
+267.217834 351.519958 l
+267.217834 261.194885 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+273.170593 267.147644 m
+374.367493 267.147644 l
+374.367493 345.567200 l
+273.170593 345.567200 l
+273.170593 267.147644 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+279.123352 273.100403 m
+368.414734 273.100403 l
+368.414734 285.753906 l
+279.123352 285.753906 l
+279.123352 273.100403 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+279.123352 291.706665 m
+368.414734 291.706665 l
+368.414734 302.321304 l
+279.123352 302.321304 l
+279.123352 291.706665 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+279.123352 308.274063 m
+368.414734 308.274063 l
+368.414734 319.315445 l
+279.123352 319.315445 l
+279.123352 308.274063 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+279.123352 325.268204 m
+368.414734 325.268204 l
+368.414734 339.614441 l
+279.123352 339.614441 l
+279.123352 325.268204 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+44.809753 684.873276 m
+157.912170 684.873276 l
+157.912170 775.507721 l
+44.809753 775.507721 l
+44.809753 684.873276 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+50.762512 690.826035 m
+151.959412 690.826035 l
+151.959412 769.554962 l
+50.762512 769.554962 l
+50.762512 690.826035 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+56.715271 696.778793 m
+146.006653 696.778793 l
+146.006653 709.261292 l
+56.715271 709.261292 l
+56.715271 696.778793 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+56.715271 715.214050 m
+146.006653 715.214050 l
+146.006653 728.754150 l
+56.715271 728.754150 l
+56.715271 715.214050 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+56.715271 734.706909 m
+146.006653 734.706909 l
+146.006653 745.930573 l
+56.715271 745.930573 l
+56.715271 734.706909 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+56.715271 751.883331 m
+146.006653 751.883331 l
+146.006653 763.602203 l
+56.715271 763.602203 l
+56.715271 751.883331 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+398.609009 787.482346 m
+511.711426 787.482346 l
+511.711426 878.162491 l
+398.609009 878.162491 l
+398.609009 787.482346 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+404.561768 793.435104 m
+505.758667 793.435104 l
+505.758667 872.209732 l
+404.561768 872.209732 l
+404.561768 793.435104 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+410.514526 799.387863 m
+499.805908 799.387863 l
+499.805908 812.838303 l
+410.514526 812.838303 l
+410.514526 799.387863 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+410.514526 818.791061 m
+499.805908 818.791061 l
+499.805908 830.189102 l
+410.514526 830.189102 l
+410.514526 818.791061 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+410.514526 836.141861 m
+499.805908 836.141861 l
+499.805908 846.759384 l
+410.514526 846.759384 l
+410.514526 836.141861 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+410.514526 852.712143 m
+499.805908 852.712143 l
+499.805908 866.256973 l
+410.514526 866.256973 l
+410.514526 852.712143 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+421.594574 295.751434 m
+534.696991 295.751434 l
+534.696991 390.029465 l
+421.594574 390.029465 l
+421.594574 295.751434 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+427.547333 301.704193 m
+528.744232 301.704193 l
+528.744232 384.076706 l
+427.547333 384.076706 l
+427.547333 301.704193 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+433.500092 307.656952 m
+522.791473 307.656952 l
+522.791473 321.017914 l
+433.500092 321.017914 l
+433.500092 307.656952 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+433.500092 326.970673 m
+522.791473 326.970673 l
+522.791473 340.727661 l
+433.500092 340.727661 l
+433.500092 326.970673 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+433.500092 346.680420 m
+522.791473 346.680420 l
+522.791473 358.251541 l
+433.500092 358.251541 l
+433.500092 346.680420 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+433.500092 364.204300 m
+522.791473 364.204300 l
+522.791473 378.123947 l
+433.500092 378.123947 l
+433.500092 364.204300 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+75.241531 33.609421 m
+188.343948 33.609421 l
+188.343948 126.387894 l
+75.241531 126.387894 l
+75.241531 33.609421 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+81.194290 39.562180 m
+182.391190 39.562180 l
+182.391190 120.435135 l
+81.194290 120.435135 l
+81.194290 39.562180 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+87.147049 45.514938 m
+176.438431 45.514938 l
+176.438431 59.430756 l
+87.147049 59.430756 l
+87.147049 45.514938 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+87.147049 65.383514 m
+176.438431 65.383514 l
+176.438431 78.848404 l
+87.147049 78.848404 l
+87.147049 65.383514 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+87.147049 84.801163 m
+176.438431 84.801163 l
+176.438431 95.742447 l
+87.147049 95.742447 l
+87.147049 84.801163 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+87.147049 101.695206 m
+176.438431 101.695206 l
+176.438431 114.482376 l
+87.147049 114.482376 l
+87.147049 101.695206 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+384.984955 -45.585312 m
+498.087372 -45.585312 l
+498.087372 65.437653 l
+384.984955 65.437653 l
+384.984955 -45.585312 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+390.937714 -39.632553 m
+492.134613 -39.632553 l
+492.134613 59.484894 l
+390.937714 59.484894 l
+390.937714 -39.632553 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+396.890472 -33.679794 m
+486.181854 -33.679794 l
+486.181854 -21.780792 l
+396.890472 -21.780792 l
+396.890472 -33.679794 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+396.890472 -15.828033 m
+486.181854 -15.828033 l
+486.181854 -2.706879 l
+396.890472 -2.706879 l
+396.890472 -15.828033 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+396.890472 3.245880 m
+486.181854 3.245880 l
+486.181854 17.165848 l
+396.890472 17.165848 l
+396.890472 3.245880 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+396.890472 23.118607 m
+486.181854 23.118607 l
+486.181854 37.024200 l
+396.890472 37.024200 l
+396.890472 23.118607 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+396.890472 42.976959 m
+486.181854 42.976959 l
+486.181854 53.532135 l
+396.890472 53.532135 l
+396.890472 42.976959 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+439.025772 514.403458 m
+552.128189 514.403458 l
+552.128189 608.912170 l
+439.025772 608.912170 l
+439.025772 514.403458 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+444.978531 520.356216 m
+546.175430 520.356216 l
+546.175430 602.959412 l
+444.978531 602.959412 l
+444.978531 520.356216 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.931290 526.308975 m
+540.222672 526.308975 l
+540.222672 539.436447 l
+450.931290 539.436447 l
+450.931290 526.308975 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.931290 545.389206 m
+540.222672 545.389206 l
+540.222672 556.252884 l
+450.931290 556.252884 l
+450.931290 545.389206 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.931290 562.205643 m
+540.222672 562.205643 l
+540.222672 577.008362 l
+450.931290 577.008362 l
+450.931290 562.205643 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.931290 582.961121 m
+540.222672 582.961121 l
+540.222672 597.006653 l
+450.931290 597.006653 l
+450.931290 582.961121 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+210.203568 338.601089 m
+323.305984 338.601089 l
+323.305984 451.881683 l
+210.203568 451.881683 l
+210.203568 338.601089 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+216.156326 344.553848 m
+317.353226 344.553848 l
+317.353226 445.928925 l
+216.156326 445.928925 l
+216.156326 344.553848 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.109085 350.506607 m
+311.400467 350.506607 l
+311.400467 364.631363 l
+222.109085 364.631363 l
+222.109085 350.506607 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.109085 370.584122 m
+311.400467 370.584122 l
+311.400467 383.916183 l
+222.109085 383.916183 l
+222.109085 370.584122 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.109085 389.868942 m
+311.400467 389.868942 l
+311.400467 403.873535 l
+222.109085 403.873535 l
+222.109085 389.868942 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.109085 409.826294 m
+311.400467 409.826294 l
+311.400467 422.666290 l
+222.109085 422.666290 l
+222.109085 409.826294 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.109085 428.619049 m
+311.400467 428.619049 l
+311.400467 439.976166 l
+222.109085 439.976166 l
+222.109085 428.619049 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+274.571335 401.472702 m
+387.673752 401.472702 l
+387.673752 494.053452 l
+274.571335 494.053452 l
+274.571335 401.472702 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+280.524094 407.425461 m
+381.720993 407.425461 l
+381.720993 488.100693 l
+280.524094 488.100693 l
+280.524094 407.425461 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+286.476852 413.378220 m
+375.768234 413.378220 l
+375.768234 425.532776 l
+286.476852 425.532776 l
+286.476852 413.378220 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+286.476852 431.485535 m
+375.768234 431.485535 l
+375.768234 445.238876 l
+286.476852 445.238876 l
+286.476852 431.485535 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+286.476852 451.191635 m
+375.768234 451.191635 l
+375.768234 462.638092 l
+286.476852 462.638092 l
+286.476852 451.191635 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+286.476852 468.590851 m
+375.768234 468.590851 l
+375.768234 482.147934 l
+286.476852 482.147934 l
+286.476852 468.590851 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+161.018417 379.604263 m
+274.120834 379.604263 l
+274.120834 477.332458 l
+161.018417 477.332458 l
+161.018417 379.604263 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+166.971176 385.557022 m
+268.168076 385.557022 l
+268.168076 471.379700 l
+166.971176 471.379700 l
+166.971176 385.557022 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+172.923935 391.509781 m
+262.215317 391.509781 l
+262.215317 405.512909 l
+172.923935 405.512909 l
+172.923935 391.509781 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+172.923935 411.465668 m
+262.215317 411.465668 l
+262.215317 425.982681 l
+172.923935 425.982681 l
+172.923935 411.465668 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+172.923935 431.935440 m
+262.215317 431.935440 l
+262.215317 444.653534 l
+172.923935 444.653534 l
+172.923935 431.935440 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+172.923935 450.606293 m
+262.215317 450.606293 l
+262.215317 465.426941 l
+172.923935 465.426941 l
+172.923935 450.606293 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+342.797058 611.350983 m
+455.899475 611.350983 l
+455.899475 701.844910 l
+342.797058 701.844910 l
+342.797058 611.350983 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+348.749817 617.303741 m
+449.946716 617.303741 l
+449.946716 695.892151 l
+348.749817 695.892151 l
+348.749817 617.303741 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+354.702576 623.256500 m
+443.993958 623.256500 l
+443.993958 635.107010 l
+354.702576 635.107010 l
+354.702576 623.256500 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+354.702576 641.059769 m
+443.993958 641.059769 l
+443.993958 654.478714 l
+354.702576 654.478714 l
+354.702576 641.059769 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+354.702576 660.431473 m
+443.993958 660.431473 l
+443.993958 673.422684 l
+354.702576 673.422684 l
+354.702576 660.431473 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+354.702576 679.375443 m
+443.993958 679.375443 l
+443.993958 689.939392 l
+354.702576 689.939392 l
+354.702576 679.375443 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+519.931976 458.721878 m
+633.034393 458.721878 l
+633.034393 572.642776 l
+519.931976 572.642776 l
+519.931976 458.721878 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+525.884735 464.674637 m
+627.081635 464.674637 l
+627.081635 566.690018 l
+525.884735 566.690018 l
+525.884735 464.674637 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+531.837494 470.627396 m
+621.128876 470.627396 l
+621.128876 483.599777 l
+531.837494 483.599777 l
+531.837494 470.627396 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+531.837494 489.552536 m
+621.128876 489.552536 l
+621.128876 503.419357 l
+531.837494 503.419357 l
+531.837494 489.552536 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+531.837494 509.372116 m
+621.128876 509.372116 l
+621.128876 523.149628 l
+531.837494 523.149628 l
+531.837494 509.372116 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+531.837494 529.102386 m
+621.128876 529.102386 l
+621.128876 540.272034 l
+531.837494 540.272034 l
+531.837494 529.102386 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+531.837494 546.224792 m
+621.128876 546.224792 l
+621.128876 560.737259 l
+531.837494 560.737259 l
+531.837494 546.224792 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+276.346909 581.881577 m
+389.449326 581.881577 l
+389.449326 691.681229 l
+276.346909 691.681229 l
+276.346909 581.881577 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+282.299667 587.834335 m
+383.496567 587.834335 l
+383.496567 685.728470 l
+282.299667 685.728470 l
+282.299667 587.834335 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+288.252426 593.787094 m
+377.543808 593.787094 l
+377.543808 608.325302 l
+288.252426 608.325302 l
+288.252426 593.787094 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+288.252426 614.278061 m
+377.543808 614.278061 l
+377.543808 624.808762 l
+288.252426 624.808762 l
+288.252426 614.278061 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+288.252426 630.761520 m
+377.543808 630.761520 l
+377.543808 642.257812 l
+288.252426 642.257812 l
+288.252426 630.761520 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+288.252426 648.210571 m
+377.543808 648.210571 l
+377.543808 662.120285 l
+288.252426 662.120285 l
+288.252426 648.210571 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+288.252426 668.073044 m
+377.543808 668.073044 l
+377.543808 679.775711 l
+288.252426 679.775711 l
+288.252426 668.073044 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+194.062622 580.912155 m
+307.165039 580.912155 l
+307.165039 691.540863 l
+194.062622 691.540863 l
+194.062622 580.912155 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+200.015381 586.864914 m
+301.212280 586.864914 l
+301.212280 685.588104 l
+200.015381 685.588104 l
+200.015381 586.864914 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+205.968140 592.817673 m
+295.259521 592.817673 l
+295.259521 606.312347 l
+205.968140 606.312347 l
+205.968140 592.817673 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+205.968140 612.265106 m
+295.259521 612.265106 l
+295.259521 626.867630 l
+205.968140 626.867630 l
+205.968140 612.265106 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+205.968140 632.820389 m
+295.259521 632.820389 l
+295.259521 643.738419 l
+205.968140 643.738419 l
+205.968140 632.820389 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+205.968140 649.691177 m
+295.259521 649.691177 l
+295.259521 662.987640 l
+205.968140 662.987640 l
+205.968140 649.691177 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+205.968140 668.940399 m
+295.259521 668.940399 l
+295.259521 679.635345 l
+205.968140 679.635345 l
+205.968140 668.940399 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+47.066849 85.471008 m
+160.169266 85.471008 l
+160.169266 202.590973 l
+47.066849 202.590973 l
+47.066849 85.471008 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+53.019608 91.423767 m
+154.216507 91.423767 l
+154.216507 196.638214 l
+53.019608 196.638214 l
+53.019608 91.423767 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+58.972366 97.376526 m
+148.263748 97.376526 l
+148.263748 110.227325 l
+58.972366 110.227325 l
+58.972366 97.376526 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+58.972366 116.180084 m
+148.263748 116.180084 l
+148.263748 129.982315 l
+58.972366 129.982315 l
+58.972366 116.180084 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+58.972366 135.935074 m
+148.263748 135.935074 l
+148.263748 150.768311 l
+58.972366 150.768311 l
+58.972366 135.935074 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+58.972366 156.721069 m
+148.263748 156.721069 l
+148.263748 170.903290 l
+58.972366 170.903290 l
+58.972366 156.721069 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+58.972366 176.856049 m
+148.263748 176.856049 l
+148.263748 190.685455 l
+58.972366 190.685455 l
+58.972366 176.856049 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+403.381516 670.836395 m
+516.483932 670.836395 l
+516.483932 759.105057 l
+403.381516 759.105057 l
+403.381516 670.836395 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+409.334274 676.789154 m
+510.531174 676.789154 l
+510.531174 753.152298 l
+409.334274 753.152298 l
+409.334274 676.789154 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.287033 682.741913 m
+504.578415 682.741913 l
+504.578415 696.991196 l
+415.287033 696.991196 l
+415.287033 682.741913 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.287033 702.943954 m
+504.578415 702.943954 l
+504.578415 713.385757 l
+415.287033 713.385757 l
+415.287033 702.943954 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.287033 719.338516 m
+504.578415 719.338516 l
+504.578415 730.732346 l
+415.287033 730.732346 l
+415.287033 719.338516 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.287033 736.685104 m
+504.578415 736.685104 l
+504.578415 747.199539 l
+415.287033 747.199539 l
+415.287033 736.685104 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+267.647247 152.445374 m
+380.749664 152.445374 l
+380.749664 261.991150 l
+267.647247 261.991150 l
+267.647247 152.445374 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+273.600006 158.398132 m
+374.796906 158.398132 l
+374.796906 256.038391 l
+273.600006 256.038391 l
+273.600006 158.398132 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+279.552765 164.350891 m
+368.844147 164.350891 l
+368.844147 178.016708 l
+279.552765 178.016708 l
+279.552765 164.350891 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+279.552765 183.969467 m
+368.844147 183.969467 l
+368.844147 196.220352 l
+279.552765 196.220352 l
+279.552765 183.969467 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+279.552765 202.173111 m
+368.844147 202.173111 l
+368.844147 215.321457 l
+279.552765 215.321457 l
+279.552765 202.173111 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+279.552765 221.274216 m
+368.844147 221.274216 l
+368.844147 232.765381 l
+279.552765 232.765381 l
+279.552765 221.274216 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+279.552765 238.718140 m
+368.844147 238.718140 l
+368.844147 250.085632 l
+279.552765 250.085632 l
+279.552765 238.718140 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+54.620621 355.376038 m
+167.723038 355.376038 l
+167.723038 450.212021 l
+54.620621 450.212021 l
+54.620621 355.376038 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+60.573380 361.328796 m
+161.770279 361.328796 l
+161.770279 444.259262 l
+60.573380 444.259262 l
+60.573380 361.328796 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+66.526138 367.281555 m
+155.817520 367.281555 l
+155.817520 381.971207 l
+66.526138 381.971207 l
+66.526138 367.281555 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+66.526138 387.923965 m
+155.817520 387.923965 l
+155.817520 400.418350 l
+66.526138 400.418350 l
+66.526138 387.923965 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+66.526138 406.371109 m
+155.817520 406.371109 l
+155.817520 417.776718 l
+66.526138 417.776718 l
+66.526138 406.371109 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+66.526138 423.729477 m
+155.817520 423.729477 l
+155.817520 438.306503 l
+66.526138 438.306503 l
+66.526138 423.729477 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+145.868652 255.034332 m
+258.971069 255.034332 l
+258.971069 347.869446 l
+145.868652 347.869446 l
+145.868652 255.034332 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+151.821411 260.987091 m
+253.018311 260.987091 l
+253.018311 341.916687 l
+151.821411 341.916687 l
+151.821411 260.987091 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+157.774170 266.939850 m
+247.065552 266.939850 l
+247.065552 279.139099 l
+157.774170 279.139099 l
+157.774170 266.939850 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+157.774170 285.091858 m
+247.065552 285.091858 l
+247.065552 298.567017 l
+157.774170 298.567017 l
+157.774170 285.091858 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+157.774170 304.519775 m
+247.065552 304.519775 l
+247.065552 315.855423 l
+157.774170 315.855423 l
+157.774170 304.519775 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+157.774170 321.808182 m
+247.065552 321.808182 l
+247.065552 335.963928 l
+157.774170 335.963928 l
+157.774170 321.808182 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+403.324478 105.760452 m
+516.426895 105.760452 l
+516.426895 216.614029 l
+403.324478 216.614029 l
+403.324478 105.760452 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+409.277237 111.713211 m
+510.474136 111.713211 l
+510.474136 210.661270 l
+409.277237 210.661270 l
+409.277237 111.713211 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.229996 117.665970 m
+504.521378 117.665970 l
+504.521378 129.433884 l
+415.229996 129.433884 l
+415.229996 117.665970 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.229996 135.386642 m
+504.521378 135.386642 l
+504.521378 149.961578 l
+415.229996 149.961578 l
+415.229996 135.386642 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.229996 155.914337 m
+504.521378 155.914337 l
+504.521378 170.277130 l
+415.229996 170.277130 l
+415.229996 155.914337 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.229996 176.229889 m
+504.521378 176.229889 l
+504.521378 186.981262 l
+415.229996 186.981262 l
+415.229996 176.229889 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.229996 192.934021 m
+504.521378 192.934021 l
+504.521378 204.708511 l
+415.229996 204.708511 l
+415.229996 192.934021 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+23.366440 117.500336 m
+136.468857 117.500336 l
+136.468857 208.948151 l
+23.366440 208.948151 l
+23.366440 117.500336 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+29.319199 123.453094 m
+130.516098 123.453094 l
+130.516098 202.995392 l
+29.319199 202.995392 l
+29.319199 123.453094 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+35.271957 129.405853 m
+124.563339 129.405853 l
+124.563339 140.162048 l
+35.271957 140.162048 l
+35.271957 129.405853 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+35.271957 146.114807 m
+124.563339 146.114807 l
+124.563339 158.778717 l
+35.271957 158.778717 l
+35.271957 146.114807 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+35.271957 164.731476 m
+124.563339 164.731476 l
+124.563339 176.895203 l
+35.271957 176.895203 l
+35.271957 164.731476 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+35.271957 182.847961 m
+124.563339 182.847961 l
+124.563339 197.042633 l
+35.271957 197.042633 l
+35.271957 182.847961 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+189.052139 630.050598 m
+302.154556 630.050598 l
+302.154556 734.551407 l
+189.052139 734.551407 l
+189.052139 630.050598 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+195.004898 636.003357 m
+296.201797 636.003357 l
+296.201797 728.598648 l
+195.004898 728.598648 l
+195.004898 636.003357 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+200.957657 641.956116 m
+290.249039 641.956116 l
+290.249039 653.088257 l
+200.957657 653.088257 l
+200.957657 641.956116 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+200.957657 659.041016 m
+290.249039 659.041016 l
+290.249039 669.777390 l
+200.957657 669.777390 l
+200.957657 659.041016 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+200.957657 675.730148 m
+290.249039 675.730148 l
+290.249039 688.394394 l
+200.957657 688.394394 l
+200.957657 675.730148 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+200.957657 694.347153 m
+290.249039 694.347153 l
+290.249039 705.146942 l
+200.957657 705.146942 l
+200.957657 694.347153 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+200.957657 711.099701 m
+290.249039 711.099701 l
+290.249039 722.645889 l
+200.957657 722.645889 l
+200.957657 711.099701 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-26.660614 32.173859 m
+86.441803 32.173859 l
+86.441803 143.776337 l
+-26.660614 143.776337 l
+-26.660614 32.173859 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-20.707855 38.126617 m
+80.489044 38.126617 l
+80.489044 137.823578 l
+-20.707855 137.823578 l
+-20.707855 38.126617 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-14.755096 44.079376 m
+74.536285 44.079376 l
+74.536285 56.683273 l
+-14.755096 56.683273 l
+-14.755096 44.079376 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-14.755096 62.636032 m
+74.536285 62.636032 l
+74.536285 76.946396 l
+-14.755096 76.946396 l
+-14.755096 62.636032 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-14.755096 82.899155 m
+74.536285 82.899155 l
+74.536285 96.908661 l
+-14.755096 96.908661 l
+-14.755096 82.899155 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-14.755096 102.861420 m
+74.536285 102.861420 l
+74.536285 114.998932 l
+-14.755096 114.998932 l
+-14.755096 102.861420 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-14.755096 120.951691 m
+74.536285 120.951691 l
+74.536285 131.870819 l
+-14.755096 131.870819 l
+-14.755096 120.951691 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+496.247696 423.701202 m
+609.350113 423.701202 l
+609.350113 535.549759 l
+496.247696 535.549759 l
+496.247696 423.701202 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+502.200455 429.653961 m
+603.397354 429.653961 l
+603.397354 529.597000 l
+502.200455 529.597000 l
+502.200455 429.653961 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+508.153214 435.606720 m
+597.444595 435.606720 l
+597.444595 446.307693 l
+508.153214 446.307693 l
+508.153214 435.606720 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+508.153214 452.260452 m
+597.444595 452.260452 l
+597.444595 465.643204 l
+508.153214 465.643204 l
+508.153214 452.260452 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+508.153214 471.595963 m
+597.444595 471.595963 l
+597.444595 484.357574 l
+508.153214 484.357574 l
+508.153214 471.595963 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+508.153214 490.310333 m
+597.444595 490.310333 l
+597.444595 503.094971 l
+508.153214 503.094971 l
+508.153214 490.310333 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+508.153214 509.047729 m
+597.444595 509.047729 l
+597.444595 523.644241 l
+508.153214 523.644241 l
+508.153214 509.047729 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-9.299744 260.265884 m
+103.802673 260.265884 l
+103.802673 370.178391 l
+-9.299744 370.178391 l
+-9.299744 260.265884 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-3.346985 266.218643 m
+97.849915 266.218643 l
+97.849915 364.225632 l
+-3.346985 364.225632 l
+-3.346985 266.218643 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+2.605774 272.171402 m
+91.897156 272.171402 l
+91.897156 286.119461 l
+2.605774 286.119461 l
+2.605774 272.171402 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+2.605774 292.072220 m
+91.897156 292.072220 l
+91.897156 304.544937 l
+2.605774 304.544937 l
+2.605774 292.072220 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+2.605774 310.497696 m
+91.897156 310.497696 l
+91.897156 323.348923 l
+2.605774 323.348923 l
+2.605774 310.497696 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+2.605774 329.301682 m
+91.897156 329.301682 l
+91.897156 339.945175 l
+2.605774 339.945175 l
+2.605774 329.301682 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+2.605774 345.897934 m
+91.897156 345.897934 l
+91.897156 358.272873 l
+2.605774 358.272873 l
+2.605774 345.897934 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+455.229355 366.361343 m
+568.331772 366.361343 l
+568.331772 474.369217 l
+455.229355 474.369217 l
+455.229355 366.361343 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+461.182114 372.314102 m
+562.379013 372.314102 l
+562.379013 468.416458 l
+461.182114 468.416458 l
+461.182114 372.314102 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+467.134872 378.266861 m
+556.426254 378.266861 l
+556.426254 391.881958 l
+467.134872 391.881958 l
+467.134872 378.266861 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+467.134872 397.834717 m
+556.426254 397.834717 l
+556.426254 408.816330 l
+467.134872 408.816330 l
+467.134872 397.834717 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+467.134872 414.769089 m
+556.426254 414.769089 l
+556.426254 426.157166 l
+467.134872 426.157166 l
+467.134872 414.769089 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+467.134872 432.109924 m
+556.426254 432.109924 l
+556.426254 443.007553 l
+467.134872 443.007553 l
+467.134872 432.109924 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+467.134872 448.960312 m
+556.426254 448.960312 l
+556.426254 462.463699 l
+467.134872 462.463699 l
+467.134872 448.960312 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+489.149811 -37.620255 m
+602.252228 -37.620255 l
+602.252228 72.748550 l
+489.149811 72.748550 l
+489.149811 -37.620255 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+495.102570 -31.667496 m
+596.299469 -31.667496 l
+596.299469 66.795792 l
+495.102570 66.795792 l
+495.102570 -31.667496 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.055328 -25.714737 m
+590.346710 -25.714737 l
+590.346710 -12.234360 l
+501.055328 -12.234360 l
+501.055328 -25.714737 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.055328 -6.281601 m
+590.346710 -6.281601 l
+590.346710 4.543365 l
+501.055328 4.543365 l
+501.055328 -6.281601 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.055328 10.496124 m
+590.346710 10.496124 l
+590.346710 21.079956 l
+501.055328 21.079956 l
+501.055328 10.496124 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.055328 27.032715 m
+590.346710 27.032715 l
+590.346710 40.161865 l
+501.055328 40.161865 l
+501.055328 27.032715 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+501.055328 46.114624 m
+590.346710 46.114624 l
+590.346710 60.843033 l
+501.055328 60.843033 l
+501.055328 46.114624 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+502.261017 69.317749 m
+615.363434 69.317749 l
+615.363434 165.991577 l
+502.261017 165.991577 l
+502.261017 69.317749 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+508.213776 75.270508 m
+609.410675 75.270508 l
+609.410675 160.038818 l
+508.213776 160.038818 l
+508.213776 75.270508 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+514.166534 81.223267 m
+603.457916 81.223267 l
+603.457916 93.421402 l
+514.166534 93.421402 l
+514.166534 81.223267 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+514.166534 99.374161 m
+603.457916 99.374161 l
+603.457916 113.866776 l
+514.166534 113.866776 l
+514.166534 99.374161 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+514.166534 119.819534 m
+603.457916 119.819534 l
+603.457916 133.326996 l
+514.166534 133.326996 l
+514.166534 119.819534 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+514.166534 139.279755 m
+603.457916 139.279755 l
+603.457916 154.086060 l
+514.166534 154.086060 l
+514.166534 139.279755 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+340.076599 758.249634 m
+453.179016 758.249634 l
+453.179016 870.370407 l
+340.076599 870.370407 l
+340.076599 758.249634 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+346.029358 764.202393 m
+447.226257 764.202393 l
+447.226257 864.417648 l
+346.029358 864.417648 l
+346.029358 764.202393 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.982117 770.155151 m
+441.273499 770.155151 l
+441.273499 784.147110 l
+351.982117 784.147110 l
+351.982117 770.155151 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.982117 790.099869 m
+441.273499 790.099869 l
+441.273499 800.710999 l
+351.982117 800.710999 l
+351.982117 790.099869 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.982117 806.663757 m
+441.273499 806.663757 l
+441.273499 821.126877 l
+351.982117 821.126877 l
+351.982117 806.663757 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.982117 827.079636 m
+441.273499 827.079636 l
+441.273499 837.773529 l
+351.982117 837.773529 l
+351.982117 827.079636 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.982117 843.726288 m
+441.273499 843.726288 l
+441.273499 858.464890 l
+351.982117 858.464890 l
+351.982117 843.726288 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-45.421799 60.094574 m
+67.680618 60.094574 l
+67.680618 150.908371 l
+-45.421799 150.908371 l
+-45.421799 60.094574 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-39.469040 66.047333 m
+61.727859 66.047333 l
+61.727859 144.955612 l
+-39.469040 144.955612 l
+-39.469040 66.047333 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-33.516281 72.000092 m
+55.775101 72.000092 l
+55.775101 82.942368 l
+-33.516281 82.942368 l
+-33.516281 72.000092 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-33.516281 88.895126 m
+55.775101 88.895126 l
+55.775101 99.803970 l
+-33.516281 99.803970 l
+-33.516281 88.895126 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-33.516281 105.756729 m
+55.775101 105.756729 l
+55.775101 119.941528 l
+-33.516281 119.941528 l
+-33.516281 105.756729 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-33.516281 125.894287 m
+55.775101 125.894287 l
+55.775101 139.002853 l
+-33.516281 139.002853 l
+-33.516281 125.894287 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+89.775833 128.392197 m
+202.878250 128.392197 l
+202.878250 219.436218 l
+89.775833 219.436218 l
+89.775833 128.392197 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+95.728592 134.344955 m
+196.925491 134.344955 l
+196.925491 213.483459 l
+95.728592 213.483459 l
+95.728592 134.344955 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+101.681351 140.297714 m
+190.972733 140.297714 l
+190.972733 152.149765 l
+101.681351 152.149765 l
+101.681351 140.297714 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+101.681351 158.102524 m
+190.972733 158.102524 l
+190.972733 169.911591 l
+101.681351 169.911591 l
+101.681351 158.102524 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+101.681351 175.864349 m
+190.972733 175.864349 l
+190.972733 188.524857 l
+101.681351 188.524857 l
+101.681351 175.864349 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+101.681351 194.477615 m
+190.972733 194.477615 l
+190.972733 207.530701 l
+101.681351 207.530701 l
+101.681351 194.477615 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+288.001282 745.825287 m
+401.103699 745.825287 l
+401.103699 833.924210 l
+288.001282 833.924210 l
+288.001282 745.825287 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+293.954041 751.778046 m
+395.150940 751.778046 l
+395.150940 827.971451 l
+293.954041 827.971451 l
+293.954041 751.778046 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+299.906799 757.730804 m
+389.198181 757.730804 l
+389.198181 769.967468 l
+299.906799 769.967468 l
+299.906799 757.730804 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+299.906799 775.920227 m
+389.198181 775.920227 l
+389.198181 788.213348 l
+299.906799 788.213348 l
+299.906799 775.920227 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+299.906799 794.166107 m
+389.198181 794.166107 l
+389.198181 804.995148 l
+299.906799 804.995148 l
+299.906799 794.166107 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+299.906799 810.947906 m
+389.198181 810.947906 l
+389.198181 822.018692 l
+299.906799 822.018692 l
+299.906799 810.947906 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-3.827103 -22.790192 m
+109.275314 -22.790192 l
+109.275314 69.551498 l
+-3.827103 69.551498 l
+-3.827103 -22.790192 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+2.125656 -16.837433 m
+103.322556 -16.837433 l
+103.322556 63.598740 l
+2.125656 63.598740 l
+2.125656 -16.837433 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+8.078415 -10.884674 m
+97.369797 -10.884674 l
+97.369797 -0.099808 l
+8.078415 -0.099808 l
+8.078415 -10.884674 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+8.078415 5.852951 m
+97.369797 5.852951 l
+97.369797 18.214050 l
+8.078415 18.214050 l
+8.078415 5.852951 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+8.078415 24.166809 m
+97.369797 24.166809 l
+97.369797 38.680054 l
+8.078415 38.680054 l
+8.078415 24.166809 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+8.078415 44.632812 m
+97.369797 44.632812 l
+97.369797 57.645981 l
+8.078415 57.645981 l
+8.078415 44.632812 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+183.622086 199.116486 m
+296.724503 199.116486 l
+296.724503 304.913010 l
+183.622086 304.913010 l
+183.622086 199.116486 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+189.574844 205.069244 m
+290.771744 205.069244 l
+290.771744 298.960251 l
+189.574844 298.960251 l
+189.574844 205.069244 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.527603 211.022003 m
+284.818985 211.022003 l
+284.818985 222.865753 l
+195.527603 222.865753 l
+195.527603 211.022003 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.527603 228.818512 m
+284.818985 228.818512 l
+284.818985 241.639481 l
+195.527603 241.639481 l
+195.527603 228.818512 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.527603 247.592239 m
+284.818985 247.592239 l
+284.818985 258.847046 l
+195.527603 258.847046 l
+195.527603 247.592239 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.527603 264.799805 m
+284.818985 264.799805 l
+284.818985 276.075394 l
+195.527603 276.075394 l
+195.527603 264.799805 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.527603 282.028152 m
+284.818985 282.028152 l
+284.818985 293.007492 l
+195.527603 293.007492 l
+195.527603 282.028152 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+98.036835 464.065598 m
+211.139252 464.065598 l
+211.139252 572.525391 l
+98.036835 572.525391 l
+98.036835 464.065598 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+103.989594 470.018356 m
+205.186493 470.018356 l
+205.186493 566.572632 l
+103.989594 566.572632 l
+103.989594 470.018356 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+109.942352 475.971115 m
+199.233734 475.971115 l
+199.233734 489.750320 l
+109.942352 489.750320 l
+109.942352 475.971115 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+109.942352 495.703079 m
+199.233734 495.703079 l
+199.233734 506.519455 l
+109.942352 506.519455 l
+109.942352 495.703079 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+109.942352 512.472214 m
+199.233734 512.472214 l
+199.233734 525.228104 l
+109.942352 525.228104 l
+109.942352 512.472214 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+109.942352 531.180862 m
+199.233734 531.180862 l
+199.233734 543.316147 l
+109.942352 543.316147 l
+109.942352 531.180862 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+109.942352 549.268906 m
+199.233734 549.268906 l
+199.233734 560.619873 l
+109.942352 560.619873 l
+109.942352 549.268906 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+391.979065 446.310608 m
+505.081482 446.310608 l
+505.081482 557.459869 l
+391.979065 557.459869 l
+391.979065 446.310608 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+397.931824 452.263367 m
+499.128723 452.263367 l
+499.128723 551.507111 l
+397.931824 551.507111 l
+397.931824 452.263367 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+403.884583 458.216125 m
+493.175964 458.216125 l
+493.175964 470.527939 l
+403.884583 470.527939 l
+403.884583 458.216125 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+403.884583 476.480698 m
+493.175964 476.480698 l
+493.175964 488.580429 l
+403.884583 488.580429 l
+403.884583 476.480698 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+403.884583 494.533188 m
+493.175964 494.533188 l
+493.175964 509.014069 l
+403.884583 509.014069 l
+403.884583 494.533188 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+403.884583 514.966827 m
+493.175964 514.966827 l
+493.175964 529.039993 l
+403.884583 529.039993 l
+403.884583 514.966827 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+403.884583 534.992752 m
+493.175964 534.992752 l
+493.175964 545.554352 l
+403.884583 545.554352 l
+403.884583 534.992752 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+308.805984 386.333252 m
+421.908401 386.333252 l
+421.908401 478.405258 l
+308.805984 478.405258 l
+308.805984 386.333252 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+314.758743 392.286011 m
+415.955643 392.286011 l
+415.955643 472.452499 l
+314.758743 472.452499 l
+314.758743 392.286011 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+320.711502 398.238770 m
+410.002884 398.238770 l
+410.002884 409.103241 l
+320.711502 409.103241 l
+320.711502 398.238770 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+320.711502 415.056000 m
+410.002884 415.056000 l
+410.002884 428.862396 l
+320.711502 428.862396 l
+320.711502 415.056000 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+320.711502 434.815155 m
+410.002884 434.815155 l
+410.002884 446.573471 l
+320.711502 446.573471 l
+320.711502 434.815155 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+320.711502 452.526230 m
+410.002884 452.526230 l
+410.002884 466.499741 l
+320.711502 466.499741 l
+320.711502 452.526230 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+451.111923 116.145142 m
+564.214340 116.145142 l
+564.214340 208.386505 l
+451.111923 208.386505 l
+451.111923 116.145142 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+457.064682 122.097900 m
+558.261581 122.097900 l
+558.261581 202.433746 l
+457.064682 202.433746 l
+457.064682 122.097900 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.017441 128.050659 m
+552.308823 128.050659 l
+552.308823 140.729568 l
+463.017441 140.729568 l
+463.017441 128.050659 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.017441 146.682327 m
+552.308823 146.682327 l
+552.308823 159.820709 l
+463.017441 159.820709 l
+463.017441 146.682327 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.017441 165.773468 m
+552.308823 165.773468 l
+552.308823 177.816330 l
+463.017441 177.816330 l
+463.017441 165.773468 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.017441 183.769089 m
+552.308823 183.769089 l
+552.308823 196.480988 l
+463.017441 196.480988 l
+463.017441 183.769089 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-38.531631 103.414963 m
+74.570786 103.414963 l
+74.570786 197.073410 l
+-38.531631 197.073410 l
+-38.531631 103.414963 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-32.578873 109.367722 m
+68.618027 109.367722 l
+68.618027 191.120651 l
+-32.578873 191.120651 l
+-32.578873 109.367722 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-26.626114 115.320480 m
+62.665268 115.320480 l
+62.665268 129.766891 l
+-26.626114 129.766891 l
+-26.626114 115.320480 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-26.626114 135.719650 m
+62.665268 135.719650 l
+62.665268 146.668320 l
+-26.626114 146.668320 l
+-26.626114 135.719650 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-26.626114 152.621078 m
+62.665268 152.621078 l
+62.665268 167.345551 l
+-26.626114 167.345551 l
+-26.626114 152.621078 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-26.626114 173.298309 m
+62.665268 173.298309 l
+62.665268 185.167892 l
+-26.626114 185.167892 l
+-26.626114 173.298309 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-12.758865 767.538193 m
+100.343552 767.538193 l
+100.343552 880.261795 l
+-12.758865 880.261795 l
+-12.758865 767.538193 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-6.806107 773.490952 m
+94.390793 773.490952 l
+94.390793 874.309036 l
+-6.806107 874.309036 l
+-6.806107 773.490952 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-0.853348 779.443710 m
+88.438034 779.443710 l
+88.438034 792.033997 l
+-0.853348 792.033997 l
+-0.853348 779.443710 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-0.853348 797.986755 m
+88.438034 797.986755 l
+88.438034 812.449936 l
+-0.853348 812.449936 l
+-0.853348 797.986755 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-0.853348 818.402695 m
+88.438034 818.402695 l
+88.438034 830.259598 l
+-0.853348 830.259598 l
+-0.853348 818.402695 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-0.853348 836.212357 m
+88.438034 836.212357 l
+88.438034 849.305466 l
+-0.853348 849.305466 l
+-0.853348 836.212357 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-0.853348 855.258224 m
+88.438034 855.258224 l
+88.438034 868.356277 l
+-0.853348 868.356277 l
+-0.853348 855.258224 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+528.505539 12.566437 m
+641.607956 12.566437 l
+641.607956 103.563889 l
+528.505539 103.563889 l
+528.505539 12.566437 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+534.458298 18.519196 m
+635.655197 18.519196 l
+635.655197 97.611130 l
+534.458298 97.611130 l
+534.458298 18.519196 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+540.411057 24.471954 m
+629.702438 24.471954 l
+629.702438 36.715546 l
+540.411057 36.715546 l
+540.411057 24.471954 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+540.411057 42.668304 m
+629.702438 42.668304 l
+629.702438 54.915161 l
+540.411057 54.915161 l
+540.411057 42.668304 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+540.411057 60.867920 m
+629.702438 60.867920 l
+629.702438 73.212402 l
+540.411057 73.212402 l
+540.411057 60.867920 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+540.411057 79.165161 m
+629.702438 79.165161 l
+629.702438 91.658371 l
+540.411057 91.658371 l
+540.411057 79.165161 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+393.635529 644.425049 m
+506.737946 644.425049 l
+506.737946 756.833389 l
+393.635529 756.833389 l
+393.635529 644.425049 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+399.588287 650.377808 m
+500.785187 650.377808 l
+500.785187 750.880630 l
+399.588287 750.880630 l
+399.588287 650.377808 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.541046 656.330566 m
+494.832428 656.330566 l
+494.832428 669.833450 l
+405.541046 669.833450 l
+405.541046 656.330566 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.541046 675.786209 m
+494.832428 675.786209 l
+494.832428 687.515701 l
+405.541046 687.515701 l
+405.541046 675.786209 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.541046 693.468460 m
+494.832428 693.468460 l
+494.832428 707.554886 l
+405.541046 707.554886 l
+405.541046 693.468460 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.541046 713.507645 m
+494.832428 713.507645 l
+494.832428 724.480774 l
+405.541046 724.480774 l
+405.541046 713.507645 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.541046 730.433533 m
+494.832428 730.433533 l
+494.832428 744.927872 l
+405.541046 744.927872 l
+405.541046 730.433533 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+221.435623 789.504654 m
+334.538040 789.504654 l
+334.538040 881.542938 l
+221.435623 881.542938 l
+221.435623 789.504654 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+227.388382 795.457413 m
+328.585281 795.457413 l
+328.585281 875.590179 l
+227.388382 875.590179 l
+227.388382 795.457413 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+233.341141 801.410172 m
+322.632523 801.410172 l
+322.632523 812.526794 l
+233.341141 812.526794 l
+233.341141 801.410172 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+233.341141 818.479553 m
+322.632523 818.479553 l
+322.632523 831.693817 l
+233.341141 831.693817 l
+233.341141 818.479553 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+233.341141 837.646576 m
+322.632523 837.646576 l
+322.632523 849.601639 l
+233.341141 849.601639 l
+233.341141 837.646576 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+233.341141 855.554398 m
+322.632523 855.554398 l
+322.632523 869.637421 l
+233.341141 869.637421 l
+233.341141 855.554398 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+470.041718 158.823669 m
+583.144135 158.823669 l
+583.144135 268.169876 l
+470.041718 268.169876 l
+470.041718 158.823669 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+475.994476 164.776428 m
+577.191376 164.776428 l
+577.191376 262.217117 l
+475.994476 262.217117 l
+475.994476 164.776428 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+481.947235 170.729187 m
+571.238617 170.729187 l
+571.238617 183.469131 l
+481.947235 183.469131 l
+481.947235 170.729187 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+481.947235 189.421890 m
+571.238617 189.421890 l
+571.238617 200.654327 l
+481.947235 200.654327 l
+481.947235 189.421890 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+481.947235 206.607086 m
+571.238617 206.607086 l
+571.238617 217.975388 l
+481.947235 217.975388 l
+481.947235 206.607086 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+481.947235 223.928146 m
+571.238617 223.928146 l
+571.238617 236.606354 l
+481.947235 236.606354 l
+481.947235 223.928146 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+481.947235 242.559113 m
+571.238617 242.559113 l
+571.238617 256.264359 l
+481.947235 256.264359 l
+481.947235 242.559113 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+272.388885 455.764328 m
+385.491302 455.764328 l
+385.491302 551.215714 l
+272.388885 551.215714 l
+272.388885 455.764328 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+278.341644 461.717087 m
+379.538544 461.717087 l
+379.538544 545.262955 l
+278.341644 545.262955 l
+278.341644 461.717087 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+284.294403 467.669846 m
+373.585785 467.669846 l
+373.585785 480.568436 l
+284.294403 480.568436 l
+284.294403 467.669846 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+284.294403 486.521194 m
+373.585785 486.521194 l
+373.585785 500.496460 l
+284.294403 500.496460 l
+284.294403 486.521194 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+284.294403 506.449219 m
+373.585785 506.449219 l
+373.585785 519.188553 l
+284.294403 519.188553 l
+284.294403 506.449219 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+284.294403 525.141312 m
+373.585785 525.141312 l
+373.585785 539.310196 l
+284.294403 539.310196 l
+284.294403 525.141312 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+20.330322 646.989243 m
+133.432739 646.989243 l
+133.432739 735.638855 l
+20.330322 735.638855 l
+20.330322 646.989243 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+26.283081 652.942001 m
+127.479980 652.942001 l
+127.479980 729.686096 l
+26.283081 729.686096 l
+26.283081 652.942001 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+32.235840 658.894760 m
+121.527222 658.894760 l
+121.527222 670.295197 l
+32.235840 670.295197 l
+32.235840 658.894760 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+32.235840 676.247955 m
+121.527222 676.247955 l
+121.527222 687.931900 l
+32.235840 687.931900 l
+32.235840 676.247955 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+32.235840 693.884659 m
+121.527222 693.884659 l
+121.527222 706.420090 l
+32.235840 706.420090 l
+32.235840 693.884659 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+32.235840 712.372849 m
+121.527222 712.372849 l
+121.527222 723.733337 l
+32.235840 723.733337 l
+32.235840 712.372849 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+377.487213 163.393860 m
+490.589630 163.393860 l
+490.589630 274.351105 l
+377.487213 274.351105 l
+377.487213 163.393860 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+383.439972 169.346619 m
+484.636871 169.346619 l
+484.636871 268.398346 l
+383.439972 268.398346 l
+383.439972 169.346619 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+389.392731 175.299377 m
+478.684113 175.299377 l
+478.684113 188.305801 l
+389.392731 188.305801 l
+389.392731 175.299377 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+389.392731 194.258560 m
+478.684113 194.258560 l
+478.684113 207.249863 l
+389.392731 207.249863 l
+389.392731 194.258560 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+389.392731 213.202621 m
+478.684113 213.202621 l
+478.684113 224.009964 l
+389.392731 224.009964 l
+389.392731 213.202621 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+389.392731 229.962723 m
+478.684113 229.962723 l
+478.684113 241.675339 l
+389.392731 241.675339 l
+389.392731 229.962723 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+389.392731 247.628098 m
+478.684113 247.628098 l
+478.684113 262.445587 l
+389.392731 262.445587 l
+389.392731 247.628098 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-4.837677 578.034698 m
+108.264740 578.034698 l
+108.264740 688.280670 l
+-4.837677 688.280670 l
+-4.837677 578.034698 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+1.115082 583.987457 m
+102.311981 583.987457 l
+102.311981 682.327911 l
+1.115082 682.327911 l
+1.115082 583.987457 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+7.067841 589.940216 m
+96.359222 589.940216 l
+96.359222 601.494995 l
+7.067841 601.494995 l
+7.067841 589.940216 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+7.067841 607.447754 m
+96.359222 607.447754 l
+96.359222 618.350357 l
+7.067841 618.350357 l
+7.067841 607.447754 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+7.067841 624.303116 m
+96.359222 624.303116 l
+96.359222 637.458374 l
+7.067841 637.458374 l
+7.067841 624.303116 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+7.067841 643.411133 m
+96.359222 643.411133 l
+96.359222 656.996674 l
+7.067841 656.996674 l
+7.067841 643.411133 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+7.067841 662.949432 m
+96.359222 662.949432 l
+96.359222 676.375153 l
+7.067841 676.375153 l
+7.067841 662.949432 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-5.817581 367.059937 m
+107.284836 367.059937 l
+107.284836 479.488358 l
+-5.817581 479.488358 l
+-5.817581 367.059937 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+0.135178 373.012695 m
+101.332077 373.012695 l
+101.332077 473.535599 l
+0.135178 473.535599 l
+0.135178 373.012695 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+6.087936 378.965454 m
+95.379318 378.965454 l
+95.379318 393.838821 l
+6.087936 393.838821 l
+6.087936 378.965454 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+6.087936 399.791580 m
+95.379318 399.791580 l
+95.379318 410.518585 l
+6.087936 410.518585 l
+6.087936 399.791580 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+6.087936 416.471344 m
+95.379318 416.471344 l
+95.379318 430.590530 l
+6.087936 430.590530 l
+6.087936 416.471344 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+6.087936 436.543289 m
+95.379318 436.543289 l
+95.379318 447.719818 l
+6.087936 447.719818 l
+6.087936 436.543289 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+6.087936 453.672577 m
+95.379318 453.672577 l
+95.379318 467.582840 l
+6.087936 467.582840 l
+6.087936 453.672577 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+127.305206 145.268951 m
+240.407623 145.268951 l
+240.407623 242.563919 l
+127.305206 242.563919 l
+127.305206 145.268951 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+133.257965 151.221710 m
+234.454865 151.221710 l
+234.454865 236.611160 l
+133.257965 236.611160 l
+133.257965 151.221710 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+139.210724 157.174469 m
+228.502106 157.174469 l
+228.502106 172.031799 l
+139.210724 172.031799 l
+139.210724 157.174469 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+139.210724 177.984558 m
+228.502106 177.984558 l
+228.502106 190.736847 l
+139.210724 190.736847 l
+139.210724 177.984558 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+139.210724 196.689606 m
+228.502106 196.689606 l
+228.502106 209.886002 l
+139.210724 209.886002 l
+139.210724 196.689606 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+139.210724 215.838760 m
+228.502106 215.838760 l
+228.502106 230.658401 l
+139.210724 230.658401 l
+139.210724 215.838760 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+28.699066 35.628845 m
+141.801483 35.628845 l
+141.801483 127.602127 l
+28.699066 127.602127 l
+28.699066 35.628845 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+34.651825 41.581604 m
+135.848724 41.581604 l
+135.848724 121.649368 l
+34.651825 121.649368 l
+34.651825 41.581604 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+40.604584 47.534363 m
+129.895966 47.534363 l
+129.895966 60.050369 l
+40.604584 60.050369 l
+40.604584 47.534363 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+40.604584 66.003128 m
+129.895966 66.003128 l
+129.895966 76.587158 l
+40.604584 76.587158 l
+40.604584 66.003128 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+40.604584 82.539917 m
+129.895966 82.539917 l
+129.895966 95.794464 l
+40.604584 95.794464 l
+40.604584 82.539917 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+40.604584 101.747223 m
+129.895966 101.747223 l
+129.895966 115.696609 l
+40.604584 115.696609 l
+40.604584 101.747223 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+355.340561 34.132401 m
+468.442978 34.132401 l
+468.442978 140.985153 l
+355.340561 140.985153 l
+355.340561 34.132401 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+361.293320 40.085159 m
+462.490219 40.085159 l
+462.490219 135.032394 l
+361.293320 135.032394 l
+361.293320 40.085159 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+367.246078 46.037918 m
+456.537460 46.037918 l
+456.537460 57.296158 l
+367.246078 57.296158 l
+367.246078 46.037918 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+367.246078 63.248917 m
+456.537460 63.248917 l
+456.537460 75.670471 l
+367.246078 75.670471 l
+367.246078 63.248917 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+367.246078 81.623230 m
+456.537460 81.623230 l
+456.537460 95.718201 l
+367.246078 95.718201 l
+367.246078 81.623230 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+367.246078 101.670959 m
+456.537460 101.670959 l
+456.537460 112.334412 l
+367.246078 112.334412 l
+367.246078 101.670959 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+367.246078 118.287170 m
+456.537460 118.287170 l
+456.537460 129.079636 l
+367.246078 129.079636 l
+367.246078 118.287170 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+367.390549 735.540131 m
+480.492966 735.540131 l
+480.492966 824.136612 l
+367.390549 824.136612 l
+367.390549 735.540131 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+373.343307 741.492889 m
+474.540207 741.492889 l
+474.540207 818.183853 l
+373.343307 818.183853 l
+373.343307 741.492889 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+379.296066 747.445648 m
+468.587448 747.445648 l
+468.587448 759.425278 l
+379.296066 759.425278 l
+379.296066 747.445648 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+379.296066 765.378036 m
+468.587448 765.378036 l
+468.587448 777.126083 l
+379.296066 777.126083 l
+379.296066 765.378036 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+379.296066 783.078842 m
+468.587448 783.078842 l
+468.587448 794.666565 l
+379.296066 794.666565 l
+379.296066 783.078842 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+379.296066 800.619324 m
+468.587448 800.619324 l
+468.587448 812.231094 l
+379.296066 812.231094 l
+379.296066 800.619324 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+260.883469 301.547913 m
+373.985886 301.547913 l
+373.985886 411.176117 l
+260.883469 411.176117 l
+260.883469 301.547913 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+266.836227 307.500671 m
+368.033127 307.500671 l
+368.033127 405.223358 l
+266.836227 405.223358 l
+266.836227 307.500671 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.788986 313.453430 m
+362.080368 313.453430 l
+362.080368 327.187607 l
+272.788986 327.187607 l
+272.788986 313.453430 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.788986 333.140366 m
+362.080368 333.140366 l
+362.080368 345.651871 l
+272.788986 345.651871 l
+272.788986 333.140366 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.788986 351.604630 m
+362.080368 351.604630 l
+362.080368 362.472656 l
+272.788986 362.472656 l
+272.788986 351.604630 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.788986 368.425415 m
+362.080368 368.425415 l
+362.080368 382.562988 l
+272.788986 382.562988 l
+272.788986 368.425415 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+272.788986 388.515747 m
+362.080368 388.515747 l
+362.080368 399.270599 l
+272.788986 399.270599 l
+272.788986 388.515747 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+210.478638 4.032227 m
+323.581055 4.032227 l
+323.581055 117.539108 l
+210.478638 117.539108 l
+210.478638 4.032227 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+216.431396 9.984985 m
+317.628296 9.984985 l
+317.628296 111.586349 l
+216.431396 111.586349 l
+216.431396 9.984985 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.384155 15.937744 m
+311.675537 15.937744 l
+311.675537 26.832108 l
+222.384155 26.832108 l
+222.384155 15.937744 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.384155 32.784866 m
+311.675537 32.784866 l
+311.675537 47.547058 l
+222.384155 47.547058 l
+222.384155 32.784866 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.384155 53.499817 m
+311.675537 53.499817 l
+311.675537 67.175964 l
+222.384155 67.175964 l
+222.384155 53.499817 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.384155 73.128723 m
+311.675537 73.128723 l
+311.675537 84.906769 l
+222.384155 84.906769 l
+222.384155 73.128723 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+222.384155 90.859528 m
+311.675537 90.859528 l
+311.675537 105.633591 l
+222.384155 105.633591 l
+222.384155 90.859528 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+220.597870 376.054581 m
+333.700287 376.054581 l
+333.700287 486.106735 l
+220.597870 486.106735 l
+220.597870 376.054581 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+226.550629 382.007339 m
+327.747528 382.007339 l
+327.747528 480.153976 l
+226.550629 480.153976 l
+226.550629 382.007339 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+232.503387 387.960098 m
+321.794769 387.960098 l
+321.794769 401.991364 l
+232.503387 401.991364 l
+232.503387 387.960098 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+232.503387 407.944122 m
+321.794769 407.944122 l
+321.794769 421.046066 l
+232.503387 421.046066 l
+232.503387 407.944122 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+232.503387 426.998825 m
+321.794769 426.998825 l
+321.794769 440.351700 l
+232.503387 440.351700 l
+232.503387 426.998825 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+232.503387 446.304459 m
+321.794769 446.304459 l
+321.794769 457.165787 l
+232.503387 457.165787 l
+232.503387 446.304459 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+232.503387 463.118546 m
+321.794769 463.118546 l
+321.794769 474.201218 l
+232.503387 474.201218 l
+232.503387 463.118546 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+481.570358 320.481430 m
+594.672775 320.481430 l
+594.672775 432.262833 l
+481.570358 432.262833 l
+481.570358 320.481430 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+487.523117 326.434189 m
+588.720016 326.434189 l
+588.720016 426.310074 l
+487.523117 426.310074 l
+487.523117 326.434189 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.475876 332.386948 m
+582.767258 332.386948 l
+582.767258 343.211777 l
+493.475876 343.211777 l
+493.475876 332.386948 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.475876 349.164536 m
+582.767258 349.164536 l
+582.767258 360.282883 l
+493.475876 360.282883 l
+493.475876 349.164536 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.475876 366.235641 m
+582.767258 366.235641 l
+582.767258 380.867111 l
+493.475876 380.867111 l
+493.475876 366.235641 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.475876 386.819870 m
+582.767258 386.819870 l
+582.767258 400.628250 l
+493.475876 400.628250 l
+493.475876 386.819870 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.475876 406.581009 m
+582.767258 406.581009 l
+582.767258 420.357315 l
+493.475876 420.357315 l
+493.475876 406.581009 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+351.902359 597.217270 m
+465.004776 597.217270 l
+465.004776 687.055252 l
+351.902359 687.055252 l
+351.902359 597.217270 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+357.855118 603.170029 m
+459.052017 603.170029 l
+459.052017 681.102493 l
+357.855118 681.102493 l
+357.855118 603.170029 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+363.807877 609.122787 m
+453.099258 609.122787 l
+453.099258 621.710114 l
+363.807877 621.710114 l
+363.807877 609.122787 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+363.807877 627.662872 m
+453.099258 627.662872 l
+453.099258 639.782501 l
+363.807877 639.782501 l
+363.807877 627.662872 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+363.807877 645.735260 m
+453.099258 645.735260 l
+453.099258 656.240509 l
+363.807877 656.240509 l
+363.807877 645.735260 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+363.807877 662.193268 m
+453.099258 662.193268 l
+453.099258 675.149734 l
+363.807877 675.149734 l
+363.807877 662.193268 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-8.149963 345.950928 m
+104.952454 345.950928 l
+104.952454 434.962097 l
+-8.149963 434.962097 l
+-8.149963 345.950928 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-2.197205 351.903687 m
+98.999695 351.903687 l
+98.999695 429.009338 l
+-2.197205 429.009338 l
+-2.197205 351.903687 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+3.755554 357.856445 m
+93.046936 357.856445 l
+93.046936 370.367203 l
+3.755554 370.367203 l
+3.755554 357.856445 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+3.755554 376.319962 m
+93.046936 376.319962 l
+93.046936 387.148483 l
+3.755554 387.148483 l
+3.755554 376.319962 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+3.755554 393.101242 m
+93.046936 393.101242 l
+93.046936 405.684647 l
+3.755554 405.684647 l
+3.755554 393.101242 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+3.755554 411.637405 m
+93.046936 411.637405 l
+93.046936 423.056580 l
+3.755554 423.056580 l
+3.755554 411.637405 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+58.309311 603.475037 m
+171.411728 603.475037 l
+171.411728 719.058853 l
+58.309311 719.058853 l
+58.309311 603.475037 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+64.262070 609.427795 m
+165.458969 609.427795 l
+165.458969 713.106094 l
+64.262070 713.106094 l
+64.262070 609.427795 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+70.214828 615.380554 m
+159.506210 615.380554 l
+159.506210 630.021667 l
+70.214828 630.021667 l
+70.214828 615.380554 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+70.214828 635.974426 m
+159.506210 635.974426 l
+159.506210 648.527954 l
+70.214828 648.527954 l
+70.214828 635.974426 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+70.214828 654.480713 m
+159.506210 654.480713 l
+159.506210 668.680542 l
+70.214828 668.680542 l
+70.214828 654.480713 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+70.214828 674.633301 m
+159.506210 674.633301 l
+159.506210 689.213333 l
+70.214828 689.213333 l
+70.214828 674.633301 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+70.214828 695.166092 m
+159.506210 695.166092 l
+159.506210 707.153336 l
+70.214828 707.153336 l
+70.214828 695.166092 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+443.292664 312.857712 m
+556.395081 312.857712 l
+556.395081 403.786087 l
+443.292664 403.786087 l
+443.292664 312.857712 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+449.245422 318.810471 m
+550.442322 318.810471 l
+550.442322 397.833328 l
+449.245422 397.833328 l
+449.245422 318.810471 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+455.198181 324.763229 m
+544.489563 324.763229 l
+544.489563 336.688202 l
+455.198181 336.688202 l
+455.198181 324.763229 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+455.198181 342.640961 m
+544.489563 342.640961 l
+544.489563 353.649231 l
+455.198181 353.649231 l
+455.198181 342.640961 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+455.198181 359.601990 m
+544.489563 359.601990 l
+544.489563 372.514160 l
+455.198181 372.514160 l
+455.198181 359.601990 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+455.198181 378.466919 m
+544.489563 378.466919 l
+544.489563 391.880569 l
+455.198181 391.880569 l
+455.198181 378.466919 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+6.271622 531.110870 m
+119.374039 531.110870 l
+119.374039 615.995880 l
+6.271622 615.995880 l
+6.271622 531.110870 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+12.224380 537.063629 m
+113.421280 537.063629 l
+113.421280 610.043121 l
+12.224380 610.043121 l
+12.224380 537.063629 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+18.177139 543.016388 m
+107.468521 543.016388 l
+107.468521 554.356384 l
+18.177139 554.356384 l
+18.177139 543.016388 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+18.177139 560.309143 m
+107.468521 560.309143 l
+107.468521 570.890381 l
+18.177139 570.890381 l
+18.177139 560.309143 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+18.177139 576.843140 m
+107.468521 576.843140 l
+107.468521 587.682632 l
+18.177139 587.682632 l
+18.177139 576.843140 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+18.177139 593.635391 m
+107.468521 593.635391 l
+107.468521 604.090363 l
+18.177139 604.090363 l
+18.177139 593.635391 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+299.165527 583.994400 m
+412.267944 583.994400 l
+412.267944 672.060287 l
+299.165527 672.060287 l
+299.165527 583.994400 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+305.118286 589.947159 m
+406.315186 589.947159 l
+406.315186 666.107529 l
+305.118286 666.107529 l
+305.118286 589.947159 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+311.071045 595.899918 m
+400.362427 595.899918 l
+400.362427 607.627731 l
+311.071045 607.627731 l
+311.071045 595.899918 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+311.071045 613.580490 m
+400.362427 613.580490 l
+400.362427 624.260178 l
+311.071045 624.260178 l
+311.071045 613.580490 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+311.071045 630.212936 m
+400.362427 630.212936 l
+400.362427 642.421310 l
+311.071045 642.421310 l
+311.071045 630.212936 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+311.071045 648.374069 m
+400.362427 648.374069 l
+400.362427 660.154770 l
+311.071045 660.154770 l
+311.071045 648.374069 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+222.856766 462.501892 m
+335.959183 462.501892 l
+335.959183 574.243988 l
+222.856766 574.243988 l
+222.856766 462.501892 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+228.809525 468.454651 m
+330.006424 468.454651 l
+330.006424 568.291229 l
+228.809525 568.291229 l
+228.809525 468.454651 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+234.762283 474.407410 m
+324.053665 474.407410 l
+324.053665 487.469986 l
+234.762283 487.469986 l
+234.762283 474.407410 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+234.762283 493.422745 m
+324.053665 493.422745 l
+324.053665 506.784134 l
+234.762283 506.784134 l
+234.762283 493.422745 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+234.762283 512.736893 m
+324.053665 512.736893 l
+324.053665 525.345367 l
+234.762283 525.345367 l
+234.762283 512.736893 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+234.762283 531.298126 m
+324.053665 531.298126 l
+324.053665 545.410538 l
+234.762283 545.410538 l
+234.762283 531.298126 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+234.762283 551.363297 m
+324.053665 551.363297 l
+324.053665 562.338470 l
+234.762283 562.338470 l
+234.762283 551.363297 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-36.013840 696.829620 m
+77.088577 696.829620 l
+77.088577 805.039581 l
+-36.013840 805.039581 l
+-36.013840 696.829620 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-30.061081 702.782379 m
+71.135818 702.782379 l
+71.135818 799.086823 l
+-30.061081 799.086823 l
+-30.061081 702.782379 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-24.108322 708.735138 m
+65.183060 708.735138 l
+65.183060 720.698715 l
+-24.108322 720.698715 l
+-24.108322 708.735138 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-24.108322 726.651474 m
+65.183060 726.651474 l
+65.183060 737.129395 l
+-24.108322 737.129395 l
+-24.108322 726.651474 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-24.108322 743.082153 m
+65.183060 743.082153 l
+65.183060 755.498047 l
+-24.108322 755.498047 l
+-24.108322 743.082153 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-24.108322 761.450806 m
+65.183060 761.450806 l
+65.183060 773.621048 l
+-24.108322 773.621048 l
+-24.108322 761.450806 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-24.108322 779.573807 m
+65.183060 779.573807 l
+65.183060 793.134064 l
+-24.108322 793.134064 l
+-24.108322 779.573807 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+67.203293 -29.857269 m
+180.305710 -29.857269 l
+180.305710 84.649231 l
+67.203293 84.649231 l
+67.203293 -29.857269 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+73.156052 -23.904510 m
+174.352951 -23.904510 l
+174.352951 78.696472 l
+73.156052 78.696472 l
+73.156052 -23.904510 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+79.108810 -17.951752 m
+168.400192 -17.951752 l
+168.400192 -3.774261 l
+79.108810 -3.774261 l
+79.108810 -17.951752 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+79.108810 2.178497 m
+168.400192 2.178497 l
+168.400192 15.450165 l
+79.108810 15.450165 l
+79.108810 2.178497 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+79.108810 21.402924 m
+168.400192 21.402924 l
+168.400192 33.794373 l
+79.108810 33.794373 l
+79.108810 21.402924 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+79.108810 39.747131 m
+168.400192 39.747131 l
+168.400192 54.062256 l
+79.108810 54.062256 l
+79.108810 39.747131 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+79.108810 60.015015 m
+168.400192 60.015015 l
+168.400192 72.743713 l
+79.108810 72.743713 l
+79.108810 60.015015 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+502.087128 25.960663 m
+615.189545 25.960663 l
+615.189545 119.985596 l
+502.087128 119.985596 l
+502.087128 25.960663 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+508.039886 31.913422 m
+609.236786 31.913422 l
+609.236786 114.032837 l
+508.039886 114.032837 l
+508.039886 31.913422 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+513.992645 37.866180 m
+603.284027 37.866180 l
+603.284027 52.042526 l
+513.992645 52.042526 l
+513.992645 37.866180 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+513.992645 57.995285 m
+603.284027 57.995285 l
+603.284027 72.796753 l
+513.992645 72.796753 l
+513.992645 57.995285 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+513.992645 78.749512 m
+603.284027 78.749512 l
+603.284027 89.184631 l
+513.992645 89.184631 l
+513.992645 78.749512 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+513.992645 95.137390 m
+603.284027 95.137390 l
+603.284027 108.080078 l
+513.992645 108.080078 l
+513.992645 95.137390 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+406.176392 206.019638 m
+519.278809 206.019638 l
+519.278809 297.409256 l
+406.176392 297.409256 l
+406.176392 206.019638 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+412.129150 211.972397 m
+513.326050 211.972397 l
+513.326050 291.456497 l
+412.129150 291.456497 l
+412.129150 211.972397 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+418.081909 217.925156 m
+507.373291 217.925156 l
+507.373291 228.462280 l
+418.081909 228.462280 l
+418.081909 217.925156 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+418.081909 234.415039 m
+507.373291 234.415039 l
+507.373291 248.288284 l
+418.081909 248.288284 l
+418.081909 234.415039 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+418.081909 254.241043 m
+507.373291 254.241043 l
+507.373291 267.792572 l
+418.081909 267.792572 l
+418.081909 254.241043 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+418.081909 273.745331 m
+507.373291 273.745331 l
+507.373291 285.503738 l
+418.081909 285.503738 l
+418.081909 273.745331 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+493.760742 389.229324 m
+606.863159 389.229324 l
+606.863159 496.885422 l
+493.760742 496.885422 l
+493.760742 389.229324 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+499.713501 395.182083 m
+600.910400 395.182083 l
+600.910400 490.932663 l
+499.713501 490.932663 l
+499.713501 395.182083 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+505.666260 401.134842 m
+594.957642 401.134842 l
+594.957642 412.727753 l
+505.666260 412.727753 l
+505.666260 401.134842 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+505.666260 418.680511 m
+594.957642 418.680511 l
+594.957642 429.285080 l
+505.666260 429.285080 l
+505.666260 418.680511 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+505.666260 435.237839 m
+594.957642 435.237839 l
+594.957642 448.433197 l
+505.666260 448.433197 l
+505.666260 435.237839 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+505.666260 454.385956 m
+594.957642 454.385956 l
+594.957642 466.292725 l
+505.666260 466.292725 l
+505.666260 454.385956 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+505.666260 472.245483 m
+594.957642 472.245483 l
+594.957642 484.979904 l
+505.666260 484.979904 l
+505.666260 472.245483 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+36.373337 719.003494 m
+149.475754 719.003494 l
+149.475754 833.021851 l
+36.373337 833.021851 l
+36.373337 719.003494 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+42.326096 724.956253 m
+143.522995 724.956253 l
+143.522995 827.069092 l
+42.326096 827.069092 l
+42.326096 724.956253 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+48.278854 730.909012 m
+137.570236 730.909012 l
+137.570236 744.844894 l
+48.278854 744.844894 l
+48.278854 730.909012 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+48.278854 750.797653 m
+137.570236 750.797653 l
+137.570236 763.676361 l
+48.278854 763.676361 l
+48.278854 750.797653 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+48.278854 769.629120 m
+137.570236 769.629120 l
+137.570236 783.372925 l
+48.278854 783.372925 l
+48.278854 769.629120 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+48.278854 789.325684 m
+137.570236 789.325684 l
+137.570236 802.224350 l
+48.278854 802.224350 l
+48.278854 789.325684 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+48.278854 808.177109 m
+137.570236 808.177109 l
+137.570236 821.116333 l
+48.278854 821.116333 l
+48.278854 808.177109 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+143.209915 721.700577 m
+256.312332 721.700577 l
+256.312332 815.704712 l
+143.209915 815.704712 l
+143.209915 721.700577 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+149.162674 727.653336 m
+250.359573 727.653336 l
+250.359573 809.751953 l
+149.162674 809.751953 l
+149.162674 727.653336 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+155.115433 733.606094 m
+244.406815 733.606094 l
+244.406815 748.079590 l
+155.115433 748.079590 l
+155.115433 733.606094 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+155.115433 754.032349 m
+244.406815 754.032349 l
+244.406815 767.454773 l
+155.115433 767.454773 l
+155.115433 754.032349 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+155.115433 773.407532 m
+244.406815 773.407532 l
+244.406815 784.805771 l
+155.115433 784.805771 l
+155.115433 773.407532 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+155.115433 790.758530 m
+244.406815 790.758530 l
+244.406815 803.799194 l
+155.115433 803.799194 l
+155.115433 790.758530 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-38.563950 -41.572983 m
+74.538467 -41.572983 l
+74.538467 69.901108 l
+-38.563950 69.901108 l
+-38.563950 -41.572983 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-32.611191 -35.620224 m
+68.585709 -35.620224 l
+68.585709 63.948349 l
+-32.611191 63.948349 l
+-32.611191 -35.620224 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-26.658432 -29.667465 m
+62.632950 -29.667465 l
+62.632950 -14.911636 l
+-26.658432 -14.911636 l
+-26.658432 -29.667465 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-26.658432 -8.958878 m
+62.632950 -8.958878 l
+62.632950 2.258469 l
+-26.658432 2.258469 l
+-26.658432 -8.958878 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-26.658432 8.211227 m
+62.632950 8.211227 l
+62.632950 20.534897 l
+-26.658432 20.534897 l
+-26.658432 8.211227 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-26.658432 26.487656 m
+62.632950 26.487656 l
+62.632950 39.025833 l
+-26.658432 39.025833 l
+-26.658432 26.487656 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-26.658432 44.978592 m
+62.632950 44.978592 l
+62.632950 57.995590 l
+-26.658432 57.995590 l
+-26.658432 44.978592 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+428.533478 44.851440 m
+541.635895 44.851440 l
+541.635895 155.404419 l
+428.533478 155.404419 l
+428.533478 44.851440 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+434.486237 50.804199 m
+535.683136 50.804199 l
+535.683136 149.451660 l
+434.486237 149.451660 l
+434.486237 50.804199 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+440.438995 56.756958 m
+529.730377 56.756958 l
+529.730377 70.269089 l
+440.438995 70.269089 l
+440.438995 56.756958 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+440.438995 76.221848 m
+529.730377 76.221848 l
+529.730377 90.536072 l
+440.438995 90.536072 l
+440.438995 76.221848 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+440.438995 96.488831 m
+529.730377 96.488831 l
+529.730377 107.495270 l
+440.438995 107.495270 l
+440.438995 96.488831 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+440.438995 113.448029 m
+529.730377 113.448029 l
+529.730377 126.220749 l
+440.438995 126.220749 l
+440.438995 113.448029 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+440.438995 132.173508 m
+529.730377 132.173508 l
+529.730377 143.498901 l
+440.438995 143.498901 l
+440.438995 132.173508 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+357.307388 312.918945 m
+470.409805 312.918945 l
+470.409805 405.464890 l
+357.307388 405.464890 l
+357.307388 312.918945 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+363.260147 318.871704 m
+464.457047 318.871704 l
+464.457047 399.512131 l
+363.260147 399.512131 l
+363.260147 318.871704 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+369.212906 324.824463 m
+458.504288 324.824463 l
+458.504288 339.479065 l
+369.212906 339.479065 l
+369.212906 324.824463 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+369.212906 345.431824 m
+458.504288 345.431824 l
+458.504288 355.977295 l
+369.212906 355.977295 l
+369.212906 345.431824 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+369.212906 361.930054 m
+458.504288 361.930054 l
+458.504288 375.050888 l
+369.212906 375.050888 l
+369.212906 361.930054 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+369.212906 381.003647 m
+458.504288 381.003647 l
+458.504288 393.559372 l
+369.212906 393.559372 l
+369.212906 381.003647 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+98.179428 616.629150 m
+211.281845 616.629150 l
+211.281845 729.029129 l
+98.179428 729.029129 l
+98.179428 616.629150 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+104.132187 622.581909 m
+205.329086 622.581909 l
+205.329086 723.076370 l
+104.132187 723.076370 l
+104.132187 622.581909 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+110.084946 628.534668 m
+199.376328 628.534668 l
+199.376328 641.908585 l
+110.084946 641.908585 l
+110.084946 628.534668 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+110.084946 647.861343 m
+199.376328 647.861343 l
+199.376328 659.667603 l
+110.084946 659.667603 l
+110.084946 647.861343 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+110.084946 665.620361 m
+199.376328 665.620361 l
+199.376328 676.589340 l
+110.084946 676.589340 l
+110.084946 665.620361 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+110.084946 682.542099 m
+199.376328 682.542099 l
+199.376328 697.279999 l
+110.084946 697.279999 l
+110.084946 682.542099 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+110.084946 703.232758 m
+199.376328 703.232758 l
+199.376328 717.123611 l
+110.084946 717.123611 l
+110.084946 703.232758 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+316.335663 277.617142 m
+429.438080 277.617142 l
+429.438080 388.612534 l
+316.335663 388.612534 l
+316.335663 277.617142 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+322.288422 283.569901 m
+423.485321 283.569901 l
+423.485321 382.659775 l
+322.288422 382.659775 l
+322.288422 283.569901 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+328.241180 289.522659 m
+417.532562 289.522659 l
+417.532562 302.854950 l
+328.241180 302.854950 l
+328.241180 289.522659 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+328.241180 308.807709 m
+417.532562 308.807709 l
+417.532562 321.585205 l
+328.241180 321.585205 l
+328.241180 308.807709 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+328.241180 327.537964 m
+417.532562 327.537964 l
+417.532562 339.435715 l
+328.241180 339.435715 l
+328.241180 327.537964 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+328.241180 345.388474 m
+417.532562 345.388474 l
+417.532562 357.356903 l
+328.241180 357.356903 l
+328.241180 345.388474 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+328.241180 363.309662 m
+417.532562 363.309662 l
+417.532562 376.707016 l
+328.241180 376.707016 l
+328.241180 363.309662 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+152.565521 701.527344 m
+265.667938 701.527344 l
+265.667938 806.738998 l
+152.565521 806.738998 l
+152.565521 701.527344 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+158.518280 707.480103 m
+259.715179 707.480103 l
+259.715179 800.786240 l
+158.518280 800.786240 l
+158.518280 707.480103 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+164.471039 713.432861 m
+253.762421 713.432861 l
+253.762421 724.913452 l
+164.471039 724.913452 l
+164.471039 713.432861 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+164.471039 730.866211 m
+253.762421 730.866211 l
+253.762421 741.298645 l
+164.471039 741.298645 l
+164.471039 730.866211 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+164.471039 747.251404 m
+253.762421 747.251404 l
+253.762421 758.752502 l
+164.471039 758.752502 l
+164.471039 747.251404 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+164.471039 764.705261 m
+253.762421 764.705261 l
+253.762421 775.465973 l
+164.471039 775.465973 l
+164.471039 764.705261 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+164.471039 781.418732 m
+253.762421 781.418732 l
+253.762421 794.833481 l
+164.471039 794.833481 l
+164.471039 781.418732 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+189.555878 477.643433 m
+302.658295 477.643433 l
+302.658295 583.977707 l
+189.555878 583.977707 l
+189.555878 477.643433 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+195.508636 483.596191 m
+296.705536 483.596191 l
+296.705536 578.024948 l
+195.508636 578.024948 l
+195.508636 483.596191 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+201.461395 489.548950 m
+290.752777 489.548950 l
+290.752777 501.724884 l
+201.461395 501.724884 l
+201.461395 489.548950 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+201.461395 507.677643 m
+290.752777 507.677643 l
+290.752777 519.304306 l
+201.461395 519.304306 l
+201.461395 507.677643 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+201.461395 525.257065 m
+290.752777 525.257065 l
+290.752777 536.007919 l
+201.461395 536.007919 l
+201.461395 525.257065 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+201.461395 541.960678 m
+290.752777 541.960678 l
+290.752777 552.906281 l
+201.461395 552.906281 l
+201.461395 541.960678 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+201.461395 558.859039 m
+290.752777 558.859039 l
+290.752777 572.072189 l
+201.461395 572.072189 l
+201.461395 558.859039 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+144.501877 268.126831 m
+257.604294 268.126831 l
+257.604294 379.378937 l
+144.501877 379.378937 l
+144.501877 268.126831 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+150.454636 274.079590 m
+251.651535 274.079590 l
+251.651535 373.426178 l
+150.454636 373.426178 l
+150.454636 274.079590 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+156.407394 280.032349 m
+245.698776 280.032349 l
+245.698776 292.551331 l
+156.407394 292.551331 l
+156.407394 280.032349 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+156.407394 298.504089 m
+245.698776 298.504089 l
+245.698776 312.029297 l
+156.407394 312.029297 l
+156.407394 298.504089 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+156.407394 317.982056 m
+245.698776 317.982056 l
+245.698776 330.148941 l
+156.407394 330.148941 l
+156.407394 317.982056 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+156.407394 336.101700 m
+245.698776 336.101700 l
+245.698776 350.469330 l
+156.407394 350.469330 l
+156.407394 336.101700 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+156.407394 356.422089 m
+245.698776 356.422089 l
+245.698776 367.473419 l
+156.407394 367.473419 l
+156.407394 356.422089 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-19.880035 745.275406 m
+93.222382 745.275406 l
+93.222382 857.324524 l
+-19.880035 857.324524 l
+-19.880035 745.275406 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-13.927277 751.228165 m
+87.269623 751.228165 l
+87.269623 851.371765 l
+-13.927277 851.371765 l
+-13.927277 751.228165 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-7.974518 757.180923 m
+81.316864 757.180923 l
+81.316864 769.843689 l
+-7.974518 769.843689 l
+-7.974518 757.180923 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-7.974518 775.796448 m
+81.316864 775.796448 l
+81.316864 790.410217 l
+-7.974518 790.410217 l
+-7.974518 775.796448 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-7.974518 796.362976 m
+81.316864 796.362976 l
+81.316864 807.369232 l
+-7.974518 807.369232 l
+-7.974518 796.362976 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-7.974518 813.321991 m
+81.316864 813.321991 l
+81.316864 826.849197 l
+-7.974518 826.849197 l
+-7.974518 813.321991 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-7.974518 832.801956 m
+81.316864 832.801956 l
+81.316864 845.419006 l
+-7.974518 845.419006 l
+-7.974518 832.801956 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+438.392868 637.373016 m
+551.495285 637.373016 l
+551.495285 729.042892 l
+438.392868 729.042892 l
+438.392868 637.373016 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+444.345627 643.325775 m
+545.542526 643.325775 l
+545.542526 723.090134 l
+444.345627 723.090134 l
+444.345627 643.325775 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.298386 649.278534 m
+539.589767 649.278534 l
+539.589767 659.923218 l
+450.298386 659.923218 l
+450.298386 649.278534 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.298386 665.875977 m
+539.589767 665.875977 l
+539.589767 680.578049 l
+450.298386 680.578049 l
+450.298386 665.875977 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.298386 686.530807 m
+539.589767 686.530807 l
+539.589767 699.875977 l
+450.298386 699.875977 l
+450.298386 686.530807 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+450.298386 705.828735 m
+539.589767 705.828735 l
+539.589767 717.137375 l
+450.298386 717.137375 l
+450.298386 705.828735 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+56.396515 546.500565 m
+169.498932 546.500565 l
+169.498932 636.910995 l
+56.396515 636.910995 l
+56.396515 546.500565 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+62.349274 552.453323 m
+163.546173 552.453323 l
+163.546173 630.958237 l
+62.349274 630.958237 l
+62.349274 552.453323 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+68.302032 558.406082 m
+157.593414 558.406082 l
+157.593414 570.686768 l
+68.302032 570.686768 l
+68.302032 558.406082 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+68.302032 576.639526 m
+157.593414 576.639526 l
+157.593414 588.432571 l
+68.302032 588.432571 l
+68.302032 576.639526 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+68.302032 594.385330 m
+157.593414 594.385330 l
+157.593414 608.446182 l
+68.302032 608.446182 l
+68.302032 594.385330 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+68.302032 614.398941 m
+157.593414 614.398941 l
+157.593414 625.005478 l
+68.302032 625.005478 l
+68.302032 614.398941 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+373.409271 29.204269 m
+486.511688 29.204269 l
+486.511688 119.425446 l
+373.409271 119.425446 l
+373.409271 29.204269 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+379.362030 35.157028 m
+480.558929 35.157028 l
+480.558929 113.472687 l
+379.362030 113.472687 l
+379.362030 35.157028 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+385.314789 41.109787 m
+474.606171 41.109787 l
+474.606171 54.224609 l
+385.314789 54.224609 l
+385.314789 41.109787 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+385.314789 60.177368 m
+474.606171 60.177368 l
+474.606171 72.787933 l
+385.314789 72.787933 l
+385.314789 60.177368 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+385.314789 78.740692 m
+474.606171 78.740692 l
+474.606171 89.529694 l
+385.314789 89.529694 l
+385.314789 78.740692 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+385.314789 95.482452 m
+474.606171 95.482452 l
+474.606171 107.519928 l
+385.314789 107.519928 l
+385.314789 95.482452 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+403.308899 730.283508 m
+516.411316 730.283508 l
+516.411316 840.624939 l
+403.308899 840.624939 l
+403.308899 730.283508 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+409.261658 736.236267 m
+510.458557 736.236267 l
+510.458557 834.672180 l
+409.261658 834.672180 l
+409.261658 736.236267 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.214417 742.189026 m
+504.505798 742.189026 l
+504.505798 752.965302 l
+415.214417 752.965302 l
+415.214417 742.189026 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.214417 758.918060 m
+504.505798 758.918060 l
+504.505798 773.529266 l
+415.214417 773.529266 l
+415.214417 758.918060 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.214417 779.482025 m
+504.505798 779.482025 l
+504.505798 793.018661 l
+415.214417 793.018661 l
+415.214417 779.482025 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.214417 798.971420 m
+504.505798 798.971420 l
+504.505798 810.434769 l
+415.214417 810.434769 l
+415.214417 798.971420 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.214417 816.387527 m
+504.505798 816.387527 l
+504.505798 828.719421 l
+415.214417 828.719421 l
+415.214417 816.387527 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+404.069794 -28.154999 m
+517.172211 -28.154999 l
+517.172211 80.371933 l
+404.069794 80.371933 l
+404.069794 -28.154999 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+410.022552 -22.202240 m
+511.219452 -22.202240 l
+511.219452 74.419174 l
+410.022552 74.419174 l
+410.022552 -22.202240 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.975311 -16.249481 m
+505.266693 -16.249481 l
+505.266693 -4.588364 l
+415.975311 -4.588364 l
+415.975311 -16.249481 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.975311 1.364395 m
+505.266693 1.364395 l
+505.266693 14.462585 l
+415.975311 14.462585 l
+415.975311 1.364395 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.975311 20.415344 m
+505.266693 20.415344 l
+505.266693 31.186584 l
+415.975311 31.186584 l
+415.975311 20.415344 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.975311 37.139343 m
+505.266693 37.139343 l
+505.266693 50.080185 l
+415.975311 50.080185 l
+415.975311 37.139343 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+415.975311 56.032944 m
+505.266693 56.032944 l
+505.266693 68.466415 l
+415.975311 68.466415 l
+415.975311 56.032944 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+393.923676 526.736130 m
+507.026093 526.736130 l
+507.026093 640.446640 l
+393.923676 640.446640 l
+393.923676 526.736130 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+399.876434 532.688889 m
+501.073334 532.688889 l
+501.073334 634.493881 l
+399.876434 634.493881 l
+399.876434 532.688889 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.829193 538.641647 m
+495.120575 538.641647 l
+495.120575 552.242996 l
+405.829193 552.242996 l
+405.829193 538.641647 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.829193 558.195755 m
+495.120575 558.195755 l
+495.120575 571.180939 l
+405.829193 571.180939 l
+405.829193 558.195755 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.829193 577.133698 m
+495.120575 577.133698 l
+495.120575 591.994324 l
+405.829193 591.994324 l
+405.829193 577.133698 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.829193 597.947083 m
+495.120575 597.947083 l
+495.120575 611.618637 l
+405.829193 611.618637 l
+405.829193 597.947083 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+405.829193 617.571396 m
+495.120575 617.571396 l
+495.120575 628.541122 l
+405.829193 628.541122 l
+405.829193 617.571396 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-13.564529 201.651321 m
+99.537888 201.651321 l
+99.537888 311.782257 l
+-13.564529 311.782257 l
+-13.564529 201.651321 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-7.611771 207.604080 m
+93.585129 207.604080 l
+93.585129 305.829498 l
+-7.611771 305.829498 l
+-7.611771 207.604080 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-1.659012 213.556839 m
+87.632370 213.556839 l
+87.632370 226.600616 l
+-1.659012 226.600616 l
+-1.659012 213.556839 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-1.659012 232.553375 m
+87.632370 232.553375 l
+87.632370 244.097427 l
+-1.659012 244.097427 l
+-1.659012 232.553375 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-1.659012 250.050186 m
+87.632370 250.050186 l
+87.632370 264.095169 l
+-1.659012 264.095169 l
+-1.659012 250.050186 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-1.659012 270.047928 m
+87.632370 270.047928 l
+87.632370 281.399673 l
+-1.659012 281.399673 l
+-1.659012 270.047928 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-1.659012 287.352432 m
+87.632370 287.352432 l
+87.632370 299.876740 l
+-1.659012 299.876740 l
+-1.659012 287.352432 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+180.277283 -15.589996 m
+293.379700 -15.589996 l
+293.379700 75.668411 l
+180.277283 75.668411 l
+180.277283 -15.589996 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+186.230042 -9.637238 m
+287.426941 -9.637238 l
+287.426941 69.715652 l
+186.230042 69.715652 l
+186.230042 -9.637238 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+192.182800 -3.684479 m
+281.474182 -3.684479 l
+281.474182 10.417862 l
+192.182800 10.417862 l
+192.182800 -3.684479 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+192.182800 16.370621 m
+281.474182 16.370621 l
+281.474182 29.492569 l
+192.182800 29.492569 l
+192.182800 16.370621 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+192.182800 35.445328 m
+281.474182 35.445328 l
+281.474182 47.071884 l
+192.182800 47.071884 l
+192.182800 35.445328 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+192.182800 53.024643 m
+281.474182 53.024643 l
+281.474182 63.762894 l
+192.182800 63.762894 l
+192.182800 53.024643 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+173.628250 774.868393 m
+286.730667 774.868393 l
+286.730667 881.845154 l
+173.628250 881.845154 l
+173.628250 774.868393 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+179.581009 780.821152 m
+280.777908 780.821152 l
+280.777908 875.892395 l
+179.581009 875.892395 l
+179.581009 780.821152 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+185.533768 786.773911 m
+274.825150 786.773911 l
+274.825150 799.527710 l
+185.533768 799.527710 l
+185.533768 786.773911 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+185.533768 805.480469 m
+274.825150 805.480469 l
+274.825150 816.481445 l
+185.533768 816.481445 l
+185.533768 805.480469 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+185.533768 822.434204 m
+274.825150 822.434204 l
+274.825150 835.031036 l
+185.533768 835.031036 l
+185.533768 822.434204 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+185.533768 840.983795 m
+274.825150 840.983795 l
+274.825150 853.494980 l
+185.533768 853.494980 l
+185.533768 840.983795 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+185.533768 859.447739 m
+274.825150 859.447739 l
+274.825150 869.939636 l
+185.533768 869.939636 l
+185.533768 859.447739 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+13.809341 205.324173 m
+126.911758 205.324173 l
+126.911758 297.632080 l
+13.809341 297.632080 l
+13.809341 205.324173 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+19.762100 211.276932 m
+120.959000 211.276932 l
+120.959000 291.679321 l
+19.762100 291.679321 l
+19.762100 211.276932 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+25.714859 217.229691 m
+115.006241 217.229691 l
+115.006241 229.360443 l
+25.714859 229.360443 l
+25.714859 217.229691 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+25.714859 235.313202 m
+115.006241 235.313202 l
+115.006241 248.556870 l
+25.714859 248.556870 l
+25.714859 235.313202 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+25.714859 254.509628 m
+115.006241 254.509628 l
+115.006241 266.112396 l
+25.714859 266.112396 l
+25.714859 254.509628 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+25.714859 272.065155 m
+115.006241 272.065155 l
+115.006241 285.726562 l
+25.714859 285.726562 l
+25.714859 272.065155 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+47.826523 32.866028 m
+160.928940 32.866028 l
+160.928940 141.511261 l
+47.826523 141.511261 l
+47.826523 32.866028 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+53.779282 38.818787 m
+154.976181 38.818787 l
+154.976181 135.558502 l
+53.779282 135.558502 l
+53.779282 38.818787 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+59.732040 44.771545 m
+149.023422 44.771545 l
+149.023422 58.056000 l
+59.732040 58.056000 l
+59.732040 44.771545 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+59.732040 64.008759 m
+149.023422 64.008759 l
+149.023422 75.109436 l
+59.732040 75.109436 l
+59.732040 64.008759 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+59.732040 81.062195 m
+149.023422 81.062195 l
+149.023422 94.374802 l
+59.732040 94.374802 l
+59.732040 81.062195 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+59.732040 100.327560 m
+149.023422 100.327560 l
+149.023422 111.567993 l
+59.732040 111.567993 l
+59.732040 100.327560 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+59.732040 117.520752 m
+149.023422 117.520752 l
+149.023422 129.605743 l
+59.732040 129.605743 l
+59.732040 117.520752 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+523.069672 382.665939 m
+636.172089 382.665939 l
+636.172089 473.572433 l
+523.069672 473.572433 l
+523.069672 382.665939 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+529.022430 388.618698 m
+630.219330 388.618698 l
+630.219330 467.619675 l
+529.022430 467.619675 l
+529.022430 388.618698 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+534.975189 394.571457 m
+624.266571 394.571457 l
+624.266571 408.696762 l
+534.975189 408.696762 l
+534.975189 394.571457 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+534.975189 414.649521 m
+624.266571 414.649521 l
+624.266571 426.034973 l
+534.975189 426.034973 l
+534.975189 414.649521 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+534.975189 431.987732 m
+624.266571 431.987732 l
+624.266571 443.441223 l
+534.975189 443.441223 l
+534.975189 431.987732 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+534.975189 449.393982 m
+624.266571 449.393982 l
+624.266571 461.666916 l
+534.975189 461.666916 l
+534.975189 449.393982 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+461.746826 49.772430 m
+574.849243 49.772430 l
+574.849243 138.486374 l
+461.746826 138.486374 l
+461.746826 49.772430 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+467.699585 55.725189 m
+568.896484 55.725189 l
+568.896484 132.533615 l
+467.699585 132.533615 l
+467.699585 55.725189 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+473.652344 61.677948 m
+562.943726 61.677948 l
+562.943726 72.195328 l
+473.652344 72.195328 l
+473.652344 61.677948 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+473.652344 78.148087 m
+562.943726 78.148087 l
+562.943726 89.601074 l
+473.652344 89.601074 l
+473.652344 78.148087 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+473.652344 95.553833 m
+562.943726 95.553833 l
+562.943726 107.028214 l
+473.652344 107.028214 l
+473.652344 95.553833 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+473.652344 112.980972 m
+562.943726 112.980972 l
+562.943726 126.580856 l
+473.652344 126.580856 l
+473.652344 112.980972 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+314.831772 476.334198 m
+427.934189 476.334198 l
+427.934189 565.661743 l
+314.831772 565.661743 l
+314.831772 476.334198 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+320.784531 482.286957 m
+421.981430 482.286957 l
+421.981430 559.708984 l
+320.784531 559.708984 l
+320.784531 482.286957 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+326.737289 488.239716 m
+416.028671 488.239716 l
+416.028671 499.755600 l
+326.737289 499.755600 l
+326.737289 488.239716 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+326.737289 505.708359 m
+416.028671 505.708359 l
+416.028671 517.873245 l
+326.737289 517.873245 l
+326.737289 505.708359 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+326.737289 523.826004 m
+416.028671 523.826004 l
+416.028671 535.360901 l
+326.737289 535.360901 l
+326.737289 523.826004 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+326.737289 541.313660 m
+416.028671 541.313660 l
+416.028671 553.756226 l
+326.737289 553.756226 l
+326.737289 541.313660 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-1.146744 184.806381 m
+111.955673 184.806381 l
+111.955673 277.400757 l
+-1.146744 277.400757 l
+-1.146744 184.806381 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+4.806015 190.759140 m
+106.002914 190.759140 l
+106.002914 271.447998 l
+4.806015 271.447998 l
+4.806015 190.759140 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+10.758774 196.711899 m
+100.050156 196.711899 l
+100.050156 211.545807 l
+10.758774 211.545807 l
+10.758774 196.711899 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+10.758774 217.498566 m
+100.050156 217.498566 l
+100.050156 229.065170 l
+10.758774 229.065170 l
+10.758774 217.498566 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+10.758774 235.017929 m
+100.050156 235.017929 l
+100.050156 248.385101 l
+10.758774 248.385101 l
+10.758774 235.017929 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+10.758774 254.337860 m
+100.050156 254.337860 l
+100.050156 265.495239 l
+10.758774 265.495239 l
+10.758774 254.337860 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+312.548691 128.859589 m
+425.651108 128.859589 l
+425.651108 221.876434 l
+312.548691 221.876434 l
+312.548691 128.859589 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+318.501450 134.812347 m
+419.698349 134.812347 l
+419.698349 215.923676 l
+318.501450 215.923676 l
+318.501450 134.812347 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+324.454208 140.765106 m
+413.745590 140.765106 l
+413.745590 154.464371 l
+324.454208 154.464371 l
+324.454208 140.765106 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+324.454208 160.417130 m
+413.745590 160.417130 l
+413.745590 171.544525 l
+324.454208 171.544525 l
+324.454208 160.417130 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+324.454208 177.497284 m
+413.745590 177.497284 l
+413.745590 190.582199 l
+324.454208 190.582199 l
+324.454208 177.497284 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+324.454208 196.534958 m
+413.745590 196.534958 l
+413.745590 209.970917 l
+324.454208 209.970917 l
+324.454208 196.534958 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+141.470795 81.118210 m
+254.573212 81.118210 l
+254.573212 171.301636 l
+141.470795 171.301636 l
+141.470795 81.118210 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+147.423553 87.070969 m
+248.620453 87.070969 l
+248.620453 165.348877 l
+147.423553 165.348877 l
+147.423553 87.070969 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+153.376312 93.023727 m
+242.667694 93.023727 l
+242.667694 105.025284 l
+153.376312 105.025284 l
+153.376312 93.023727 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+153.376312 110.978043 m
+242.667694 110.978043 l
+242.667694 125.433548 l
+153.376312 125.433548 l
+153.376312 110.978043 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+153.376312 131.386307 m
+242.667694 131.386307 l
+242.667694 141.945084 l
+153.376312 141.945084 l
+153.376312 131.386307 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+153.376312 147.897842 m
+242.667694 147.897842 l
+242.667694 159.396118 l
+153.376312 159.396118 l
+153.376312 147.897842 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+339.052139 117.494766 m
+452.154556 117.494766 l
+452.154556 228.746002 l
+339.052139 228.746002 l
+339.052139 117.494766 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+345.004898 123.447525 m
+446.201797 123.447525 l
+446.201797 222.793243 l
+345.004898 222.793243 l
+345.004898 123.447525 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+350.957657 129.400284 m
+440.249039 129.400284 l
+440.249039 144.013885 l
+350.957657 144.013885 l
+350.957657 129.400284 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+350.957657 149.966644 m
+440.249039 149.966644 l
+440.249039 163.258301 l
+350.957657 163.258301 l
+350.957657 149.966644 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+350.957657 169.211060 m
+440.249039 169.211060 l
+440.249039 179.664551 l
+350.957657 179.664551 l
+350.957657 169.211060 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+350.957657 185.617310 m
+440.249039 185.617310 l
+440.249039 196.328873 l
+350.957657 196.328873 l
+350.957657 185.617310 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+350.957657 202.281631 m
+440.249039 202.281631 l
+440.249039 216.840485 l
+350.957657 216.840485 l
+350.957657 202.281631 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+197.940018 668.685425 m
+311.042435 668.685425 l
+311.042435 760.847351 l
+197.940018 760.847351 l
+197.940018 668.685425 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+203.892776 674.638184 m
+305.089676 674.638184 l
+305.089676 754.894592 l
+203.892776 754.894592 l
+203.892776 674.638184 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+209.845535 680.590942 m
+299.136917 680.590942 l
+299.136917 694.912354 l
+209.845535 694.912354 l
+209.845535 680.590942 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+209.845535 700.865112 m
+299.136917 700.865112 l
+299.136917 712.129745 l
+209.845535 712.129745 l
+209.845535 700.865112 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+209.845535 718.082504 m
+299.136917 718.082504 l
+299.136917 730.159348 l
+209.845535 730.159348 l
+209.845535 718.082504 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+209.845535 736.112106 m
+299.136917 736.112106 l
+299.136917 748.941833 l
+209.845535 748.941833 l
+209.845535 736.112106 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+20.849762 335.044083 m
+133.952179 335.044083 l
+133.952179 445.342209 l
+20.849762 445.342209 l
+20.849762 335.044083 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+26.802521 340.996841 m
+127.999420 340.996841 l
+127.999420 439.389450 l
+26.802521 439.389450 l
+26.802521 340.996841 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+32.755280 346.949600 m
+122.046661 346.949600 l
+122.046661 360.052551 l
+32.755280 360.052551 l
+32.755280 346.949600 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+32.755280 366.005310 m
+122.046661 366.005310 l
+122.046661 379.919724 l
+32.755280 379.919724 l
+32.755280 366.005310 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+32.755280 385.872482 m
+122.046661 385.872482 l
+122.046661 396.708267 l
+32.755280 396.708267 l
+32.755280 385.872482 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+32.755280 402.661026 m
+122.046661 402.661026 l
+122.046661 415.660507 l
+32.755280 415.660507 l
+32.755280 402.661026 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+32.755280 421.613266 m
+122.046661 421.613266 l
+122.046661 433.436691 l
+32.755280 433.436691 l
+32.755280 421.613266 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+53.057465 731.412018 m
+166.159882 731.412018 l
+166.159882 823.412369 l
+53.057465 823.412369 l
+53.057465 731.412018 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+59.010223 737.364777 m
+160.207123 737.364777 l
+160.207123 817.459610 l
+59.010223 817.459610 l
+59.010223 737.364777 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+64.962982 743.317535 m
+154.254364 743.317535 l
+154.254364 757.423309 l
+64.962982 757.423309 l
+64.962982 743.317535 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+64.962982 763.376068 m
+154.254364 763.376068 l
+154.254364 776.212082 l
+64.962982 776.212082 l
+64.962982 763.376068 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+64.962982 782.164841 m
+154.254364 782.164841 l
+154.254364 792.699844 l
+64.962982 792.699844 l
+64.962982 782.164841 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+64.962982 798.652603 m
+154.254364 798.652603 l
+154.254364 811.506851 l
+64.962982 811.506851 l
+64.962982 798.652603 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+324.870987 656.792389 m
+437.973404 656.792389 l
+437.973404 766.233566 l
+324.870987 766.233566 l
+324.870987 656.792389 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+330.823746 662.745148 m
+432.020645 662.745148 l
+432.020645 760.280807 l
+330.823746 760.280807 l
+330.823746 662.745148 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.776505 668.697906 m
+426.067886 668.697906 l
+426.067886 680.390335 l
+336.776505 680.390335 l
+336.776505 668.697906 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.776505 686.343094 m
+426.067886 686.343094 l
+426.067886 699.590088 l
+336.776505 699.590088 l
+336.776505 686.343094 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.776505 705.542847 m
+426.067886 705.542847 l
+426.067886 718.919617 l
+336.776505 718.919617 l
+336.776505 705.542847 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.776505 724.872375 m
+426.067886 724.872375 l
+426.067886 736.491318 l
+336.776505 736.491318 l
+336.776505 724.872375 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.776505 742.444077 m
+426.067886 742.444077 l
+426.067886 754.328049 l
+336.776505 754.328049 l
+336.776505 742.444077 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+225.619766 224.127563 m
+338.722183 224.127563 l
+338.722183 339.003525 l
+225.619766 339.003525 l
+225.619766 224.127563 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+231.572525 230.080322 m
+332.769424 230.080322 l
+332.769424 333.050766 l
+231.572525 333.050766 l
+231.572525 230.080322 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+237.525284 236.033081 m
+326.816666 236.033081 l
+326.816666 249.490189 l
+237.525284 249.490189 l
+237.525284 236.033081 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+237.525284 255.442947 m
+326.816666 255.442947 l
+326.816666 268.781631 l
+237.525284 268.781631 l
+237.525284 255.442947 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+237.525284 274.734390 m
+326.816666 274.734390 l
+326.816666 287.919159 l
+237.525284 287.919159 l
+237.525284 274.734390 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+237.525284 293.871918 m
+326.816666 293.871918 l
+326.816666 307.063751 l
+237.525284 307.063751 l
+237.525284 293.871918 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+237.525284 313.016510 m
+326.816666 313.016510 l
+326.816666 327.098007 l
+237.525284 327.098007 l
+237.525284 313.016510 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-47.508759 271.473083 m
+65.593658 271.473083 l
+65.593658 360.308929 l
+-47.508759 360.308929 l
+-47.508759 271.473083 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-41.556000 277.425842 m
+59.640900 277.425842 l
+59.640900 354.356171 l
+-41.556000 354.356171 l
+-41.556000 277.425842 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-35.603241 283.378601 m
+53.688141 283.378601 l
+53.688141 294.105362 l
+-35.603241 294.105362 l
+-35.603241 283.378601 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-35.603241 300.058121 m
+53.688141 300.058121 l
+53.688141 313.323700 l
+-35.603241 313.323700 l
+-35.603241 300.058121 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-35.603241 319.276459 m
+53.688141 319.276459 l
+53.688141 331.050613 l
+-35.603241 331.050613 l
+-35.603241 319.276459 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-35.603241 337.003372 m
+53.688141 337.003372 l
+53.688141 348.403412 l
+-35.603241 348.403412 l
+-35.603241 337.003372 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+371.821487 345.174637 m
+484.923904 345.174637 l
+484.923904 433.546539 l
+371.821487 433.546539 l
+371.821487 345.174637 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+377.774246 351.127396 m
+478.971146 351.127396 l
+478.971146 427.593781 l
+377.774246 427.593781 l
+377.774246 351.127396 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+383.727005 357.080154 m
+473.018387 357.080154 l
+473.018387 370.109360 l
+383.727005 370.109360 l
+383.727005 357.080154 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+383.727005 376.062119 m
+473.018387 376.062119 l
+473.018387 388.241562 l
+383.727005 388.241562 l
+383.727005 376.062119 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+383.727005 394.194321 m
+473.018387 394.194321 l
+473.018387 405.231003 l
+383.727005 405.231003 l
+383.727005 394.194321 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+383.727005 411.183762 m
+473.018387 411.183762 l
+473.018387 421.641022 l
+383.727005 421.641022 l
+383.727005 411.183762 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+481.398102 606.087280 m
+594.500519 606.087280 l
+594.500519 719.044876 l
+481.398102 719.044876 l
+481.398102 606.087280 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+487.350861 612.040039 m
+588.547760 612.040039 l
+588.547760 713.092117 l
+487.350861 713.092117 l
+487.350861 612.040039 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.303619 617.992798 m
+582.595001 617.992798 l
+582.595001 632.743668 l
+493.303619 632.743668 l
+493.303619 617.992798 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.303619 638.696426 m
+582.595001 638.696426 l
+582.595001 653.054245 l
+493.303619 653.054245 l
+493.303619 638.696426 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.303619 659.007004 m
+582.595001 659.007004 l
+582.595001 669.466248 l
+493.303619 669.466248 l
+493.303619 659.007004 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.303619 675.419006 m
+582.595001 675.419006 l
+582.595001 687.905975 l
+493.303619 687.905975 l
+493.303619 675.419006 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+493.303619 693.858734 m
+582.595001 693.858734 l
+582.595001 707.139359 l
+493.303619 707.139359 l
+493.303619 693.858734 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-39.698090 328.593506 m
+73.404327 328.593506 l
+73.404327 415.665466 l
+-39.698090 415.665466 l
+-39.698090 328.593506 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-33.745331 334.546265 m
+67.451569 334.546265 l
+67.451569 409.712708 l
+-33.745331 409.712708 l
+-33.745331 334.546265 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-27.792572 340.499023 m
+61.498810 340.499023 l
+61.498810 352.251740 l
+-27.792572 352.251740 l
+-27.792572 340.499023 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-27.792572 358.204498 m
+61.498810 358.204498 l
+61.498810 370.279922 l
+-27.792572 370.279922 l
+-27.792572 358.204498 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-27.792572 376.232681 m
+61.498810 376.232681 l
+61.498810 386.966263 l
+-27.792572 386.966263 l
+-27.792572 376.232681 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-27.792572 392.919022 m
+61.498810 392.919022 l
+61.498810 403.759949 l
+-27.792572 403.759949 l
+-27.792572 392.919022 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+522.126923 639.114029 m
+635.229340 639.114029 l
+635.229340 746.834549 l
+522.126923 746.834549 l
+522.126923 639.114029 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+528.079681 645.066788 m
+629.276581 645.066788 l
+629.276581 740.881790 l
+528.079681 740.881790 l
+528.079681 645.066788 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+534.032440 651.019547 m
+623.323822 651.019547 l
+623.323822 661.784439 l
+534.032440 661.784439 l
+534.032440 651.019547 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+534.032440 667.737198 m
+623.323822 667.737198 l
+623.323822 680.032318 l
+534.032440 680.032318 l
+534.032440 667.737198 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+534.032440 685.985077 m
+623.323822 685.985077 l
+623.323822 696.873856 l
+534.032440 696.873856 l
+534.032440 685.985077 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+534.032440 702.826614 m
+623.323822 702.826614 l
+623.323822 715.881851 l
+534.032440 715.881851 l
+534.032440 702.826614 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+534.032440 721.834610 m
+623.323822 721.834610 l
+623.323822 734.929031 l
+534.032440 734.929031 l
+534.032440 721.834610 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+161.807907 126.952148 m
+274.910324 126.952148 l
+274.910324 236.513718 l
+161.807907 236.513718 l
+161.807907 126.952148 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+167.760666 132.904907 m
+268.957565 132.904907 l
+268.957565 230.560959 l
+167.760666 230.560959 l
+167.760666 132.904907 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+173.713425 138.857666 m
+263.004807 138.857666 l
+263.004807 151.292801 l
+173.713425 151.292801 l
+173.713425 138.857666 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+173.713425 157.245560 m
+263.004807 157.245560 l
+263.004807 170.785385 l
+173.713425 170.785385 l
+173.713425 157.245560 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+173.713425 176.738144 m
+263.004807 176.738144 l
+263.004807 189.023224 l
+173.713425 189.023224 l
+173.713425 176.738144 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+173.713425 194.975983 m
+263.004807 194.975983 l
+263.004807 205.449081 l
+173.713425 205.449081 l
+173.713425 194.975983 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+173.713425 211.401840 m
+263.004807 211.401840 l
+263.004807 224.608200 l
+173.713425 224.608200 l
+173.713425 211.401840 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+426.266846 569.961227 m
+539.369263 569.961227 l
+539.369263 676.612289 l
+426.266846 676.612289 l
+426.266846 569.961227 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+432.219604 575.913986 m
+533.416504 575.913986 l
+533.416504 670.659531 l
+432.219604 670.659531 l
+432.219604 575.913986 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+438.172363 581.866745 m
+527.463745 581.866745 l
+527.463745 594.014084 l
+438.172363 594.014084 l
+438.172363 581.866745 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+438.172363 599.966843 m
+527.463745 599.966843 l
+527.463745 610.754639 l
+438.172363 610.754639 l
+438.172363 599.966843 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+438.172363 616.707397 m
+527.463745 616.707397 l
+527.463745 627.658066 l
+438.172363 627.658066 l
+438.172363 616.707397 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+438.172363 633.610825 m
+527.463745 633.610825 l
+527.463745 645.046753 l
+438.172363 645.046753 l
+438.172363 633.610825 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+438.172363 650.999512 m
+527.463745 650.999512 l
+527.463745 664.706772 l
+438.172363 664.706772 l
+438.172363 650.999512 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-54.944580 585.757690 m
+58.157837 585.757690 l
+58.157837 677.938904 l
+-54.944580 677.938904 l
+-54.944580 585.757690 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-48.991821 591.710449 m
+52.205078 591.710449 l
+52.205078 671.986145 l
+-48.991821 671.986145 l
+-48.991821 591.710449 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-43.039062 597.663208 m
+46.252319 597.663208 l
+46.252319 608.906036 l
+-43.039062 608.906036 l
+-43.039062 597.663208 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-43.039062 614.858795 m
+46.252319 614.858795 l
+46.252319 627.903152 l
+-43.039062 627.903152 l
+-43.039062 614.858795 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-43.039062 633.855911 m
+46.252319 633.855911 l
+46.252319 645.259583 l
+-43.039062 645.259583 l
+-43.039062 633.855911 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-43.039062 651.212341 m
+46.252319 651.212341 l
+46.252319 666.033386 l
+-43.039062 666.033386 l
+-43.039062 651.212341 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+240.213043 577.409363 m
+353.315460 577.409363 l
+353.315460 691.840210 l
+240.213043 691.840210 l
+240.213043 577.409363 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+246.165802 583.362122 m
+347.362701 583.362122 l
+347.362701 685.887451 l
+246.165802 685.887451 l
+246.165802 583.362122 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+252.118561 589.314880 m
+341.409943 589.314880 l
+341.409943 603.187515 l
+252.118561 603.187515 l
+252.118561 589.314880 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+252.118561 609.140274 m
+341.409943 609.140274 l
+341.409943 622.927795 l
+252.118561 622.927795 l
+252.118561 609.140274 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+252.118561 628.880554 m
+341.409943 628.880554 l
+341.409943 642.130554 l
+252.118561 642.130554 l
+252.118561 628.880554 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+252.118561 648.083313 m
+341.409943 648.083313 l
+341.409943 661.425903 l
+252.118561 661.425903 l
+252.118561 648.083313 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+252.118561 667.378662 m
+341.409943 667.378662 l
+341.409943 679.934692 l
+252.118561 679.934692 l
+252.118561 667.378662 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-45.898148 -9.564789 m
+67.204269 -9.564789 l
+67.204269 82.583862 l
+-45.898148 82.583862 l
+-45.898148 -9.564789 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-39.945389 -3.612030 m
+61.251511 -3.612030 l
+61.251511 76.631104 l
+-39.945389 76.631104 l
+-39.945389 -3.612030 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-33.992630 2.340729 m
+55.298752 2.340729 l
+55.298752 13.834061 l
+-33.992630 13.834061 l
+-33.992630 2.340729 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-33.992630 19.786819 m
+55.298752 19.786819 l
+55.298752 32.607666 l
+-33.992630 32.607666 l
+-33.992630 19.786819 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-33.992630 38.560425 m
+55.298752 38.560425 l
+55.298752 50.231674 l
+-33.992630 50.231674 l
+-33.992630 38.560425 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-33.992630 56.184433 m
+55.298752 56.184433 l
+55.298752 70.678345 l
+-33.992630 70.678345 l
+-33.992630 56.184433 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+223.893494 742.360214 m
+336.995911 742.360214 l
+336.995911 833.040466 l
+223.893494 833.040466 l
+223.893494 742.360214 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+229.846252 748.312973 m
+331.043152 748.312973 l
+331.043152 827.087708 l
+229.846252 827.087708 l
+229.846252 748.312973 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+235.799011 754.265732 m
+325.090393 754.265732 l
+325.090393 768.430038 l
+235.799011 768.430038 l
+235.799011 754.265732 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+235.799011 774.382797 m
+325.090393 774.382797 l
+325.090393 786.430923 l
+235.799011 786.430923 l
+235.799011 774.382797 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+235.799011 792.383682 m
+325.090393 792.383682 l
+325.090393 803.337341 l
+235.799011 803.337341 l
+235.799011 792.383682 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+235.799011 809.290100 m
+325.090393 809.290100 l
+325.090393 821.134949 l
+235.799011 821.134949 l
+235.799011 809.290100 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+24.678467 384.860321 m
+137.780884 384.860321 l
+137.780884 493.283112 l
+24.678467 493.283112 l
+24.678467 384.860321 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+30.631226 390.813080 m
+131.828125 390.813080 l
+131.828125 487.330353 l
+30.631226 487.330353 l
+30.631226 390.813080 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+36.583984 396.765839 m
+125.875366 396.765839 l
+125.875366 407.375824 l
+36.583984 407.375824 l
+36.583984 396.765839 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+36.583984 413.328583 m
+125.875366 413.328583 l
+125.875366 424.169861 l
+36.583984 424.169861 l
+36.583984 413.328583 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+36.583984 430.122620 m
+125.875366 430.122620 l
+125.875366 440.988617 l
+36.583984 440.988617 l
+36.583984 430.122620 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+36.583984 446.941376 m
+125.875366 446.941376 l
+125.875366 461.240219 l
+36.583984 461.240219 l
+36.583984 446.941376 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+36.583984 467.192978 m
+125.875366 467.192978 l
+125.875366 481.377594 l
+36.583984 481.377594 l
+36.583984 467.192978 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+354.757156 460.143158 m
+467.859573 460.143158 l
+467.859573 573.366089 l
+354.757156 573.366089 l
+354.757156 460.143158 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+360.709915 466.095917 m
+461.906815 466.095917 l
+461.906815 567.413330 l
+360.709915 567.413330 l
+360.709915 466.095917 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+366.662674 472.048676 m
+455.954056 472.048676 l
+455.954056 485.026566 l
+366.662674 485.026566 l
+366.662674 472.048676 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+366.662674 490.979324 m
+455.954056 490.979324 l
+455.954056 505.506683 l
+366.662674 505.506683 l
+366.662674 490.979324 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+366.662674 511.459442 m
+455.954056 511.459442 l
+455.954056 525.755920 l
+366.662674 525.755920 l
+366.662674 511.459442 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+366.662674 531.708679 m
+455.954056 531.708679 l
+455.954056 543.697906 l
+366.662674 543.697906 l
+366.662674 531.708679 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+366.662674 549.650665 m
+455.954056 549.650665 l
+455.954056 561.460571 l
+366.662674 561.460571 l
+366.662674 549.650665 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+351.937515 145.601837 m
+465.039932 145.601837 l
+465.039932 253.521271 l
+351.937515 253.521271 l
+351.937515 145.601837 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+357.890274 151.554596 m
+459.087173 151.554596 l
+459.087173 247.568512 l
+357.890274 247.568512 l
+357.890274 151.554596 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+363.843033 157.507355 m
+453.134415 157.507355 l
+453.134415 168.245956 l
+363.843033 168.245956 l
+363.843033 157.507355 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+363.843033 174.198715 m
+453.134415 174.198715 l
+453.134415 185.276367 l
+363.843033 185.276367 l
+363.843033 174.198715 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+363.843033 191.229126 m
+453.134415 191.229126 l
+453.134415 204.237244 l
+363.843033 204.237244 l
+363.843033 191.229126 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+363.843033 210.190002 m
+453.134415 210.190002 l
+453.134415 220.827988 l
+363.843033 220.827988 l
+363.843033 210.190002 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+363.843033 226.780746 m
+453.134415 226.780746 l
+453.134415 241.615753 l
+363.843033 241.615753 l
+363.843033 226.780746 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+279.701447 613.204361 m
+392.803864 613.204361 l
+392.803864 698.090363 l
+279.701447 698.090363 l
+279.701447 613.204361 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+285.654205 619.157120 m
+386.851105 619.157120 l
+386.851105 692.137604 l
+285.654205 692.137604 l
+285.654205 619.157120 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+291.606964 625.109879 m
+380.898346 625.109879 l
+380.898346 635.546432 l
+291.606964 635.546432 l
+291.606964 625.109879 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+291.606964 641.499191 m
+380.898346 641.499191 l
+380.898346 652.099533 l
+291.606964 652.099533 l
+291.606964 641.499191 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+291.606964 658.052292 m
+380.898346 658.052292 l
+380.898346 669.762558 l
+291.606964 669.762558 l
+291.606964 658.052292 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+291.606964 675.715317 m
+380.898346 675.715317 l
+380.898346 686.184845 l
+291.606964 686.184845 l
+291.606964 675.715317 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+149.603180 22.263702 m
+262.705597 22.263702 l
+262.705597 134.509811 l
+149.603180 134.509811 l
+149.603180 22.263702 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+155.555939 28.216461 m
+256.752838 28.216461 l
+256.752838 128.557053 l
+155.555939 128.557053 l
+155.555939 28.216461 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+161.508698 34.169220 m
+250.800079 34.169220 l
+250.800079 45.619812 l
+161.508698 45.619812 l
+161.508698 34.169220 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+161.508698 51.572571 m
+250.800079 51.572571 l
+250.800079 66.113358 l
+161.508698 66.113358 l
+161.508698 51.572571 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+161.508698 72.066116 m
+250.800079 72.066116 l
+250.800079 84.731964 l
+161.508698 84.731964 l
+161.508698 72.066116 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+161.508698 90.684723 m
+250.800079 90.684723 l
+250.800079 103.444412 l
+161.508698 103.444412 l
+161.508698 90.684723 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+161.508698 109.397171 m
+250.800079 109.397171 l
+250.800079 122.604294 l
+161.508698 122.604294 l
+161.508698 109.397171 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+451.782303 419.001480 m
+564.884720 419.001480 l
+564.884720 527.521820 l
+451.782303 527.521820 l
+451.782303 419.001480 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+457.735062 424.954239 m
+558.931961 424.954239 l
+558.931961 521.569061 l
+457.735062 521.569061 l
+457.735062 424.954239 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.687820 430.906998 m
+552.979202 430.906998 l
+552.979202 445.479599 l
+463.687820 445.479599 l
+463.687820 430.906998 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.687820 451.432358 m
+552.979202 451.432358 l
+552.979202 462.427872 l
+463.687820 462.427872 l
+463.687820 451.432358 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.687820 468.380630 m
+552.979202 468.380630 l
+552.979202 479.783127 l
+463.687820 479.783127 l
+463.687820 468.380630 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.687820 485.735886 m
+552.979202 485.735886 l
+552.979202 498.362732 l
+463.687820 498.362732 l
+463.687820 485.735886 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+463.687820 504.315491 m
+552.979202 504.315491 l
+552.979202 515.616302 l
+463.687820 515.616302 l
+463.687820 504.315491 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-1.041367 126.176010 m
+112.061050 126.176010 l
+112.061050 236.511475 l
+-1.041367 236.511475 l
+-1.041367 126.176010 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+4.911392 132.128769 m
+106.108292 132.128769 l
+106.108292 230.558716 l
+4.911392 230.558716 l
+4.911392 132.128769 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+10.864151 138.081528 m
+100.155533 138.081528 l
+100.155533 152.662247 l
+10.864151 152.662247 l
+10.864151 138.081528 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+10.864151 158.615005 m
+100.155533 158.615005 l
+100.155533 169.281357 l
+10.864151 169.281357 l
+10.864151 158.615005 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+10.864151 175.234116 m
+100.155533 175.234116 l
+100.155533 187.938156 l
+10.864151 187.938156 l
+10.864151 175.234116 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+10.864151 193.890915 m
+100.155533 193.890915 l
+100.155533 204.877975 l
+10.864151 204.877975 l
+10.864151 193.890915 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+10.864151 210.830734 m
+100.155533 210.830734 l
+100.155533 224.605957 l
+10.864151 224.605957 l
+10.864151 210.830734 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+118.061707 257.318314 m
+231.164124 257.318314 l
+231.164124 375.177658 l
+118.061707 375.177658 l
+118.061707 257.318314 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+124.014465 263.271072 m
+225.211365 263.271072 l
+225.211365 369.224899 l
+124.014465 369.224899 l
+124.014465 263.271072 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.967224 269.223831 m
+219.258606 269.223831 l
+219.258606 282.818176 l
+129.967224 282.818176 l
+129.967224 269.223831 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.967224 288.770935 m
+219.258606 288.770935 l
+219.258606 301.390778 l
+129.967224 301.390778 l
+129.967224 288.770935 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.967224 307.343536 m
+219.258606 307.343536 l
+219.258606 321.863495 l
+129.967224 321.863495 l
+129.967224 307.343536 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.967224 327.816254 m
+219.258606 327.816254 l
+219.258606 342.479675 l
+129.967224 342.479675 l
+129.967224 327.816254 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+129.967224 348.432434 m
+219.258606 348.432434 l
+219.258606 363.272141 l
+129.967224 363.272141 l
+129.967224 348.432434 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+281.503281 22.760239 m
+394.605698 22.760239 l
+394.605698 118.201645 l
+281.503281 118.201645 l
+281.503281 22.760239 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+287.456039 28.712997 m
+388.652939 28.712997 l
+388.652939 112.248886 l
+287.456039 112.248886 l
+287.456039 28.712997 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+293.408798 34.665756 m
+382.700180 34.665756 l
+382.700180 49.268692 l
+293.408798 49.268692 l
+293.408798 34.665756 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+293.408798 55.221451 m
+382.700180 55.221451 l
+382.700180 68.762970 l
+293.408798 68.762970 l
+293.408798 55.221451 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+293.408798 74.715729 m
+382.700180 74.715729 l
+382.700180 87.278687 l
+293.408798 87.278687 l
+293.408798 74.715729 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+293.408798 93.231445 m
+382.700180 93.231445 l
+382.700180 106.296127 l
+293.408798 106.296127 l
+293.408798 93.231445 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+84.753052 166.282669 m
+197.855469 166.282669 l
+197.855469 282.604675 l
+84.753052 282.604675 l
+84.753052 166.282669 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+90.705811 172.235428 m
+191.902710 172.235428 l
+191.902710 276.651917 l
+90.705811 276.651917 l
+90.705811 172.235428 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.658569 178.188187 m
+185.949951 178.188187 l
+185.949951 191.074036 l
+96.658569 191.074036 l
+96.658569 178.188187 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.658569 197.026794 m
+185.949951 197.026794 l
+185.949951 210.596313 l
+96.658569 210.596313 l
+96.658569 197.026794 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.658569 216.549072 m
+185.949951 216.549072 l
+185.949951 231.349899 l
+96.658569 231.349899 l
+96.658569 216.549072 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.658569 237.302658 m
+185.949951 237.302658 l
+185.949951 250.126907 l
+96.658569 250.126907 l
+96.658569 237.302658 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.658569 256.079666 m
+185.949951 256.079666 l
+185.949951 270.699158 l
+96.658569 270.699158 l
+96.658569 256.079666 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+84.546097 664.626587 m
+197.648514 664.626587 l
+197.648514 778.641205 l
+84.546097 778.641205 l
+84.546097 664.626587 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+90.498856 670.579346 m
+191.695755 670.579346 l
+191.695755 772.688446 l
+90.498856 772.688446 l
+90.498856 670.579346 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.451614 676.532104 m
+185.742996 676.532104 l
+185.742996 690.318069 l
+96.451614 690.318069 l
+96.451614 676.532104 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.451614 696.270828 m
+185.742996 696.270828 l
+185.742996 710.708176 l
+96.451614 710.708176 l
+96.451614 696.270828 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.451614 716.660934 m
+185.742996 716.660934 l
+185.742996 729.076050 l
+96.451614 729.076050 l
+96.451614 716.660934 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.451614 735.028809 m
+185.742996 735.028809 l
+185.742996 749.112930 l
+96.451614 749.112930 l
+96.451614 735.028809 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+96.451614 755.065689 m
+185.742996 755.065689 l
+185.742996 766.735687 l
+96.451614 766.735687 l
+96.451614 755.065689 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-44.691895 772.220505 m
+68.410522 772.220505 l
+68.410522 885.802780 l
+-44.691895 885.802780 l
+-44.691895 772.220505 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-38.739136 778.173264 m
+62.457764 778.173264 l
+62.457764 879.850021 l
+-38.739136 879.850021 l
+-38.739136 778.173264 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.786377 784.126022 m
+56.505005 784.126022 l
+56.505005 798.915375 l
+-32.786377 798.915375 l
+-32.786377 784.126022 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.786377 804.868134 m
+56.505005 804.868134 l
+56.505005 817.265076 l
+-32.786377 817.265076 l
+-32.786377 804.868134 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.786377 823.217834 m
+56.505005 823.217834 l
+56.505005 835.354385 l
+-32.786377 835.354385 l
+-32.786377 823.217834 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.786377 841.307144 m
+56.505005 841.307144 l
+56.505005 853.830948 l
+-32.786377 853.830948 l
+-32.786377 841.307144 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.786377 859.783707 m
+56.505005 859.783707 l
+56.505005 873.897263 l
+-32.786377 873.897263 l
+-32.786377 859.783707 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+223.020538 300.405121 m
+336.122955 300.405121 l
+336.122955 392.477356 l
+223.020538 392.477356 l
+223.020538 300.405121 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+228.973297 306.357880 m
+330.170197 306.357880 l
+330.170197 386.524597 l
+228.973297 386.524597 l
+228.973297 306.357880 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+234.926056 312.310638 m
+324.217438 312.310638 l
+324.217438 323.980164 l
+234.926056 323.980164 l
+234.926056 312.310638 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+234.926056 329.932922 m
+324.217438 329.932922 l
+324.217438 341.975372 l
+234.926056 341.975372 l
+234.926056 329.932922 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+234.926056 347.928131 m
+324.217438 347.928131 l
+324.217438 362.548615 l
+234.926056 362.548615 l
+234.926056 347.928131 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+234.926056 368.501373 m
+324.217438 368.501373 l
+324.217438 380.571838 l
+234.926056 380.571838 l
+234.926056 368.501373 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+140.554306 -22.520844 m
+253.656723 -22.520844 l
+253.656723 72.928101 l
+140.554306 72.928101 l
+140.554306 -22.520844 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+146.507065 -16.568085 m
+247.703964 -16.568085 l
+247.703964 66.975342 l
+146.507065 66.975342 l
+146.507065 -16.568085 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+152.459824 -10.615326 m
+241.751205 -10.615326 l
+241.751205 1.481003 l
+152.459824 1.481003 l
+152.459824 -10.615326 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+152.459824 7.433762 m
+241.751205 7.433762 l
+241.751205 20.574966 l
+152.459824 20.574966 l
+152.459824 7.433762 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+152.459824 26.527725 m
+241.751205 26.527725 l
+241.751205 40.263046 l
+152.459824 40.263046 l
+152.459824 26.527725 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+152.459824 46.215805 m
+241.751205 46.215805 l
+241.751205 61.022583 l
+152.459824 61.022583 l
+152.459824 46.215805 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+324.237625 721.495346 m
+437.340042 721.495346 l
+437.340042 829.800674 l
+324.237625 829.800674 l
+324.237625 721.495346 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+330.190384 727.448105 m
+431.387283 727.448105 l
+431.387283 823.847916 l
+330.190384 823.847916 l
+330.190384 727.448105 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.143143 733.400864 m
+425.434525 733.400864 l
+425.434525 744.148178 l
+336.143143 744.148178 l
+336.143143 733.400864 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.143143 750.100937 m
+425.434525 750.100937 l
+425.434525 763.185104 l
+336.143143 763.185104 l
+336.143143 750.100937 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.143143 769.137863 m
+425.434525 769.137863 l
+425.434525 783.486206 l
+336.143143 783.486206 l
+336.143143 769.137863 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.143143 789.438965 m
+425.434525 789.438965 l
+425.434525 800.312714 l
+336.143143 800.312714 l
+336.143143 789.438965 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+336.143143 806.265472 m
+425.434525 806.265472 l
+425.434525 817.895157 l
+336.143143 817.895157 l
+336.143143 806.265472 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+493.141785 560.773071 m
+606.244202 560.773071 l
+606.244202 656.804321 l
+493.141785 656.804321 l
+493.141785 560.773071 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+499.094543 566.725830 m
+600.291443 566.725830 l
+600.291443 650.851562 l
+499.094543 650.851562 l
+499.094543 566.725830 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+505.047302 572.678589 m
+594.338684 572.678589 l
+594.338684 586.529449 l
+505.047302 586.529449 l
+505.047302 572.678589 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+505.047302 592.482208 m
+594.338684 592.482208 l
+594.338684 605.907349 l
+505.047302 605.907349 l
+505.047302 592.482208 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+505.047302 611.860107 m
+594.338684 611.860107 l
+594.338684 626.284363 l
+505.047302 626.284363 l
+505.047302 611.860107 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+505.047302 632.237122 m
+594.338684 632.237122 l
+594.338684 644.898804 l
+505.047302 644.898804 l
+505.047302 632.237122 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+339.968719 500.868073 m
+453.071136 500.868073 l
+453.071136 613.777512 l
+339.968719 613.777512 l
+339.968719 500.868073 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+345.921478 506.820831 m
+447.118378 506.820831 l
+447.118378 607.824753 l
+345.921478 607.824753 l
+345.921478 506.820831 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.874237 512.773590 m
+441.165619 512.773590 l
+441.165619 525.972977 l
+351.874237 525.972977 l
+351.874237 512.773590 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.874237 531.925735 m
+441.165619 531.925735 l
+441.165619 546.072784 l
+351.874237 546.072784 l
+351.874237 531.925735 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.874237 552.025543 m
+441.165619 552.025543 l
+441.165619 564.124557 l
+351.874237 564.124557 l
+351.874237 552.025543 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.874237 570.077316 m
+441.165619 570.077316 l
+441.165619 583.089035 l
+351.874237 583.089035 l
+351.874237 570.077316 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+351.874237 589.041794 m
+441.165619 589.041794 l
+441.165619 601.871994 l
+351.874237 601.871994 l
+351.874237 589.041794 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+483.965302 703.793930 m
+597.067719 703.793930 l
+597.067719 794.164093 l
+483.965302 794.164093 l
+483.965302 703.793930 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+489.918060 709.746689 m
+591.114960 709.746689 l
+591.114960 788.211334 l
+489.918060 788.211334 l
+489.918060 709.746689 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+495.870819 715.699448 m
+585.162201 715.699448 l
+585.162201 729.608536 l
+495.870819 729.608536 l
+495.870819 715.699448 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+495.870819 735.561295 m
+585.162201 735.561295 l
+585.162201 746.090454 l
+495.870819 746.090454 l
+495.870819 735.561295 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+495.870819 752.043213 m
+585.162201 752.043213 l
+585.162201 765.703171 l
+495.870819 765.703171 l
+495.870819 752.043213 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+495.870819 771.655930 m
+585.162201 771.655930 l
+585.162201 782.258575 l
+495.870819 782.258575 l
+495.870819 771.655930 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+202.616257 122.540207 m
+315.718674 122.540207 l
+315.718674 234.364761 l
+202.616257 234.364761 l
+202.616257 122.540207 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+208.569016 128.492966 m
+309.765915 128.492966 l
+309.765915 228.412003 l
+208.569016 228.412003 l
+208.569016 128.492966 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+214.521774 134.445724 m
+303.813156 134.445724 l
+303.813156 146.161682 l
+214.521774 146.161682 l
+214.521774 134.445724 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+214.521774 152.114441 m
+303.813156 152.114441 l
+303.813156 164.881363 l
+214.521774 164.881363 l
+214.521774 152.114441 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+214.521774 170.834122 m
+303.813156 170.834122 l
+303.813156 183.576126 l
+214.521774 183.576126 l
+214.521774 170.834122 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+214.521774 189.528885 m
+303.813156 189.528885 l
+303.813156 201.730667 l
+214.521774 201.730667 l
+214.521774 189.528885 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+214.521774 207.683426 m
+303.813156 207.683426 l
+303.813156 222.459244 l
+214.521774 222.459244 l
+214.521774 207.683426 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+476.661011 644.793076 m
+589.763428 644.793076 l
+589.763428 732.484665 l
+476.661011 732.484665 l
+476.661011 644.793076 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+482.613770 650.745834 m
+583.810669 650.745834 l
+583.810669 726.531906 l
+482.613770 726.531906 l
+482.613770 650.745834 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+488.566528 656.698593 m
+577.857910 656.698593 l
+577.857910 667.496277 l
+488.566528 667.496277 l
+488.566528 656.698593 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+488.566528 673.449036 m
+577.857910 673.449036 l
+577.857910 684.240662 l
+488.566528 684.240662 l
+488.566528 673.449036 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+488.566528 690.193420 m
+577.857910 690.193420 l
+577.857910 701.604065 l
+488.566528 701.604065 l
+488.566528 690.193420 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+488.566528 707.556824 m
+577.857910 707.556824 l
+577.857910 720.579147 l
+488.566528 720.579147 l
+488.566528 707.556824 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+217.085373 199.521332 m
+330.187790 199.521332 l
+330.187790 288.843918 l
+217.085373 288.843918 l
+217.085373 199.521332 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+223.038132 205.474091 m
+324.235031 205.474091 l
+324.235031 282.891159 l
+223.038132 282.891159 l
+223.038132 205.474091 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+228.990891 211.426849 m
+318.282272 211.426849 l
+318.282272 222.064209 l
+228.990891 222.064209 l
+228.990891 211.426849 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+228.990891 228.016968 m
+318.282272 228.016968 l
+318.282272 241.291473 l
+228.990891 241.291473 l
+228.990891 228.016968 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+228.990891 247.244232 m
+318.282272 247.244232 l
+318.282272 258.535355 l
+228.990891 258.535355 l
+228.990891 247.244232 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+228.990891 264.488113 m
+318.282272 264.488113 l
+318.282272 276.938400 l
+228.990891 276.938400 l
+228.990891 264.488113 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+344.561523 335.996338 m
+457.663940 335.996338 l
+457.663940 449.550400 l
+344.561523 449.550400 l
+344.561523 335.996338 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+350.514282 341.949097 m
+451.711182 341.949097 l
+451.711182 443.597641 l
+350.514282 443.597641 l
+350.514282 341.949097 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+356.467041 347.901855 m
+445.758423 347.901855 l
+445.758423 361.924866 l
+356.467041 361.924866 l
+356.467041 347.901855 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+356.467041 367.877625 m
+445.758423 367.877625 l
+445.758423 381.357727 l
+356.467041 381.357727 l
+356.467041 367.877625 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+356.467041 387.310486 m
+445.758423 387.310486 l
+445.758423 397.876404 l
+356.467041 397.876404 l
+356.467041 387.310486 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+356.467041 403.829163 m
+445.758423 403.829163 l
+445.758423 416.993073 l
+356.467041 416.993073 l
+356.467041 403.829163 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+356.467041 422.945831 m
+445.758423 422.945831 l
+445.758423 437.644882 l
+356.467041 437.644882 l
+356.467041 422.945831 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+296.484116 685.629852 m
+409.586533 685.629852 l
+409.586533 796.034317 l
+296.484116 796.034317 l
+296.484116 685.629852 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+302.436874 691.582611 m
+403.633774 691.582611 l
+403.633774 790.081558 l
+302.436874 790.081558 l
+302.436874 691.582611 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+308.389633 697.535370 m
+397.681015 697.535370 l
+397.681015 710.473770 l
+308.389633 710.473770 l
+308.389633 697.535370 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+308.389633 716.426529 m
+397.681015 716.426529 l
+397.681015 727.380951 l
+308.389633 727.380951 l
+308.389633 716.426529 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+308.389633 733.333710 m
+397.681015 733.333710 l
+397.681015 745.650024 l
+308.389633 745.650024 l
+308.389633 733.333710 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+308.389633 751.602783 m
+397.681015 751.602783 l
+397.681015 764.709030 l
+308.389633 764.709030 l
+308.389633 751.602783 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+308.389633 770.661789 m
+397.681015 770.661789 l
+397.681015 784.128799 l
+308.389633 784.128799 l
+308.389633 770.661789 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+277.912766 -27.334595 m
+391.015182 -27.334595 l
+391.015182 70.134033 l
+277.912766 70.134033 l
+277.912766 -27.334595 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+283.865524 -21.381836 m
+385.062424 -21.381836 l
+385.062424 64.181274 l
+283.865524 64.181274 l
+283.865524 -21.381836 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+289.818283 -15.429077 m
+379.109665 -15.429077 l
+379.109665 -2.310287 l
+289.818283 -2.310287 l
+289.818283 -15.429077 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+289.818283 3.642471 m
+379.109665 3.642471 l
+379.109665 17.828827 l
+289.818283 17.828827 l
+289.818283 3.642471 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+289.818283 23.781586 m
+379.109665 23.781586 l
+379.109665 38.568665 l
+289.818283 38.568665 l
+289.818283 23.781586 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+289.818283 44.521423 m
+379.109665 44.521423 l
+379.109665 58.228516 l
+289.818283 58.228516 l
+289.818283 44.521423 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+81.679794 481.382431 m
+194.782211 481.382431 l
+194.782211 570.785843 l
+81.679794 570.785843 l
+81.679794 481.382431 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+87.632553 487.335190 m
+188.829453 487.335190 l
+188.829453 564.833084 l
+87.632553 564.833084 l
+87.632553 487.335190 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+93.585312 493.287949 m
+182.876694 493.287949 l
+182.876694 504.664413 l
+93.585312 504.664413 l
+93.585312 493.287949 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+93.585312 510.617172 m
+182.876694 510.617172 l
+182.876694 523.617050 l
+93.585312 523.617050 l
+93.585312 510.617172 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+93.585312 529.569809 m
+182.876694 529.569809 l
+182.876694 541.718567 l
+93.585312 541.718567 l
+93.585312 529.569809 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+93.585312 547.671326 m
+182.876694 547.671326 l
+182.876694 558.880325 l
+93.585312 558.880325 l
+93.585312 547.671326 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+519.438110 718.589249 m
+632.540527 718.589249 l
+632.540527 815.669403 l
+519.438110 815.669403 l
+519.438110 718.589249 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+525.390869 724.542007 m
+626.587769 724.542007 l
+626.587769 809.716644 l
+525.390869 809.716644 l
+525.390869 724.542007 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+531.343628 730.494766 m
+620.635010 730.494766 l
+620.635010 744.056305 l
+531.343628 744.056305 l
+531.343628 730.494766 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+531.343628 750.009064 m
+620.635010 750.009064 l
+620.635010 764.707718 l
+531.343628 764.707718 l
+531.343628 750.009064 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+531.343628 770.660477 m
+620.635010 770.660477 l
+620.635010 784.039551 l
+531.343628 784.039551 l
+531.343628 770.660477 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+531.343628 789.992310 m
+620.635010 789.992310 l
+620.635010 803.763885 l
+531.343628 803.763885 l
+531.343628 789.992310 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+75.538574 278.035736 m
+188.640991 278.035736 l
+188.640991 390.232758 l
+75.538574 390.232758 l
+75.538574 278.035736 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+81.491333 283.988495 m
+182.688232 283.988495 l
+182.688232 384.279999 l
+81.491333 384.279999 l
+81.491333 283.988495 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+87.444092 289.941254 m
+176.735474 289.941254 l
+176.735474 303.002136 l
+87.444092 303.002136 l
+87.444092 289.941254 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+87.444092 308.954895 m
+176.735474 308.954895 l
+176.735474 322.302902 l
+87.444092 322.302902 l
+87.444092 308.954895 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+87.444092 328.255661 m
+176.735474 328.255661 l
+176.735474 340.777161 l
+87.444092 340.777161 l
+87.444092 328.255661 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+87.444092 346.729919 m
+176.735474 346.729919 l
+176.735474 360.055771 l
+87.444092 360.055771 l
+87.444092 346.729919 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+87.444092 366.008530 m
+176.735474 366.008530 l
+176.735474 378.327240 l
+87.444092 378.327240 l
+87.444092 366.008530 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-50.628494 388.995621 m
+62.473923 388.995621 l
+62.473923 478.805435 l
+-50.628494 478.805435 l
+-50.628494 388.995621 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-44.675735 394.948380 m
+56.521164 394.948380 l
+56.521164 472.852676 l
+-44.675735 472.852676 l
+-44.675735 394.948380 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-38.722977 400.901138 m
+50.568405 400.901138 l
+50.568405 413.856766 l
+-38.722977 413.856766 l
+-38.722977 400.901138 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-38.722977 419.809525 m
+50.568405 419.809525 l
+50.568405 430.652008 l
+-38.722977 430.652008 l
+-38.722977 419.809525 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-38.722977 436.604767 m
+50.568405 436.604767 l
+50.568405 449.808365 l
+-38.722977 449.808365 l
+-38.722977 436.604767 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-38.722977 455.761124 m
+50.568405 455.761124 l
+50.568405 466.899918 l
+-38.722977 466.899918 l
+-38.722977 455.761124 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+261.336166 784.577026 m
+374.438583 784.577026 l
+374.438583 896.727890 l
+261.336166 896.727890 l
+261.336166 784.577026 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+267.288925 790.529785 m
+368.485825 790.529785 l
+368.485825 890.775131 l
+267.288925 890.775131 l
+267.288925 790.529785 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+273.241684 796.482544 m
+362.533066 796.482544 l
+362.533066 809.354279 l
+273.241684 809.354279 l
+273.241684 796.482544 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+273.241684 815.307037 m
+362.533066 815.307037 l
+362.533066 828.138275 l
+273.241684 828.138275 l
+273.241684 815.307037 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+273.241684 834.091034 m
+362.533066 834.091034 l
+362.533066 845.251373 l
+273.241684 845.251373 l
+273.241684 834.091034 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+273.241684 851.204132 m
+362.533066 851.204132 l
+362.533066 864.823792 l
+273.241684 864.823792 l
+273.241684 851.204132 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+273.241684 870.776550 m
+362.533066 870.776550 l
+362.533066 884.822372 l
+273.241684 884.822372 l
+273.241684 870.776550 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+300.544220 258.647949 m
+413.646637 258.647949 l
+413.646637 351.744553 l
+300.544220 351.744553 l
+300.544220 258.647949 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+306.496979 264.600708 m
+407.693878 264.600708 l
+407.693878 345.791794 l
+306.496979 345.791794 l
+306.496979 264.600708 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+312.449738 270.553467 m
+401.741119 270.553467 l
+401.741119 282.182312 l
+312.449738 282.182312 l
+312.449738 270.553467 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+312.449738 288.135071 m
+401.741119 288.135071 l
+401.741119 302.871414 l
+312.449738 302.871414 l
+312.449738 288.135071 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+312.449738 308.824173 m
+401.741119 308.824173 l
+401.741119 319.481445 l
+312.449738 319.481445 l
+312.449738 308.824173 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+312.449738 325.434204 m
+401.741119 325.434204 l
+401.741119 339.839035 l
+312.449738 339.839035 l
+312.449738 325.434204 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+142.155304 355.306000 m
+255.257721 355.306000 l
+255.257721 471.456100 l
+142.155304 471.456100 l
+142.155304 355.306000 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+148.108063 361.258759 m
+249.304962 361.258759 l
+249.304962 465.503342 l
+148.108063 465.503342 l
+148.108063 361.258759 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+154.060822 367.211517 m
+243.352203 367.211517 l
+243.352203 381.406082 l
+154.060822 381.406082 l
+154.060822 367.211517 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+154.060822 387.358841 m
+243.352203 387.358841 l
+243.352203 400.884155 l
+154.060822 400.884155 l
+154.060822 387.358841 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+154.060822 406.836914 m
+243.352203 406.836914 l
+243.352203 419.466400 l
+154.060822 419.466400 l
+154.060822 406.836914 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+154.060822 425.419159 m
+243.352203 425.419159 l
+243.352203 439.284027 l
+154.060822 439.284027 l
+154.060822 425.419159 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+154.060822 445.236786 m
+243.352203 445.236786 l
+243.352203 459.550583 l
+154.060822 459.550583 l
+154.060822 445.236786 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+35.254486 467.735870 m
+148.356903 467.735870 l
+148.356903 577.089905 l
+35.254486 577.089905 l
+35.254486 467.735870 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+41.207245 473.688629 m
+142.404144 473.688629 l
+142.404144 571.137146 l
+41.207245 571.137146 l
+41.207245 473.688629 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+47.160004 479.641388 m
+136.451385 479.641388 l
+136.451385 494.089874 l
+47.160004 494.089874 l
+47.160004 479.641388 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+47.160004 500.042633 m
+136.451385 500.042633 l
+136.451385 511.832214 l
+47.160004 511.832214 l
+47.160004 500.042633 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+47.160004 517.784973 m
+136.451385 517.784973 l
+136.451385 528.348694 l
+47.160004 528.348694 l
+47.160004 517.784973 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+47.160004 534.301453 m
+136.451385 534.301453 l
+136.451385 546.056870 l
+47.160004 546.056870 l
+47.160004 534.301453 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+47.160004 552.009628 m
+136.451385 552.009628 l
+136.451385 565.184387 l
+47.160004 565.184387 l
+47.160004 552.009628 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+367.603928 210.644669 m
+480.706345 210.644669 l
+480.706345 316.057953 l
+367.603928 316.057953 l
+367.603928 210.644669 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+373.556686 216.597427 m
+474.753586 216.597427 l
+474.753586 310.105194 l
+373.556686 310.105194 l
+373.556686 216.597427 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+379.509445 222.550186 m
+468.800827 222.550186 l
+468.800827 233.977829 l
+379.509445 233.977829 l
+379.509445 222.550186 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+379.509445 239.930588 m
+468.800827 239.930588 l
+468.800827 251.760422 l
+379.509445 251.760422 l
+379.509445 239.930588 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+379.509445 257.713181 m
+468.800827 257.713181 l
+468.800827 268.456757 l
+379.509445 268.456757 l
+379.509445 257.713181 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+379.509445 274.409515 m
+468.800827 274.409515 l
+468.800827 286.513138 l
+379.509445 286.513138 l
+379.509445 274.409515 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+379.509445 292.465897 m
+468.800827 292.465897 l
+468.800827 304.152435 l
+379.509445 304.152435 l
+379.509445 292.465897 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+474.389114 -40.198318 m
+587.491531 -40.198318 l
+587.491531 64.332367 l
+474.389114 64.332367 l
+474.389114 -40.198318 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+480.341873 -34.245560 m
+581.538773 -34.245560 l
+581.538773 58.379608 l
+480.341873 58.379608 l
+480.341873 -34.245560 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+486.294632 -28.292801 m
+575.586014 -28.292801 l
+575.586014 -17.510620 l
+486.294632 -17.510620 l
+486.294632 -28.292801 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+486.294632 -11.557861 m
+575.586014 -11.557861 l
+575.586014 -0.033508 l
+486.294632 -0.033508 l
+486.294632 -11.557861 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+486.294632 5.919250 m
+575.586014 5.919250 l
+575.586014 16.761108 l
+486.294632 16.761108 l
+486.294632 5.919250 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+486.294632 22.713867 m
+575.586014 22.713867 l
+575.586014 35.186691 l
+486.294632 35.186691 l
+486.294632 22.713867 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+486.294632 41.139450 m
+575.586014 41.139450 l
+575.586014 52.426849 l
+486.294632 52.426849 l
+486.294632 41.139450 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+146.170273 188.775711 m
+259.272690 188.775711 l
+259.272690 294.114746 l
+146.170273 294.114746 l
+146.170273 188.775711 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+152.123032 194.728470 m
+253.319931 194.728470 l
+253.319931 288.161987 l
+152.123032 288.161987 l
+152.123032 194.728470 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+158.075790 200.681229 m
+247.367172 200.681229 l
+247.367172 211.655380 l
+158.075790 211.655380 l
+158.075790 200.681229 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+158.075790 217.608139 m
+247.367172 217.608139 l
+247.367172 231.407440 l
+158.075790 231.407440 l
+158.075790 217.608139 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+158.075790 237.360199 m
+247.367172 237.360199 l
+247.367172 248.210464 l
+158.075790 248.210464 l
+158.075790 237.360199 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+158.075790 254.163223 m
+247.367172 254.163223 l
+247.367172 265.058868 l
+158.075790 265.058868 l
+158.075790 254.163223 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+158.075790 271.011627 m
+247.367172 271.011627 l
+247.367172 282.209229 l
+158.075790 282.209229 l
+158.075790 271.011627 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+221.908936 486.545654 m
+335.011353 486.545654 l
+335.011353 601.179077 l
+221.908936 601.179077 l
+221.908936 486.545654 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+227.861694 492.498413 m
+329.058594 492.498413 l
+329.058594 595.226318 l
+227.861694 595.226318 l
+227.861694 492.498413 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+233.814453 498.451172 m
+323.105835 498.451172 l
+323.105835 512.309052 l
+233.814453 512.309052 l
+233.814453 498.451172 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+233.814453 518.261810 m
+323.105835 518.261810 l
+323.105835 531.486771 l
+233.814453 531.486771 l
+233.814453 518.261810 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+233.814453 537.439529 m
+323.105835 537.439529 l
+323.105835 550.020737 l
+233.814453 550.020737 l
+233.814453 537.439529 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+233.814453 555.973495 m
+323.105835 555.973495 l
+323.105835 570.761658 l
+233.814453 570.761658 l
+233.814453 555.973495 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+233.814453 576.714417 m
+323.105835 576.714417 l
+323.105835 589.273560 l
+233.814453 589.273560 l
+233.814453 576.714417 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-46.843933 618.250595 m
+66.258484 618.250595 l
+66.258484 728.012436 l
+-46.843933 728.012436 l
+-46.843933 618.250595 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-40.891174 624.203354 m
+60.305725 624.203354 l
+60.305725 722.059677 l
+-40.891174 722.059677 l
+-40.891174 624.203354 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-34.938416 630.156113 m
+54.352966 630.156113 l
+54.352966 640.700836 l
+-34.938416 640.700836 l
+-34.938416 630.156113 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-34.938416 646.653595 m
+54.352966 646.653595 l
+54.352966 661.194275 l
+-34.938416 661.194275 l
+-34.938416 646.653595 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-34.938416 667.147034 m
+54.352966 667.147034 l
+54.352966 677.893768 l
+-34.938416 677.893768 l
+-34.938416 667.147034 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-34.938416 683.846527 m
+54.352966 683.846527 l
+54.352966 698.642776 l
+-34.938416 698.642776 l
+-34.938416 683.846527 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-34.938416 704.595535 m
+54.352966 704.595535 l
+54.352966 716.106918 l
+-34.938416 716.106918 l
+-34.938416 704.595535 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+86.238892 769.902435 m
+199.341309 769.902435 l
+199.341309 880.680649 l
+86.238892 880.680649 l
+86.238892 769.902435 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+92.191650 775.855194 m
+193.388550 775.855194 l
+193.388550 874.727890 l
+92.191650 874.727890 l
+92.191650 775.855194 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+98.144409 781.807953 m
+187.435791 781.807953 l
+187.435791 796.433380 l
+98.144409 796.433380 l
+98.144409 781.807953 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+98.144409 802.386139 m
+187.435791 802.386139 l
+187.435791 813.784027 l
+98.144409 813.784027 l
+98.144409 802.386139 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+98.144409 819.736786 m
+187.435791 819.736786 l
+187.435791 830.172653 l
+98.144409 830.172653 l
+98.144409 819.736786 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+98.144409 836.125412 m
+187.435791 836.125412 l
+187.435791 850.231186 l
+98.144409 850.231186 l
+98.144409 836.125412 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+98.144409 856.183945 m
+187.435791 856.183945 l
+187.435791 868.775131 l
+98.144409 868.775131 l
+98.144409 856.183945 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+9.794006 771.717346 m
+122.896423 771.717346 l
+122.896423 865.308762 l
+9.794006 865.308762 l
+9.794006 771.717346 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+15.746765 777.670105 m
+116.943665 777.670105 l
+116.943665 859.356003 l
+15.746765 859.356003 l
+15.746765 777.670105 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+21.699524 783.622864 m
+110.990906 783.622864 l
+110.990906 798.356766 l
+21.699524 798.356766 l
+21.699524 783.622864 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+21.699524 804.309525 m
+110.990906 804.309525 l
+110.990906 818.524002 l
+21.699524 818.524002 l
+21.699524 804.309525 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+21.699524 824.476761 m
+110.990906 824.476761 l
+110.990906 835.510300 l
+21.699524 835.510300 l
+21.699524 824.476761 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+21.699524 841.463058 m
+110.990906 841.463058 l
+110.990906 853.403244 l
+21.699524 853.403244 l
+21.699524 841.463058 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+212.167862 -31.316315 m
+325.270279 -31.316315 l
+325.270279 57.572479 l
+212.167862 57.572479 l
+212.167862 -31.316315 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+218.120621 -25.363556 m
+319.317520 -25.363556 l
+319.317520 51.619720 l
+218.120621 51.619720 l
+218.120621 -25.363556 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+224.073380 -19.410797 m
+313.364761 -19.410797 l
+313.364761 -6.101242 l
+224.073380 -6.101242 l
+224.073380 -19.410797 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+224.073380 -0.148483 m
+313.364761 -0.148483 l
+313.364761 10.806046 l
+224.073380 10.806046 l
+224.073380 -0.148483 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+224.073380 16.758804 m
+313.364761 16.758804 l
+313.364761 27.794998 l
+224.073380 27.794998 l
+224.073380 16.758804 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+224.073380 33.747757 m
+313.364761 33.747757 l
+313.364761 45.666962 l
+224.073380 45.666962 l
+224.073380 33.747757 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+520.948868 153.546799 m
+634.051285 153.546799 l
+634.051285 263.105530 l
+520.948868 263.105530 l
+520.948868 153.546799 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+526.901627 159.499557 m
+628.098526 159.499557 l
+628.098526 257.152771 l
+526.901627 257.152771 l
+526.901627 159.499557 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.854385 165.452316 m
+622.145767 165.452316 l
+622.145767 176.471909 l
+532.854385 176.471909 l
+532.854385 165.452316 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.854385 182.424667 m
+622.145767 182.424667 l
+622.145767 192.862015 l
+532.854385 192.862015 l
+532.854385 182.424667 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.854385 198.814774 m
+622.145767 198.814774 l
+622.145767 211.468552 l
+532.854385 211.468552 l
+532.854385 198.814774 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.854385 217.421310 m
+622.145767 217.421310 l
+622.145767 231.390182 l
+532.854385 231.390182 l
+532.854385 217.421310 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.854385 237.342941 m
+622.145767 237.342941 l
+622.145767 251.200012 l
+532.854385 251.200012 l
+532.854385 237.342941 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+108.578613 80.706345 m
+221.681030 80.706345 l
+221.681030 193.389404 l
+108.578613 193.389404 l
+108.578613 80.706345 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+114.531372 86.659103 m
+215.728271 86.659103 l
+215.728271 187.436646 l
+114.531372 187.436646 l
+114.531372 86.659103 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+120.484131 92.611862 m
+209.775513 92.611862 l
+209.775513 106.190598 l
+120.484131 106.190598 l
+120.484131 92.611862 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+120.484131 112.143356 m
+209.775513 112.143356 l
+209.775513 123.643631 l
+120.484131 123.643631 l
+120.484131 112.143356 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+120.484131 129.596390 m
+209.775513 129.596390 l
+209.775513 142.606262 l
+120.484131 142.606262 l
+120.484131 129.596390 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+120.484131 148.559021 m
+209.775513 148.559021 l
+209.775513 160.827805 l
+120.484131 160.827805 l
+120.484131 148.559021 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+120.484131 166.780563 m
+209.775513 166.780563 l
+209.775513 181.483887 l
+120.484131 181.483887 l
+120.484131 166.780563 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+289.650040 95.699127 m
+402.752457 95.699127 l
+402.752457 181.660629 l
+289.650040 181.660629 l
+289.650040 95.699127 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+295.602798 101.651886 m
+396.799698 101.651886 l
+396.799698 175.707870 l
+295.602798 175.707870 l
+295.602798 101.651886 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+301.555557 107.604645 m
+390.846939 107.604645 l
+390.846939 118.327744 l
+301.555557 118.327744 l
+301.555557 107.604645 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+301.555557 124.280502 m
+390.846939 124.280502 l
+390.846939 134.952164 l
+301.555557 134.952164 l
+301.555557 124.280502 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+301.555557 140.904922 m
+390.846939 140.904922 l
+390.846939 152.081024 l
+301.555557 152.081024 l
+301.555557 140.904922 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+301.555557 158.033783 m
+390.846939 158.033783 l
+390.846939 169.755112 l
+301.555557 169.755112 l
+301.555557 158.033783 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+194.431137 85.748474 m
+307.533554 85.748474 l
+307.533554 181.565125 l
+194.431137 181.565125 l
+194.431137 85.748474 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+200.383896 91.701233 m
+301.580795 91.701233 l
+301.580795 175.612366 l
+200.383896 175.612366 l
+200.383896 91.701233 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+206.336655 97.653992 m
+295.628036 97.653992 l
+295.628036 111.782349 l
+206.336655 111.782349 l
+206.336655 97.653992 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+206.336655 117.735107 m
+295.628036 117.735107 l
+295.628036 129.938812 l
+206.336655 129.938812 l
+206.336655 117.735107 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+206.336655 135.891571 m
+295.628036 135.891571 l
+295.628036 150.016052 l
+206.336655 150.016052 l
+206.336655 135.891571 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+206.336655 155.968811 m
+295.628036 155.968811 l
+295.628036 169.659607 l
+206.336655 169.659607 l
+206.336655 155.968811 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+459.557129 784.299164 m
+572.659546 784.299164 l
+572.659546 877.684372 l
+459.557129 877.684372 l
+459.557129 784.299164 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+465.509888 790.251923 m
+566.706787 790.251923 l
+566.706787 871.731613 l
+465.509888 871.731613 l
+465.509888 790.251923 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+471.462646 796.204681 m
+560.754028 796.204681 l
+560.754028 809.184830 l
+471.462646 809.184830 l
+471.462646 796.204681 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+471.462646 815.137589 m
+560.754028 815.137589 l
+560.754028 826.177765 l
+471.462646 826.177765 l
+471.462646 815.137589 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+471.462646 832.130524 m
+560.754028 832.130524 l
+560.754028 846.537231 l
+471.462646 846.537231 l
+471.462646 832.130524 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+471.462646 852.489990 m
+560.754028 852.489990 l
+560.754028 865.778854 l
+471.462646 865.778854 l
+471.462646 852.489990 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+127.138489 463.176163 m
+240.240906 463.176163 l
+240.240906 573.816010 l
+127.138489 573.816010 l
+127.138489 463.176163 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+133.091248 469.128922 m
+234.288147 469.128922 l
+234.288147 567.863251 l
+133.091248 567.863251 l
+133.091248 469.128922 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+139.044006 475.081680 m
+228.335388 475.081680 l
+228.335388 488.531921 l
+139.044006 488.531921 l
+139.044006 475.081680 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+139.044006 494.484680 m
+228.335388 494.484680 l
+228.335388 505.564957 l
+139.044006 505.564957 l
+139.044006 494.484680 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+139.044006 511.517715 m
+228.335388 511.517715 l
+228.335388 523.221741 l
+139.044006 523.221741 l
+139.044006 511.517715 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+139.044006 529.174500 m
+228.335388 529.174500 l
+228.335388 542.596268 l
+139.044006 542.596268 l
+139.044006 529.174500 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+139.044006 548.549026 m
+228.335388 548.549026 l
+228.335388 561.910492 l
+139.044006 561.910492 l
+139.044006 548.549026 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+143.252594 652.528809 m
+256.355011 652.528809 l
+256.355011 742.599442 l
+143.252594 742.599442 l
+143.252594 652.528809 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+149.205353 658.481567 m
+250.402252 658.481567 l
+250.402252 736.646683 l
+149.205353 736.646683 l
+149.205353 658.481567 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+155.158112 664.434326 m
+244.449493 664.434326 l
+244.449493 677.220520 l
+155.158112 677.220520 l
+155.158112 664.434326 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+155.158112 683.173279 m
+244.449493 683.173279 l
+244.449493 693.998444 l
+155.158112 693.998444 l
+155.158112 683.173279 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+155.158112 699.951202 m
+244.449493 699.951202 l
+244.449493 714.006851 l
+155.158112 714.006851 l
+155.158112 699.951202 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+155.158112 719.959610 m
+244.449493 719.959610 l
+244.449493 730.693924 l
+155.158112 730.693924 l
+155.158112 719.959610 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+17.227295 -44.365875 m
+130.329712 -44.365875 l
+130.329712 65.281723 l
+17.227295 65.281723 l
+17.227295 -44.365875 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+23.180054 -38.413116 m
+124.376953 -38.413116 l
+124.376953 59.328964 l
+23.180054 59.328964 l
+23.180054 -38.413116 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+29.132812 -32.460358 m
+118.424194 -32.460358 l
+118.424194 -20.453766 l
+29.132812 -20.453766 l
+29.132812 -32.460358 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+29.132812 -14.501007 m
+118.424194 -14.501007 l
+118.424194 -2.048691 l
+29.132812 -2.048691 l
+29.132812 -14.501007 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+29.132812 3.904068 m
+118.424194 3.904068 l
+118.424194 17.465454 l
+29.132812 17.465454 l
+29.132812 3.904068 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+29.132812 23.418213 m
+118.424194 23.418213 l
+118.424194 34.359146 l
+29.132812 34.359146 l
+29.132812 23.418213 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+29.132812 40.311905 m
+118.424194 40.311905 l
+118.424194 53.376205 l
+29.132812 53.376205 l
+29.132812 40.311905 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+94.694000 -32.631561 m
+207.796417 -32.631561 l
+207.796417 61.258148 l
+94.694000 61.258148 l
+94.694000 -32.631561 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+100.646759 -26.678802 m
+201.843658 -26.678802 l
+201.843658 55.305389 l
+100.646759 55.305389 l
+100.646759 -26.678802 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+106.599518 -20.726044 m
+195.890900 -20.726044 l
+195.890900 -8.642380 l
+106.599518 -8.642380 l
+106.599518 -20.726044 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+106.599518 -2.689621 m
+195.890900 -2.689621 l
+195.890900 11.146011 l
+106.599518 11.146011 l
+106.599518 -2.689621 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+106.599518 17.098770 m
+195.890900 17.098770 l
+195.890900 29.749222 l
+106.599518 29.749222 l
+106.599518 17.098770 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+106.599518 35.701981 m
+195.890900 35.701981 l
+195.890900 49.352631 l
+106.599518 49.352631 l
+106.599518 35.701981 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+536.155258 567.294800 m
+649.257675 567.294800 l
+649.257675 682.052795 l
+536.155258 682.052795 l
+536.155258 567.294800 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+542.108017 573.247559 m
+643.304916 573.247559 l
+643.304916 676.100037 l
+542.108017 676.100037 l
+542.108017 573.247559 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+548.060776 579.200317 m
+637.352158 579.200317 l
+637.352158 593.355713 l
+548.060776 593.355713 l
+548.060776 579.200317 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+548.060776 599.308472 m
+637.352158 599.308472 l
+637.352158 613.288223 l
+548.060776 613.288223 l
+548.060776 599.308472 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+548.060776 619.240982 m
+637.352158 619.240982 l
+637.352158 632.323578 l
+548.060776 632.323578 l
+548.060776 619.240982 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+548.060776 638.276337 m
+637.352158 638.276337 l
+637.352158 650.284698 l
+548.060776 650.284698 l
+548.060776 638.276337 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+548.060776 656.237457 m
+637.352158 656.237457 l
+637.352158 670.147278 l
+548.060776 670.147278 l
+548.060776 656.237457 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+77.580444 399.174606 m
+190.682861 399.174606 l
+190.682861 509.895325 l
+77.580444 509.895325 l
+77.580444 399.174606 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+83.533203 405.127365 m
+184.730103 405.127365 l
+184.730103 503.942566 l
+83.533203 503.942566 l
+83.533203 405.127365 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+89.485962 411.080124 m
+178.777344 411.080124 l
+178.777344 423.648331 l
+89.485962 423.648331 l
+89.485962 411.080124 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+89.485962 429.601089 m
+178.777344 429.601089 l
+178.777344 442.254654 l
+89.485962 442.254654 l
+89.485962 429.601089 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+89.485962 448.207413 m
+178.777344 448.207413 l
+178.777344 460.580231 l
+89.485962 460.580231 l
+89.485962 448.207413 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+89.485962 466.532990 m
+178.777344 466.532990 l
+178.777344 478.325943 l
+89.485962 478.325943 l
+89.485962 466.532990 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+89.485962 484.278702 m
+178.777344 484.278702 l
+178.777344 497.989807 l
+89.485962 497.989807 l
+89.485962 484.278702 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+537.732574 255.789749 m
+650.834991 255.789749 l
+650.834991 365.758408 l
+537.732574 365.758408 l
+537.732574 255.789749 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+543.685333 261.742508 m
+644.882233 261.742508 l
+644.882233 359.805649 l
+543.685333 359.805649 l
+543.685333 261.742508 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.638092 267.695267 m
+638.929474 267.695267 l
+638.929474 280.269379 l
+549.638092 280.269379 l
+549.638092 267.695267 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.638092 286.222137 m
+638.929474 286.222137 l
+638.929474 297.689606 l
+549.638092 297.689606 l
+549.638092 286.222137 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.638092 303.642365 m
+638.929474 303.642365 l
+638.929474 316.218628 l
+549.638092 316.218628 l
+549.638092 303.642365 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.638092 322.171387 m
+638.929474 322.171387 l
+638.929474 335.395691 l
+549.638092 335.395691 l
+549.638092 322.171387 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.638092 341.348450 m
+638.929474 341.348450 l
+638.929474 353.852890 l
+549.638092 353.852890 l
+549.638092 341.348450 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+429.351685 462.367142 m
+542.454102 462.367142 l
+542.454102 551.626678 l
+429.351685 551.626678 l
+429.351685 462.367142 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+435.304443 468.319901 m
+536.501343 468.319901 l
+536.501343 545.673920 l
+435.304443 545.673920 l
+435.304443 468.319901 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+441.257202 474.272659 m
+530.548584 474.272659 l
+530.548584 487.118698 l
+441.257202 487.118698 l
+441.257202 474.272659 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+441.257202 493.071457 m
+530.548584 493.071457 l
+530.548584 503.730240 l
+441.257202 503.730240 l
+441.257202 493.071457 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+441.257202 509.682999 m
+530.548584 509.682999 l
+530.548584 522.408630 l
+441.257202 522.408630 l
+441.257202 509.682999 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+441.257202 528.361389 m
+530.548584 528.361389 l
+530.548584 539.721161 l
+441.257202 539.721161 l
+441.257202 528.361389 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+30.625610 691.824661 m
+143.728027 691.824661 l
+143.728027 780.568405 l
+30.625610 780.568405 l
+30.625610 691.824661 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+36.578369 697.777420 m
+137.775269 697.777420 l
+137.775269 774.615646 l
+36.578369 774.615646 l
+36.578369 697.777420 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+42.531128 703.730179 m
+131.822510 703.730179 l
+131.822510 715.553482 l
+42.531128 715.553482 l
+42.531128 703.730179 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+42.531128 721.506241 m
+131.822510 721.506241 l
+131.822510 733.989655 l
+42.531128 733.989655 l
+42.531128 721.506241 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+42.531128 739.942413 m
+131.822510 739.942413 l
+131.822510 750.570160 l
+42.531128 750.570160 l
+42.531128 739.942413 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+42.531128 756.522919 m
+131.822510 756.522919 l
+131.822510 768.662888 l
+42.531128 768.662888 l
+42.531128 756.522919 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+519.056992 662.642410 m
+632.159409 662.642410 l
+632.159409 773.933472 l
+519.056992 773.933472 l
+519.056992 662.642410 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+525.009750 668.595169 m
+626.206650 668.595169 l
+626.206650 767.980713 l
+525.009750 767.980713 l
+525.009750 668.595169 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+530.962509 674.547928 m
+620.253891 674.547928 l
+620.253891 688.974319 l
+530.962509 688.974319 l
+530.962509 674.547928 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+530.962509 694.927078 m
+620.253891 694.927078 l
+620.253891 707.107300 l
+530.962509 707.107300 l
+530.962509 694.927078 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+530.962509 713.060059 m
+620.253891 713.060059 l
+620.253891 726.017822 l
+530.962509 726.017822 l
+530.962509 713.060059 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+530.962509 731.970581 m
+620.253891 731.970581 l
+620.253891 744.757523 l
+530.962509 744.757523 l
+530.962509 731.970581 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+530.962509 750.710281 m
+620.253891 750.710281 l
+620.253891 762.027954 l
+530.962509 762.027954 l
+530.962509 750.710281 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+93.400375 6.787689 m
+206.502792 6.787689 l
+206.502792 121.126434 l
+93.400375 121.126434 l
+93.400375 6.787689 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+99.353134 12.740448 m
+200.550034 12.740448 l
+200.550034 115.173676 l
+99.353134 115.173676 l
+99.353134 12.740448 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+105.305893 18.693207 m
+194.597275 18.693207 l
+194.597275 31.395752 l
+105.305893 31.395752 l
+105.305893 18.693207 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+105.305893 37.348511 m
+194.597275 37.348511 l
+194.597275 49.404633 l
+105.305893 49.404633 l
+105.305893 37.348511 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+105.305893 55.357391 m
+194.597275 55.357391 l
+194.597275 69.997223 l
+105.305893 69.997223 l
+105.305893 55.357391 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+105.305893 75.949982 m
+194.597275 75.949982 l
+194.597275 90.332626 l
+105.305893 90.332626 l
+105.305893 75.949982 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+105.305893 96.285385 m
+194.597275 96.285385 l
+194.597275 109.220917 l
+105.305893 109.220917 l
+105.305893 96.285385 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+384.178329 685.879898 m
+497.280746 685.879898 l
+497.280746 775.542099 l
+384.178329 775.542099 l
+384.178329 685.879898 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+390.131088 691.832657 m
+491.327988 691.832657 l
+491.327988 769.589340 l
+390.131088 769.589340 l
+390.131088 691.832657 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+396.083847 697.785416 m
+485.375229 697.785416 l
+485.375229 709.468399 l
+396.083847 709.468399 l
+396.083847 697.785416 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+396.083847 715.421158 m
+485.375229 715.421158 l
+485.375229 726.926834 l
+396.083847 726.926834 l
+396.083847 715.421158 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+396.083847 732.879593 m
+485.375229 732.879593 l
+485.375229 745.809021 l
+396.083847 745.809021 l
+396.083847 732.879593 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+396.083847 751.761780 m
+485.375229 751.761780 l
+485.375229 763.636581 l
+396.083847 763.636581 l
+396.083847 751.761780 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+533.591858 789.820328 m
+646.694275 789.820328 l
+646.694275 882.682220 l
+533.591858 882.682220 l
+533.591858 789.820328 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+539.544617 795.773087 m
+640.741516 795.773087 l
+640.741516 876.729462 l
+539.544617 876.729462 l
+539.544617 795.773087 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+545.497375 801.725845 m
+634.788757 801.725845 l
+634.788757 813.846344 l
+545.497375 813.846344 l
+545.497375 801.725845 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+545.497375 819.799103 m
+634.788757 819.799103 l
+634.788757 830.314819 l
+545.497375 830.314819 l
+545.497375 819.799103 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+545.497375 836.267578 m
+634.788757 836.267578 l
+634.788757 850.305695 l
+545.497375 850.305695 l
+545.497375 836.267578 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+545.497375 856.258453 m
+634.788757 856.258453 l
+634.788757 870.776703 l
+545.497375 870.776703 l
+545.497375 856.258453 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+454.754440 734.763809 m
+567.856857 734.763809 l
+567.856857 827.198807 l
+454.754440 827.198807 l
+454.754440 734.763809 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+460.707199 740.716568 m
+561.904099 740.716568 l
+561.904099 821.246048 l
+460.707199 821.246048 l
+460.707199 740.716568 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+466.659958 746.669327 m
+555.951340 746.669327 l
+555.951340 758.620483 l
+466.659958 758.620483 l
+466.659958 746.669327 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+466.659958 764.573242 m
+555.951340 764.573242 l
+555.951340 775.276108 l
+466.659958 775.276108 l
+466.659958 764.573242 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+466.659958 781.228867 m
+555.951340 781.228867 l
+555.951340 795.178223 l
+466.659958 795.178223 l
+466.659958 781.228867 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+466.659958 801.130981 m
+555.951340 801.130981 l
+555.951340 815.293289 l
+466.659958 815.293289 l
+466.659958 801.130981 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+111.836975 310.533600 m
+224.939392 310.533600 l
+224.939392 425.783447 l
+111.836975 425.783447 l
+111.836975 310.533600 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+117.789734 316.486359 m
+218.986633 316.486359 l
+218.986633 419.830688 l
+117.789734 419.830688 l
+117.789734 316.486359 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+123.742493 322.439117 m
+213.033875 322.439117 l
+213.033875 336.726883 l
+123.742493 336.726883 l
+123.742493 322.439117 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+123.742493 342.679642 m
+213.033875 342.679642 l
+213.033875 356.807022 l
+123.742493 356.807022 l
+123.742493 342.679642 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+123.742493 362.759781 m
+213.033875 362.759781 l
+213.033875 374.999374 l
+123.742493 374.999374 l
+123.742493 362.759781 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+123.742493 380.952133 m
+213.033875 380.952133 l
+213.033875 395.705750 l
+123.742493 395.705750 l
+123.742493 380.952133 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+123.742493 401.658508 m
+213.033875 401.658508 l
+213.033875 413.877930 l
+123.742493 413.877930 l
+123.742493 401.658508 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+172.244064 709.172928 m
+285.346481 709.172928 l
+285.346481 824.513733 l
+172.244064 824.513733 l
+172.244064 709.172928 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+178.196823 715.125687 m
+279.393723 715.125687 l
+279.393723 818.560974 l
+178.196823 818.560974 l
+178.196823 715.125687 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+184.149582 721.078445 m
+273.440964 721.078445 l
+273.440964 734.396820 l
+184.149582 734.396820 l
+184.149582 721.078445 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+184.149582 740.349579 m
+273.440964 740.349579 l
+273.440964 755.059250 l
+184.149582 755.059250 l
+184.149582 740.349579 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+184.149582 761.012009 m
+273.440964 761.012009 l
+273.440964 775.207657 l
+184.149582 775.207657 l
+184.149582 761.012009 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+184.149582 781.160416 m
+273.440964 781.160416 l
+273.440964 792.433228 l
+184.149582 792.433228 l
+184.149582 781.160416 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+184.149582 798.385986 m
+273.440964 798.385986 l
+273.440964 812.608215 l
+184.149582 812.608215 l
+184.149582 798.385986 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+520.637161 202.378632 m
+633.739578 202.378632 l
+633.739578 313.655197 l
+520.637161 313.655197 l
+520.637161 202.378632 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+526.589920 208.331390 m
+627.786819 208.331390 l
+627.786819 307.702438 l
+526.589920 307.702438 l
+526.589920 208.331390 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.542679 214.284149 m
+621.834061 214.284149 l
+621.834061 225.748428 l
+532.542679 225.748428 l
+532.542679 214.284149 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.542679 231.701187 m
+621.834061 231.701187 l
+621.834061 245.885468 l
+532.542679 245.885468 l
+532.542679 231.701187 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.542679 251.838226 m
+621.834061 251.838226 l
+621.834061 266.199615 l
+532.542679 266.199615 l
+532.542679 251.838226 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.542679 272.152374 m
+621.834061 272.152374 l
+621.834061 284.953873 l
+532.542679 284.953873 l
+532.542679 272.152374 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.542679 290.906631 m
+621.834061 290.906631 l
+621.834061 301.749680 l
+532.542679 301.749680 l
+532.542679 290.906631 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+512.127228 219.027374 m
+625.229645 219.027374 l
+625.229645 313.669571 l
+512.127228 313.669571 l
+512.127228 219.027374 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+518.079987 224.980133 m
+619.276886 224.980133 l
+619.276886 307.716812 l
+518.079987 307.716812 l
+518.079987 224.980133 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+524.032745 230.932892 m
+613.324127 230.932892 l
+613.324127 244.113785 l
+524.032745 244.113785 l
+524.032745 230.932892 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+524.032745 250.066544 m
+613.324127 250.066544 l
+613.324127 263.778763 l
+524.032745 263.778763 l
+524.032745 250.066544 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+524.032745 269.731522 m
+613.324127 269.731522 l
+613.324127 281.748978 l
+524.032745 281.748978 l
+524.032745 269.731522 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+524.032745 287.701736 m
+613.324127 287.701736 l
+613.324127 301.764053 l
+524.032745 301.764053 l
+524.032745 287.701736 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-48.365723 474.448715 m
+64.736694 474.448715 l
+64.736694 587.420486 l
+-48.365723 587.420486 l
+-48.365723 474.448715 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-42.412964 480.401474 m
+58.783936 480.401474 l
+58.783936 581.467728 l
+-42.412964 581.467728 l
+-42.412964 480.401474 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-36.460205 486.354233 m
+52.831177 486.354233 l
+52.831177 497.991486 l
+-36.460205 497.991486 l
+-36.460205 486.354233 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-36.460205 503.944244 m
+52.831177 503.944244 l
+52.831177 516.635910 l
+-36.460205 516.635910 l
+-36.460205 503.944244 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-36.460205 522.588669 m
+52.831177 522.588669 l
+52.831177 535.620102 l
+-36.460205 535.620102 l
+-36.460205 522.588669 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-36.460205 541.572861 m
+52.831177 541.572861 l
+52.831177 554.720169 l
+-36.460205 554.720169 l
+-36.460205 541.572861 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-36.460205 560.672928 m
+52.831177 560.672928 l
+52.831177 575.514969 l
+-36.460205 575.514969 l
+-36.460205 560.672928 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+163.141663 386.102722 m
+276.244080 386.102722 l
+276.244080 495.070435 l
+163.141663 495.070435 l
+163.141663 386.102722 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+169.094421 392.055481 m
+270.291321 392.055481 l
+270.291321 489.117676 l
+169.094421 489.117676 l
+169.094421 392.055481 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+175.047180 398.008240 m
+264.338562 398.008240 l
+264.338562 409.069458 l
+175.047180 409.069458 l
+175.047180 398.008240 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+175.047180 415.022217 m
+264.338562 415.022217 l
+264.338562 427.777847 l
+175.047180 427.777847 l
+175.047180 415.022217 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+175.047180 433.730606 m
+264.338562 433.730606 l
+264.338562 445.987198 l
+175.047180 445.987198 l
+175.047180 433.730606 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+175.047180 451.939957 m
+264.338562 451.939957 l
+264.338562 463.153763 l
+175.047180 463.153763 l
+175.047180 451.939957 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+175.047180 469.106522 m
+264.338562 469.106522 l
+264.338562 483.164917 l
+175.047180 483.164917 l
+175.047180 469.106522 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+520.260498 356.491302 m
+633.362915 356.491302 l
+633.362915 471.745331 l
+520.260498 471.745331 l
+520.260498 356.491302 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+526.213257 362.444061 m
+627.410156 362.444061 l
+627.410156 465.792572 l
+526.213257 465.792572 l
+526.213257 362.444061 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.166016 368.396820 m
+621.457397 368.396820 l
+621.457397 380.313644 l
+532.166016 380.313644 l
+532.166016 368.396820 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.166016 386.266403 m
+621.457397 386.266403 l
+621.457397 400.154358 l
+532.166016 400.154358 l
+532.166016 386.266403 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.166016 406.107117 m
+621.457397 406.107117 l
+621.457397 420.908020 l
+532.166016 420.908020 l
+532.166016 406.107117 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.166016 426.860779 m
+621.457397 426.860779 l
+621.457397 439.483536 l
+532.166016 439.483536 l
+532.166016 426.860779 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+532.166016 445.436295 m
+621.457397 445.436295 l
+621.457397 459.839813 l
+532.166016 459.839813 l
+532.166016 445.436295 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+152.159363 772.347229 m
+265.261780 772.347229 l
+265.261780 867.562347 l
+152.159363 867.562347 l
+152.159363 772.347229 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+158.112122 778.299988 m
+259.309021 778.299988 l
+259.309021 861.609589 l
+158.112122 861.609589 l
+158.112122 778.299988 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+164.064880 784.252747 m
+253.356262 784.252747 l
+253.356262 795.785995 l
+164.064880 795.785995 l
+164.064880 784.252747 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+164.064880 801.738754 m
+253.356262 801.738754 l
+253.356262 815.997406 l
+164.064880 815.997406 l
+164.064880 801.738754 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+164.064880 821.950165 m
+253.356262 821.950165 l
+253.356262 836.538818 l
+164.064880 836.538818 l
+164.064880 821.950165 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+164.064880 842.491577 m
+253.356262 842.491577 l
+253.356262 855.656830 l
+164.064880 855.656830 l
+164.064880 842.491577 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+198.911331 303.791885 m
+312.013748 303.791885 l
+312.013748 413.207703 l
+198.911331 413.207703 l
+198.911331 303.791885 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+204.864090 309.744644 m
+306.060989 309.744644 l
+306.060989 407.254944 l
+204.864090 407.254944 l
+204.864090 309.744644 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+210.816849 315.697403 m
+300.108231 315.697403 l
+300.108231 329.115494 l
+210.816849 329.115494 l
+210.816849 315.697403 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+210.816849 335.068253 m
+300.108231 335.068253 l
+300.108231 347.930511 l
+210.816849 347.930511 l
+210.816849 335.068253 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+210.816849 353.883270 m
+300.108231 353.883270 l
+300.108231 365.047821 l
+210.816849 365.047821 l
+210.816849 353.883270 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+210.816849 371.000580 m
+300.108231 371.000580 l
+300.108231 384.747116 l
+210.816849 384.747116 l
+210.816849 371.000580 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+210.816849 390.699875 m
+300.108231 390.699875 l
+300.108231 401.302185 l
+210.816849 401.302185 l
+210.816849 390.699875 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+170.824417 -49.520569 m
+283.926834 -49.520569 l
+283.926834 60.214417 l
+170.824417 60.214417 l
+170.824417 -49.520569 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+176.777176 -43.567810 m
+277.974075 -43.567810 l
+277.974075 54.261658 l
+176.777176 54.261658 l
+176.777176 -43.567810 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+182.729935 -37.615051 m
+272.021317 -37.615051 l
+272.021317 -25.120361 l
+182.729935 -25.120361 l
+182.729935 -37.615051 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+182.729935 -19.167603 m
+272.021317 -19.167603 l
+272.021317 -5.326965 l
+182.729935 -5.326965 l
+182.729935 -19.167603 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+182.729935 0.625793 m
+272.021317 0.625793 l
+272.021317 12.915222 l
+182.729935 12.915222 l
+182.729935 0.625793 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+182.729935 18.867981 m
+272.021317 18.867981 l
+272.021317 30.349167 l
+182.729935 30.349167 l
+182.729935 18.867981 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+182.729935 36.301926 m
+272.021317 36.301926 l
+272.021317 48.308899 l
+182.729935 48.308899 l
+182.729935 36.301926 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-54.461411 190.286850 m
+58.641006 190.286850 l
+58.641006 283.955383 l
+-54.461411 283.955383 l
+-54.461411 190.286850 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-48.508652 196.239609 m
+52.688248 196.239609 l
+52.688248 278.002625 l
+-48.508652 278.002625 l
+-48.508652 196.239609 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-42.555893 202.192368 m
+46.735489 202.192368 l
+46.735489 212.789185 l
+-42.555893 212.789185 l
+-42.555893 202.192368 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-42.555893 218.741943 m
+46.735489 218.741943 l
+46.735489 231.557404 l
+-42.555893 231.557404 l
+-42.555893 218.741943 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-42.555893 237.510162 m
+46.735489 237.510162 l
+46.735489 252.098297 l
+-42.555893 252.098297 l
+-42.555893 237.510162 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-42.555893 258.051056 m
+46.735489 258.051056 l
+46.735489 272.049866 l
+-42.555893 272.049866 l
+-42.555893 258.051056 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+319.707535 -44.090347 m
+432.809952 -44.090347 l
+432.809952 48.078369 l
+319.707535 48.078369 l
+319.707535 -44.090347 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+325.660294 -38.137589 m
+426.857193 -38.137589 l
+426.857193 42.125610 l
+325.660294 42.125610 l
+325.660294 -38.137589 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+331.613052 -32.184830 m
+420.904434 -32.184830 l
+420.904434 -21.446259 l
+331.613052 -21.446259 l
+331.613052 -32.184830 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+331.613052 -15.493500 m
+420.904434 -15.493500 l
+420.904434 -2.368210 l
+331.613052 -2.368210 l
+331.613052 -15.493500 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+331.613052 3.584549 m
+420.904434 3.584549 l
+420.904434 15.852722 l
+331.613052 15.852722 l
+331.613052 3.584549 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+331.613052 21.805481 m
+420.904434 21.805481 l
+420.904434 36.172852 l
+331.613052 36.172852 l
+331.613052 21.805481 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+496.458405 155.936981 m
+609.560822 155.936981 l
+609.560822 244.788330 l
+496.458405 244.788330 l
+496.458405 155.936981 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+502.411163 161.889740 m
+603.608063 161.889740 l
+603.608063 238.835571 l
+502.411163 238.835571 l
+502.411163 161.889740 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+508.363922 167.842499 m
+597.655304 167.842499 l
+597.655304 181.859726 l
+508.363922 181.859726 l
+508.363922 167.842499 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+508.363922 187.812485 m
+597.655304 187.812485 l
+597.655304 199.715103 l
+508.363922 199.715103 l
+508.363922 187.812485 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+508.363922 205.667862 m
+597.655304 205.667862 l
+597.655304 216.392166 l
+508.363922 216.392166 l
+508.363922 205.667862 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+508.363922 222.344925 m
+597.655304 222.344925 l
+597.655304 232.882812 l
+508.363922 232.882812 l
+508.363922 222.344925 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+290.399399 773.080338 m
+403.501816 773.080338 l
+403.501816 885.454132 l
+290.399399 885.454132 l
+290.399399 773.080338 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+296.352158 779.033096 m
+397.549057 779.033096 l
+397.549057 879.501373 l
+296.352158 879.501373 l
+296.352158 779.033096 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+302.304916 784.985855 m
+391.596298 784.985855 l
+391.596298 797.856705 l
+302.304916 797.856705 l
+302.304916 784.985855 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+302.304916 803.809464 m
+391.596298 803.809464 l
+391.596298 815.922287 l
+302.304916 815.922287 l
+302.304916 803.809464 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+302.304916 821.875046 m
+391.596298 821.875046 l
+391.596298 836.074783 l
+302.304916 836.074783 l
+302.304916 821.875046 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+302.304916 842.027542 m
+391.596298 842.027542 l
+391.596298 853.526199 l
+302.304916 853.526199 l
+302.304916 842.027542 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+302.304916 859.478958 m
+391.596298 859.478958 l
+391.596298 873.548615 l
+302.304916 873.548615 l
+302.304916 859.478958 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+137.312012 538.643509 m
+250.414429 538.643509 l
+250.414429 651.166107 l
+137.312012 651.166107 l
+137.312012 538.643509 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+143.264771 544.596268 m
+244.461670 544.596268 l
+244.461670 645.213348 l
+143.264771 645.213348 l
+143.264771 544.596268 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+149.217529 550.549026 m
+238.508911 550.549026 l
+238.508911 564.641907 l
+149.217529 564.641907 l
+149.217529 550.549026 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+149.217529 570.594666 m
+238.508911 570.594666 l
+238.508911 581.887527 l
+149.217529 581.887527 l
+149.217529 570.594666 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+149.217529 587.840286 m
+238.508911 587.840286 l
+238.508911 599.131073 l
+149.217529 599.131073 l
+149.217529 587.840286 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+149.217529 605.083832 m
+238.508911 605.083832 l
+238.508911 618.824860 l
+149.217529 618.824860 l
+149.217529 605.083832 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+149.217529 624.777618 m
+238.508911 624.777618 l
+238.508911 639.260590 l
+149.217529 639.260590 l
+149.217529 624.777618 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+100.662689 553.660522 m
+213.765106 553.660522 l
+213.765106 649.546402 l
+100.662689 649.546402 l
+100.662689 553.660522 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+106.615448 559.613281 m
+207.812347 559.613281 l
+207.812347 643.593643 l
+106.615448 643.593643 l
+106.615448 559.613281 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+112.568207 565.566040 m
+201.859589 565.566040 l
+201.859589 579.194595 l
+112.568207 579.194595 l
+112.568207 565.566040 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+112.568207 585.147354 m
+201.859589 585.147354 l
+201.859589 599.031647 l
+112.568207 599.031647 l
+112.568207 585.147354 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+112.568207 604.984406 m
+201.859589 604.984406 l
+201.859589 618.927994 l
+112.568207 618.927994 l
+112.568207 604.984406 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+112.568207 624.880753 m
+201.859589 624.880753 l
+201.859589 637.640884 l
+112.568207 637.640884 l
+112.568207 624.880753 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+537.107895 532.524475 m
+650.210312 532.524475 l
+650.210312 639.240814 l
+537.107895 639.240814 l
+537.107895 532.524475 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+543.060654 538.477234 m
+644.257553 538.477234 l
+644.257553 633.288055 l
+543.060654 633.288055 l
+543.060654 538.477234 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.013412 544.429993 m
+638.304794 544.429993 l
+638.304794 557.125931 l
+549.013412 557.125931 l
+549.013412 544.429993 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.013412 563.078690 m
+638.304794 563.078690 l
+638.304794 573.930130 l
+549.013412 573.930130 l
+549.013412 563.078690 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.013412 579.882889 m
+638.304794 579.882889 l
+638.304794 590.328934 l
+549.013412 590.328934 l
+549.013412 579.882889 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.013412 596.281693 m
+638.304794 596.281693 l
+638.304794 609.304947 l
+549.013412 609.304947 l
+549.013412 596.281693 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+549.013412 615.257706 m
+638.304794 615.257706 l
+638.304794 627.335297 l
+549.013412 627.335297 l
+549.013412 615.257706 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+458.456650 479.217316 m
+571.559067 479.217316 l
+571.559067 592.666397 l
+458.456650 592.666397 l
+458.456650 479.217316 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+464.409409 485.170074 m
+565.606308 485.170074 l
+565.606308 586.713638 l
+464.409409 586.713638 l
+464.409409 485.170074 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+470.362167 491.122833 m
+559.653549 491.122833 l
+559.653549 502.626892 l
+470.362167 502.626892 l
+470.362167 491.122833 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+470.362167 508.579651 m
+559.653549 508.579651 l
+559.653549 521.542053 l
+470.362167 521.542053 l
+470.362167 508.579651 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+470.362167 527.494812 m
+559.653549 527.494812 l
+559.653549 540.145111 l
+470.362167 540.145111 l
+470.362167 527.494812 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+470.362167 546.097870 m
+559.653549 546.097870 l
+559.653549 560.495728 l
+470.362167 560.495728 l
+470.362167 546.097870 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+470.362167 566.448486 m
+559.653549 566.448486 l
+559.653549 580.760880 l
+470.362167 580.760880 l
+470.362167 566.448486 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+183.117722 231.659851 m
+296.220139 231.659851 l
+296.220139 339.995605 l
+183.117722 339.995605 l
+183.117722 231.659851 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+189.070480 237.612610 m
+290.267380 237.612610 l
+290.267380 334.042847 l
+189.070480 334.042847 l
+189.070480 237.612610 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.023239 243.565369 m
+284.314621 243.565369 l
+284.314621 257.347366 l
+195.023239 257.347366 l
+195.023239 243.565369 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.023239 263.300125 m
+284.314621 263.300125 l
+284.314621 273.741486 l
+195.023239 273.741486 l
+195.023239 263.300125 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.023239 279.694244 m
+284.314621 279.694244 l
+284.314621 291.677948 l
+195.023239 291.677948 l
+195.023239 279.694244 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.023239 297.630707 m
+284.314621 297.630707 l
+284.314621 311.305893 l
+195.023239 311.305893 l
+195.023239 297.630707 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+195.023239 317.258652 m
+284.314621 317.258652 l
+284.314621 328.090088 l
+195.023239 328.090088 l
+195.023239 317.258652 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+429.907318 784.731705 m
+543.009735 784.731705 l
+543.009735 877.211319 l
+429.907318 877.211319 l
+429.907318 784.731705 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+435.860077 790.684464 m
+537.056976 790.684464 l
+537.056976 871.258560 l
+435.860077 871.258560 l
+435.860077 790.684464 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+441.812836 796.637222 m
+531.104218 796.637222 l
+531.104218 810.204819 l
+441.812836 810.204819 l
+441.812836 796.637222 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+441.812836 816.157578 m
+531.104218 816.157578 l
+531.104218 827.114029 l
+441.812836 827.114029 l
+441.812836 816.157578 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+441.812836 833.066788 m
+531.104218 833.066788 l
+531.104218 846.439529 l
+441.812836 846.439529 l
+441.812836 833.066788 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+441.812836 852.392288 m
+531.104218 852.392288 l
+531.104218 865.305801 l
+441.812836 865.305801 l
+441.812836 852.392288 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+-43.940155 709.511337 m
+69.162262 709.511337 l
+69.162262 806.608521 l
+-43.940155 806.608521 l
+-43.940155 709.511337 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+-37.987396 715.464096 m
+63.209503 715.464096 l
+63.209503 800.655762 l
+-37.987396 800.655762 l
+-37.987396 715.464096 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.034637 721.416855 m
+57.256744 721.416855 l
+57.256744 736.248596 l
+-32.034637 736.248596 l
+-32.034637 721.416855 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.034637 742.201355 m
+57.256744 742.201355 l
+57.256744 753.924988 l
+-32.034637 753.924988 l
+-32.034637 742.201355 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.034637 759.877747 m
+57.256744 759.877747 l
+57.256744 774.502853 l
+-32.034637 774.502853 l
+-32.034637 759.877747 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+-32.034637 780.455612 m
+57.256744 780.455612 l
+57.256744 794.703003 l
+-32.034637 794.703003 l
+-32.034637 780.455612 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+63.111969 756.866150 m
+176.214386 756.866150 l
+176.214386 871.815674 l
+63.111969 871.815674 l
+63.111969 756.866150 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+69.064728 762.818909 m
+170.261627 762.818909 l
+170.261627 865.862915 l
+69.064728 865.862915 l
+69.064728 762.818909 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+75.017487 768.771667 m
+164.308868 768.771667 l
+164.308868 781.777405 l
+75.017487 781.777405 l
+75.017487 768.771667 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+75.017487 787.730164 m
+164.308868 787.730164 l
+164.308868 800.793198 l
+75.017487 800.793198 l
+75.017487 787.730164 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+75.017487 806.745956 m
+164.308868 806.745956 l
+164.308868 821.260574 l
+75.017487 821.260574 l
+75.017487 806.745956 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+75.017487 827.213333 m
+164.308868 827.213333 l
+164.308868 841.723892 l
+75.017487 841.723892 l
+75.017487 827.213333 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+75.017487 847.676651 m
+164.308868 847.676651 l
+164.308868 859.910156 l
+75.017487 859.910156 l
+75.017487 847.676651 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+532.731857 65.591293 m
+645.834274 65.591293 l
+645.834274 155.157837 l
+532.731857 155.157837 l
+532.731857 65.591293 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+538.684616 71.544052 m
+639.881516 71.544052 l
+639.881516 149.205078 l
+538.684616 149.205078 l
+538.684616 71.544052 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+544.637375 77.496811 m
+633.928757 77.496811 l
+633.928757 88.873596 l
+544.637375 88.873596 l
+544.637375 77.496811 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+544.637375 94.826355 m
+633.928757 94.826355 l
+633.928757 108.138138 l
+544.637375 108.138138 l
+544.637375 94.826355 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+544.637375 114.090897 m
+633.928757 114.090897 l
+633.928757 125.199081 l
+544.637375 125.199081 l
+544.637375 114.090897 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+544.637375 131.151840 m
+633.928757 131.151840 l
+633.928757 143.252319 l
+544.637375 143.252319 l
+544.637375 131.151840 l
+h f
+0 g 0 G
+0.800 g 0.800 G
+445.092438 560.048203 m
+558.194855 560.048203 l
+558.194855 666.342270 l
+445.092438 666.342270 l
+445.092438 560.048203 l
+h f
+0 g 0 G
+0.750 0.750 1.000 rg 0.750 0.750 1.000 RG
+451.045197 566.000961 m
+552.242096 566.000961 l
+552.242096 660.389511 l
+451.045197 660.389511 l
+451.045197 566.000961 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.997955 571.953720 m
+546.289337 571.953720 l
+546.289337 582.695602 l
+456.997955 582.695602 l
+456.997955 571.953720 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.997955 588.648361 m
+546.289337 588.648361 l
+546.289337 603.392654 l
+456.997955 603.392654 l
+456.997955 588.648361 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.997955 609.345413 m
+546.289337 609.345413 l
+546.289337 620.161926 l
+456.997955 620.161926 l
+456.997955 609.345413 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.997955 626.114685 m
+546.289337 626.114685 l
+546.289337 636.731934 l
+456.997955 636.731934 l
+456.997955 626.114685 l
+h f
+0 g 0 G
+0.750 1.000 0.750 rg 0.750 1.000 0.750 RG
+456.997955 642.684692 m
+546.289337 642.684692 l
+546.289337 654.436752 l
+456.997955 654.436752 l
+456.997955 642.684692 l
+h f
+0 g 0 G
+1 0 0 1 155.0578 671.8011 cm
+q
+411.86791992188 0 0 141.73225402832 0 0 cm
+q
+0.023767001460016 0 0 0.069065913240499 0 0 cm
+0.25 0.25 0.25 rg 0.25 0.25 0.25 RG
+1 0 0 1 -155.0578 -671.8011 cm
+BT
+/F5 9.96264 Tf 1 0 0 1 155.0578 675.8552 Tm [<0026005200510037>]TJ
+1 0 0 1 180.0395 673.2697 Tm [<0028>]TJ
+1 0 0 1 186.0369 675.8552 Tm [<003B0057>]TJ
+ET
+1 0 0 1 155.0578 671.8011 cm
+Q
+0 g 0 G
+Q
+1 0 0 1 -155.0578 -671.8011 cm
+1 J
+0.000000 w
+1 0 0 1 223.6237 572.5898 cm
+q
+343.30140686035 0 0 42.51969909668 0 0 cm
+q
+0.0085541761481151 0 0 0.069065913240499 0 0 cm
+0.25 0.25 0.25 rg 0.25 0.25 0.25 RG
+1 0 0 1 -223.6237 -572.5898 cm
+BT
+/F5 9.96264 Tf 1 0 0 1 223.6237 576.6438 Tm [<0026005200510037>]TJ
+1 0 0 1 248.6053 574.0583 Tm [<0028>]TJ
+1 0 0 1 254.6027 576.6438 Tm [<003B0057>]TJ
+/F6 9.96264 Tf 1 0 0 1 269.1672 576.6438 Tm [<0038005600480055>-348<0030005200470058004F0048>]TJ
+ET
+1 0 0 1 223.6237 572.5898 cm
+Q
+0 g 0 G
+Q
+1 0 0 1 -223.6237 -572.5898 cm
+10.000000 M
+1 j
+1 J
+0.000000 w
+1 0 0 1 197.9285 515.8975 cm
+q
+368.99688720703 0 0 42.51969909668 0 0 cm
+q
+0.007958497870693 0 0 0.069065913240499 0 0 cm
+0.25 0.25 0.25 rg 0.25 0.25 0.25 RG
+1 0 0 1 -197.9285 -515.8975 cm
+BT
+/F6 9.96264 Tf 1 0 0 1 197.9285 519.9516 Tm [<0029>54<00520055>-347<0029>17<0055004800510046004B>-347<004700520046005800500048005100570056>]TJ
+ET
+1 0 0 1 197.9285 515.8975 cm
+Q
+0 g 0 G
+Q
+1 0 0 1 -197.9285 -515.8975 cm
+10.000000 M
+1 j
+1 J
+0.000000 w
+1 0 0 1 330.4259 99.2114 cm
+q
+236.49798583984 0 0 42.51969909668 0 0 cm
+q
+0.012417275747508 0 0 0.069065913240499 0 0 cm
+0.25 0.25 0.25 rg 0.25 0.25 0.25 RG
+1 0 0 1 -330.4259 -99.2114 cm
+BT
+/F6 9.96264 Tf 1 0 0 1 330.4259 103.2654 Tm [<0033>26<0048005700480055>-347<003000BE00510056005700480055>]TJ
+ET
+1 0 0 1 330.4259 99.2114 cm
+Q
+0 g 0 G
+Q
+1 0 0 1 -330.4259 -99.2114 cm
+10.000000 M
+1 j
+1 J
+0.000000 w
+1 0 0 1 267.2699 42.5191 cm
+q
+299.65461730957 0 0 42.51969909668 0 0 cm
+q
+0.0098001525553013 0 0 0.069065913240499 0 0 cm
+0.25 0.25 0.25 rg 0.25 0.25 0.25 RG
+1 0 0 1 -267.2699 -42.5191 cm
+BT
+/F6 9.96264 Tf 1 0 0 1 267.2699 46.5732 Tm [<00310052005900480050004500480055>-348<001C000F>-348<0015001300140014>]TJ
+ET
+1 0 0 1 267.2699 42.5191 cm
+Q
+0 g 0 G
+Q
+1 0 0 1 -267.2699 -42.5191 cm
+10.000000 M
+1 j
+1 J
+0.000000 w
+Q
+% mps graphic 1: end
+endstream
+endobj
+16 0 obj
+<<
+/Type /Page
+/Contents 17 0 R
+/Resources 15 0 R
+/MediaBox [0 0 595.2673 841.878]
+/TrimBox [ 0.0000 0.0000 595.2673 841.8780 ] /CropBox [ 0.0000 0.0000 595.2673 841.8780 ]
+/Parent 20 0 R
+>>
+endobj
+15 0 obj
+<<
+
+/Font << /F5 18 0 R /F6 19 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+23 0 obj
+<<
+/Length 582
+>>
+stream
+0 g 0 G
+0 g 0 G
+BT
+/F7 9.96264 Tf 1 0 0 1 99.2126 774.213 Tm [<002900520055>-317<002900550048>-1<00510046004B>-317<004700520046005800500048005100570056>]TJ
+1 0 0 1 22.008 60.9644 Tm [<0014>]TJ
+/F8 9.96264 Tf 1 0 0 1 37.0553 60.9644 Tm [<0057001000490055004800510046004B>]TJ
+/F7 9.96264 Tf 1 0 0 1 99.2126 60.9644 Tm [<0026005200510037>]TJ
+1 0 0 1 123.2311 58.2402 Tm [<0028>]TJ
+1 0 0 1 128.4514 60.9644 Tm [<003B0057>-317<0038005600480055>-318<0030005200470058004F0048>-29679<0026005200510037>]TJ
+1 0 0 1 524.1428 58.2402 Tm [<0028>]TJ
+1 0 0 1 529.3631 60.9644 Tm [<003B0057>]TJ
+ET
+endstream
+endobj
+22 0 obj
+<<
+/Type /Page
+/Contents 23 0 R
+/Resources 21 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/TrimBox [ 0.0000 0.0000 595.2756 841.8898 ] /CropBox [ 0.0000 0.0000 595.2756 841.8898 ]
+/Parent 20 0 R
+>>
+endobj
+21 0 obj
+<<
+
+/Font << /F7 24 0 R /F8 25 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+28 0 obj
+<<
+/Length 10211
+>>
+stream
+0 g 0 G
+0 g 0 G
+BT
+/F7 9.96264 Tf 1 0 0 1 428.3211 774.213 Tm [<002900520055>-317<002900550048>-1<00510046004B>-317<004700520046005800500048005100570056>]TJ
+/F8 9.96264 Tf 1 0 0 1 37.0553 60.9644 Tm [<0057001000490055004800510046004B>]TJ
+/F7 9.96264 Tf 1 0 0 1 99.2126 60.9644 Tm [<0026005200510037>]TJ
+1 0 0 1 123.2311 58.2402 Tm [<0028>]TJ
+1 0 0 1 128.4514 60.9644 Tm [<003B0057>-29678<0026005200510037>]TJ
+1 0 0 1 458.8749 58.2402 Tm [<0028>]TJ
+1 0 0 1 464.0952 60.9644 Tm [<003B0057>-317<0038005600480055>-318<0030005200470058004F0048>-1423<0015>]TJ
+/F5 9.96264 Tf 1 0 0 1 99.2126 739.339 Tm [<0037004B004C0056>-317<0050>-1<005200470058004F0048>-317<00570055004C00480056>-318<00570052>-318<00470052>-318<0056004C0050004C004F00440055>-318<0057004B004C0051004A0056>-318<00440056>-318<0057004B0048>-318<00490055004800510046004B00450011004F00470049>-318<004C0051>-318<002F>]TJ
+/F5 5.977584 Tf 1 0 0 1 401.1659 742.2441 Tm [<0024>]TJ
+/F5 9.96264 Tf 1 0 0 1 404.6193 739.339 Tm [<0037>]TJ
+1 0 0 1 409.5638 736.7534 Tm [<0028>]TJ
+1 0 0 1 415.5612 739.339 Tm [<003B001D>]TJ
+/F4 9.96264 Tf 1 0 0 1 99.2126 712.9049 Tm [<03A1>]TJ
+/F5 9.96264 Tf 1 0 0 1 114.1567 712.9049 Tm [<0044005800570052005000440057004C0046>-317<00560053004400460048>-318<004500480049005200550048>-318<007D>-318<004400510047>-318<00440049005700480055>-318<006D000F>-318<001D000F>-317<0022>-1<000F>-317<001E>-318<004400510047>-318<0004>]TJ
+/F4 9.96264 Tf 1 0 0 1 99.2126 686.4708 Tm [<03A1>]TJ
+/F5 9.96264 Tf 1 0 0 1 114.1567 686.4708 Tm [<0046004B00440051004A004C0051004A>-318<0056005C005000450052004F>-318<004900520055>-317<004C005700480050004C005D0048>-318<004800510059004C0055005200510050004800510057>]TJ
+1 0 0 1 99.2126 660.0367 Tm [<002C0049>-271<002C>-272<00550048005000480050004500480055>-272<0055004C004A004B0057000F>-281<0057004B0048>-271<002F>]TJ
+/F5 5.977584 Tf 1 0 0 1 225.3485 662.9418 Tm [<0024>]TJ
+/F5 9.96264 Tf 1 0 0 1 228.8019 660.0367 Tm [<0037>]TJ
+1 0 0 1 233.7464 657.4512 Tm [<0028>]TJ
+1 0 0 1 239.7438 660.0367 Tm [<003B>-271<0045004400450048004F>-272<005300440046004E0044004A0048>-272<0047005200480056>-271<0044>-272<005000580046004B>-272<004500480057005700480055>-271<004D00520045>-272<00440057>-271<004F00440051004A>-1<00580044004A0048>-271<0056005A004C00570046004B0010>]TJ
+1 0 0 1 99.2126 645.5578 Tm [<004C0051004A000F>-317<0045>-1<00580057>-317<002C>-318<00470052005107700057>-318<004E00510052005A>118<000F>-317<004B0052005A>-318<0057004B004C0056>-318<004C0056>-318<0053005200560056004C0045004F0048>-318<004C0051>-318<0026005200510037>]TJ
+1 0 0 1 349.4774 642.9722 Tm [<0028>]TJ
+1 0 0 1 355.4748 645.5578 Tm [<003B0057001100110011>]TJ
+1 0 0 1 99.2126 619.1237 Tm [<003000440051005C>-318<0057004B00440051004E0056>-317<00570052>-318<002B004400510056>-318<002B0044004A00480051>-318<004400510047>-318<003A>67<0052004F0049004A00440051004A>-317<00360046004B00580056005700480055>-318<004900520055>-318<0057004B0048004C0055>-318<004B0048004F00530004>]TJ
+/F8 7.970112 Tf 1 0 0 1 80.241 592.6896 Tm [<0014>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 592.6896 Tm [<003F005A0055004C00570048005600570044005700580056005E004F005200440047004C0051004A>1<0060005E0037005C005300480056004800570057004C0051004A>-601<00290055004800510046004B>-602<0047005200460058005000480051005700560060>]TJ
+/F8 7.970112 Tf 1 0 0 1 80.241 566.2555 Tm [<0015>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 566.2555 Tm [<003F00560057004400550057005600480057005800530056>-601<00490055004800510046004B>]TJ
+/F8 7.970112 Tf 1 0 0 1 80.241 551.7766 Tm [<0016>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 551.7766 Tm [<0008>-602<0037005200470052001D>-601<0037004B004C0056>-602<0056004B005200580047>-602<00450048>-602<0044004F00560052>-602<004400460057004C00590048>-602<004C0051>-602<004900520052005700510052005700480056000F>-601<004B004800440047004800550056>-602<004400510047>-602<0049005200520057004800550056000F>]TJ
+/F8 7.970112 Tf 1 0 0 1 80.241 537.2976 Tm [<0017>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 537.2976 Tm [<0008>-602<004400510047>-601<005100520057>-602<004400460057004C00590048>-602<004C0051>-602<005900480055004500440057004C0050>-602<00570048005B0057001D>]TJ
+/F8 7.970112 Tf 1 0 0 1 80.241 522.8187 Tm [<0018>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 522.8187 Tm [<003F0056004800570046004B00440055004400460057004800550056005300440046004C0051004A>1<003E00490055004800510046004B00530058005100460057005800440057004C005200510040>]TJ
+/F8 7.970112 Tf 1 0 0 1 80.241 508.3398 Tm [<0019>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 508.3398 Tm [<0008>-602<0024>-602<00540058004800560057004C00520051>-601<00520049>-602<00560057005C004F0048001D>]TJ
+/F8 7.970112 Tf 1 0 0 1 80.241 493.8609 Tm [<001A>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 493.8609 Tm [<003F00560048005700580053004C005700480050004C005D0048003E0056005C005000450052004F>1<002000150040>]TJ
+/F8 7.970112 Tf 1 0 0 1 80.241 479.382 Tm [<001B>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 479.382 Tm [<003F0056005700520053005600480057005800530056>]TJ
+/F8 7.970112 Tf 1 0 0 1 80.241 464.903 Tm [<001C>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 464.903 Tm [<003F00560057004400550057005600480057005800530056>-601<005100520057001000490055004800510046004B>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 450.4241 Tm [<00140013>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 450.4241 Tm [<003F0056004800570046004B00440055004400460057004800550056005300440046004C0051004A>1<003E005500480056004800570040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 435.9452 Tm [<00140014>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 435.9452 Tm [<003F00560048005700580053004C005700480050004C005D0048003E0056005C005000450052004F>1<0020003F0046005800550055004800510057004C005700480050004F004800590048004F0040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 421.4663 Tm [<00140015>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 421.4663 Tm [<003F0056005700520053005600480057005800530056>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 406.9873 Tm [<00140016>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 406.9873 Tm [<003F00560048005700580053004F00440051004A00580044004A0048>-601<003E00470048004900440058004F00570040>-602<003E0056004800570058005300560020005100520057001000490055004800510046004B0040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 392.5084 Tm [<00140017>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 392.5084 Tm [<003F00560048005700580053004F00440051004A00580044004A0048>-601<003E004900550040>-3612<003E005600480057005800530056002000490055004800510046004B0040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 378.0295 Tm [<00140018>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 378.0295 Tm [<003F00500044004C0051004F00440051004A00580044004A0048>-1203<003E004900550040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 351.5954 Tm [<00140019>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 351.5954 Tm [<003F004C0049005B>-601<003F004C004800500048>-1204<003F00580051004700480049004C005100480047>-602<003F004700480049003F004C004800500048>-1203<005E003F004B004C004A004B005200550047004C00510044004F005600570055005E004800600060>-1806<003F0049004C>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 337.1165 Tm [<0014001A>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 337.1165 Tm [<003F004C0049005B>-601<003F004C0048005000480056>-602<003F00580051004700480049004C005100480047>-602<003F004700480049003F004C0048005000480056>-601<005E003F004B004C004A004B005200550047004C00510044004F005600570055005E0048005600600060>-1203<003F0049004C>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 322.6376 Tm [<0014001B>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 322.6376 Tm [<003F004C0049005B>-601<003F004C00480055>-1806<003F00580051004700480049004C005100480047>-602<003F004700480049003F004C00480055>-1806<005E003F004B004C004A004B005200550047004C00510044004F005600570055005E0048005500600060>-1203<003F0049004C>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 308.1586 Tm [<0014001C>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 308.1586 Tm [<003F004C0049005B>-601<003F004C004800550048>-1204<003F00580051004700480049004C005100480047>-602<003F004700480049003F004C004800550048>-1203<005E003F004B004C004A004B005200550047004C00510044004F005600570055005E0055004800600060>-1204<003F0049004C>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 293.6797 Tm [<00150013>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 293.6797 Tm [<003F004C0049005B>-601<003F004C004800550056>-1204<003F00580051004700480049004C005100480047>-602<003F004700480049003F004C004800550056>-1203<005E003F004B004C004A004B005200550047004C00510044004F005600570055005E00480055005600600060>-601<003F0049004C>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 279.2008 Tm [<00150014>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 279.2008 Tm [<003F004C0049005B>-601<003F004C0048005500480056>-602<003F00580051004700480049004C005100480047>-602<003F004700480049003F004C0048005500480056>-601<005E003F004B004C004A004B005200550047004C00510044004F005600570055005E00550048005600600060>-601<003F0049004C>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 252.7667 Tm [<00150015>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 252.7667 Tm [<003F0046005200510057004C005100580048004C0049004C00510053005800570049004C004F0048>1<005E0057001000490055004800510046004B00110050004E004C00590060>]TJ
+/F5 9.96264 Tf 1 0 0 1 99.2126 226.3326 Tm [<003800560044004A0048>-317<0048005B004400500053004F0048001D>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 199.8985 Tm [<00150016>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 199.8985 Tm [<003F00560057004400550057004500580049004900480055003E004C00570048005000560040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 185.4196 Tm [<00150017>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 185.4196 Tm [<003F00560057004400550057004C005700480050004C005D0048>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 170.9407 Tm [<00150018>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 170.9407 Tm [<003F004C005700480050>-601<0057004800560057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 156.4618 Tm [<00150019>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 156.4618 Tm [<003F004C005700480050>-601<0057004800560057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 141.9828 Tm [<0015001A>]TJ
+/F8 9.96264 Tf 1 0 0 1 123.2047 141.9828 Tm [<003F00560057004400550057004C005700480050004C005D0048>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 127.5039 Tm [<0015001B>]TJ
+/F8 9.96264 Tf 1 0 0 1 123.2047 127.5039 Tm [<003F004C005700480050>-601<0057004800560057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 113.025 Tm [<0015001C>]TJ
+/F8 9.96264 Tf 1 0 0 1 123.2047 113.025 Tm [<003F004C005700480050>-601<0057004800560057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 98.5461 Tm [<00160013>]TJ
+/F8 9.96264 Tf 1 0 0 1 135.2007 98.5461 Tm [<003F00560057004400550057004C005700480050004C005D0048>]TJ
+ET
+endstream
+endobj
+27 0 obj
+<<
+/Type /Page
+/Contents 28 0 R
+/Resources 26 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/TrimBox [ 0.0000 0.0000 595.2756 841.8898 ] /CropBox [ 0.0000 0.0000 595.2756 841.8898 ]
+/Parent 20 0 R
+>>
+endobj
+26 0 obj
+<<
+
+/Font << /F7 24 0 R /F8 25 0 R /F5 18 0 R /F4 29 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+32 0 obj
+<<
+/Length 4638
+>>
+stream
+0 g 0 G
+0 g 0 G
+BT
+/F7 9.96264 Tf 1 0 0 1 99.2126 774.213 Tm [<002900520055>-317<002900550048>-1<00510046004B>-317<004700520046005800500048005100570056>]TJ
+1 0 0 1 22.008 60.9644 Tm [<0016>]TJ
+/F8 9.96264 Tf 1 0 0 1 37.0553 60.9644 Tm [<0057001000490055004800510046004B>]TJ
+/F7 9.96264 Tf 1 0 0 1 99.2126 60.9644 Tm [<0026005200510037>]TJ
+1 0 0 1 123.2311 58.2402 Tm [<0028>]TJ
+1 0 0 1 128.4514 60.9644 Tm [<003B0057>-317<0038005600480055>-318<0030005200470058004F0048>-29679<0026005200510037>]TJ
+1 0 0 1 524.1428 58.2402 Tm [<0028>]TJ
+1 0 0 1 529.3631 60.9644 Tm [<003B0057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 739.3389 Tm [<00160014>]TJ
+/F8 9.96264 Tf 1 0 0 1 135.2007 739.3389 Tm [<003F004C005700480050>-601<0057004800560057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 724.86 Tm [<00160015>]TJ
+/F8 9.96264 Tf 1 0 0 1 135.2007 724.86 Tm [<003F004C005700480050>-601<0057004800560057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 710.3811 Tm [<00160016>]TJ
+/F8 9.96264 Tf 1 0 0 1 135.2007 710.3811 Tm [<003F0056005700520053004C005700480050004C005D0048>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 695.9022 Tm [<00160017>]TJ
+/F8 9.96264 Tf 1 0 0 1 123.2047 695.9022 Tm [<003F0056005700520053004C005700480050004C005D0048>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 681.4233 Tm [<00160018>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 681.4233 Tm [<003F0056005700520053004C005700480050004C005D0048>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 666.9443 Tm [<00160019>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 666.9443 Tm [<003F0056005700520053004500580049004900480055>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 640.5102 Tm [<0016001A>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 640.5102 Tm [<003F0058005600480050005200470058004F0048003E00490055004800510046004B0040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 614.0762 Tm [<0016001B>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 614.0762 Tm [<003F0056005700440055005700570048005B0057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 599.5972 Tm [<0016001C>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 599.5972 Tm [<003F00560057004400550057004500580049004900480055>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 585.1183 Tm [<00170013>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 585.1183 Tm [<00390052004C004F00A2001D>-601<00390052004C004F00A20022>-602<00390052004C004F00A20004>-602<00390052004C004F00A2001E>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 570.6394 Tm [<00170014>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 570.6394 Tm [<003F00560057004400550057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 556.1605 Tm [<00170015>]TJ
+/F8 9.96264 Tf 1 0 0 1 123.2047 556.1605 Tm [<003F004F00440051004A00580044004A0048003E004800510040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 541.6815 Tm [<00170016>]TJ
+/F8 9.96264 Tf 1 0 0 1 123.2047 541.6815 Tm [<0056005200500048>-601<00280051004A004F004C0056004B>-602<00570048005B0057001D>-602<006D00280051004A004F004C0056004B007D>-602<00520055>-601<003F005400580052005700440057004C00520051005E00290055004800510046004B0060000F>-602<0052004E0022>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 527.2026 Tm [<00170017>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 527.2026 Tm [<003F0056005700520053>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 512.7237 Tm [<00170018>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 512.7237 Tm [<006D00590052004C004F00A2007D>-601<003F00540058005200570048005E00590052004C004F00A20060>-602<003F005400580052005700440057004C00520051005E00590052004C004F00A20060>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 498.2448 Tm [<00170019>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 498.2448 Tm [<003F004A00480057004500580049004900480055003E004C00570048005000560040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 483.7658 Tm [<0017001A>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 483.7658 Tm [<003F00560057004400550057>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 469.2869 Tm [<0017001B>]TJ
+/F8 9.96264 Tf 1 0 0 1 123.2047 469.2869 Tm [<003F004F00440051004A00580044004A0048003E004800510040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 454.808 Tm [<0017001C>]TJ
+/F8 9.96264 Tf 1 0 0 1 123.2047 454.808 Tm [<003F004A00480057004500580049004900480055003E004C00570048005000560040>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 440.3291 Tm [<00180013>]TJ
+/F8 9.96264 Tf 1 0 0 1 111.2086 440.3291 Tm [<003F0056005700520053>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 425.8502 Tm [<00180014>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 425.8502 Tm [<003F0056005700520053004500580049004900480055>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 411.3712 Tm [<00180015>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 411.3712 Tm [<003F0057005C00530048004500580049004900480055>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 396.8923 Tm [<00180016>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 396.8923 Tm [<003F004A00480057004500580049004900480055>]TJ
+/F8 7.970112 Tf 1 0 0 1 75.4426 382.4134 Tm [<00180017>]TJ
+/F8 9.96264 Tf 1 0 0 1 99.2126 382.4134 Tm [<003F005600570052005300570048005B0057>]TJ
+ET
+endstream
+endobj
+31 0 obj
+<<
+/Type /Page
+/Contents 32 0 R
+/Resources 30 0 R
+/MediaBox [0 0 595.2756 841.8898]
+/TrimBox [ 0.0000 0.0000 595.2756 841.8898 ] /CropBox [ 0.0000 0.0000 595.2756 841.8898 ]
+/Parent 20 0 R
+>>
+endobj
+30 0 obj
+<<
+
+/Font << /F7 24 0 R /F8 25 0 R >>
+/ProcSet [ /PDF /Text ]
+>>
+endobj
+33 0 obj
+<<
+/Type /Metadata /Subtype /XML
+/Length 2234
+>>
+stream
+<?xpacket begin="" id="vkuuxfithomqjnyxqsdpagdu"?>
+
+<x:xmpmeta xmlns:x="adobe:ns:meta/">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:creator>
+ <rdf:Seq>
+ <rdf:li/>
+ </rdf:Seq>
+ </dc:creator>
+ <dc:description/>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">t-french</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
+ <pdfx:ConTeXt.Jobname>t-french</pdfx:ConTeXt.Jobname>
+ <pdfx:ConTeXt.Time>2011.11.09 23:08</pdfx:ConTeXt.Time>
+ <pdfx:ConTeXt.Url>www.pragma-ade.com</pdfx:ConTeXt.Url>
+ <pdfx:ConTeXt.Version>2011.11.08 15:20</pdfx:ConTeXt.Version>
+ <pdfx:ID>t-french.2011-11-09T23:08:17+01:00</pdfx:ID>
+ <pdfx:PTEX.Fullbanner>This is LuaTeX, Version beta-0.70.1-2011051918 (rev 4277) (TeX Live 2011) kpathsea version 6.0.1</pdfx:PTEX.Fullbanner>
+ </rdf:Description>
+ <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
+ <xmp:CreateDate>2011-11-09T23:08:17+01:00</xmp:CreateDate>
+ <xmp:CreatorTool>ConTeXt - 2011.11.08 15:20</xmp:CreatorTool>
+ <xmp:ModifyDate>2011-11-09T23:08:17+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2011-11-09T23:08:17+01:00</xmp:MetadataDate>
+ </rdf:Description>
+ <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Keywords/>
+ <pdf:Producer>LuaTeX-0.70.1</pdf:Producer>
+ <pdf:Trapped>False</pdf:Trapped>
+ </rdf:Description>
+ <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
+ <xmpMM:DocumentID>uuid:281c66a4-4214-8ffb-37e0-8350d6d09cd6</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:4bc9a336-4863-9f90-4ae3-c57786d9c519</xmpMM:InstanceID>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+<?xpacket end="w"?>
+endstream
+endobj
+34 0 obj
+[ 929 [523]]
+endobj
+35 0 obj
+<<
+/Length 117
+>>
+stream
+
+endstream
+endobj
+36 0 obj
+<<
+/Subtype /CIDFontType0C
+/Length 757
+>>
+stream
+
+
+@@L
+
+;[<!53# 5
+
+
+endstream
+endobj
+37 0 obj
+<<
+/Type /FontDescriptor
+/FontName /DINNAX+XITSMath
+/Flags 4
+/FontBBox [-970 -906 3238 2566]
+/Ascent 1055
+/CapHeight 662
+/Descent -455
+/ItalicAngle 0
+/StemV 83
+/XHeight 450
+/FontFile3 36 0 R
+/CIDSet 35 0 R
+>>
+endobj
+38 0 obj
+<<
+/Length 647
+>>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-DINNAX-XITSMath-0)
+%%Title: (TeX-DINNAX-XITSMath-0 TeX DINNAX-XITSMath 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (DINNAX-XITSMath)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-DINNAX-XITSMath def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+0 beginbfrange
+endbfrange
+1 beginbfchar
+<03A1> <2022>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+29 0 obj
+<<
+/Type /Font
+/Subtype /Type0
+/Encoding /Identity-H
+/BaseFont /DINNAX+XITSMath
+/DescendantFonts [39 0 R]
+/ToUnicode 38 0 R
+>>
+endobj
+39 0 obj
+<<
+/Type /Font
+/Subtype /CIDFontType0
+/BaseFont /DINNAX+XITSMath
+/FontDescriptor 37 0 R
+/W 34 0 R
+/CIDSystemInfo <<
+/Registry (Adobe)
+/Ordering (Identity)
+/Supplement 0
+>>
+>>
+endobj
+40 0 obj
+[ 4 [602.1] 8 [602.1] 15 [602.1 602.1 602.1] 19 [602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1] 32 [602.1] 34 [602.1] 36 [602.1] 40 [602.1 602.1] 55 [602.1] 57 [602.1] 62 [602.1 602.1 602.1] 68 [602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1] 78 [602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1 602.1] 96 [602.1] 109 [602.1] 125 [602.1] 162 [602.1]]
+endobj
+41 0 obj
+<<
+/Length 21
+>>
+stream
+C
+endstream
+endobj
+42 0 obj
+<<
+/Length 26271
+>>
+stream
+
+
+ :UZmt{ .<[ex{-McyEMWY[]}
+  # & 7 : > I K _ q !!!!!!!"!$!&!+!.!_" """" "-"="i"""""""####!#(#+#5#>#D#I#M#P#T#\#`#e#i#p#z#}#####$#&/&&&&'' '''K'M'R'V'^'u''''''))*/+,d,p,w,z,..%..'t
+hdb\XVURHFB@86,*(&$ {yrmljfeda_;
+ |snO g`_Q<MD<dcd_d]cc>6.$ h g e l
+
+
+
+P
+
+
+
+
+
+
+
+
+
+
+
+7
+
+
+<2991
+
+ %
+4 
++ :99991
+@  $!
+/ ?
+? O
+O _
+_
+
+
+ F/
+/ _
+_
+ $]]4632#"&"32'2#"M68PO98K7PP78NL0670xx~
+
+
+"$91
+  #)
+
+"
+
+
+ os
+
+1
+  %%B
+
+%
+%
+
+
+B
+ 91
+
+ 1
+21
+
+ D >*22991
+ ]#"326757#5#"&546;5.#"5>32=zl;^[fX=& 3qpepӺ)Ld_y64''RR2
+    
+
+
+
+<<1
+ D
+
+ 
+0 ?????????
+ #]>32#4&#"#4&#"#3>32"iJo5FP;9JI9!c?LeHEws{p{``<?F
+
+SWW
+
+B
+ 
+ 
+ 
+  J
+
+
+
+ 
+
+  
+
+  &
+
+
+++>><
+H
+Y
+jih
+{yz|
+
+]]333# #àö`wBf
+
+
+
+ B
+
+
+
+
+:4
+ZV
+]] # # 3 ^oo)'`?Hk
+  
+
+]
+2991
+]!!!5!-}bܖ%
+$
+
+%<<299999991
+v 
+
+<<991
+
+,,6^^^^^^^^^^^^^^d X
+B
+n
+ , h D , rHPPPPPPPPPPPPPPPP
+
+
+DejaVu changes are in public domain
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names.
+
+The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.
+
+
+
+ϊ̖ˋ%}Ś   ]%]@%AA dd@2(-}-d
+  ..A]%]@%%%A  %d%BSx~}~}}|{zwvut uu
+ @  
+ @  
+ 
+ -:-:
+endstream
+endobj
+43 0 obj
+<<
+/Type /FontDescriptor
+/FontName /ORAKJC+DejaVuSansMono
+/Flags 4
+/FontBBox [0 -208 1000 760]
+/Ascent 760
+/CapHeight 729
+/Descent -208
+/ItalicAngle 0
+/StemV 86
+/XHeight 547
+/FontFile2 42 0 R
+/CIDSet 41 0 R
+>>
+endobj
+44 0 obj
+<<
+/Length 944
+>>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-ORAKJC-DejaVuSansMono-0)
+%%Title: (TeX-ORAKJC-DejaVuSansMono-0 TeX ORAKJC-DejaVuSansMono 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (ORAKJC-DejaVuSansMono)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-ORAKJC-DejaVuSansMono def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+6 beginbfrange
+<000F> <0011> <002C>
+<0013> <001E> <0030>
+<0028> <0029> <0045>
+<003E> <0040> <005B>
+<0044> <004C> <0061>
+<004E> <005E> <006B>
+endbfrange
+11 beginbfchar
+<0004> <0021>
+<0008> <0025>
+<0020> <003D>
+<0022> <003F>
+<0024> <0041>
+<0037> <0054>
+<0039> <0056>
+<0060> <007D>
+<006D> <00AB>
+<007D> <00BB>
+<00A2> <00E0>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+25 0 obj
+<<
+/Type /Font
+/Subtype /Type0
+/Encoding /Identity-H
+/BaseFont /ORAKJC+DejaVuSansMono
+/DescendantFonts [45 0 R]
+/ToUnicode 44 0 R
+>>
+endobj
+45 0 obj
+<<
+/Type /Font
+/Subtype /CIDFontType2
+/CIDToGIDMap /Identity
+/BaseFont /ORAKJC+DejaVuSansMono
+/FontDescriptor 43 0 R
+/W 40 0 R
+/CIDSystemInfo <<
+/Registry (Adobe)
+/Ordering (Identity)
+/Supplement 0
+>>
+>>
+endobj
+46 0 obj
+[ 20 [636.2 636.2 636.2] 38 [698.2] 40 [631.8 575.2] 48 [862.8] 55 [610.8 731.9] 59 [685.1] 70 [549.8 634.8 615.2] 75 [633.8] 79 [277.8 974.1 633.8 611.8] 85 [411.1 521 392.1 633.8]]
+endobj
+47 0 obj
+<<
+/Length 12
+>>
+stream
+
+endstream
+endobj
+48 0 obj
+<<
+/Length 27804
+>>
+stream
+
+$`)
+
+ :UWZpt?5JR>PjGv#.[jx{}EMWY[]} d q ! !I!K!N!!###!#(#,#u#z#}#######$#$i&&&&'' '''K'M'R'V'^''''''()) )A))))***/***++$+T,w,-e-o..%..MGMQWn+?KSWg6<>ADO#t
+)@))))*
+
+
+
+
+7
+=
+E
+F
+G
+H
+g
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+
+
+
+KTKT[KT[X
+    #)
+
+ 
+21
+ 
+
+ B
+
+>
+
+
+&& &
+
+45
+i|{y
+
+ #,'( 4<VY ej vy ]
+TX
+8
+ 1
+]
+
+
+
+Y3 3 # #su 
+
+o
+Cė
+
+
+ {  {]"32654&'2
+
+SB
+ 
+ 
+  . ,
+, , ; ;
+; ;
+( *//*(() )!$'
+ 
+    '/)?)_))))))]
+  
+  N
+
+
+
+
+Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+DejaVu changes are in public domain
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated
+documentation files (the "Font Software"), to reproduce and distribute the
+Font Software, including without limitation the rights to use, copy, merge,
+publish, distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright and trademark notices and this permission notice shall
+be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and
+additional glyphs or characters may be added to the Fonts, only if the fonts
+are renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream
+Vera" names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
+FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
+ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
+FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome
+Foundation, and Bitstream Inc., shall not be used in advertising or
+otherwise to promote the sale, use or other dealings in this Font Software
+without prior written authorization from the Gnome Foundation or Bitstream
+Inc., respectively. For further information, contact: fonts at gnome dot
+org.
+
+Arev Fonts Copyright
+------------------------------
+
+Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the fonts accompanying this license ("Fonts") and
+associated documentation files (the "Font Software"), to reproduce
+and distribute the modifications to the Bitstream Vera Font Software,
+including without limitation the rights to use, copy, merge, publish,
+distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright and trademark notices and this permission notice
+shall be included in all copies of one or more of the Font Software
+typefaces.
+
+The Font Software may be modified, altered, or added to, and in
+particular the designs of glyphs or characters in the Fonts may be
+modified and additional glyphs or characters may be added to the
+Fonts, only if the fonts are renamed to names not containing either
+the words "Tavmjong Bah" or the word "Arev".
+
+This License becomes null and void to the extent applicable to Fonts
+or Font Software that has been modified and is distributed under the
+"Tavmjong Bah Arev" names.
+
+The Font Software may be sold as part of a larger software package but
+no copy of one or more of the Font Software typefaces may be sold by
+itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
+TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the name of Tavmjong Bah shall not
+be used in advertising or otherwise to promote the sale, use or other
+dealings in this Font Software without prior written authorization
+from Tavmjong Bah. For further information, contact: tavmjong @ free
+. fr.
+  A(]%]@%..%A  %d%@~}}~}}|d{T{%zyxw v
+utsrqponl!kjBjSih}gBfedcba:`^ ][ZYX
+YX
+WW2VUTUBTSSRQJQP ONMNMLKJKJIJI IH GFEDC-CBAK@?>=>=<=<; <@; :987876765 65 43 21 21 0/ 0 / .- .- ,2+*%+d*)*%)('%(A'%&% &% $#"!! d d BBBdB-B}d     
+ -d@--
+endstream
+endobj
+49 0 obj
+<<
+/Type /FontDescriptor
+/FontName /YZYCWM+DejaVuSans
+/Flags 4
+/FontBBox [0 -208 1000 760]
+/Ascent 760
+/CapHeight 729
+/Descent -208
+/ItalicAngle 0
+/StemV 86
+/XHeight 547
+/FontFile2 48 0 R
+/CIDSet 47 0 R
+>>
+endobj
+50 0 obj
+<<
+/Length 825
+>>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-YZYCWM-DejaVuSans-0)
+%%Title: (TeX-YZYCWM-DejaVuSans-0 TeX YZYCWM-DejaVuSans 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (YZYCWM-DejaVuSans)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-YZYCWM-DejaVuSans def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+6 beginbfrange
+<0014> <0016> <0031>
+<0028> <0029> <0045>
+<0037> <0038> <0054>
+<0046> <0048> <0063>
+<004F> <0052> <006C>
+<0055> <0058> <0072>
+endbfrange
+4 beginbfchar
+<0026> <0043>
+<0030> <004D>
+<003B> <0058>
+<004B> <0068>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+24 0 obj
+<<
+/Type /Font
+/Subtype /Type0
+/Encoding /Identity-H
+/BaseFont /YZYCWM+DejaVuSans
+/DescendantFonts [51 0 R]
+/ToUnicode 50 0 R
+>>
+endobj
+51 0 obj
+<<
+/Type /Font
+/Subtype /CIDFontType2
+/CIDToGIDMap /Identity
+/BaseFont /YZYCWM+DejaVuSans
+/FontDescriptor 49 0 R
+/W 46 0 R
+/CIDSystemInfo <<
+/Registry (Adobe)
+/Ordering (Identity)
+/Supplement 0
+>>
+>>
+endobj
+52 0 obj
+[ 15 [348.1] 19 [695.8 695.8 695.8] 28 [695.8] 41 [710] 48 [1106.9 914.1] 51 [752] 56 [872.1] 69 [699.2 608.9 699.2 636.2] 75 [727.1] 79 [379.9 1058.1 727.1 667] 85 [526.9 563 461.9 727.1 581.1] 190 [727.1]]
+endobj
+53 0 obj
+<<
+/Length 24
+>>
+stream
+
+endstream
+endobj
+54 0 obj
+<<
+/Length 20527
+>>
+stream
+
+
+
+
+
+
+
+33
+TX
+
+91
+
+ *
+9991
+  &1
+#
+vs v
+ &&&:VPf`uwvvp]
+sv
+myyyy7By
+
+ p5
+
+
+ ]]4&#"!32673#
+
+
+TX
+21
+H N5 N"H* ($5&A12<91
+
+TX
+43
+ Q ! * !
+ 
+) , , )6#E#Y Y
+Y Y Y YYY Y!Y"Y#j j
+j j j jjj j!j"j#
+  !"#
+  !"#
+  !"#<]]7332654&/.54632#.#"!"&`qlsIi^Ձq lo@SѠc)w}KF@F%)!mnEB6>%5
+
+T[X
+TK T[X
+    L
+
+
+
+
+DejaVu changes are in public domain
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names.
+
+The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.
+
+2ǻƻĖG}G0} 
+&
+@ 7 !7 2.+t+t ]%]@%@ @  dtd  @  
+2
+}t} t2q  @~t~}|}|{z{zy]zzyx%y]y@x%w7vtvkututsrqrqqpo.po.nmlkKj
+hg
+g@f!e}d@ckba}`^] ][YXY-XW2V TSTSRQPQ%PPOONMN}MI MM@LL1KK2JI J}I HG
+H}G
+FE F2ED E E@D CBCBA@A}@6 @@?=)?>=)>]==)<;<;:;:9
+:9
+878}76 776 6@5454+ 43 32) 210 0/$)/7.!
+.-,-,+ ,,@+ *&*) )@('('&''@&%$)%$!$)#!#"!
+"! !
+!  @!*@-:!}22!)k!)
+!-} -    @ 
+ 
+ 
+
+@@
+endstream
+endobj
+55 0 obj
+<<
+/Type /FontDescriptor
+/FontName /NGTCAR+DejaVuSerif-Bold
+/Flags 4
+/FontBBox [0 -222 1000 760]
+/Ascent 760
+/CapHeight 729
+/Descent -222
+/ItalicAngle 0
+/StemV 150
+/XHeight 519
+/FontFile2 54 0 R
+/CIDSet 53 0 R
+>>
+endobj
+56 0 obj
+<<
+/Length 876
+>>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-NGTCAR-DejaVuSerif-Bold-0)
+%%Title: (TeX-NGTCAR-DejaVuSerif-Bold-0 TeX NGTCAR-DejaVuSerif-Bold 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (NGTCAR-DejaVuSerif-Bold)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-NGTCAR-DejaVuSerif-Bold def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+5 beginbfrange
+<0013> <0015> <0030>
+<0030> <0031> <004D>
+<0045> <0048> <0062>
+<004F> <0052> <006C>
+<0055> <0059> <0072>
+endbfrange
+7 beginbfchar
+<000F> <002C>
+<001C> <0039>
+<0029> <0046>
+<0033> <0050>
+<0038> <0055>
+<004B> <0068>
+<00BE> <00FC>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+19 0 obj
+<<
+/Type /Font
+/Subtype /Type0
+/Encoding /Identity-H
+/BaseFont /NGTCAR+DejaVuSerif-Bold
+/DescendantFonts [57 0 R]
+/ToUnicode 56 0 R
+>>
+endobj
+57 0 obj
+<<
+/Type /Font
+/Subtype /CIDFontType2
+/CIDToGIDMap /Identity
+/BaseFont /NGTCAR+DejaVuSerif-Bold
+/FontDescriptor 55 0 R
+/W 52 0 R
+/CIDSystemInfo <<
+/Registry (Adobe)
+/Ordering (Identity)
+/Supplement 0
+>>
+>>
+endobj
+58 0 obj
+[ 4 [401.9] 15 [317.9 337.9 317.9] 29 [336.9 336.9] 34 [536.1] 36 [722.2] 38 [765.1] 40 [730] 43 [872.1 395] 47 [664.1 1023.9] 54 [685.1 667 842.8] 58 [1027.8 711.9] 68 [596.2 640.1 560.1 640.1 591.8 370.1 640.1 644 319.8 310.1 606 319.8 948.2 644 602.1 640.1] 85 [478 513.2 401.9 644 564.9 856 564 564.9 526.9] 109 [611.8] 125 [611.8] 1904 [317.9]]
+endobj
+59 0 obj
+<<
+/Length 239
+>>
+stream
+*
+endstream
+endobj
+60 0 obj
+<<
+/Length 33290
+>>
+stream
+
+
+
+.ohbߢߡߟߞߝߜ*!feeeJeFe@e:e8e6ee e
+eed
+
+/
+4
+=
+E
+L
+M
+O
+P
+R
+
+
+
+
+
+
+ 
+!2221
+$$
+
+ob
+ 
+ob o
+) ) ) )) )!)"8 9
+: : : 99:: :!9"8#I
+I J I HI I!I"Y
+Y Y Y Y Y!Y"j l
+l l k kl l!l"i#{
+{ { { y{{ {!{"y#7++]
+$ 
+
+M 
+
+  %) $?< 5L FX\ Tm d~ t    
+g f d ehjjhusvuu v
+u w t y||yV]
+bo 
+
+*"<<1
+z
+zqz
+
+
+   
+   ( (
+( &)-**+,)/6 6 6959?F D D DEY X
+X WVVVh f f gegaabef`x x
+x zxxvz
+ T]
+21
+
+
+
+= ", , '?=',?(,* '$,&01291
+/ //
+ 2 ]>323!534&#"3!534&#"3!53#5!>32%5n`o{`o{h3d|Xuwjj%jj,jjTijp{
+zz
+
+` $,
+-
+Z Z Z ZZ Z!Z"X# !"# !"# !"#@++]
+
+]#533!!32673#"&5ݢZ4FHBkJk]LU_
+    >
+
+]@H' Scv  
+%
+*8
+x ]
+
+
+>
+
+ z
+ 
+$,
+(3=
+9DJ
+IW
+^di
+itz
+z
+
+
+ 
+  &
+# **%&:
+; 8 8:9F
+F I H HHHHFQ
+T XVSPb
+d fb`u
+q u v vvwwwtw
+x]
+ 
+
+      (
+ > >M
+ 
+* ''&XSUPUPSV
+V hd``dv
+-
+- 
+
+Z <21
+  Z
+<<1
+
+
+
+ 2 N RRn,l>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
+
+
+DejaVu changes are in public domain
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names.
+
+The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.
+
+%K.%x
+@@%0% @@ 
+ 
+o} @ :]%]@%@0d0 ddl~}~2}|{|{zyx
+wv wvuv utltsrqp qp p@o}nm>nkm>lk llk k@jddjihihg]hhgf%g]g@f%eddeddcba`_.`_.^]\K[}ZYDXWVUSdRQ2POP}ONA@BL JdI"IH2GGFE
+EDCDkCBCBA BA@ A @ @@S?>->M=<=K<;
+<<@;
+:9:]98987 654543432
+321 2
+2@1 0/0D/.//.
+..- d-,+,K+"++@*
+*d)(0)A(-(0'-'&:% %]$#$S#"##@"! !]   
+
+@#$0S-0
+k@-B d- 
+  @  
+ @8k
+ d
+} d2}-2-
+S
+endstream
+endobj
+61 0 obj
+<<
+/Type /FontDescriptor
+/FontName /XRJAAT+DejaVuSerif
+/Flags 4
+/FontBBox [0 -222 1000 760]
+/Ascent 760
+/CapHeight 729
+/Descent -222
+/ItalicAngle 0
+/StemV 86
+/XHeight 519
+/FontFile2 60 0 R
+/CIDSet 59 0 R
+>>
+endobj
+62 0 obj
+<<
+/Length 928
+>>
+stream
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-XRJAAT-DejaVuSerif-0)
+%%Title: (TeX-XRJAAT-DejaVuSerif-0 TeX XRJAAT-DejaVuSerif 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (XRJAAT-DejaVuSerif)
+/Supplement 0
+>> def
+/CMapName /TeX-Identity-XRJAAT-DejaVuSerif def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+8 beginbfrange
+<000F> <0011> <002C>
+<001D> <001E> <003A>
+<002B> <002C> <0048>
+<002F> <0030> <004C>
+<0036> <0038> <0053>
+<003A> <003B> <0057>
+<0044> <0053> <0061>
+<0055> <005D> <0072>
+endbfrange
+8 beginbfchar
+<0004> <0021>
+<0022> <003F>
+<0024> <0041>
+<0026> <0043>
+<0028> <0045>
+<006D> <00AB>
+<007D> <00BB>
+<0770> <2019>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+endstream
+endobj
+18 0 obj
+<<
+/Type /Font
+/Subtype /Type0
+/Encoding /Identity-H
+/BaseFont /XRJAAT+DejaVuSerif
+/DescendantFonts [63 0 R]
+/ToUnicode 62 0 R
+>>
+endobj
+63 0 obj
+<<
+/Type /Font
+/Subtype /CIDFontType2
+/CIDToGIDMap /Identity
+/BaseFont /XRJAAT+DejaVuSerif
+/FontDescriptor 61 0 R
+/W 58 0 R
+/CIDSystemInfo <<
+/Registry (Adobe)
+/Ordering (Identity)
+/Supplement 0
+>>
+>>
+endobj
+20 0 obj
+<<
+/Type /Pages
+
+/Count 4
+/Kids [16 0 R 22 0 R 27 0 R 31 0 R]
+>>
+endobj
+64 0 obj
+<<
+>>
+endobj
+65 0 obj
+<<
+/Type /Catalog
+/Pages 20 0 R
+/Names 64 0 R
+/Version /1.6 /PageLabels << /Nums [ 0 << /S /D >> ] >> /ViewerPreferences << /FitWindow true >> /PageLayout /TwoColumnRight /PageMode /UseNone /Metadata 33 0 R
+>>
+endobj
+66 0 obj
+<<
+/ConTeXt.Url (www.pragma-ade.com) /ConTeXt.Version (2011.11.08 15:20) /ConTeXt.Jobname (t-french) /CreationDate (D:20111109230817+01'00') /Trapped /False /Title <feff0074002d006600720065006e00630068> /ConTeXt.Time (2011.11.09 23:08) /ID (t-french.2011-11-09T23:08:17+01:00) /Producer (LuaTeX-0.70.1) /ModDate (D:20111109230817+01'00') /Creator <feff0043006f006e00540065005800740020002d00200032003000310031002e00310031002e00300038002000310035003a00320030>
+/PTEX.Fullbanner (This is LuaTeX, Version beta-0.70.1-2011051918 (rev 4277) (TeX Live 2011) kpathsea version 6.0.1)
+>>
+endobj
+xref
+0 67
+0000000001 65535 f
+0000000002 00000 f
+0000000003 00000 f
+0000000004 00000 f
+0000000005 00000 f
+0000000006 00000 f
+0000000007 00000 f
+0000000008 00000 f
+0000000009 00000 f
+0000000010 00000 f
+0000000011 00000 f
+0000000012 00000 f
+0000000013 00000 f
+0000000014 00000 f
+0000000000 00000 f
+0000285578 00000 n
+0000285371 00000 n
+0000000015 00000 n
+0000422489 00000 n
+0000386894 00000 n
+0000422852 00000 n
+0000286507 00000 n
+0000286299 00000 n
+0000285659 00000 n
+0000364477 00000 n
+0000334870 00000 n
+0000297065 00000 n
+0000296857 00000 n
+0000286588 00000 n
+0000306451 00000 n
+0000302072 00000 n
+0000301864 00000 n
+0000297168 00000 n
+0000302153 00000 n
+0000304476 00000 n
+0000304505 00000 n
+0000304681 00000 n
+0000305521 00000 n
+0000305746 00000 n
+0000306594 00000 n
+0000306785 00000 n
+0000307232 00000 n
+0000307312 00000 n
+0000333642 00000 n
+0000333868 00000 n
+0000335019 00000 n
+0000335239 00000 n
+0000335438 00000 n
+0000335509 00000 n
+0000363372 00000 n
+0000363594 00000 n
+0000364622 00000 n
+0000364838 00000 n
+0000365062 00000 n
+0000365145 00000 n
+0000385731 00000 n
+0000385960 00000 n
+0000387045 00000 n
+0000387267 00000 n
+0000387633 00000 n
+0000387931 00000 n
+0000421280 00000 n
+0000421503 00000 n
+0000422635 00000 n
+0000422933 00000 n
+0000422955 00000 n
+0000423181 00000 n
+trailer
+<< /Size 67
+/Root 65 0 R
+/Info 66 0 R
+/ID [<309E2A7BED36680813C0C7BC399CCD6D> <309E2A7BED36680813C0C7BC399CCD6D>] >>
+startxref
+423774
+%%EOF
diff --git a/obsolete/macros/context/contrib/context-french/tex/context/third/french/t-french.mkiv b/obsolete/macros/context/contrib/context-french/tex/context/third/french/t-french.mkiv
new file mode 100644
index 0000000000..ce9513a118
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-french/tex/context/third/french/t-french.mkiv
@@ -0,0 +1,98 @@
+%D \module
+%D [ file=t-french,
+%D version=2011.11.09,
+%D title=\CONTEXT\ User Module,
+%D subtitle=For French documents,
+%D author=Peter Münster,
+%D date=\currentdate,
+%D copyright=Peter Münster,
+%D email=pmrb@free.fr,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2011 Peter Münster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but without any warranty; without even the implied warranty of
+%C merchantability or fitness for a particular purpose. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+%D This module tries to do similar things as the frenchb.ldf in \LaTeX:
+%D \startitemize
+%D \item automatic space before » and after «, :, ?, ; and !
+%D \item changing symbol for itemize environment
+%D \stopitemize
+%D
+%D If I remember right, the \LaTeX\ babel package does a much better job at
+%D language switching, but I don't know, how this is possible in \ConTeXt...
+%D
+%D Many thanks to Hans Hagen and Wolfgang Schuster for their help!
+
+\writestatus{loading}{Typesetting French documents}
+
+\startsetups french
+ % Todo: This shoud be also active in footnotes, headers and footers,
+ % and not active in verbatim text:
+ \setcharacterspacing[frenchpunctuation]
+ % A question of style:
+ \setupitemize[symbol=2]
+\stopsetups
+\startsetups not-french
+ \setcharacterspacing[reset]
+ \setupitemize[symbol=\currentitemlevel]
+\stopsetups
+\setuplanguage [default] [setups=not-french]
+\setuplanguage [fr] [setups=french]
+\mainlanguage [fr]
+
+\ifx \ieme \undefined \def\ieme {\highordinalstr{e}} \fi
+\ifx \iemes \undefined \def\iemes {\highordinalstr{es}} \fi
+\ifx \ier \undefined \def\ier {\highordinalstr{er}} \fi
+\ifx \iere \undefined \def\iere {\highordinalstr{re}} \fi
+\ifx \iers \undefined \def\iers {\highordinalstr{ers}} \fi
+\ifx \ieres \undefined \def\ieres {\highordinalstr{res}} \fi
+
+\continueifinputfile{t-french.mkiv}
+
+%D Usage example:
+\startbuffer[items]
+ \startitemize
+ \item test
+ \item test
+ \startitemize
+ \item test
+ \item test
+ \startitemize
+ \item test
+ \item test
+ \stopitemize
+ \stopitemize
+ \stopitemize
+\stopbuffer
+
+\usemodule[french]
+
+\starttext
+\startbuffer
+ Voilà: Voilà? Voilà! Voilà;
+ \start
+ \language[en]
+ some English text: «English» or \quotation{French}, ok?
+ \stop
+ «voilà» \quote{voilà} \quotation{voilà}
+ \getbuffer[items]
+ \start
+ \language[en]
+ \getbuffer[items]
+ \stop
+\stopbuffer
+\typebuffer
+\getbuffer
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-fullpage/VERSION b/obsolete/macros/context/contrib/context-fullpage/VERSION
new file mode 100644
index 0000000000..295009c0aa
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fullpage/VERSION
@@ -0,0 +1 @@
+2017.08.27
diff --git a/obsolete/macros/context/contrib/context-fullpage/doc/context/third/fullpage/README b/obsolete/macros/context/contrib/context-fullpage/doc/context/third/fullpage/README
new file mode 100644
index 0000000000..418dcdb6dd
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fullpage/doc/context/third/fullpage/README
@@ -0,0 +1,24 @@
+Modulename : t-fullpage
+Author : Wolfgang Schuster
+License : GNU General Public License
+
+Description
+-----------
+
+Fullpage is a module for ConTeXt to set equal margins
+in a document without the need for \setuplayout.
+
+Usage
+-----
+
+\usemodule[fullpage][style={cm,empty}]
+
+\starttext
+\input knuth\par
+\stoptext
+
+Options
+-------
+
+- style (cm,in,margin,headings,plain,empty)
+- margin (DIMENSION)
diff --git a/obsolete/macros/context/contrib/context-fullpage/doc/context/third/fullpage/fullpage-doc.pdf b/obsolete/macros/context/contrib/context-fullpage/doc/context/third/fullpage/fullpage-doc.pdf
new file mode 100644
index 0000000000..0d3a05bac3
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fullpage/doc/context/third/fullpage/fullpage-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-fullpage/tex/context/interface/third/t-fullpage.xml b/obsolete/macros/context/contrib/context-fullpage/tex/context/interface/third/t-fullpage.xml
new file mode 100644
index 0000000000..14fbee5bf3
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fullpage/tex/context/interface/third/t-fullpage.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2010.12.27">
+
+<cd:command name="setupfullpage" file="t-fullpage.tex">
+ <cd:sequence>
+ <cd:string value="setupfullpage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="style" list="yes">
+ <cd:constant type="in" default="yes"/>
+ <cd:constant type="cm"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="plain" default="yes"/>
+ <cd:constant type="headings"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension" default="0pt"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/obsolete/macros/context/contrib/context-fullpage/tex/context/third/fullpage/t-fullpage.mkii b/obsolete/macros/context/contrib/context-fullpage/tex/context/third/fullpage/t-fullpage.mkii
new file mode 100644
index 0000000000..ab87124cb6
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fullpage/tex/context/third/fullpage/t-fullpage.mkii
@@ -0,0 +1,321 @@
+%D \module
+%D [ file=t-fullpage,
+%D version=2011.01.26,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Fullpage documents,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2010 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+%M \loadsetups[t-fullpage.xml]
+
+%D \subject{Introduction}
+%D
+%D The \filename {fullpage} module is a port of the \LATEX\ package
+%D with the same name. The module was written after Mohammed Bana
+%D asked on the \CONTEXT\ mailing list if a module with the same
+%D function as the \LATEX\ package is available for \CONTEXT.
+%D
+%D The purpose of the module is to easily change the margins of
+%D all four margins of the page to the same value without the need
+%D of \type {\setuplayout} in the document.
+%D
+%D \subject{Usage}
+%D
+%D To use the module you have to load it with the \type {\usemodule}
+%D command. Parameters for the module can be either set with the
+%D \type {\setupfullpage} command or as argument to \type {\usemodule}
+%D when you load the module for your document.
+%D
+%D A example how to use the module is:
+%D
+%D \starttyping
+%D \usemodule[fullpage][style={cm,empty}]
+%D
+%D \starttext
+%D \input knuth
+%D \stoptext
+%D \stoptyping
+%D
+%D You can give for \type {\usemodule} the same argument as you can
+%D give to \type {\setupfullpage}, which has the following sytnax:
+%D
+%D \showsetup{setupfullpage}
+%D
+%D The meaning of the values for the “style” key is:
+%D
+%D \starttable[|Bl|l|]
+%D \HL
+%D \NC in \NC set the margins to 1in \NC\AR
+%D \NC cm \NC set the margins to 1.5cm \NC\AR
+%D \NC margin \NC set the margins to the “margin” value \NC\AR
+%D \NC plain \NC no header and narrow footer with 0.5cm \NC\AR
+%D \NC headings \NC narrow header and footer with 0.5cm \NC\AR
+%D \NC empty \NC no header and footer \NC\AR
+%D \HL
+%D \stoptable
+%D
+%D The “margin” value is only usefull when you use also the margin key
+%D which expects a dimension as argument because it’s default value is
+%D 0pt which result otherwise in no margins at all. You can see the
+%D result of all combinations of the style argument \at{at page}[sec:examples],
+%D the examples for the margin argument use a value of 4cm for the margin key.
+%D
+%D \subject[sec:examples]{Examples}
+%D
+%D \startbuffer[none]
+%D \usemodule[fullpage][style=none]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[headings]
+%D \usemodule[fullpage][style=headings]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[plain]
+%D \usemodule[fullpage][style=plain]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[empty]
+%D \usemodule[fullpage][style=empty]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[in]
+%D \usemodule[fullpage][style={in}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[in+headings]
+%D \usemodule[fullpage][style={in,headings}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[in+plain]
+%D \usemodule[fullpage][style={in,plain}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[in+empty]
+%D \usemodule[fullpage][style={in,empty}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[cm]
+%D \usemodule[fullpage][style={cm}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[cm+headings]
+%D \usemodule[fullpage][style={cm,headings}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[cm+plain]
+%D \usemodule[fullpage][style={cm,plain}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[cm+empty]
+%D \usemodule[fullpage][style={cm,empty}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[margin]
+%D \usemodule[fullpage][style={margin},margin=4cm]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{4}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[margin+headings]
+%D \usemodule[fullpage][style={margin,headings},margin=4cm]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{4}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[margin+plain]
+%D \usemodule[fullpage][style={margin,plain},margin=4cm]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{4}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[margin+empty]
+%D \usemodule[fullpage][style={margin,empty},margin=4cm]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{4}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startcombination[4*4]
+%D {\typesetbuffer[none] [frame=on,width=.2\textwidth]}{none}
+%D {\typesetbuffer[headings] [frame=on,width=.2\textwidth]}{headings}
+%D {\typesetbuffer[plain] [frame=on,width=.2\textwidth]}{plain}
+%D {\typesetbuffer[empty] [frame=on,width=.2\textwidth]}{empty}
+%D {\typesetbuffer[in] [frame=on,width=.2\textwidth]}{in}
+%D {\typesetbuffer[in+headings] [frame=on,width=.2\textwidth]}{in + headings}
+%D {\typesetbuffer[in+plain] [frame=on,width=.2\textwidth]}{in + plain}
+%D {\typesetbuffer[in+empty] [frame=on,width=.2\textwidth]}{in + empty}
+%D {\typesetbuffer[cm] [frame=on,width=.2\textwidth]}{cm}
+%D {\typesetbuffer[cm+headings] [frame=on,width=.2\textwidth]}{cm + headings}
+%D {\typesetbuffer[cm+plain] [frame=on,width=.2\textwidth]}{cm + plain}
+%D {\typesetbuffer[cm+empty] [frame=on,width=.2\textwidth]}{cm + empty}
+%D {\typesetbuffer[margin] [frame=on,width=.2\textwidth]}{margin}
+%D {\typesetbuffer[margin+headings][frame=on,width=.2\textwidth]}{margin + headings}
+%D {\typesetbuffer[margin+plain] [frame=on,width=.2\textwidth]}{margin + plain}
+%D {\typesetbuffer[margin+empty] [frame=on,width=.2\textwidth]}{margin + empty}
+%D \stopcombination
+
+\writestatus{loading}{ConTeXt User Module / Fullpage}
+
+\unprotect
+
+\startmodule[fullpage]
+
+\startinterface all
+ \setinterfacevariable {fullpage} {fullpage}
+ \setinterfacevariable {in} {in}
+ \setinterfacevariable {cm} {cm}
+ \setinterfacevariable {plain} {plain}
+ \setinterfacevariable {headings} {headings}
+\stopinterface
+
+\def\????fullpage{@@@@fullpage} % FullPage
+
+\def\fullpageparameter#1%
+ {\csname\????fullpage#1\endcsname}
+
+\setupmodule
+ [ \c!style={\v!in,\v!plain},
+ \c!margin=0pt]
+
+\startsetups[\v!fullpage:\v!in]
+
+ \setuplayout
+ [\c!backspace=1in,
+ \c!width=\v!middle,
+ \c!topspace=1in,
+ \c!height=\v!middle]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!cm]
+
+ \setuplayout
+ [\c!backspace=15mm,
+ \c!width=\v!middle,
+ \c!topspace=15mm,
+ \c!height=\v!middle]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!margin]
+
+ \setuplayout
+ [\c!backspace=\fullpageparameter\c!margin,
+ \c!width=\v!middle,
+ \c!topspace=\fullpageparameter\c!margin,
+ \c!height=\v!middle]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!plain]
+
+ \setuplayout
+ [\c!header=0pt,
+ \c!footer=.5in]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!empty]
+
+ \setuplayout
+ [\c!header=0pt,
+ \c!footer=0pt]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!headings]
+
+ \setuplayout
+ [\c!header=.5in,
+ \c!footer=.5in]
+
+\stopsetups
+
+\unexpanded\def\setupfullpage
+ {\dosingleargument\dosetupfullpage}
+
+\def\dosetupfullpage[#1]%
+ {\getparameters[\????fullpage][#1]%
+ \def\dodosetupfullpage##1{\setup[\v!fullpage:##1]}%
+ \processcommacommand[\fullpageparameter\c!style]\dodosetupfullpage}
+
+\normalexpanded{\setupfullpage
+ [ \c!style={\currentmoduleparameter\c!style},
+ \c!margin={\currentmoduleparameter\c!margin}]}
+
+\stopmodule
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-fullpage/tex/context/third/fullpage/t-fullpage.mkiv b/obsolete/macros/context/contrib/context-fullpage/tex/context/third/fullpage/t-fullpage.mkiv
new file mode 100644
index 0000000000..6c0b361b66
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-fullpage/tex/context/third/fullpage/t-fullpage.mkiv
@@ -0,0 +1,325 @@
+%D \module
+%D [ file=t-fullpage,
+%D version=2011.01.26,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Fullpage documents,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2010 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+%M \loadsetups[t-fullpage.xml]
+
+%D \subject{Introduction}
+%D
+%D The \filename {fullpage} module is a port of the \LATEX\ package
+%D with the same name. The module was written after Mohammed Bana
+%D asked on the \CONTEXT\ mailing list if a module with the same
+%D function as the \LATEX\ package is available for \CONTEXT.
+%D
+%D The purpose of the module is to easily change the margins of
+%D all four margins of the page to the same value without the need
+%D of \type {\setuplayout} in the document.
+%D
+%D \subject{Usage}
+%D
+%D To use the module you have to load it with the \type {\usemodule}
+%D command. Parameters for the module can be either set with the
+%D \type {\setupfullpage} command or as argument to \type {\usemodule}
+%D when you load the module for your document.
+%D
+%D A example how to use the module is:
+%D
+%D \starttyping
+%D \usemodule[fullpage][style={cm,empty}]
+%D
+%D \starttext
+%D \input knuth
+%D \stoptext
+%D \stoptyping
+%D
+%D You can give for \type {\usemodule} the same argument as you can
+%D give to \type {\setupfullpage}, which has the following sytnax:
+%D
+%D \showsetup{setupfullpage}
+%D
+%D The meaning of the values for the “style” key is:
+%D
+%D \starttable[|Bl|l|]
+%D \HL
+%D \NC in \NC set the margins to 1in \NC\AR
+%D \NC cm \NC set the margins to 1.5cm \NC\AR
+%D \NC margin \NC set the margins to the “margin” value \NC\AR
+%D \NC plain \NC no header and narrow footer with 0.5cm \NC\AR
+%D \NC headings \NC narrow header and footer with 0.5cm \NC\AR
+%D \NC empty \NC no header and footer \NC\AR
+%D \HL
+%D \stoptable
+%D
+%D The “margin” value is only usefull when you use also the margin key
+%D which expects a dimension as argument because it’s default value is
+%D 0pt which result otherwise in no margins at all. You can see the
+%D result of all combinations of the style argument \at{at page}[sec:examples],
+%D the examples for the margin argument use a value of 4cm for the margin key.
+%D
+%D \subject[sec:examples]{Examples}
+%D
+%D \startbuffer[none]
+%D \usemodule[fullpage][style=none]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[headings]
+%D \usemodule[fullpage][style=headings]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[plain]
+%D \usemodule[fullpage][style=plain]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[empty]
+%D \usemodule[fullpage][style=empty]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[in]
+%D \usemodule[fullpage][style={in}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[in+headings]
+%D \usemodule[fullpage][style={in,headings}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[in+plain]
+%D \usemodule[fullpage][style={in,plain}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[in+empty]
+%D \usemodule[fullpage][style={in,empty}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[cm]
+%D \usemodule[fullpage][style={cm}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[cm+headings]
+%D \usemodule[fullpage][style={cm,headings}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[cm+plain]
+%D \usemodule[fullpage][style={cm,plain}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[cm+empty]
+%D \usemodule[fullpage][style={cm,empty}]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{8}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[margin]
+%D \usemodule[fullpage][style={margin},margin=4cm]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{4}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[margin+headings]
+%D \usemodule[fullpage][style={margin,headings},margin=4cm]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{4}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[margin+plain]
+%D \usemodule[fullpage][style={margin,plain},margin=4cm]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{4}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startbuffer[margin+empty]
+%D \usemodule[fullpage][style={margin,empty},margin=4cm]
+%D \showframe[text]
+%D \starttext
+%D \dorecurse{4}{\input knuth\par}
+%D \stoptext
+%D \stopbuffer
+%D
+%D \startcombination[4*4]
+%D {\typesetbuffer[none] [frame=on,width=.2\textwidth]}{none}
+%D {\typesetbuffer[headings] [frame=on,width=.2\textwidth]}{headings}
+%D {\typesetbuffer[plain] [frame=on,width=.2\textwidth]}{plain}
+%D {\typesetbuffer[empty] [frame=on,width=.2\textwidth]}{empty}
+%D {\typesetbuffer[in] [frame=on,width=.2\textwidth]}{in}
+%D {\typesetbuffer[in+headings] [frame=on,width=.2\textwidth]}{in + headings}
+%D {\typesetbuffer[in+plain] [frame=on,width=.2\textwidth]}{in + plain}
+%D {\typesetbuffer[in+empty] [frame=on,width=.2\textwidth]}{in + empty}
+%D {\typesetbuffer[cm] [frame=on,width=.2\textwidth]}{cm}
+%D {\typesetbuffer[cm+headings] [frame=on,width=.2\textwidth]}{cm + headings}
+%D {\typesetbuffer[cm+plain] [frame=on,width=.2\textwidth]}{cm + plain}
+%D {\typesetbuffer[cm+empty] [frame=on,width=.2\textwidth]}{cm + empty}
+%D {\typesetbuffer[margin] [frame=on,width=.2\textwidth]}{margin}
+%D {\typesetbuffer[margin+headings][frame=on,width=.2\textwidth]}{margin + headings}
+%D {\typesetbuffer[margin+plain] [frame=on,width=.2\textwidth]}{margin + plain}
+%D {\typesetbuffer[margin+empty] [frame=on,width=.2\textwidth]}{margin + empty}
+%D \stopcombination
+
+\writestatus{loading}{ConTeXt User Module / Fullpage}
+
+\unprotect
+
+\startmodule[fullpage]
+
+\startinterface all
+ \setinterfacevariable {fullpage} {fullpage}
+ \setinterfacevariable {in} {in}
+ \setinterfacevariable {cm} {cm}
+ \setinterfacevariable {plain} {plain}
+ \setinterfacevariable {headings} {headings}
+\stopinterface
+
+\definenamespace
+ [fullpage]
+ [ type=module,
+ comment=Fullpage,
+ version=2011.01.26,
+ name=fullpage,
+ style=no,
+ command=yes,
+ setup=yes,
+ \s!parent=fullpage]
+
+\appendtoks
+ \startprocesscommacommand[\fullpageparameter\c!style]%
+ \setup[\v!fullpage:\currentcommalistitem]%
+ \stopprocesscommacommand
+\to \everysetupfullpage
+
+\setupmodule
+ [ \c!style={\v!in,\v!plain},
+ \c!margin=0pt]
+
+\startsetups[\v!fullpage:\v!in]
+
+ \setuplayout
+ [\c!backspace=1in,
+ \c!width=\v!middle,
+ \c!topspace=1in,
+ \c!height=\v!middle]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!cm]
+
+ \setuplayout
+ [\c!backspace=15mm,
+ \c!width=\v!middle,
+ \c!topspace=15mm,
+ \c!height=\v!middle]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!margin]
+
+ \setuplayout
+ [\c!backspace=\fullpageparameter\c!margin,
+ \c!width=\v!middle,
+ \c!topspace=\fullpageparameter\c!margin,
+ \c!height=\v!middle]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!plain]
+
+ \setuplayout
+ [\c!header=0pt,
+ \c!footer=.5in]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!empty]
+
+ \setuplayout
+ [\c!header=0pt,
+ \c!footer=0pt]
+
+\stopsetups
+
+\startsetups[\v!fullpage:\v!headings]
+
+ \setuplayout
+ [\c!header=.5in,
+ \c!footer=.5in]
+
+\stopsetups
+
+\normalexpanded{\setupfullpage
+ [ \c!style={\currentmoduleparameter\c!style},
+ \c!margin={\currentmoduleparameter\c!margin}]}
+
+\stopmodule
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-gantt/VERSION b/obsolete/macros/context/contrib/context-gantt/VERSION
new file mode 100644
index 0000000000..6c420a3978
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/VERSION
@@ -0,0 +1 @@
+2012.08.19
diff --git a/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/README b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/README
new file mode 100644
index 0000000000..dda1088fcf
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/README
@@ -0,0 +1,22 @@
+Modulename : t-gantt
+Author : Adam Reviczky
+License : Public Domain
+
+Description
+-----------
+
+Drawing Gantt charts.
+
+Usage
+-----
+
+\usemodule[gantt]
+
+\starttext
+… \startgantt … \stopgantt …
+\stoptext
+
+Options
+-------
+
+- alternative
diff --git a/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-1.tex b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-1.tex
new file mode 100644
index 0000000000..51c16058df
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-1.tex
@@ -0,0 +1,19 @@
+\usemodule[gantt]
+%\usemodule[gantt][alternative=mp]
+%\usemodule[gantt][alternative=tikz]
+\setuppagenumbering[location=]
+
+\starttext
+ \startgantt{7}{12}
+ \startganttitle
+ \numtitle{1}{1}{12}{1}
+ \stopganttitle
+ \ganttbar{a task}{0}{2}
+ \ganttbarcon{a consecutive task}{2}{4}
+ \ganttbarcon{another consecutive task}{8}{2}
+ \ganttbar{another task}{2}{2}
+ \ganttbar{another task}{4}{2}
+ \ganttbar{another task}{4}{2}
+ \ganttcon{4}{4}{4}{6}
+ \stopgantt
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-2.tex b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-2.tex
new file mode 100644
index 0000000000..a9c6a2765c
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-2.tex
@@ -0,0 +1,25 @@
+\usemodule[gantt]
+%\usemodule[gantt][alternative=mp]
+%\usemodule[gantt][alternative=tikz]
+\setuppagenumbering[location=]
+
+\starttext
+ \startgantt{3}{12}
+ \startganttitle
+ \titleelement{Jan}{1}
+ \titleelement{Feb}{1}
+ \titleelement{Mar}{1}
+ \titleelement{Apr}{1}
+ \titleelement{May}{1}
+ \titleelement{Jun}{1}
+ \titleelement{Jul}{1}
+ \titleelement{Aug}{1}
+ \titleelement{Sep}{1}
+ \titleelement{Oct}{1}
+ \titleelement{Nov}{1}
+ \titleelement{Dec}{1}
+ \stopganttitle
+ \ganttbar{Task 1}{0}{2}
+ \ganttbarcon{a consecutive task}{2}{4}
+ \stopgantt
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-3.tex b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-3.tex
new file mode 100644
index 0000000000..b8042af5b5
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-3.tex
@@ -0,0 +1,19 @@
+\usemodule[gantt]
+%\usemodule[gantt][alternative=mp]
+%\usemodule[gantt][alternative=tikz]
+\setuppagenumbering[location=]
+
+\starttext
+ \startgantt{4}{12}
+ \startganttitle
+ \numtitle{2010}{1}{2012}{4}
+ \stopganttitle
+ \startganttitle
+ \numtitle{1}{1}{4}{1}
+ \numtitle{1}{1}{4}{1}
+ \numtitle{1}{1}{4}{1}
+ \stopganttitle
+ \ganttbar{Task 1}{0}{2}
+ \ganttbarcon{a consecutive task}{2}{4}
+ \stopgantt
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-4.tex b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-4.tex
new file mode 100644
index 0000000000..440e1bff33
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-4.tex
@@ -0,0 +1,22 @@
+\usemodule[gantt]
+%\usemodule[gantt][alternative=mp]
+%\usemodule[gantt][alternative=tikz]
+\setuppagenumbering[location=]
+
+\starttext
+ \startgantt{10}{12}
+ \startganttitle
+ \numtitle{1}{1}{12}{1}
+ \stopganttitle
+ \ganttbar{a task}{0}{2}
+ \ganttbarcon{a consecutive task}{2}{4}
+ \ganttbarcon{another consecutive task}{8}{2}
+ \ganttmilestone[color=darkcyan]{Milestone with color!}{4}
+ \ganttbar{another task}{2}{2}
+ \ganttbar[color=cyan]{another coloured task}{4}{4}
+ \ganttbar{another task}{4}{2}
+ \ganttcon{4}{5}{4}{7}
+ \ganttmilestonecon{A connected Milestone}{7}
+ \ganttbarcon{another consecutive task}{8}{2}
+ \stopgantt
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-5.tex b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-5.tex
new file mode 100644
index 0000000000..a454ece64a
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/examples/gantt-5.tex
@@ -0,0 +1,32 @@
+\usemodule[gantt]
+%\usemodule[gantt][alternative=mp]
+%\usemodule[gantt][alternative=tikz]
+\setuppapersize[A4,landscape][A4,landscape]
+\setuplayout[scale=0.8]
+\setuppagenumbering[location=]
+
+\starttext
+ \startgantt[xunitlength=0.5cm,style=\tfx,titlestyle=\tfx,drawledgerline=true]{10}{48}
+ \startganttitle
+ \titleelement{2009}{7}
+ \numtitle{2010}{1}{2012}{12}
+ \titleelement{2013}{5}
+ \stopganttitle
+ \startganttitle
+ \numtitle{6}{1}{12}{1}
+ \numtitle{1}{1}{12}{1}
+ \numtitle{1}{1}{12}{1}
+ \numtitle{1}{1}{12}{1}
+ \numtitle{1}{1}{5}{1}
+ \stopganttitle
+ \ganttbar{task 1}{2}{17}
+ \ganttgroup{a group of tasks}{6}{18}
+ \ganttbar{task 2}{5}{10}
+ \ganttbar[color=blue]{task 3}{15}{3}
+ \ganttbar{task 4}{20}{3}
+ \ganttcon{15}{4}{20}{6}
+ \ganttbar{task 5}{15}{5}
+ \ganttbarcon[color=red]{task 6}{20}{5}
+ \ganttbarcon{task 7}{30}{5}
+ \stopgantt
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/gantt.txt b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/gantt.txt
new file mode 100644
index 0000000000..ff897767a8
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/doc/context/third/gantt/gantt.txt
@@ -0,0 +1,63 @@
+Gantt is a (third party) ConTeXt module for drawing Gantt charts via MetaPost or PGF/TikZ.
+
+== Description ==
+To switch between the two drawing engines (MetaPost and TikZ) use the style option.
+\usemodule[gantt][alternative=mp]
+\usemodule[gantt][alternative=tikz]
+The default engine is MetaPost.
+
+Here is a short description of the environments and commands:
+
+=== Gantt ===
+The gantt environment draws the canvas of a gantt figure.
+\startgantt[…]{no of Tasks to plot}{no of time slots}
+The optional argument […] can be filled in a key=value syntax, using one or more of the following keys:
+* factor - MetaPost scale factor (default: 1)
+* xunitlength - length of one time slot (default: 1cm)
+* style - fontsize of labels (default: \tf)
+* titlestyle - fontsize of title section (default: \tfx)
+* drawledgerline - switch to enable/disable the drawing of horizontal ledger lines (default value: false)
+
+=== Ganttitle ===
+This is the environment for drawing the title section.
+\startganttitle (…) \stopganttitle
+
+=== Titleelement ===
+This draws one element of the title.
+\titleelement{label}{length}
+
+=== Numtitle ===
+This draws a numbered sequence of title elements.
+\numtitle{start number}{increment}{end number}{length of each title element}
+
+=== Ganttbar ===
+This draws a single, unconnected bar for representing a task.
+\ganttbar[pattern=value,color=value]{label}{start}{length}
+The optional comma separated arguments are:
+* <pattern> - is a TikZ pattern (e.g. north east lines (default), north west lines, crosshatch, crosshatch dots, grid, …)
+* <color> - a color of the pattern (e.g. black (default), red, green blue gray, dark gray)
+
+=== Ganttcon ===
+This draws an arrow between the bars specified by coordinates.
+\ganttcon{startx}{starty}{endx}{endy}
+
+=== Ganttbarcon ===
+This draws a single bar and connects the bar with the previous bar for consecutive tasks.
+\ganttbarcon[pattern=value,color=value]{label}{start}{length}
+The optional pattern argument are the same as for \ganttbar.
+
+=== Ganttgroup ===
+This draws a bar to group tasks.
+\ganttgroup{label}{start}{length}
+
+=== Ganttmilestone ===
+This draws a milestone using a diamond.
+\ganttmilestone[color=value]{label}{start}
+The optional color argument argument is:
+* <color> - a color of the pattern (e.g. black (default), red, green blue gray, dark gray)
+
+=== Ganttmilestonecon ===
+This draws a milestone using a diamond and connects the milestone with the previous bar or milestone.
+\ganttmilestonecon[color=value]{label}{start}
+The optional color argument argument is:
+* <color> - a color of the pattern (e.g. black (default), red, green blue gray, dark gray)
diff --git a/obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/gantt-s-mp.tex b/obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/gantt-s-mp.tex
new file mode 100644
index 0000000000..a8a310cf21
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/gantt-s-mp.tex
@@ -0,0 +1,369 @@
+%D \module
+%D [ file=t-gantt,
+%D version=2012.08.19,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Drawing Gantt charts,
+%D author={Adam Reviczky and Aditya Mahajan},
+%D date=\currentdate,
+%D copyright={Adam Reviczky and Aditya Mahajan},
+%D license=Public Domain]
+
+%D Some macros for drawing Gantt charts using MetaPost.
+
+\writestatus{loading}{ConTeXt User Module / metapost gantt chart}
+
+\startmodule[gantt-s-mp]
+\unprotect
+
+\def\????gantt{@@@@gantt}
+
+\definesystemvariable{gantt}
+
+\startMPinclusions
+ % temporary solution for a pattern substitute
+ input hatching;
+\stopMPinclusions
+
+\newcount\ganttnum
+\newcount\gantttitlenum
+\newcount\ganttwidth
+
+\newdimen\ganttlastx \ganttlastx = 0cm
+\newdimen\nextganttlastx
+\newdimen\titleunitlength \titleunitlength = 1cm
+\newdimen\ganttunitlength \ganttunitlength = 1cm
+
+\newdimen\gantttmpa
+\newdimen\gantttmpb
+
+% workaround for titleelement
+\def\!!row{\numexpr\ganttnum-1\relax}
+
+\unexpanded\def\setupgantt
+ {\bgroup
+ \dosingleempty
+ \dosetupgantt}
+
+\unexpanded\def\dosetupgantt[#1]%
+ {\egroup
+ \getparameters[\????gantt][#1]}
+
+\setupgantt
+ [factor=1,
+ xunitlength=1cm,
+ style=\tf,
+ titlestyle=\tfx,
+ drawledgerline=false]
+
+\unexpanded\def\setupganttbar
+ {\bgroup
+ \dosingleempty
+ \dosetupganttbar}
+
+\unexpanded\def\dosetupganttbar[#1]%
+ {\egroup
+ \getparameters[\????gantt][#1]}
+
+\setupganttbar
+ [pattern=north east lines,
+ color=black]
+
+% The gantt environment draws the canvas of a gantt figure (realized as tikzpicture)
+% The usage is \startgantt[...]{no of Tasks to plot}{no of time slots}
+% The optional argument [...] can be filled in a key=value syntax, using one or more of the following keys:
+%
+% xunitlength - length of one time slot (default: 1cm)
+% style - style of labels (default: \tf)
+% titlestyle - style of title section (default: \tfx)
+% drawledgerline - Switch to enable/disable the drawing of horizontal ledger lines (default value: false)
+\unexpanded\long\def\dostartgantt[#1]#2#3%
+ {\getparameters[\????gantt][#1]%
+ \gdef\gantt!factor{\@@@@ganttfactor}
+ \gdef\gantt!ganttunitlength{\@@@@ganttxunitlength}
+ \gdef\gantt!style{\getvalue{@@@@ganttstyle}}
+ \gdef\gantt!titlestyle{\getvalue{@@@@gantttitlestyle}}
+ \gdef\gantt!drawledgerline{\@@@@ganttdrawledgerline}
+
+ \bgroup
+ \newcount\ganttx \ganttx=0
+ \newcount\ganttheight
+
+ \def\ganttxstringtop{}
+ \def\ganttxstringbottom{}
+
+ \global\ganttwidth=#3
+ \global\ganttnum=0
+
+ \ganttheight=#2
+ \advance\ganttheight by 1
+
+ \startMPdrawing
+ linecap := squared;
+ linejoin := mitered;
+
+ draw (0,0.5cm)--(0,1.4cm-\the\ganttheight*cm);
+ draw (\the\ganttwidth*\gantt!ganttunitlength,0.5cm)--(\the\ganttwidth*\gantt!ganttunitlength,1.4cm-\the\ganttheight*cm);
+ % draw x axis
+ draw (0cm,-#2*cm+0.4cm)--(\the\ganttwidth*\gantt!ganttunitlength,-#2*cm+0.4cm);
+
+ % draw grid
+ for t=1 upto \the\ganttwidth:
+ draw (\gantt!ganttunitlength*t,-0.5cm)--(\gantt!ganttunitlength*t,1.4cm-\the\ganttheight*cm) dashed withdots;
+ endfor
+ \stopMPdrawing
+ \egroup
+ }
+
+\unexpanded\def\startgantt%
+ {\dosingleempty\dostartgantt}
+
+\unexpanded\def\stopgantt%
+ {\startMPdrawing
+ % debug
+ % draw bbox currentpicture withcolor .625red;
+ currentpicture := currentpicture scaled \gantt!factor;
+ \stopMPdrawing
+ \MPdrawingdonetrue\getMPdrawing
+ \resetMPdrawing
+ \doglobal\ganttnum=0
+ }
+
+% ganttitle is the environment for drawing the title section
+\definestartstop[ganttitle][
+ before={
+ \ganttlastx = 0cm
+ \doglobal\advance\ganttnum by 1
+ },
+ after={
+ \ganttlastx = 0cm
+ }
+ ]
+
+% \titleelement draws one element of the title
+% usage: \titleelement{label}{length}
+\unexpanded\long\def\dotitleelement#1#2%
+ {\gantttmpa=\dimexpr\gantt!ganttunitlength*#2\relax
+ \divide\gantttmpa by 2
+
+ \startMPdrawing
+ draw (\the\ganttlastx,0.5cm-\the\!!row*cm)--(\the\ganttlastx+#2*\gantt!ganttunitlength,0.5cm-\the\!!row*cm)--(\the\ganttlastx+#2*\gantt!ganttunitlength,0.5cm-0.6cm-\the\!!row*cm)--(\the\ganttlastx,0.5cm-0.6cm-\the\!!row*cm)--cycle;
+ path diam; diam = (\the\ganttlastx,0.5cm-\the\!!row*cm)--(\the\ganttlastx+#2*\gantt!ganttunitlength,0.5cm-0.6cm-\the\!!row*cm);
+ label (textext("\getvalue{gantt!titlestyle}{#1}"), center diam);
+ \stopMPdrawing
+
+ \ganttlastx=\dimexpr\ganttlastx+\gantt!ganttunitlength*#2\relax
+ }
+
+\unexpanded\def\titleelement%
+ {\dotitleelement}
+
+% \numtitle draws a numbered sequence of title elements
+% usage: \numtitle{start number}{increment}{end number}{length of each title element}
+\unexpanded\long\def\donumtitle#1#2#3#4%
+ {\gantttitlenum=#1
+ \dostepwiserecurse{#1}{#3}{#2}{
+ \titleelement{\the\gantttitlenum}{#4}
+ \advance\gantttitlenum by #2
+ }
+ }
+
+\unexpanded\def\numtitle%
+ {\donumtitle}
+
+% \ganttbar draws a single, unconnected bar for representing a task
+% usage: \ganttbar[pattern=<pattern>,color=<color>]{label}{start}{length}
+% where the optional comma separated arguments are:
+% pattern - not implemented with MetaPost yet! (FIXME)
+% color - a color of the pattern (e.g. red, green blue gray, dark gray)
+\unexpanded\long\def\doganttbar[#1]#2#3#4%
+ {\bgroup
+ \getparameters[\????gantt][#1]%
+ \edef\gantt!pattern{\@@@@ganttpattern}
+ \edef\gantt!color{\@@@@ganttcolor}
+
+ \gantttmpa=\dimexpr\gantt!ganttunitlength*#3\relax
+ \gantttmpb=\dimexpr\gantt!ganttunitlength*#4+\gantttmpa\relax
+
+ \doif{\gantt!drawledgerline}{true}{
+ \startMPdrawing
+ draw (0,-\the\ganttnum*cm-0.2cm)--(\the\ganttwidth*\gantt!ganttunitlength,-\the\ganttnum*cm-0.2cm) dashed withdots;
+ \stopMPdrawing
+ }
+ \startMPdrawing
+ path diag; diag = (0,-\the\ganttnum*cm+0.1cm)--(0,-\the\ganttnum*cm+0.5cm);
+ label.lft (textext("\getvalue{gantt!style}{#2}"), center diag);
+ path f; f := (\the\gantttmpa,-\the\ganttnum*cm+0.1cm)--(\the\gantttmpb,-\the\ganttnum*cm+0.1cm)--(\the\gantttmpb,-\the\ganttnum*cm+0.5cm)--(\the\gantttmpa,-\the\ganttnum*cm+0.5cm)--cycle;
+
+ hatchoptions(withcolor \gantt!color);
+ draw f withcolor black;
+ % workaround for transparent bug
+ % hatchfill f withcolor transparent("normal",0,white) withcolor (45,1mm,-0.5bp);
+ hatchfill f withcolor (45,1mm,-0.5bp);
+ \stopMPdrawing
+
+ \global\ganttlastx=\gantttmpb
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttbar
+ {\dosingleempty\doganttbar}
+
+% \ganttcon draws an arrow between to bars with specified coordinates
+% usage: \ganttcon{startx}{starty}{endx}{endy}
+\unexpanded\long\def\doganttcon#1#2#3#4%
+ {\bgroup
+ \startMPdrawing
+ begingroup;
+ interim linecap := squared;
+ interim linejoin := rounded;
+
+ drawarrow (#1*\gantt!ganttunitlength,-#2*cm+0.1cm+0.2cm)--(#1*\gantt!ganttunitlength+0.4*\gantt!ganttunitlength,-#2*cm+0.1*cm+0.2*cm)--(#1*\gantt!ganttunitlength+0.4*\gantt!ganttunitlength,-#2*cm-0.4*cm+0.2*cm)--(#1*\gantt!ganttunitlength-0.4*\gantt!ganttunitlength,-#2*cm-0.4*cm+0.2*cm)--(#1*\gantt!ganttunitlength-0.4*\gantt!ganttunitlength,-#4*cm+0.1*cm+0.2*cm)--(#3*\gantt!ganttunitlength,-#4*cm+0.1*cm+0.2*cm);
+ endgroup;
+ \stopMPdrawing
+ \egroup
+ }
+
+\unexpanded\def\ganttcon
+ {\doganttcon}
+
+% \ganttbarcon draws a single bar *and* connects the bar with the previous bar for
+% consecutive tasks
+% usage: \ganttbarcon[pattern=<pattern>,color=<color>]{label}{start}{length}
+% where the optional pattern argument are the same as for \ganttbar
+\unexpanded\long\def\doganttbarcon[#1]#2#3#4%
+ {\bgroup
+ \getparameters[\????gantt][#1]%
+ \edef\gantt!pattern{\@@@@ganttpattern}
+ \edef\gantt!color{\@@@@ganttcolor}
+
+ \nextganttlastx = \dimexpr\ganttlastx+\ganttunitlength*1\relax
+ \ifdim\nextganttlastx>\dimexpr\gantt!ganttunitlength*#3\relax
+ \startMPdrawing
+ begingroup;
+ interim linecap := squared;
+ interim linejoin := rounded;
+
+ drawarrow (\the\ganttlastx,-\the\ganttnum*cm+1.1*cm+0.2*cm)--(\the\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+1.1*cm+0.2*cm)--(\the\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+0.6*cm+0.2*cm)--(\the\ganttlastx-0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+0.6*cm+0.2*cm)--(\the\ganttlastx-0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+0.1*cm+0.2*cm)--(#3*\gantt!ganttunitlength,-\the\ganttnum*cm+0.1*cm+0.2*cm);
+ endgroup;
+ \stopMPdrawing
+ \else
+ \startMPdrawing
+ begingroup;
+ interim linecap := squared;
+ interim linejoin := rounded;
+
+ drawarrow (\the\ganttlastx,-\the\ganttnum*cm+1.1*cm+0.2*cm)--(\the\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+1.1*cm+0.2*cm)--(\the\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+0.1*cm+0.2*cm)--(#3*\gantt!ganttunitlength,-\the\ganttnum*cm+0.1*cm+0.2*cm);
+ endgroup;
+ \stopMPdrawing
+ \fi
+
+ \ganttbar[#1]{#2}{#3}{#4}
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttbarcon
+ {\dosingleempty\doganttbarcon}
+
+% \ganttgroup draws a bar to group tasks
+% usage: \ganttgroup{label}{start}{length}
+\unexpanded\long\def\doganttgroup#1#2#3%
+ {\bgroup
+ \gantttmpa=\dimexpr\gantt!ganttunitlength*#2\relax
+ \gantttmpb=\dimexpr\gantt!ganttunitlength*#3+\gantttmpa\relax
+
+ \doif{\gantt!drawledgerline}{true}{
+ \startMPdrawing
+ draw (0,-\the\ganttnum*cm-0.2cm)--(\the\ganttwidth*\gantt!ganttunitlength,-\the\ganttnum*cm-0.2cm) dashed withdots;
+ \stopMPdrawing
+ }
+ \startMPdrawing
+ pen diamond; diamond := makepen fulldiamond;
+ path diag; diag = (0,-\the\ganttnum*cm+0.1cm)--(0,-\the\ganttnum*cm+0.5cm);
+ label.lft (textext("\getvalue{gantt!style}{\bf #1}"), center diag);
+ fill (\the\gantttmpa-0.14*cm,-\the\ganttnum*cm+0.2cm)--(\the\gantttmpb+0.14*cm,-\the\ganttnum*cm+0.2cm)--(\the\gantttmpb+0.14*cm,-\the\ganttnum*cm+0.4cm)--(\the\gantttmpa-0.14*cm,-\the\ganttnum*cm+0.4cm)--cycle withcolor black;
+ fill fulldiamond scaled 0.3cm shifted (\the\gantttmpa+0.01cm,-\the\ganttnum*cm+0.2cm) withcolor black;
+ fill fulldiamond scaled 0.3cm shifted (\the\gantttmpb-0.01cm,-\the\ganttnum*cm+0.2cm) withcolor black;
+ \stopMPdrawing
+
+ \global\ganttlastx=\gantttmpb
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttgroup
+ {\doganttgroup}
+
+% \ganttmilestone, draw a diamond to represent a milestone
+% usage: \ganttgroup[color=<color>]{label}{start}
+% color - a tikz color of the pattern (e.g. red, green blue gray, dark gray)
+% for more information see the tikz documentation
+
+% Declaring layers to abvoid superposition when you connect a \ganttmileston with a task
+\unexpanded\long\def\doganttmilestone[#1]#2#3%
+ {\bgroup
+ \getparameters[\????gantt][#1]%
+ \edef\gantt!color{\@@@@ganttcolor}
+
+ \gantttmpa=\dimexpr\gantt!ganttunitlength*#3\relax
+ \gantttmpb=\dimexpr\gantt!ganttunitlength*0+\gantttmpa\relax
+
+ \doif{\gantt!drawledgerline}{true}{
+ \startMPdrawing
+ draw (0,-\the\ganttnum*cm-0.2cm)--(\the\ganttwidth*\gantt!ganttunitlength,-\the\ganttnum*cm-0.2cm) dashed withdots;
+ \stopMPdrawing
+ }
+ \startMPdrawing
+ pen diamond; diamond := makepen fulldiamond;
+ path diag; diag = (0,-\the\ganttnum*cm+0.1cm)--(0,-\the\ganttnum*cm+0.5cm);
+ label.lft (textext("\getvalue{gantt!style}{#2}"), center diag);
+ fill fulldiamond scaled 0.3cm shifted (\the\gantttmpb,-\the\ganttnum*cm+0.3cm) withcolor \gantt!color;
+ \stopMPdrawing
+
+ \global\ganttlastx=\gantttmpb
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttmilestone
+ {\dosingleempty\doganttmilestone}
+
+% \ganttmilestonecon draws a single diamond *and* connects the diamond with the previous task
+% usage: \ganttmilestonecon[color=<color>]{label}{start}{length}
+% where the optional color argument are the same as for \ganttbar and \ganttmilestone
+\unexpanded\long\def\doganttmilestonecon[#1]#2#3%
+ {\bgroup
+ \getparameters[\????gantt][#1]%
+ \edef\gantt!color{\@@@@ganttcolor}
+
+ \nextganttlastx = \dimexpr\ganttlastx+\ganttunitlength*1\relax
+ \ifdim\nextganttlastx>\dimexpr\gantt!ganttunitlength*#3\relax
+ \startMPdrawing
+ begingroup;
+ interim linecap := squared;
+ interim linejoin := rounded;
+
+ drawarrow (\the\ganttlastx,-\the\ganttnum*cm+1.1*cm+0.2*cm)--(\the\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+1.1*cm+0.2*cm)--(\the\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+0.6*cm+0.2*cm)--(\the\ganttlastx-0.4*\gantt!ganttunitlength-0.14*cm,-\the\ganttnum*cm+0.6*cm+0.2*cm)--(\the\ganttlastx-0.4*\gantt!ganttunitlength-0.14*cm,-\the\ganttnum*cm+0.1*cm+0.2*cm)--(#3*\gantt!ganttunitlength-0.14*cm,-\the\ganttnum*cm+0.1*cm+0.2*cm);
+ endgroup;
+ \stopMPdrawing
+ \else
+ \startMPdrawing
+ begingroup;
+ interim linecap := squared;
+ interim linejoin := rounded;
+
+ drawarrow (\the\ganttlastx,-\the\ganttnum*cm+1.1*cm+0.2*cm)--(\the\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+1.1*cm+0.2*cm)--(\the\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum*cm+0.1*cm+0.2*cm)--(#3*\gantt!ganttunitlength-0.14*cm,-\the\ganttnum*cm+0.1*cm+0.2*cm);
+ endgroup;
+ \stopMPdrawing
+ \fi
+
+ \ganttmilestone[#1]{#2}{#3}
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttmilestonecon
+ {\dosingleempty\doganttmilestonecon}
+
+\protect \stopmodule
diff --git a/obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/gantt-s-tikz.tex b/obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/gantt-s-tikz.tex
new file mode 100644
index 0000000000..bb0f1a7c8c
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/gantt-s-tikz.tex
@@ -0,0 +1,312 @@
+%D \module
+%D [ file=t-gantt-tikz,
+%D version=2012.08.19,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Drawing Gantt charts,
+%D author=Adam Reviczky,
+%D date=\currentdate,
+%D copyright=Adam Reviczky,
+%D license=Public Domain]
+
+%D Some macros for drawing Gantt charts using TikZ.
+
+\writestatus{loading}{ConTeXt User Module / tikz gantt chart}
+
+\startmodule[gantt-s-tikz]
+\unprotect
+
+\def\??gantt-tikz{@@gantt-tikz}
+
+\usemodule[tikz,pgffor]
+\usetikzlibrary[arrows,patterns]
+
+\definesystemvariable{gantt}
+
+\newcount\ganttnum
+\newcount\gantttitlenum
+\newcount\ganttwidth
+
+\newdimen\ganttlastx \ganttlastx = 0cm
+\newdimen\nextganttlastx
+\newdimen\titleunitlength \titleunitlength = 1cm
+\newdimen\ganttunitlength \ganttunitlength = 1cm
+
+\newdimen\gantttmpa
+\newdimen\gantttmpb
+
+% workaround for titleelement
+\def\!!row{\numexpr\ganttnum-1\relax}
+
+\unexpanded\def\setupgantt
+ {\bgroup
+ \dosingleempty
+ \dosetupgantt}
+
+\unexpanded\def\dosetupgantt[#1]%
+ {\egroup
+ \getparameters[\??gantt][#1]}
+
+\setupgantt
+ [xunitlength=1cm,
+ fontsize=\tf,
+ titlefontsize=\tfx,
+ drawledgerline=false]
+
+\unexpanded\def\setupganttbar
+ {\bgroup
+ \dosingleempty
+ \dosetupganttbar}
+
+\unexpanded\def\dosetupganttbar[#1]%
+ {\egroup
+ \getparameters[\??gantt][#1]}
+
+\setupganttbar
+ [pattern=north east lines,
+ color=black]
+
+% The gantt environment draws the canvas of a gantt figure (realized as tikzpicture)
+% The usage is \startgantt[...]{no of Tasks to plot}{no of time slots}
+% The optional argument [...] can be filled in a key=value syntax, using one or more of the following keys:
+%
+% xunitlength - length of one time slot (default: 1 cm)
+% fontsize - fontsize of labels (default: \tf)
+% titlefontsize - fontsize of title section (default: \tfx)
+% drawledgerline - Switch to enable/disable the drawing of horizontal ledger lines (default value: false)
+
+\unexpanded\long\def\dostartgantt[#1]#2#3%
+ {\getparameters[\??gantt][#1]%
+ \gdef\gantt!ganttunitlength{\getvalue{@@ganttxunitlength}}
+ \gdef\gantt!fontsize{\getvalue{@@ganttfontsize}}
+ \gdef\gantt!titlefontsize{\getvalue{@@gantttitlefontsize}}
+ \gdef\gantt!drawledgerline{\@@ganttdrawledgerline}
+
+ \bgroup
+ \tikzstyle{time}=[coordinate]
+
+ \newcount\ganttx \ganttx=0
+ \newcount\ganttheight
+
+ \def\ganttxstringtop{}
+ \def\ganttxstringbottom{}
+
+ \global\ganttwidth=#3
+ \global\ganttnum=0
+
+ \ganttheight=#2
+ \advance\ganttheight by 1;
+
+ \draw (0,0.5) node[above] {\ganttxstringtop} -- (0,1.4-\ganttheight) node[below] {\ganttxstringbottom};
+ \draw (\ganttwidth*\gantt!ganttunitlength,0.5) node[above] {\ganttxstringtop} -- (\ganttwidth*\gantt!ganttunitlength,1.4-\ganttheight) node[below] {\ganttxstringbottom};
+
+ % draw grid
+ \foreach \!!t in {1,2,...,\ganttwidth}{
+ \draw[dotted] (\gantt!ganttunitlength*\!!t,-0.5) node[above] {\ganttxstringtop} -- (\gantt!ganttunitlength*\!!t,1.4-\ganttheight) node[below] {\ganttxstringbottom};
+ }
+
+ % draw x axis
+ \draw[] (0,-#2+0.4) -- (\ganttwidth*\gantt!ganttunitlength,-#2+0.4);
+ \egroup
+ }
+
+\unexpanded\def\startgantt%
+ {\starttikzpicture[draw=black,yscale=.7,xscale=1]
+ \dosingleempty\dostartgantt}
+
+\unexpanded\def\stopgantt%
+ {\doglobal\ganttnum=0
+ \stoptikzpicture}
+
+% ganttitle is the environment for drawing the title section
+\definestartstop[ganttitle][
+ before={
+ \ganttlastx = 0cm
+ \doglobal\advance\ganttnum by 1
+ },
+ after={
+ \ganttlastx = 0cm
+ }
+ ]
+
+% \titleelement draws one element of the title
+% usage: \titleelement{label}{length}
+\unexpanded\long\def\dotitleelement#1#2%
+ {\gantttmpa=\dimexpr\gantt!ganttunitlength*#2\relax
+ \divide\gantttmpa by 2;
+
+ \def\!!xoffset{1.5}
+
+ \draw (\ganttlastx,-\the\!!row) rectangle (\ganttlastx+#2*\gantt!ganttunitlength,-\the\!!row+0.6);
+ \node [text height=1.5ex,text depth=0.7ex] at (\ganttlastx+\gantttmpa-\!!xoffset,-\the\!!row+0.25) {%
+ \getvalue{gantt!titlefontsize} #1%
+ };
+
+ \ganttlastx=\dimexpr\ganttlastx+\gantt!ganttunitlength*#2\relax
+ }
+
+\unexpanded\def\titleelement%
+ {\dotitleelement}
+
+% \numtitle draws a numbered sequence of title elements
+% usage: \numtitle{start number}{increment}{end number}{length of each title element}
+\unexpanded\long\def\donumtitle#1#2#3#4%
+ {\gantttitlenum=#1
+ \dostepwiserecurse{#1}{#3}{#2}{
+ \titleelement{\the\gantttitlenum}{#4}
+ \advance\gantttitlenum by #2;
+ }
+ }
+
+\unexpanded\def\numtitle%
+ {\donumtitle}
+
+% \ganttbar draws a single, unconnected bar for representing a task
+% usage: \ganttbar[pattern=<pattern>,color=<color>]{label}{start}{length}
+% where the optional comma separated arguments are:
+% pattern - is a tikz pattern (e.g. north east lines (default), north west lines, crosshatch, crosshatch dots, grid, ...)
+% color - a tikz color of the pattern (e.g. red, green blue gray, dark gray)
+% for more information see the tikz documentation
+\unexpanded\long\def\doganttbar[#1]#2#3#4%
+ {\bgroup
+ \getparameters[\??gantt][#1]%
+ \edef\gantt!pattern{\@@ganttpattern}
+ \edef\gantt!color{\@@ganttcolor}
+
+ \gantttmpa=\dimexpr\gantt!ganttunitlength*#3\relax
+ \gantttmpb=\dimexpr\gantt!ganttunitlength*#4+\gantttmpa\relax
+
+ \doif{\gantt!drawledgerline}{true}{
+ \draw[dotted] (0,-\the\ganttnum-0.2) -- (\ganttwidth*\gantt!ganttunitlength,-\the\ganttnum-0.2);
+ }
+ \node at (0,-\the\ganttnum+0.1) [anchor=base east] {%
+ \getvalue{gantt!fontsize} #2%
+ };
+ \draw[pattern=\gantt!pattern,pattern color=\gantt!color] (\gantttmpa,-\the\ganttnum+0.1) rectangle (\gantttmpb,-\the\ganttnum+0.5);
+ \global\ganttlastx=\gantttmpb
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttbar
+ {\dosingleempty\doganttbar}
+
+% \ganttcon draws an arrow between to bars with specified coordinates
+% usage: \ganttcon{startx}{starty}{endx}{endy}
+\unexpanded\long\def\doganttcon#1#2#3#4%
+ {\bgroup
+ \draw[-latex,rounded corners=1pt] (#1*\gantt!ganttunitlength,-#2+0.1+0.2) -- (#1*\gantt!ganttunitlength+0.4*\gantt!ganttunitlength,-#2+0.1+0.2) -- (#1*\gantt!ganttunitlength+0.4*\gantt!ganttunitlength,-#2-0.4+0.2) -- (#1*\gantt!ganttunitlength-0.4*\gantt!ganttunitlength,-#2-0.4+0.2) -- (#1*\gantt!ganttunitlength-0.4*\gantt!ganttunitlength,-#4+0.1+0.2) -- (#3*\gantt!ganttunitlength,-#4+0.1+0.2);
+ \egroup
+ }
+
+\unexpanded\def\ganttcon
+ {\doganttcon}
+
+% \ganttbarcon draws a single bar *and* connects the bar with the previous bar for
+% consecutive tasks
+% usage: \ganttbarcon[pattern=<pattern>,color=<color>]{label}{start}{length}
+% where the optional pattern argument are the same as for \ganttbar
+\unexpanded\long\def\doganttbarcon[#1]#2#3#4%
+ {\bgroup
+ \getparameters[\??gantt][#1]%
+ \edef\gantt!pattern{\@@ganttpattern}
+ \edef\gantt!color{\@@ganttcolor}
+
+ \nextganttlastx = \dimexpr\ganttlastx+\ganttunitlength*1\relax
+ \ifdim\nextganttlastx>\dimexpr\gantt!ganttunitlength*#3\relax
+ \draw[-latex,rounded corners=1pt] (\ganttlastx,-\the\ganttnum+1.1+0.2) -- (\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum+1.1+0.2) -- (\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum+0.6+0.2) -- (\ganttlastx-0.4*\gantt!ganttunitlength,-\the\ganttnum+0.6+0.2) -- (\ganttlastx-0.4*\gantt!ganttunitlength,-\the\ganttnum+0.1+0.2) -- (#3*\gantt!ganttunitlength,-\the\ganttnum+0.1+0.2);
+ \else
+ \draw[-latex,rounded corners=1pt] (\ganttlastx,-\the\ganttnum+1.1+0.2) -- (\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum+1.1+0.2) -- (\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum+0.1+0.2) -- (#3*\gantt!ganttunitlength,-\the\ganttnum+0.1+0.2);
+ \fi
+
+ %hbox overfull!
+ \ganttbar[#1]{#2}{#3}{#4}
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttbarcon
+ {\dosingleempty\doganttbarcon}
+
+% \ganttgroup draws a bar to group tasks
+% usage: \ganttgroup{label}{start}{length}
+\unexpanded\long\def\doganttgroup#1#2#3%
+ {\bgroup
+ \gantttmpa=\dimexpr\gantt!ganttunitlength*#2\relax
+ \gantttmpb=\dimexpr\gantt!ganttunitlength*#3+\gantttmpa\relax
+
+ \doif{\gantt!drawledgerline}{true}{
+ \draw[dotted] (0,-\the\ganttnum-0.2) -- (\ganttwidth*\gantt!ganttunitlength,-\the\ganttnum-0.2);
+ }
+ \node at (0,-\the\ganttnum+0.1) [anchor=base east] {%
+ \getvalue{gantt!fontsize}\bf #1%
+ };
+ \fill[black] (\gantttmpa-0.14cm,-\the\ganttnum+0.2) rectangle (\gantttmpb+0.14cm,-\the\ganttnum+0.4);
+ \draw[diamond-diamond] (\gantttmpa-0.14cm,-\the\ganttnum+0.2) -- (\gantttmpb+0.14cm,-\the\ganttnum+0.2);
+
+ \global\ganttlastx=\gantttmpb
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttgroup
+ {\doganttgroup}
+
+% \ganttmilestone, draw a diamond to represent a milestone
+% usage: \ganttmilestone[color=<color>]{label}{start}
+% color - a tikz color of the pattern (e.g. red, green blue gray, dark gray)
+% for more information see the tikz documentation
+
+% Declaring layers to abvoid superposition when you connect a \ganttmileston with a task
+\pgfdeclarelayer{background}
+\pgfdeclarelayer{foreground}
+\pgfsetlayers{background,main,foreground}
+
+\unexpanded\long\def\doganttmilestone[#1]#2#3%
+ {\bgroup
+ \getparameters[\??gantt][#1]%
+ \edef\gantt!color{\@@ganttcolor}
+
+ \gantttmpa=\dimexpr\gantt!ganttunitlength*#3\relax
+ \gantttmpb=\dimexpr\gantt!ganttunitlength*0+\gantttmpa\relax
+
+ \doif{\gantt!drawledgerline}{true}{
+ \draw[dotted] (0,-\the\ganttnum-0.2) -- (\ganttwidth*\gantt!ganttunitlength,-\the\ganttnum-0.2);
+ }
+ \node at (0,-\the\ganttnum) [anchor=base east] {%
+ \getvalue{gantt!fontsize} #2%
+ };
+ \pgfonlayer{foreground}
+ \draw[diamond-, color=\gantt!color] (\gantttmpa,-\the\ganttnum+0.1) -- (\gantttmpb,-\the\ganttnum+0.4);
+ \endpgfonlayer
+ \global\ganttlastx=\gantttmpb
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttmilestone
+ {\dosingleempty\doganttmilestone}
+
+% \ganttmilestonecon draws a single diamond *and* connects the diamond with the previous task
+% usage: \ganttmilestonecon[color=<color>]{label}{start}
+% where the optional color argument are the same as for \ganttbar and \ganttmilestone
+\unexpanded\long\def\doganttmilestonecon[#1]#2#3%
+ {\bgroup
+ \getparameters[\??gantt][#1]%
+ \edef\gantt!color{\@@ganttcolor}
+
+ \nextganttlastx = \dimexpr\ganttlastx+\ganttunitlength*1\relax
+ \ifdim\nextganttlastx>\dimexpr\gantt!ganttunitlength*#3\relax
+ \draw[-latex,rounded corners=1pt] (\ganttlastx,-\the\ganttnum+1.1+0.2) -- (\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum+1.1+0.2) -- (\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum+0.6+0.2) -- (\ganttlastx-0.4*\gantt!ganttunitlength-1.8,-\the\ganttnum+0.6+0.2) -- (\ganttlastx-0.4*\gantt!ganttunitlength-1.8,-\the\ganttnum+0.1+0.2) -- (#3*\gantt!ganttunitlength-1.8,-\the\ganttnum+0.1+0.2);
+ \else
+ \draw[-latex,rounded corners=1pt] (\ganttlastx,-\the\ganttnum+1.1+0.2) -- (\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum+1.1+0.2) -- (\ganttlastx+0.4*\gantt!ganttunitlength,-\the\ganttnum+0.1+0.2) -- (#3*\gantt!ganttunitlength-1.8,-\the\ganttnum+0.1+0.2);
+ \fi
+
+ \ganttmilestone[#1]{#2}{#3}
+ \egroup
+ \doglobal\advance\ganttnum by 1
+ }
+
+\unexpanded\def\ganttmilestonecon
+ {\dosingleempty\doganttmilestonecon}
+
+\protect \stopmodule
diff --git a/obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/t-gantt.tex b/obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/t-gantt.tex
new file mode 100644
index 0000000000..06cecfb54a
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-gantt/tex/context/third/gantt/t-gantt.tex
@@ -0,0 +1,23 @@
+%D \module
+%D [ file=t-gantt,
+%D version=2012.08.19,
+%D title=\CONTEXT\ Module,
+%D subtitle=Gantt Module,
+%D author={Adam Reviczky and Aditya Mahajan},
+%D date=\currentdate,
+%D copyright={Adam Reviczky and Aditya Mahajan},
+%D license=Public Domain]
+
+\writestatus{loading}{module gantt}
+
+\startmodule[gantt]
+
+\unprotect
+\setupmodule[alternative=]
+
+\doifdefinedelse{\currentmoduleparameter{\c!alternative}}
+ {\usemodule[gantt-s-mp]}
+ {\usemodule[gantt-s-\currentmoduleparameter{\c!alternative}]}
+
+\protect
+\stopmodule
diff --git a/obsolete/macros/context/contrib/context-inifile/VERSION b/obsolete/macros/context/contrib/context-inifile/VERSION
new file mode 100644
index 0000000000..53ed26412b
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-inifile/VERSION
@@ -0,0 +1 @@
+2008.07.15
diff --git a/obsolete/macros/context/contrib/context-inifile/doc/context/third/inifile/inifile-demo.pdf b/obsolete/macros/context/contrib/context-inifile/doc/context/third/inifile/inifile-demo.pdf
new file mode 100644
index 0000000000..94ee02ad2f
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-inifile/doc/context/third/inifile/inifile-demo.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-inifile/doc/context/third/inifile/inifile-doc.pdf b/obsolete/macros/context/contrib/context-inifile/doc/context/third/inifile/inifile-doc.pdf
new file mode 100644
index 0000000000..2dc6a2a5ec
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-inifile/doc/context/third/inifile/inifile-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-inifile/tex/context/third/inifile/t-inifile.tex b/obsolete/macros/context/contrib/context-inifile/tex/context/third/inifile/t-inifile.tex
new file mode 100644
index 0000000000..df1c883080
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-inifile/tex/context/third/inifile/t-inifile.tex
@@ -0,0 +1,221 @@
+%D \module
+%D [ file=t-inifile,
+%D version=2008.07.15,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Formatting of ini-files,
+%D author=Peter Münster,
+%D date=\currentdate,
+%D copyright={Peter Münster}]
+%C This module is copyrighted by Peter Münster.
+%C Please send any comments to pmrb at free.fr.
+%C You can find the latest version of this module on
+%C http://modules.contextgarden.net/
+
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+
+% This program 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
+% GNU General Public License for more details.
+
+\writestatus{loading}{Formatting of ini-files}
+\doifnotmode{mkiv}{\writestatus{error}{needs luatex}\wait\end}
+
+\unprotect
+
+\startluacode
+-- namespace
+thirddata = thirddata or { }
+thirddata.inifile = {}
+
+-- sort the table
+-- s1: primary key
+-- s2: secondary key
+-- s3: third key
+local function sort_table(s1, s2, s3)
+ local function cmp(a, b)
+ if s2 ~= "" and a[s1] == b[s1] then
+ if s3 ~= "" and a[s2] == b[s2] then
+ return a[s3] < b[s3]
+ else
+ return a[s2] < b[s2]
+ end
+ else
+ return a[s1] < b[s1]
+ end
+ end
+ if s1 ~= "" then
+ table.sort(thirddata.inifile.t, cmp)
+ end
+end
+
+-- write default values to table entry
+-- d: the default values separated by commas
+-- i: the index of the entry
+local function write_defaults(d, i)
+ for k, v in string.gmatch(d, "[,%s]*(.-)=([^,]*)") do
+ thirddata.inifile.t[i][k] = v
+ end
+end
+
+-- generate table from ini-file
+-- d: default values for all entries
+-- s1: primary sort-key
+-- s2: secondary sort-key
+-- s3: third sort-key
+function thirddata.inifile.make_table(d, s1, s2, s3)
+ thirddata.inifile.t = {}
+ local i = 0
+ local lastkey
+ while true do
+ local l = io.read()
+ if not l then
+ break
+ end
+ while true do
+ -- check for new entry:
+ key = string.match(l, "^%[(.+)%]$")
+ if key then
+ i = i + 1
+ thirddata.inifile.t[i] = {}
+ thirddata.inifile.t[i]["key"] = key
+ thirddata.inifile.t[i]["n"] = i
+ write_defaults(d, i)
+ break -- continue !
+ end
+ -- treat continued lines:
+ while string.match(l, "\\$") do
+ local c = io.read()
+ l = string.match(l, "^(.*)\\$") .. c
+ end
+ local c = string.match(l, "^%s+(.*)$")
+ if c then
+ thirddata.inifile.t[i][lastkey] =
+ thirddata.inifile.t[i][lastkey] .. " " .. c
+ end
+ -- get a new key value pair:
+ key, val = string.match(l, "^([%w_]+)%s*=%s(.*)$")
+ if key then
+ thirddata.inifile.t[i][key] = val
+ lastkey = key
+ end
+ break
+ end
+ end
+ sort_table(s1, s2, s3)
+ print(table.serialize(thirddata.inifile.t))
+end
+
+-- let ConTeXt print the sorted table with user defined formatting
+-- c: the user supplied command to print one entry
+function thirddata.inifile.print(c)
+ for i = 1,#thirddata.inifile.t do
+ tex.print(string.format("%s\\def\\IF@index{%d}%s\\%s",
+ "\\unprotect", i, "\\protect", c))
+ end
+end
+
+-- initialise the new entry, in general to be called in the beginning
+-- of the user supplied formatting command
+-- i: the index of the new entry
+function thirddata.inifile.newentry(i)
+ for k, v in pairs(thirddata.inifile.t[i]) do
+ tex.print(string.format("\\def\\IF%s{%s}", k, v))
+ end
+end
+
+-- filter applied to values of a key
+-- k: the key
+-- s: the search pattern
+-- r: the replace string
+function thirddata.inifile.filter(k, s, r)
+ for i = 1,#thirddata.inifile.t do
+ thirddata.inifile.t[i][k] =
+ string.gsub(thirddata.inifile.t[i][k], s, r)
+ end
+end
+\stopluacode
+
+\getparameters[IF@][defaults=,sortA=,sortB=,sortC=,file=/dev/null]
+\def\setupIniFile[#1]{
+ \getparameters[IF@][#1]
+ \ctxlua{io.input("\IF@file")}
+ \ctxlua{thirddata.inifile.make_table("\IF@defaults",
+ "\IF@sortA", "\IF@sortB", "\IF@sortC")}
+}
+\def\IniFilePrint{\ctxlua{thirddata.inifile.print("\IF@command")}}
+\def\IniFileNewEntry{\ctxlua{thirddata.inifile.newentry(\IF@index)}}
+\def\IniFileFilter[#1][#2][#3]{\ctxlua{thirddata.inifile.filter("#1",
+ "#2", "#3")}}
+
+\protect
+
+\doifnotmode{demo}{\endinput}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%D Usage example:
+
+\startbuffer[thewho]
+[p_t]
+givenname = Peter
+surname = Townshend
+birthyear = 1945
+comment = 100 % with nobreakspace
+
+[r_d]
+givenname = Roger
+surname = Daltrey
+comment = 100 % with thinspace
+
+[j_e]
+givenname = John
+surname = Entwistle
+comment = very very very very
+ long line
+
+[k_m]
+givenname = Keith
+surname = Moon
+birthyear = 1946
+comment = another very very very very \
+ long line
+
+[k_j]
+givenname = Kenney
+surname = Jones
+birthyear = 1948
+comment = yet another very very very very \
+long line
+\stopbuffer
+\savebuffer[thewho]
+
+\usemodule[inifile]
+
+\setupIniFile[defaults={birthyear=1944,comment=},
+ sortA=birthyear,sortB=key,command=FormatMember,file=\jobname-thewho.tmp]
+\IniFileFilter[comment][\%\% ][\\letterpercent\\space ]
+\IniFileFilter[comment][\%\%][\\letterpercent ]
+
+\setupTABLE[frame=off,width=0.5\textwidth]
+\nonknuthmode
+
+\def\IFbirthyear{}
+\def\FormatMember{
+ \edef\LastBirthyear{\IFbirthyear}
+ \IniFileNewEntry
+ \doifnot\IFbirthyear\LastBirthyear{\section{\IFbirthyear}}
+ \subsection{\WORD{\IFkey}}
+ \bTABLE\bTR
+ \bTD Given name: \IFgivenname\eTD\bTD Surname: \IFsurname\eTD
+ \eTR\eTABLE
+ \doifsomething\IFcomment{Comment to show the treatment of the percent
+ sign and multi-line values: \IFcomment}}
+
+\starttext
+\title{The Who}
+\IniFilePrint
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-layout/VERSION b/obsolete/macros/context/contrib/context-layout/VERSION
new file mode 100644
index 0000000000..90da282144
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-layout/VERSION
@@ -0,0 +1 @@
+2007.06.27
diff --git a/obsolete/macros/context/contrib/context-layout/doc/context/third/layout/t-layout.pdf b/obsolete/macros/context/contrib/context-layout/doc/context/third/layout/t-layout.pdf
new file mode 100644
index 0000000000..4e1d7cd0c1
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-layout/doc/context/third/layout/t-layout.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-layout/tex/context/third/layout/t-layout.tex b/obsolete/macros/context/contrib/context-layout/tex/context/third/layout/t-layout.tex
new file mode 100644
index 0000000000..7ca9d6e1b6
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-layout/tex/context/third/layout/t-layout.tex
@@ -0,0 +1,411 @@
+%% Last Change: Fri Apr 22 11:06:09 2005
+
+%D \module
+%D [ file=t-layout,
+%D version=2003.03.26,
+%D title=\CONTEXT\ User Module,
+%D subtitle=show layout,
+%D author=Patrick Gundlach,
+%D date=\currentdate,
+%D copyright={Patrick Gundlach}]
+
+
+%C filename: t-layout.tex
+%C module layout, shows layout of current page
+
+
+%C copyright 2003,2007 Patrick Gundlach, patrick@gundla.ch
+%C may be distributed under the terms of the GNU General Public License
+%C URL: http://levana.de/context/
+
+%D \subject{Introduction}
+%D This third-party module \quote{layout} draws a representation of
+%D the of the layout of the
+%D current page and displays the sizes of the widths and heights of the
+%D margins, header, footer and text body.
+
+%D \subject{Usage}
+%D Include this module into your ConTeXt files:
+%D \type{\usemodule[t][layout]} and show the layout with \type{\ShowLayout}.
+
+%D You can set some parameters using \type{\SetupShowLayout}. The
+%D parameters are: units, digits, round, showmore and graphonly.
+%D If graphonly (0/1) is 0, this module shows the lenghts of some text areas.
+%D units (cm, mm, in or pt) sets the unit in which the lengths will be
+%D displayed, digits (any number $\geq 0$)
+%D sets the number of digits after the decimal period, round (any
+%D number $\neq 0$) states
+%D the place where rounding of the displayed numbers should occur
+%D (\TeX\ is bad at calculating such things) and showmore (0/1) tells
+%D this module to display information about the edge and top/bottom.
+
+%D Example:
+%D \starttyping
+%D \ShowLayout
+%D [units=cm,
+%D digits=2,
+%D round=0.1,
+%D showmore=1,
+%D graphonly=1]
+%D
+%D \stoptyping
+
+%D The idea was taken from the \type{\layout} command from the layout LaTeX
+%D package. (Kent McPherson and others)
+
+%C the following settings will be recognized:
+%C units = cm, mm, in or pt
+%C digits = any number >= 0, those are the digits after the decimal period
+%C round = any number != 0, just play with it, example 0.1 or 0.01.
+%C Explanation will be done later
+
+%D \subject{The code}
+
+%D This section is not meant as documentation
+
+\newdimen\ShowLayoutdimen
+
+\setvalue{Layoutmm}{0.351459804} % 2.54/72.27 * 10
+\setvalue{Layoutcm}{0.0351459804} % 2.54/72.27
+\setvalue{Layoutin}{0.0138370001} % 1/72.27
+\setvalue{Layoutpt}{1}
+
+\def\ShowLayoutB(#1.#2)#3{%
+ \counttokens #2\to\scratchcounter
+ #1\ifnum#3>0%
+ \ifnum#3 > \the\scratchcounter \else \scratchcounter=#3 \fi
+ \splitofftokens \scratchcounter \from #2 \to\test .\test \fi}
+
+% taken from ConTeXt source
+\def\LayoutConvert#1#2#3%
+ {\ShowLayoutdimen=\getvalue{ShowLayoutround}pt
+ \begingroup
+ \scratchdimen#1\relax
+ \scratchdimen\getvalue{Layout#2}\scratchdimen
+ \advance\scratchdimen by 0.5\ShowLayoutdimen
+ \divide\scratchdimen by \ShowLayoutdimen
+ \multiply\scratchdimen by \ShowLayoutdimen
+ \expandafter\ShowLayoutB\expandafter(\number\withoutpt{\the\scratchdimen}){#3}\thinspace #2
+ \endgroup}
+
+\def\ShowLayoutA#1{%
+ \LayoutConvert{#1}%
+ {\getvalue{ShowLayoutunits}}%
+ {\getvalue{ShowLayoutdigits}}}%
+
+\startuniqueMPgraphic{ShowLayout}{showmore}
+% make sure that the label is on the same side as the posa
+vardef swapifnecessary (suffix posa, posb)(expr labelpos) =
+ if ( (labelpos < posa) and (posa > posb))
+ or ( (labelpos > posa) and (posa < posb)) :
+ save c; %swap 'em
+ c:=posa;
+ posa:=posb;
+ posb:= c;
+ fi
+enddef;
+% num: labelnumber
+% vertical: horizontal or vertical label?
+% pos: for horizontal the y coord, for vertical the x corrd
+% posa, posb: positions of the borders (x coord for horizontal)
+% labelpos: position for label, only for outer labels, given in the
+% same direction as posa, posb
+def layoutshowmark(expr num, vertical, pos, posa, posb, labelpos) =
+ save b,e,c,p,arrow;
+ numeric b,e; pair p[]; path arrow[],c;
+
+ b:=posa;
+ e:=posb;
+
+ % p0 is labelposition
+ % p1 is from
+ % p2 is to
+ % p3 is opposite arrow in outer marking
+
+ if labelpos = 0 : % inner label |<----(n)---->|
+ p0 := (.5[b,e], pos);
+ else: % outer label --->| |<----(n)
+ swapifnecessary (b,e, labelpos);
+ p0 := (labelpos, pos);
+ p3 := ( if b < labelpos: e-5mm else: e+5mm fi ,pos);
+ fi
+
+ p1 := (b,pos);
+ p2 := (e,pos);
+
+ if vertical:
+ p0:=(ypart p0,xpart p0);
+ p1:=(ypart p1,xpart p1);
+ p2:=(ypart p2,xpart p2);
+ p3:=(ypart p3,xpart p3);
+ fi
+ c:= fullcircle scaled .7cm shifted p0;
+
+ if (center(c) -- p1) intersectiontimes c = (-1,-1):
+ % don't draw the arrows, because there is not enough room for them.
+ else:
+ arrow1 :=center(c) -- p1 cutbefore (center(c) -- p1) intersectionpoint c ;
+ arrow2 :=
+ if labelpos = 0 : % inner
+ center(c) -- p2 cutbefore (center(c) -- p2) intersectionpoint c
+ else:
+ p3 -- p2
+ fi;
+
+ label (decimal (num), center(c));
+ draw c;
+ drawarrow arrow1;
+ drawarrow arrow2;
+ fi
+
+enddef;
+
+
+
+StartPage;
+numeric xpos,ypos;
+
+path body,leftmargin,header,footer,rightmargin;
+
+
+% backspace:
+draw llcorner Page shifted (BackSpace,0) --
+ ulcorner Page shifted (BackSpace,0) dashed evenly;
+
+%topspace
+draw urcorner Page shifted (0,-TopSpace) --
+ ulcorner Page shifted (0,-TopSpace) dashed evenly;
+
+
+header := Field [Header] [Text];
+footer := Field [Footer] [Text];
+leftmargin := Field [LeftMargin] [Text];
+rightmargin:= Field [RightMargin][Text];
+body := Field [Text] [Text];
+
+pickup pencircle scaled 2pt;
+
+draw Page;
+draw leftmargin;
+draw rightmargin;
+draw header;
+draw footer;
+draw body;
+
+
+
+label ("Body", center (body));
+label ("Header",center (header));
+label ("Left Margin", center (leftmargin));
+label ("Right Margin", center (rightmargin));
+label ("Footer", center (footer));
+%% label (textext("\tfb Body"), center (body));
+%% label (textext("\tfa Header"),center (header));
+%% label (textext("Left Margin"), center (leftmargin));
+%% label (textext("Right Margin"), center (rightmargin));
+%% label (textext("\tfa Footer"), center (footer));
+
+
+if \MPvar{showmore}=1:
+ path top, bot, leftedge, rightedge;
+
+ top := Field [Top] [Text];
+ bot := Field [Bottom] [Text];
+ leftedge := Field [LeftEdge] [Text];
+ rightedge := Field [RightEdge][Text];
+
+ draw top;
+ draw bot;
+ draw leftedge;
+ draw rightedge;
+fi
+
+pickup pencircle scaled 1pt;
+
+% (num, vertical, pos, from, to, labelpos)
+
+%backspace
+layoutshowmark (1, false, .5[ypart(ulcorner Page),Vstep[Top]], 0,BackSpace,0)
+
+
+ypos := Vstep[HeaderSeparator] -1cm;
+
+% leftmargin
+layoutshowmark (2, false, ypos,
+ Hstep[LeftMargin],
+ Hstep[LeftMargin]+Hsize[LeftMargin],0);
+
+% leftmargindistance
+layoutshowmark (3, false, ypos -1cm,
+ Hstep[LeftMarginSeparator],
+ Hstep[Text],
+ Hstep[Text]+1cm);
+
+% makeupwidth
+layoutshowmark (4, false, Vstep[Text]+2cm,
+ Hstep[Text], Hstep[Text]+Hsize[Text],0);
+
+% rightmargin
+layoutshowmark (5, false, ypos,
+ Hstep[RightMargin],
+ Hstep[RightMargin]+Hsize[RightMargin],0);
+
+% rightmargindistance
+layoutshowmark (6, false, ypos-1cm,
+ Hstep[RightMargin],
+ Hstep[RightMarginSeparator],
+ Hstep[RightMarginSeparator] -1cm);
+
+
+%topspace
+
+xpos:=xpart(ulcorner Page)+BackSpace+1cm;
+layoutshowmark (7, true, xpos, PaperHeight,PaperHeight-TopSpace,0)
+
+%header
+xpos:=xpos+1cm;
+ypos:=.5[PaperHeight,PaperHeight-TopSpace];
+layoutshowmark (8, true, xpos ,
+ Vstep[Header],
+ Vstep[Header]+Vsize[Header],ypos);
+
+%headerseparator
+xpos:=xpos+1cm;
+layoutshowmark (9, true,xpos,
+ Vstep[HeaderSeparator],
+ Vstep[HeaderSeparator]+Vsize[HeaderSeparator],ypos);
+
+xpos:=xpos+1cm;
+
+if \MPvar{showmore}=1:
+ % top
+ layoutshowmark (17, true, xpos,
+ Vstep[Top],
+ Vstep[Top]+Vsize[Top], ypos);
+
+ xpos:=xpos+1cm;
+ layoutshowmark (18, true, xpos,
+ Vstep[TopSeparator],
+ Vstep[TopSeparator]+Vsize[TopSeparator], ypos);
+
+fi
+
+% makeupheight
+layoutshowmark (10, true,Hstep[RightMarginSeparator]-2cm,
+ Vstep[Header]+Vsize[Header],
+ Vstep[Footer],0);
+
+
+%footerseparator
+xpos:=xpart(ulcorner Page)+BackSpace+2cm;
+ypos:=.5(Vstep[Footer]);
+
+layoutshowmark (11, true,xpos,
+ Vstep[FooterSeparator],
+ Vstep[FooterSeparator]+Vsize[FooterSeparator],ypos);
+
+%footer
+xpos:=xpos+1cm;
+layoutshowmark (12, true,xpos,
+ Vstep[Footer],Vstep[Footer]+Vsize[Footer],ypos);
+
+xpos:=xpos+1cm;
+
+if \MPvar{showmore}=1:
+ % bottom
+ layoutshowmark (19, true, xpos,
+ Vstep[Bottom],
+ Vstep[Bottom]+Vsize[Bottom], ypos);
+ xpos:=xpos+1cm;
+ layoutshowmark (20, true, xpos,
+ Vstep[BottomSeparator],
+ Vstep[BottomSeparator]+Vsize[BottomSeparator], ypos);
+
+fi
+
+if \MPvar{showmore}=1:
+
+ ypos := Vstep[HeaderSeparator] -3cm;
+
+ % LeftEdge
+ layoutshowmark (13, false, ypos,
+ Hstep[LeftEdge],
+ Hstep[LeftEdge]+Hsize[LeftEdge],Hstep[Text]+1cm);
+ ypos := ypos-1cm;
+ % LeftEdgeSeparator
+ layoutshowmark (14, false, ypos,
+ Hstep[LeftEdgeSeparator],
+ Hstep[LeftEdgeSeparator]+Hsize[LeftEdgeSeparator],
+ Hstep[Text]+1cm);
+
+ ypos := Vstep[HeaderSeparator] -3cm;
+
+ layoutshowmark (15, false, ypos,
+ Hstep[RightEdge],
+ Hstep[RightEdge]+Hsize[RightEdge],
+ Hstep[RightMarginSeparator] -1cm);
+
+ ypos := ypos-1cm;
+
+ layoutshowmark (16, false, ypos,
+ Hstep[RightEdge],
+ Hstep[RightEdgeSeparator],
+ Hstep[RightMarginSeparator] -1cm);
+
+
+
+fi
+
+currentpicture := currentpicture scaled .5;
+
+\stopuniqueMPgraphic
+\defineoverlay[ShowLayout][\uniqueMPgraphic{ShowLayout}]
+
+\def\SetupShowLayout{\dosingleempty\getparameters[ShowLayout]}
+\SetupShowLayout[units=pt,digits=1,round=0.1,showmore=0,graphonly=0]
+
+\def\ShowLayout{\dosingleempty\doShowLayout}
+
+
+\def\doShowLayout[#1]{%
+ \getparameters[ShowLayout][#1]
+ \setMPvariables[ShowLayout][showmore=\getvalue{ShowLayoutshowmore}]
+ \framed[width=.5\paperwidth,
+ height=.5\paperheight,
+ background=ShowLayout,
+ frame=off,
+% frame=on,
+ ]{}%
+\ifnum\getvalue{ShowLayoutgraphonly}=0
+ \bgroup\tfxx
+\startcolumns[n=2]
+\starttabulate[|r|l|]
+\NC 1 \NC backspace \ShowLayoutA{\the\backspace} \NR
+\NC 2 \NC leftmargin \ShowLayoutA{\the\leftmarginwidth}\NR
+\NC 3 \NC leftmargindistance \ShowLayoutA{\the\leftmargindistance}\NR
+\NC 4 \NC width \ShowLayoutA{\the\makeupwidth}\NR
+\NC 5 \NC rightmargin \ShowLayoutA{\the\rightmarginwidth}\NR
+\NC 6 \NC rightmargindistance \ShowLayoutA{\the\rightmargindistance}\NR
+\NC 7 \NC topspace \ShowLayoutA{\the\topspace}\NR
+\NC 8 \NC header \ShowLayoutA{\the\headerheight}\NR
+\NC 9 \NC headerdistance \ShowLayoutA{\the\headerdistance}\NR
+\NC 10\NC height \ShowLayoutA{\the\makeupheight}\NR
+\NC 11\NC footerdistance \ShowLayoutA{\the\footerdistance}\NR
+\NC 12\NC footer \ShowLayoutA{\the\footerheight}\NR
+\ifnum\getvalue{ShowLayoutshowmore}=1%
+\NC 13\NC leftedge \ShowLayoutA{\the\leftedgewidth}\NR
+\NC 14\NC leftedgedistance \ShowLayoutA{\the\leftedgedistance}\NR
+\NC 15\NC rightedge \ShowLayoutA{\the\rightedgewidth}\NR
+\NC 16\NC rightedgedistance \ShowLayoutA{\the\rightedgedistance}\NR
+\NC 17\NC top \ShowLayoutA{\the\topheight}\NR
+\NC 18\NC topdistance \ShowLayoutA{\the\topdistance}\NR
+\NC 19\NC bottom \ShowLayoutA{\the\bottomheight}\NR
+\NC 20\NC bottomdistance \ShowLayoutA{\the\bottomdistance}\NR
+\fi
+\NC \NC paperwidth \ShowLayoutA{\the\paperwidth}\NR
+\NC \NC paperheight \ShowLayoutA{\the\paperheight}\NR
+\stoptabulate
+\stopcolumns
+\egroup
+\fi
+}
diff --git a/obsolete/macros/context/contrib/context-rst/VERSION b/obsolete/macros/context/contrib/context-rst/VERSION
new file mode 100644
index 0000000000..58770f60c0
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/VERSION
@@ -0,0 +1 @@
+0.6c
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/OMakefile b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/OMakefile
new file mode 100644
index 0000000000..72dccf472e
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/OMakefile
@@ -0,0 +1,41 @@
+## Subdirectory omake makefile for the reStructuredText module
+## for Context. See the root OMakefile for details.
+## https://bitbucket.org/phg/context-rst/src/tip/OMakefile
+.PHONY: manual clean nuke
+
+name = manual
+
+manual_src = $(name).tex
+manual_rst = documentation.rst
+manual_pdf = $(name).pdf
+manual_tmp = doc.tex
+manual_junk[] = $(addprefix $(name), .tuc .log)
+manual_spam = $(name)-termout.log
+
+## The manual is itself written in reStructuredText. This leads to
+## a precarious situation: the module is required to be present in
+## order for the manual to be built. We’re going to have to find
+## some solution for smooth bootstrapping, but at the moment that’s
+## a low priority goal.
+$(manual_pdf): :effects: $(manual_tmp) $(manual_junk) $(manual_spam)
+ rm -rf -- $(manual_spam)
+ echo ":: creating $(manual_tmp) from $(manual_rst)"
+ mtxrun --script rst \
+ --if=$(file $(manual_rst)) \
+ --of=$(manual_tmp) \
+ &> $(manual_spam)
+ echo ":: creating $@ from $(manual_src) and $(manual_tmp)"
+ context --nonstopmode $(file $(manual_src)) &>> $(manual_spam)
+
+manual: $(manual_pdf)
+
+clean:
+ rm -rf -- $(manual_junk) $(manual_tmp) $(manual_spam)
+
+nuke: clean
+ rm -rf -- $(manual_pdf)
+
+## note to self: default targets in subdirectories will
+## lead to those targets being built whenever omake is
+## invoked without arguments from the root tree as well.
+#.DEFAULT: manual
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/OMakefile.omc b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/OMakefile.omc
new file mode 100644
index 0000000000..c59ffb27d3
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/OMakefile.omc
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/documentation.rst b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/documentation.rst
new file mode 100644
index 0000000000..1571d34e05
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/documentation.rst
@@ -0,0 +1,689 @@
+========================
+Features Not Implemented
+========================
+Nesting
+*******
+Proper nesting. So far only lists support real nested structures.
+There's no way you could have real paragraphs or bulleted lists
+inside table cells. The problem is that with true nesting some
+jobs like the dissection of tables would have to be moved from
+the formatter to the parser. If you feel you need thoroughly
+nested structures -- e.g. grid tables in footnotes or bullet lists
+inside simple tables inside enumerations inside quotations inside
+footnotes -- you should consider including |CONTEXT| code as
+substitution directives. (OTOH docutils' new and old LaTeX
+formatter seems to have problems with tables in footnotes as
+well. Not to mention its preference for enclosing random nested
+structures in ``quote``-environments.)
+
+Should you find yourself in desparate need of tables or whatever
+structures inside footnotes then I might agree to find a solution
+if you ask.
+
+Hyperlinks
+**********
+The hyperlink implementation should be fine in general use if you
+avoid certain situations.
+
+- Never ever call your hyperlink targets ``anon_#``, where ``#``
+ stands for any integer. Just don't do it, OK? Great.
+
+- Referencing a structure element like a section heading by means
+ of an *empty link block* does work. However, if the element in
+ question requests a page break (e.g. the vanilla
+ ``\chapter{#1}`` command), the reference will link to the
+ previous page instead and become useless. You can avoid this
+ behaviour by referencing the section directly or by targetting
+ the first paragraph in the section instead.
+
+- Link chaining does not work with internal references. This is
+ considered a low-priority bug and will be addressed during the
+ next big hyperlink overhaul.
+
+=====
+Usage
+=====
+Invocation from the Command Line
+********************************
+|rstcontext| is integrated into the ``mtxrun`` command as a
+script, which relies, naturally, on the Lua interpreter of
+|LUATEX|. Therefore, |rstcontext| might not run at all on other
+Lua installations, at least not without modification of the
+source. Fortunately, every |CONTEXT| user is equipped with
+|LUATEX| nowadays so this dependency should be trivial.
+
+To generate |CONTEXT| code from a |rst| document named
+``infile.rst``, call ``mtxrun``: ::
+
+ $mtxrun --script rst --if=infile.rst --of=outfile.tex
+
+You should now have a file ``outfile.tex`` that is ready to be
+run by |CONTEXT|. With some exceptions the generated code is
+downward compatible with MkII, thus it does not matter for a
+start whether you decide to test it with ``texexec`` or
+``context``.
+
+The resulting |TEX| file has rather a basic layout, if at all.
+This is intentional as you are expected to include it in a
+document after specifying your own setups.
+An example for prepended setups can be found in the environment
+for this manual (``mod/doc/context/third/rst/manual.tex``).
+
+.. caution::
+ The output of |rstcontext| automatically inserts necessary
+ setups for the components found in the input. Therefore, the
+ ``\starttext`` and ``\stoptext`` commands are part of the
+ output and may not be specified in your setups file.
+ For now you have to use the |CONTEXT| command
+ ``\appendtoks <token> \to \starttext`` to add content like
+ title pages and indices to the result. This mechanism works
+ reliable as long as you have an eye on the order in which the
+ tokens are given. Again, have a look at ``manual.tex`` to get
+ an impression how useful this can be. User hooks for these
+ and other common constructs are thought of but have yet to be
+ implemented.
+
+To build the documentation, first create a temporary directory
+somewhere safe. Then copy or symlink the Lua files from
+``mod/tex/context/third/rst/`` and the manual source there as
+well: ::
+
+ $mkdir tmp; cd tmp
+ $ln -s ../mod/doc/context/third/rst/documentation.rst .
+
+Now run |rstcontext| on the main documentation file as follows: ::
+
+ $mtxrun --script rst --if=documentation.rst --of=doc.tex
+
+Now run |CONTEXT| on the layout file: ::
+
+ $context ../mod/doc/context/third/rst/manual.tex
+
+This will include the generated code after a couple of setups --
+voilà, you have successfully built ``manual.pdf``. (Note that the
+commands you have to issue in each of the steps vary across
+different OS. In the literal form the example might only work on
+Linux or POSIX compliant systems.)
+
+Module
+******
+
+A provisional module for MkIV is included (``t-rst.mkiv``).
+Actually, the converter was thought of as a module for direct
+rendering of |rst| input initially, but certain objections
+diverted me from this path.
+
+- *Typography*. It’s all about the details. No matter how good your
+ converter is, auto-generated code will not reach |TEX|’s
+ omnipotence and flexibility. |rstcontext| is a tool to
+ generate raw material for your typesetting job, not a
+ typesetting system in itself.
+
+- *Testing*. Never underestimate the insights gained from reading
+ the resulting |CONTEXT| file. Quite some effort has been
+ undertaken to make it human-readable, especially the setups.
+
+- *MkII*. I’m not an MkII user at all, and compatibility with
+ it is not a primary objective for |rstcontext|.
+ However, an effort has been made to keep the output essentially
+ MkII clean. Do not expect Unicode to work without
+ precautions.
+
+During the development readability of the generated code was
+alway one of the main goals of |rstcontext|. Quite some computing
+effort is made to reflow even simple things as paragraphs into
+a shape understandable by more than only the |TEX| machine.
+If you should at one point decide that your project is
+ripe for the typographical finish and you want to add local
+changes in form of |TEX| code only, you should be able to use the
+output of |rstcontext| as starting point.
+
+However, using the module may have advantages when testing. There
+is a usage example in ``moduletest.tex``, introducing the macro
+``\\typesetRSTfile``. Another example in ``hybridtest.tex``
+demonstrates the |CONTEXT| command ``\\RST`` as well as the
+corresponding environment.
+
+To install the module simply copy the files into your local |TEX|
+tree, i.e. if the minimals reside in ``~/context/``, you would
+issue the following line: ::
+
+ $cp -r ./mod/* ~/context/tex/texmf-local/
+
+Then rebuild the filename database running ``context
+--generate``. The module should be ready for use now.
+
+RST projects
+************
+
+In addition to the simple command ``\\typesetRSTfile`` the module
+also provides means for handling multiple |rst| input files. This
+is achieved by so-called *inclusions*. An inclusion has to be
+defined first, using the macro ``\\defineRSTinclusion``, which
+receives up to three arguments in brackets. The first one
+specifies the *identifier* by which the inclusion will be
+referred to afterwards (cf. |CONTEXT|’s ``\\useURL`` command). The
+second argument, which is mandatory as well, takes the file to be
+associated with an inclusion. Finally, optional setups can be
+passed to the parser via the third argument (cf. the section on
+`Tabs`_). E.g.: ::
+
+ \usemodule[rst]
+ \defineRSTinclusion [first][inc-first.rst]
+ \defineRSTinclusion[second][inc-second.rst][expandtab=true,shiftwidth=8]
+ \defineRSTinclusion [third][inc-third.rst]
+
+Those inclusions are afterwards accessible *within* the
+``\\[start|stop]project`` environment, and can be dereferenced by
+``\\RSTinclusion``, which takes the identifier as a single
+argument in brackets: ::
+
+ \startRSTproject
+ \RSTinclusion [first]
+ \RSTinclusion[second]
+ \RSTinclusion [third]
+ \stopRSTproject
+
+Within the project environment, |rstcontext| allows for arbitrary
+|CONTEXT| markup.
+
+=========
+Examples
+=========
+
+|rstcontext| was developed for the largest part by going through
+the |rst| specification_ step by step and tested against the
+examples given both in the spec and in the `quick reference`_.
+Therefore you should refer to those examples first (and drop me a
+note immediately if any of them stopped working).
+All kinds of text blocks and inline markup have been implemented
+with the exception of anything mentioned in the section on
+`Features Not Implemented`_.
+Some of them that I have not found a real-world usage for (such
+as *definition lists*) do not yet have a presentable output --
+there is room for improvements that should be supplied by
+somebody who actually uses those features.
+
+.. _specification: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html
+.. _quick reference: http://docutils.sourceforge.net/docs/user/rst/quickref.html
+
+Block Quotes
+************
+
+The *block quote* syntax is fully supported, including
+attributions. For instance, the next snippet: ::
+
+ Some people have made the mistake of seeing Shunt’s work as a
+ load of rubbish about railway timetables, but clever people
+ like me, who talk loudly in restaurants, see this as a
+ deliberate ambiguity, a plea for understanding in a
+ mechanized world.
+
+ --- Gavin Millarrrrrrrrrr on Neville Shunt
+
+gets you a neatly indented quotation, typeset in a slightly
+smaller font magnitude.
+
+ Some people have made the mistake of seeing Shunt’s work as a
+ load of rubbish about railway timetables, but clever people
+ like me, who talk loudly in restaurants, see this as a
+ deliberate ambiguity, a plea for understanding in a
+ mechanized world.
+
+ --- Gavin Millarrrrrrrrrr on Neville Shunt
+
+Don’t forget proper indentation.
+
+Numbered List
+*************
+
+Save for nesting lists are fully implemented in |rstcontext|.
+The following code typesets a triple-nested list with different
+kinds of bulleting / numbering: ::
+
+ i. First order list, first entry.
+
+ ii. First order list, second entry.
+
+ iii. First order list, third entry.
+
+ - Second order list, first entry.
+
+ #. Third order list, first entry.
+ #. Third order list, second entry.
+ #. Third order list, third entry.
+ Real nesting rules!
+
+ - Second order list, second entry.
+
+ iv. First order list, fourth entry.
+
+ v. First order list, fifth entry.
+
+The result looks like this:
+
+i. First order list, first entry.
+
+ii. First order list, second entry.
+
+iii. First order list, third entry.
+
+ - Second order list, first entry.
+
+ #. Third order list, first entry.
+ #. Third order list, second entry.
+ #. Third order list, third entry.
+ Real nesting rules!
+
+ - Second order list, second entry.
+
+iv. First order list, fourth entry.
+
+v. First order list, fifth entry.
+
+.. caution::
+ Don’t forget the blank lines between list items.
+
+Line Blocks
+***********
+
+Line blocks are a convenient environment for parts of the text
+that need to preserve line breaks and indentation. This makes it
+the first choice for most kinds of poems: ::
+
+ | When does a dream begin?
+ | Does it start with a goodnight kiss?
+ | Is it conceived or simply achieved?
+ | When does a dream begin?
+ |
+ | When does a dream begin?
+ | Is it born in a moment of bliss?
+ | Or is it begun when two hearts are one?
+ | When does a dream exist?
+ |
+ | The vision of you appears somehow
+ Impossible to resist
+ | But I'm not imagining seeing you
+ For who could have dreamed of this?
+ |
+ | When does a dream begin?
+ | When reality is dismissed?
+ | Or does it commence when we lose all pretence?
+ | When does a dream begin?
+
+Indentation, continued lines, etc. should work out without
+problems:
+
+| When does a dream begin?
+| Does it start with a goodnight kiss?
+| Is it conceived or simply achieved?
+| When does a dream begin?
+|
+| When does a dream begin?
+| Is it born in a moment of bliss?
+| Or is it begun when two hearts are one?
+| When does a dream exist?
+|
+| The vision of you appears somehow
+ Impossible to resist
+| But I'm not imagining seeing you
+ For who could have dreamed of this?
+|
+| When does a dream begin?
+| When reality is dismissed?
+| Or does it commence when we lose all pretence?
+| When does a dream begin?
+
+
+==========
+Directives
+==========
+Admonitions
+************
+The following admonition directives have been implemented:
+
+Caution
+-------
+The *caution* directive results in the text being prefixed by one
+“dangerous bend” symbol in order to resemble the “wizards only”
+passages of the TeXbook.
+For example, the directive: ::
+
+ .. caution:: White mice do worse in experiments than grey mice.
+
+will result in the following:
+
+.. caution:: White mice do worse in experiments than grey mice.
+
+Danger
+------
+Similar to the *caution* directive, the *danger* directive
+prefixes the given text with two “dangerous bends” giving it the
+look of Knuths’s “esoteric” annotations.
+
+.. danger:: Be nice to the parser:
+ Don’t forget to align paragraphs that end a literal
+ block!
+
+
+Images
+******
+Including pictures is easy using the *image* directive: simply
+supply it the name of the image file as in ``.. image:: cow``.
+If the format is supported by |CONTEXT| the suffix can be
+neglected.
+
+The placement of images can be controlled via a set of optional
+arguments, each of which has to be specified on single line in
+``key: value`` style: ::
+
+ .. image:: cow
+ width: hsize
+ caption: A generic Dutch cow.
+
+This will place your image somewhere close to the spot where you
+defined it. (The placement parameter to ``placefigure`` will be
+set to ``here`` by default.)
+
+.. image:: cow
+ cow.pdf
+ width: hsize
+ alt: A generic Dutch cow (*bos primigenius taurus*).
+
+The supported parameters are ``width``
+(alias: ``size``), ``caption`` and ``scale``.
+The *width* parameter accepts the values ``hsize``
+(alias: ``fit``, ``broad``) or ``normal``.
+Alternatively, the *scale* parameter allows for arbitrary
+manipulation of the desired magnification; it defaults to ``1``
+(unscaled).
+The value passed as *caption* parameter will be used in as the
+caption text of the image.
+
+.. |CONTEXT| ctx:: \CONTEXT
+.. |TEX| ctx:: \TeX
+.. |PDFTEX| ctx:: \PDFTEX
+.. |LUATEX| ctx:: \LUATEX
+.. |rstcontext| ctx:: \bgroup\em rst\egroup\kern.5pt\CONTEXT
+.. |rst| ctx:: \bgroup\rm re\egroup\bgroup\ss Structured\egroup\bgroup\rm Text\egroup
+.. |LATEX| ctx:: \LATEX
+
+.. _outline: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html
+.. _docutils: http://docutils.sourceforge.net/
+.. _Pandoc: http://johnmacfarlane.net/pandoc/
+
+Containers
+**********
+
+Upon request |rstcontext| now supports another kind of
+directive, namely containers_.
+Due to their being defined explicitly in terms of HTML,
+*containers* lack a corresponding construct in |CONTEXT| (or
+|TEX| for that matter).
+Some parts of |CONTEXT| (e. g. ``\\framed``) come quite close with
+respect to functionality as well as generality.
+However, none of the candidates alone covers the entire spectrum
+of functionality that containers_ are supposed to.
+For that reason the implementation leaves them essentially
+undefined.
+
+If an explicit name is specified, then the ``container``
+directive maps to the environment of that name.
+Anonymous containers are interpreted as a |TEX| group.
+Any text block inside the element is treated as ordinary
+paragraph.
+In below example the content will be handled as if between
+``\\startxyzzy`` and ``\\stopxyzzy``, where it is up to the user to
+define the *xyzzy* environment::
+
+ This is a paragraph.
+
+ .. container:: xyzzy
+
+ whatever
+
+ foo **bar** baz
+
+ This is another paragraph.
+
+The middle part translates to |CONTEXT| as follows::
+
+ \start[xyzzy]%
+ whatever
+
+ foo {\sc bar} baz
+ \stop
+
+Note that the ``\\start[foo]``/``\\stop``-environment is equivalent
+to ``\\startfoo``/``\\stopfoo``, except that the environment
+doesn’t actually need to be defined.
+
+.. caution::
+ Support for the *container* directive is considered
+ experimental.
+ Suggestions for improving or extending the current
+ implementation are always welcome.
+
+.. _containers: http://docutils.sourceforge.net/docs/ref/rst/directives.html#container
+
+=======================
+Substitution Directives
+=======================
+
+There are substitution directives for simple *replacing* and
+for insertion of |LUATEX|’s three languages: |mp|, Lua and,
+of course, |TEX|.
+
+.. |mp| replace:: \METAPOST
+
+Ordinary text replacement is done via the ``replace``
+substitution directive. E.g. in the main text you consistently
+use ``|replaceme|`` and have all its occurences substituted by
+``I wasn’t in the mood to write out this long sentence.``
+like in the next snippet:
+
+::
+
+ .. |replaceme| replace::
+ I wasn’t in the mood to write out this long sentence.
+
+The code insertions work similarly. You have to specify some
+phrase that gets substituted by the code you supply.
+E.g. this document accesses the fancy logos predefined in the
+|CONTEXT| core via substitutions: ::
+
+ .. |CONTEXT| ctx:: \CONTEXT
+ .. |LUATEX| ctx:: \LUATEX
+
+Etc. pp. The respective directive names are ``ctx``, ``mp`` and
+``lua``. In order to get a |circle| drawn on spot, you would
+define a Metapost substitution:
+
+::
+
+ .. |circle| mp::
+ fill fullcircle scaled(8) withcolor blue;
+
+================
+Special Features
+================
+Text Roles
+**********
+
+The default *role* for interpreted text is *emphasis*.
+
+The role marker provides explicit access to formatting commands.
+The formatting routine for inline literals can be called with the
+role marker :literal:`literal`, strong emphasis likewise is
+achieved via the role marker :literal:`strong_emphasis`.
+
+Other roles that lack an equivalent among inline markup are
+``bold``, :ss:`ss` (alias :literal:`sans_serif`),
+``uppercase``, ``lowercase`` and colors.
+Color roles begin with the string ``color_`` (the underscore is
+compulsive), followed by either the string ``rgb_`` or a
+`valid color name`__.
+An rgb vector is specified in decimal.
+Its values can be separated by either dashes or underscores.
+Thus, ``color_rgb_.3_.5_.8`` is a valid rgb expression, as is
+``color_rgb_0-1-0``.
+Unforturnately, the colon character ``:`` has to be escaped in
+color expressions, e.g. ``color_gray\:5``.
+
+__ http://wiki.contextgarden.net/Colors#Using_predefined_colors:_.5Csetupcolor
+
+For example, to give Mr. Neville Shunt’s work an apt
+typographic representation you can use these roles instead of
+the standard inline markup: ::
+
+ :color_rgb_.9_.2_.7:`Chuff`, chuff, :literal:`chuffwoooooch`,
+ woooooch! Sssssssss, sssssssss! :uppercase:`Diddledum`,
+ `diddledum`, diddlealum. :literal:`Toot`, toot. The train
+ :bold:`now` standing :color_gray\:5:`at` platform :ss:`eight,
+ tch`, tch, :color_rgb_0-1-0:`tch`,
+ :color_rgb_.5-.6-.2:`diddledum`, diddledum.
+ :lowercase:`Chuffff`, :strong_emphasis:`chuffffiTff`
+ eeeeeeeeeaaaaaaaaa :color_red:`Vooooommmmm`.
+
+which yields when passed through |rstcontext|:
+
+:color_rgb_.9_.2_.7:`Chuff`, chuff, :literal:`chuffwoooooch`,
+woooooch! Sssssssss, sssssssss! :uppercase:`Diddledum`,
+`diddledum`, diddlealum. :literal:`Toot`, toot. The train
+:bold:`now` standing :color_gray\:5:`at` platform :ss:`eight,
+tch`, tch, :color_rgb_0-1-0:`tch`,
+:color_rgb_.5-.6-.2:`diddledum`, diddledum. :lowercase:`Chuffff`,
+:strong_emphasis:`chuffffiTff` eeeeeeeeeaaaaaaaaa
+:color_red:`Vooooommmmm`.
+
+**************************
+Bibliography and Citations
+**************************
+
+.. caution::
+ Not much for now concerning the usage of Taco’s bib system.
+ It’s just that I use my own bibliography system and never
+ became sufficiently familiar with the standard |CONTEXT|
+ approach. *If you feel that the current support should be
+ improved then feel free to contact me!* I will need somebody
+ for testing.
+
+When |rstcontext| first encounters a citation (``[texbook]_``) it
+automatically looks up a bibliography in the working directory by
+the name of ``\jobname``. E.g. with a main file ``manual.tex``
+bibtex will use the database called ``manual.bib``. Symlinking
+your bibliography file in the local tree should suffice and you
+can keep whatever directory structure you prefer. (Speaking for
+myself, bib data usually resides in its own subdirectory, so I’d
+use symlinks, too.)
+
+****
+Tabs
+****
+The |rst| specification requests that tabs (ASCII no 9) be
+treated as spaces_. Converting your tabs to spaces might be a
+good preparation for an |rstcontext| run. However, as of version
+123 |rstcontext| comes with built-in tab expansion. It can be
+enabled by supplying an optional argument to the
+``typesetRSTfile`` command: ::
+
+ \usemodule[rst]
+ \typesetRSTfile[expandtab=true,shiftwidth=4]{myfile.rst}
+
+The argument ``expandtab`` triggers a prepocessing step which
+expands all tabulation characters (``\t`` and ``\v``) into the
+correct amount of spaces. Optionally, the tab stop distance can
+be configured using the ``shiftwidth`` parameter, which defaults
+to 4.
+
+.. _spaces: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#whitespace
+
+===================
+About this software
+===================
+
+The docutils_ provide means to translate the extra-convenient
+markup language |rst| into various formats like PDF, HTML and
+|LATEX|, unfortunately omitting the One True Macro System:
+|CONTEXT|.
+
+As far as I am aware of it, there is some support for |rst| in
+Pandoc_ but as it relies on a rather large set of dependencies it
+proved very difficult (too difficult for me) to install on my
+favourite distribution.
+From the `interactive demo`__ I gather that support for |rst|’s
+language features is not very extensive and the result did not
+even come with proper setups.
+Additionally, it’s written in a language I am not familiar with
+and that does not make use of one the most awesome features of
+all the the extended capabilities |LUATEX| provides: the Lua
+interpreter.
+
+For quite some time I was thinking about how to implement an
+|rst| parser in |LUATEX|, until some discussion__ emerged on the
+|CONTEXT| mailing list that indicates a broader interest in
+convenient markup languages across the community.
+As the alternatives mentioned above don’t meet the expectations
+of a normal |CONTEXT| user, the initial step to write
+|rstcontext| was done.
+Handling most of the corner cases and usability features of |rst|
+proved in the end not nearly as easy as I imagined.
+
+__ http://johnmacfarlane.net/pandoc/try
+__ http://archive.contextgarden.net/message/20100814.051917.28caafcd.en.html
+
+.. caution::
+ |rstcontext| is experimental software and neither feature
+ complete nor thoroughly commented. Keep this in mind before you
+ start using it. Anything might still be subject to change, so
+ expect breakage *in case you start relying on exceptional
+ behaviour* (read: bugs) that does not conform to the |rst|
+ specification. Consider filing a bug report instead and wait for
+ me (the maintainer) to fix it, because regardless of how much
+ testing I do myself I alway run into the weirdest issues only
+ during the actual deployment of the software. Thus, if you notice
+ that |rstcontext| does not adhere to the outline_ of |rst|
+ according to the Docutils documentation, very likely you have
+ discovered a corner case I was not aware of.
+
+.. |circle| mp::
+ fill fullcircle scaled(8) withcolor blue;
+
+
+=======
+License
+=======
+
+::
+
+ Copyright 2010-2014 Philipp Gesang. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, are permitted provided that the
+ following conditions are met:
+
+ 1. Redistributions of source code must retain the above
+ copyright notice, this list of conditions and the
+ following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the
+ above copyright notice, this list of conditions and
+ the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+ SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+.. vim:tw=65
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/hybridtest.tex b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/hybridtest.tex
new file mode 100644
index 0000000000..bd509c04aa
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/hybridtest.tex
@@ -0,0 +1,42 @@
+\usemodule[rst][test=yes]
+\setuphead[chapter][page=no,style=bold]
+
+\def\RSTCTX{{\em rst}\kern.5pt\CONTEXT}
+\def\reST{{\rm re}{\ss Structured}{\rm Text}}
+
+\starttext
+
+\chapter{\RSTCTX\ Hybrid Documents}
+
+This example demonstrates the macro \type{\RST} which can be used
+to process \reST\ markup directly in a normal \CONTEXT\ document.
+
+\RST{
+-------------
+This Chapter,
+-------------
+
+… for instance, was given entirely in *reST* markup. Naturally,
+there are some :bold:`drawbacks` to expect when mixing markups:
+directives and hyperlink targets that have already been specified
+somewhere above the current section will *stay* accessible in
+later passages until you redefine them. Also, certain letters
+need to be thoroughly escaped in order for them to make it
+through to the *reST*-parser, e.g. *\\\{* (<left brace>), and
+you’ll have to be inventive to make a backslash
+(*\\letterbackslash*) pass through the parser.
+
+}
+
+\startRST
+
+-------------
+Alternatively
+-------------
+you may always use the matching environment ``\\[start|stop]RST``
+if you prefer.
+
+\stopRST
+
+
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-first.rst b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-first.rst
new file mode 100644
index 0000000000..392649f556
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-first.rst
@@ -0,0 +1,14 @@
+=============
+First Chapter
+=============
+
+Mountaineer? *Mountaineer* where the devil are they, mound, mount... mountain...
+a mountaineer: ‘two men skilled in climbing mountains’. Jolly good, well you’re
+in. Congratulations, both of you.
+
+We’ll be leaving on January 22nd and taking the following routes. The A23s
+through Purleys down on the main roads near Purbrights avoiding Leatherheads and
+then taking the A231s entering Rottingdeans from the North. From Rottingdeans we
+go through Africa to Nairobis. We take the South road out of Nairobis for about
+twelve miles and then ask.
+
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-second.rst b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-second.rst
new file mode 100644
index 0000000000..eff120e2d2
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-second.rst
@@ -0,0 +1,9 @@
+==============
+Second Chapter
+==============
+Well Bruce, I heard the Prime Minister use it. S’hot enough to boil a monkey’s
+bum in ’ere, your Majesty, he said and she smiled quietly to herself.
+
+Now, Bruce teaches classical philosophy, Bruce teaches Hegelian philosophy, and
+Bruce here teaches logical positivism, and is also in charge of the sheepdip.
+
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-third.rst b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-third.rst
new file mode 100644
index 0000000000..67e6d5a2a8
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc-third.rst
@@ -0,0 +1,14 @@
+=============
+Third Chapter
+=============
+You are hereby charged that on the 28th day of May 1970, you did wilfully,
+unlawfully, and with malice aforethought publish an alleged English-Hungarian
+phrasebook with intent to cause a breach of the peace. How do you plead?
+
+Not guilty.
+
+I quote an example. The Hungarian phrase meaning ‘Can you direct me to the
+station?’ is translated by the English phrase, ‘Please fondle my bum’.
+
+I wish to plead incompetence.
+
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc.tex b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc.tex
new file mode 100644
index 0000000000..7703fae081
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/inc.tex
@@ -0,0 +1,11 @@
+\usemodule[rst]
+
+\defineRSTinclusion [first][inc-first.rst]
+\defineRSTinclusion[second][inc-second.rst]
+\defineRSTinclusion [third][inc-third.rst]
+
+\startRSTproject
+\RSTinclusion [first]
+\RSTinclusion[second]
+\RSTinclusion [third]
+\stopRSTproject
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.bib b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.bib
new file mode 100644
index 0000000000..638ed80770
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.bib
@@ -0,0 +1,10 @@
+@BOOK{texbook,
+ author = {Donald E. Knuth},
+ title = {The \TEX book},
+ year = {1984},
+ address = {Reading, Mass. et. al.},
+ location = {Reading, Mass. et. al.},
+ series = {Computers and typesetting vol. 1},
+ keywords = {all}
+}
+
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.pdf b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.pdf
new file mode 100644
index 0000000000..566347e1ea
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.tex b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.tex
new file mode 100644
index 0000000000..6e30789ea6
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/manual.tex
@@ -0,0 +1,141 @@
+\setuppapersize[A5][A5]
+
+\setupcombinedlist[content][interaction=all,]
+
+\setupinteraction[
+ state=start,
+ focus=standard,
+ color=darkcyan,
+ contrastcolor=\interactionparameter{color},
+]
+
+\setupindenting[yes,next,medium] % -> lead to the glue node error in mkiv
+
+\setuphead[chapter] [style={\rm\sc},before={\blank[line,force]},after={\blank[2*line,force]}]
+\setuphead[section] [style={\rm\it},before={\blank[line]} ,after={\blank[line]}]
+\setuphead[subsection][style={\rm},before={\blank[line]} ,after={\blank[line]}]
+
+\setupheads[indentnext=yes]
+\setupfloats[indentnext=yes]
+
+\setupbodyfont[latin-modern,10pt]
+\definefontfeature [textfigures] [onum=yes]
+\definefontfeature [liningfigures] [onum=no]
+\definefontfeature [texligatures] [tlig=yes]
+\definefontfeature [notexligatures] [tlig=yes]
+\addfs{textfigures,texligatures}
+
+\setuptyping[
+ style={\addff{liningfigures,notexligatures}\ttx},
+]
+
+% title page
+\startbuffer[frontpage]
+\startstandardmakeup
+\raggedcenter
+\vfill
+{\setupbodyfont[,19pt]
+{\em Typesetting}
+\blank [2*big]
+{\tfc {\em re}{\ss Structured}{\em \kern-6ptText}}
+\blank [2*big]
+{\em with \CONTEXT}
+\blank [5*big]
+{\tfa A Manual for {\em rst}{\kern1pt\CONTEXT}}
+}
+\vfill
+\stopstandardmakeup
+\stopbuffer
+
+% additional information
+\startbuffer[author]
+\startstandardmakeup
+\vfill
+\framed [align=right,frame=off,topframe=on] {%
+\tfxx\ss\setupinterlinespace[small]\noindentation
+Copyright 2010--2014 Philipp Gesang, Tübingen.\par
+Mail any bug reports, patches or suggestions to\par
+\type{string.format("%s@%s.com", "phg42.2a", "gmail")}.\par
+Alternatively, pay a visit
+to \goto{my BitBucket handle}[url(http://bitbucket.org/phg/)]
+or \goto{my home page}[url(https://phi-gamma.net/coding)]
+\par
+}
+\stopstandardmakeup
+\stopbuffer
+
+
+% table of contents
+\startbuffer [toc]
+\setuppagenumbering[
+ state=start,
+ alternative=doublesided,
+ location=,
+]
+\setuplayout [grid=no]
+\setuptolerance [verytolerant]
+\setuptolerance [vertical,verytolerant]
+
+\newdimen \mypagenumdistance \mypagenumdistance .7em
+\def\fillercmd{\nobreak\hskip\mypagenumdistance}
+
+\definelistplacement[my_list_placement][command]#1#2#3%
+ {#2\fillercmd#3\hskip1.5em}
+
+\setuplist [chapter] [alternative=a,style=\word\sc]
+\setuplist [section] [alternative=my_list_placement,]
+
+\startsetups toc:subsection
+ \noindentation\placelist[subsection]
+\stopsetups
+
+\startsetups toc:section
+ \blank
+ \setupnarrower [middle=9em,]
+ \startnarrower[middle]\tfx
+ \noindentation\placelist[section][after=\setups{toc:subsection}]
+ \stopnarrower
+ \blank
+\stopsetups
+
+\title{Contents}
+
+\placelist [chapter] [criterium=text,after=\setups{toc:section}]
+
+% \setupheadertexts
+% [{\tfx\sc\getmarking[chapter]}] [{\tfx\bf \pagenumber}]
+% [{\tfx\bf \pagenumber}] [{\tfx{\em rst}{\kern.5pt\CONTEXT}}]
+% \completecontent
+\stopbuffer
+
+% something radically changed in mkiv
+\startluacode
+jobvariables = job.variables or {}
+jobvariables.tobesaved = jobvariables.tobesaved or {}
+\stopluacode
+
+% list of publications
+\startbuffer[pubs]
+\setuplayout[grid=no]
+\setuptolerance[verytolerant]
+\setuptolerance[vertical,verytolerant]
+
+\completepublications
+\stopbuffer
+
+\appendtoks
+ \startfrontmatter
+ \getbuffer[frontpage]
+ \getbuffer[author]
+ \getbuffer[toc]
+ \stopfrontmatter
+\to \everystarttext
+
+%\prependtoks \getbuffer[pubs] \to \everystoptext
+
+\setupwhitespace[none]
+\setuplayout[grid=verystrict]
+\setuptolerance[tolerant]
+\language[en]
+\setuppagenumbering[state=stop,location=]
+\input doc.tex
diff --git a/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/moduletest.tex b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/moduletest.tex
new file mode 100644
index 0000000000..76994e7b61
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/doc/context/third/rst/moduletest.tex
@@ -0,0 +1,9 @@
+%% Usage example
+% 1. load the module
+\usemodule[rst]
+% 2. add your setups
+\setuphead[chapter][page=no]
+\setupindenting[yes,medium,next]
+% 3. run the converter
+\typesetRSTfile{README.rst}
+
diff --git a/obsolete/macros/context/contrib/context-rst/scripts/context/lua/third/rst/mtx-t-rst.lua b/obsolete/macros/context/contrib/context-rst/scripts/context/lua/third/rst/mtx-t-rst.lua
new file mode 100644
index 0000000000..6735b1dd7b
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/scripts/context/lua/third/rst/mtx-t-rst.lua
@@ -0,0 +1,64 @@
+#!/usr/bin/env texlua
+--------------------------------------------------------------------------------
+-- FILE: mtx-rst.lua
+-- USAGE: mtxrun --script rst --if=input.rst --of=output.tex
+-- DESCRIPTION: context script interface for the reStructuredText module
+-- REQUIREMENTS: latest ConTeXt MkIV
+-- AUTHOR: Philipp Gesang (Phg), <megas.kapaneus@gmail.com>
+-- CHANGED: 2013-03-27 00:25:32+0100
+--------------------------------------------------------------------------------
+--
+
+scripts = scripts or { }
+scripts.rst = { }
+
+environment.loadluafile("rst_parser")
+
+local ea = environment.argument
+
+local helpinfo = [[
+===============================================================
+ The reStructuredText module, command line interface.
+ © 2010--2013 Philipp Gesang. License: 2-clause BSD.
+ Home: <https://bitbucket.org/phg/context-rst/>
+===============================================================
+
+USAGE:
+
+ mtxrun --script rst --if=input.rst --of=output.tex
+
+Mandatory arguments:
+
+ “infile.rst” is your input file containing reST markup.
+ “outfile.tex” is the target file that the TeX-code will be
+ written to.
+
+Optional arguments:
+ --et=bool “expandtab”, should tab chars (“\t”, “\v”) be
+ converted to spaces?
+ --sw=int “shiftwidth”, tab stop modulo factor.
+
+===============================================================
+]]
+
+local application = logs.application {
+ name = "mtx-rst",
+ banner = "The reStructuredText module for ConTeXt, hg-rev 125+",
+ helpinfo = helpinfo,
+}
+
+scripts.rst.input = ea("if")
+scripts.rst.output = ea("of")
+
+if scripts.rst.input and scripts.rst.output then
+ local expandtab = ea("et") == "true" and true
+ local shiftwidth = ea("sw")
+ local debug = ea("debug") == "true"
+ if expandtab then thirddata.rst.expandtab = true end
+ if shiftwdith then thirddata.rst.shiftwidth = tonumber(shiftwidth) end
+ if debug then thirddata.rst_helpers.rst_debug = debug end
+ thirddata.rst.standalone(scripts.rst.input, scripts.rst.output)
+else
+ application.help()
+end
+
diff --git a/obsolete/macros/context/contrib/context-rst/tex/context/interface/third/t-rst.xml b/obsolete/macros/context/contrib/context-rst/tex/context/interface/third/t-rst.xml
new file mode 100644
index 0000000000..68dcc1baf9
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/tex/context/interface/third/t-rst.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands"
+ name="context"
+ language="en"
+ version="0.6; 2013-03-27 00:26:22+0100">
+
+ <cd:command name="typesetRSTfile" generated="no" file="t-rst.mkiv">
+ <cd:sequence>
+ <cd:variable value="typesetRSTfile"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes" optional="yes">
+ <cd:parameter name="expandtab">
+ <cd:constant type="false" default="false"/>
+ <cd:constant type="true"/>
+ </cd:parameter>
+ <cd:parameter name="shiftwidth">
+ <cd:constant type="cd:number" default="4"/>
+ </cd:parameter>
+ <cd:parameter name="stripBOM">
+ <cd:constant type="false" default="false"/>
+ <cd:constant type="true"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content n="2" optional="no"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="RST" generated="no" file="t-rst.mkiv">
+ <cd:sequence>
+ <cd:variable value="RST"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" optional="no"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="RST" generated="no" type="environment" file="t-rst.mkiv">
+ <cd:sequence>
+ <cd:variable value="RST"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="RSTproject" generated="no" type="environment" file="t-rst.mkiv">
+ <cd:sequence>
+ <cd:variable value="RST"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="defineRSTinclusion" generated="no" file="t-rst.mkiv">
+ <cd:sequence>
+ <cd:variable value="defineRSTinclusion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" optional="yes" name="id"/>
+ <cd:content n="2" optional="yes" name="filename"/>
+ <cd:assignments n="3" list="yes" optional="yes">
+ <cd:parameter name="expandtab">
+ <cd:constant type="false" default="false"/>
+ <cd:constant type="true"/>
+ </cd:parameter>
+ <cd:parameter name="shiftwidth">
+ <cd:constant type="cd:number" default="4"/>
+ </cd:parameter>
+ <cd:parameter name="stripBOM">
+ <cd:constant type="false" default="false"/>
+ <cd:constant type="true"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="RSTinclusion" generated="no" file="t-rst.mkiv">
+ <cd:sequence>
+ <cd:variable value="RSTinclusion"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1" optional="yes" name="id"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_context.lua b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_context.lua
new file mode 100644
index 0000000000..699064e572
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_context.lua
@@ -0,0 +1,1326 @@
+#!/usr/bin/env texlua
+--------------------------------------------------------------------------------
+-- FILE: rst_context.lua
+-- USAGE: called by rst_parser.lua
+-- DESCRIPTION: Complement to the reStructuredText parser
+-- AUTHOR: Philipp Gesang (Phg), <phg42.2a@gmail.com>
+-- CHANGED: 2013-03-26 22:46:17+0100
+--------------------------------------------------------------------------------
+--
+--- TODO
+--- Find an appropriate way to handle generic tables irrespective of the grid
+--- settings. The problem is:
+--- http://archive.contextgarden.net/message/20100912.112605.8a1aaf13.en.html
+--- Seems we'll have to choose either the grid or split tables as default. Not
+--- good.
+
+
+local helpers = helpers or thirddata and thirddata.rst_helpers
+local rst_directives = rst_directives or thirddata and thirddata.rst_directives
+
+local utf = unicode.utf8
+local utflen = utf.len
+local utflower = utf.lower
+local utfupper = utf.upper
+local iowrite = io.write
+local tableconcat = table.concat
+
+local stringgmatch = string.gmatch
+local stringgsub = string.gsub
+local stringmatch = string.match
+local stringsub = string.sub
+local stringformat = string.format
+
+local dbg_write = helpers.dbg_writef
+
+local C, Cb, Cc, Cg, Cmt, Cp,
+ Cs, Ct, P, R, S, V, lpegmatch
+ = lpeg.C, lpeg.Cb, lpeg.Cc, lpeg.Cg, lpeg.Cmt, lpeg.Cp,
+ lpeg.Cs, lpeg.Ct, lpeg.P, lpeg.R, lpeg.S, lpeg.V, lpeg.match
+
+-- This one should ignore escaped spaces.
+do
+ local stripper = P{
+ [1] = "stripper",
+ stripper = V"space"^0 * C((V"space"^0 * (V"escaped" + V"nospace")^1)^0),
+ space = S(" \t\v\n"),
+ nospace = 1 - V"space",
+ escaped = P"\\" * V"space"
+ }
+ function string.strip(str)
+ return lpegmatch(stripper, str) or ""
+ end
+end
+local stringstrip = string.strip
+
+local err = function(str)
+ if str then
+ iowrite("\n*[rstctx] Error: " .. str .. "\n\n")
+ end
+end
+
+local rst_context = thirddata.rst
+
+rst_context.collected_adornments = {}
+rst_context.last_section_level = 0
+rst_context.anonymous_targets = 0
+rst_context.anonymous_links = {}
+
+rst_context.collected_references = {}
+rst_context.context_references = {}
+rst_context.structure_references = {}
+rst_context.anonymous_set = {}
+
+rst_context.substitutions = {}
+rst_context.lastitemnumber = 0 -- enumerations in RST allow arbitrary skips
+
+rst_context.current_footnote_number = 0
+rst_context.current_symbolnote_number = 0
+
+function rst_context.addsetups(item)
+ local state = rst_context.state
+ state.addme[item] = state.addme[item] or true
+ return 0
+end
+
+function rst_context.footnote_reference (label)
+ local tf = rst_context.state.footnotes
+ if stringmatch(label, "^%d+$") then -- all digits
+ local c = tonumber(label)
+ return [[\\footnote{\\getbuffer[__footnote_number_]].. c .."]}"
+ elseif label == "#" then --autonumber
+ local rc = rst_context.current_footnote_number
+ rc = rc + 1
+ rst_context.current_footnote_number = rc
+ return [[\\footnote{\\getbuffer[__footnote_number_]].. rc .."]}"
+ elseif stringmatch(label, "^#.+$") then
+ local thelabel = stringmatch(label, "^#(.+)$")
+ return [[\\footnote{\\getbuffer[__footnote_label_]].. thelabel .."]}"
+ elseif label == "*" then
+ local rc = rst_context.current_symbolnote_number
+ rc = rc + 1
+ rst_context.current_symbolnote_number = rc
+ return [[\\symbolnote{\\getbuffer[__footnote_symbol_]].. rc .."]}"
+ else -- “citation reference” for now treating them like footnotes
+ rst_context.addsetups("citations")
+ return [[\\cite{]] .. label .. [[}]]
+ end
+end
+
+do
+ local w = S" \v\t\n" / "_"
+ local wp = Cs((w + 1)^1)
+ function rst_context.whitespace_to_underscore(str)
+ return str and lpegmatch(wp, str) or ""
+ end
+end
+
+--- So we can use crefs[n][2] to refer to the place where the reference was
+--- created.
+local function get_context_reference (str)
+ local crefs = rst_context.context_references
+ local srefs = rst_context.structure_references
+ srefs[str] = true
+ refstring = "__target_" .. rst_context.whitespace_to_underscore(str)
+ crefs[#crefs + 1] = { refstring, str }
+ return refstring
+end
+
+function rst_context.emphasis (str)
+ return [[{\\em ]] .. str .. [[}]]
+end
+
+function rst_context.strong_emphasis (str)
+ return [[{\\sc ]] .. str .. [[}]]
+end
+
+function rst_context.literal (str)
+ return [[\\type{]] .. str .. [[}]]
+end
+
+--- ROLES for interpreted text
+
+rst_context.roles = {}
+rst_context.roles.emphasis = rst_context.emphasis
+rst_context.roles.strong_emphasis = rst_context.strong_emphasis
+rst_context.roles.literal = rst_context.literal
+rst_context.roles.bold = function(str)
+ return [[{\\bold ]] .. str .. [[}]]
+end
+rst_context.roles.bf = rst_context.roles.bold
+
+rst_context.roles.italic = function(str)
+ return [[{\\italic ]] .. str .. [[}]]
+end
+rst_context.roles.it = rst_context.roles.italic
+
+rst_context.roles.sans = function(str)
+ return [[{\\ss ]] .. str .. [[}]]
+end
+rst_context.roles.sans_serif = rst_context.roles.sans
+rst_context.roles.ss = rst_context.roles.sans
+
+rst_context.roles.uppercase = function(str)
+ return utfupper(str)
+end
+
+rst_context.roles.lowercase = function(str)
+ return utflower(str)
+end
+
+rst_context.roles.color = function(color, str)
+ local p = helpers.patterns
+ local definition = stringmatch(color, "^color_(.+)$")
+ if stringmatch(definition, "^rgb_") then -- assume rgb
+ local rgb = lpegmatch(p.rgbvalues, definition)
+ definition = stringformat([[r=%s,g=%s,b=%s]], rgb[1], rgb[2], rgb[3])
+ end
+ return stringformat([[\\colored[%s]{%s}]], definition, str)
+end
+
+--------------------------------------------------------------------------------
+--- Inofficial text roles for my private bib
+--------------------------------------------------------------------------------
+
+-- Afterthought:
+-- Different citation commands are essentially typographical instructions:
+-- they are concerned with the final representation of the data with respect to
+-- a concrete implementation. Not the thing at all that would make reST
+-- portable. But then its support for Python-style string escaping &c. ain’t at
+-- all portable either. The problem is the same with XML written to be
+-- processed with ConTeXt -- when processing the text directly in MkIV you’ll
+-- always find yourself adding setups that allow fine-grained control of the
+-- typeset output. At the same time those instructions directly contradict the
+-- main reason for XML: to provide an application-independent data markup.
+-- Typesetting XML (and now reST) with TeX, you will always end up writing TeX
+-- code disguised in XML brackets. (Btw. the docutils reST specification has
+-- the same kind of inclination to HTML -- some of its components don’t even
+-- have a meaning save in HTML peculiarities.) If you strive to avoid this
+-- *and* would like to have decent typesetting, you should use the
+-- automatically generated TeX code as a starting point for the actual
+-- typesetting job. Wish it was possible to have both -- the data in a
+-- universal form and the output in the Optimal Typesetting System -- but
+-- that’s a dream for now. If you really read these musings, then prove me
+-- wrong if you can! Or go tell those digital publishers and their willing
+-- subordinates, the authors, who think they can save a few pennys,
+-- substituting the typesetter and editor by some fancy software. Keep in mind
+-- that zapf.tex is not just random dummy text. </rant>
+
+function rst_context.roles.ctsh(str) -- shorthand
+ rst_context.addsetups("citator")
+ return [[\\ctsh{]] .. str .. [[}]]
+end
+
+function rst_context.roles.ctas(str) -- short cite
+ rst_context.addsetups("citator")
+ return [[\\ctas{]] .. str .. [[}]]
+end
+
+function rst_context.roles.ctau(str) -- author only
+ rst_context.addsetups("citator")
+ return [[\\ctau{]] .. str .. [[}]]
+end
+
+function rst_context.roles.cttt(str) -- title only
+ rst_context.addsetups("citator")
+ return [[\\cttt{]] .. str .. [[}]]
+end
+
+function rst_context.roles.ctay(str) -- author year
+ rst_context.addsetups("citator")
+ return [[\\ctay{]] .. str .. [[}]]
+end
+
+function rst_context.roles.ctfu(str) -- full cite
+ rst_context.addsetups("citator")
+ return [[\\ctfu{]] .. str .. [[}]]
+end
+
+function rst_context.roles.nocite(str) -- nocite
+ rst_context.addsetups("citator")
+ return [[\\nocite[]] .. str .. [=[]]=]
+end
+
+--------------------------------------------------------------------------------
+--- End citator roles
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+--- Experimental roles.
+--------------------------------------------------------------------------------
+
+--- Feature request by Philipp A.
+function rst_context.roles.math(str)
+ return [[\\mathematics{]] .. str .. [[}]]
+end
+
+--------------------------------------------------------------------------------
+--- End roles
+--------------------------------------------------------------------------------
+
+function rst_context.interpreted_text (...)
+ local tab = { ... }
+ local role, str
+ role = stringmatch(tab[1], "^:(.*):$") or stringmatch(tab[3], "^:(.*):$")
+ str = tab[2]
+
+ if not role then -- implicit role
+ role = "emphasis"
+ end
+
+ if stringmatch(role, "^color_") then
+ return rst_context.roles.color(role, str)
+ end
+
+ return rst_context.roles[role](str)
+end
+
+function rst_context.link_standalone (str)
+ return "\n"
+ .. [[\\goto{\\hyphenatedurl{]] .. str .. [[}}[url(]] .. str .. [=[)]]=]
+end
+
+function rst_context.reference (str)
+ rst_context.addsetups("references")
+ str = stringmatch(str, "^`?([^`]+)`?_$")
+ return [[\\RSTchoosegoto{__target_]] .. rst_context.whitespace_to_underscore(str) .. "}{"
+ .. str .. "}"
+end
+
+function rst_context.anon_reference (str)
+ rst_context.addsetups("references")
+ str = stringmatch(str, "^`?([^`]+)`?__$")
+ rst_context.anonymous_links[#rst_context.anonymous_links+1] = str
+ link = "__target_anon_" .. #rst_context.anonymous_links
+ return stringformat([[\\RSTchoosegoto{%s}{%s}]], link, str)
+end
+
+local whitespace = S" \n\t\v"
+local nowhitespace = 1 - whitespace
+local removewhitespace = Cs((nowhitespace^1 + Cs(whitespace / ""))^0)
+
+function rst_context.target (tab)
+ rst_context.addsetups("references")
+ --local tab = { ... }
+ local refs = rst_context.collected_references
+ local arefs = rst_context.anonymous_set
+ local target = tab[#tab] -- Ct + C could be clearer but who cares
+ tab[#tab] = nil
+
+ local function create_anonymous ()
+ rst_context.anonymous_targets = rst_context.anonymous_targets + 1
+ return { "anon_" .. rst_context.anonymous_targets, rst_context.anonymous_targets }
+ end
+
+ local insert = ""
+
+ if target == "" then -- links here
+ for _, id in next, tab do
+ insert = insert .. "\n\\reference[__target_" .. id .. "]{}"
+ end
+ else
+ for i=1,#tab do
+ local id = tab[i]
+ if id == "" then -- anonymous
+ local anon = create_anonymous()
+ id, arefs[anon[1]] = anon[1], anon[2]
+ else
+ local tmp = tab[i]
+ tmp = stringgsub(tmp, "\\:",":")
+ tmp = stringmatch(tmp, "`?([^`]+)`?")
+ id = tmp
+ --id = tab[i]:gsub("\\:",":"):match("`?([^`]+)`?") -- deescaping
+ end
+ if id then
+ refs[id] = refs[id] or target
+ end
+ end
+ end
+
+ return insert
+end
+
+function rst_context.inline_internal_target (str)
+ return "\\\\reference[__target_" .. rst_context.whitespace_to_underscore(str) .."]{}"
+end
+
+function rst_context.substitution_reference (str, underscores)
+ local sub = ""
+ rst_context.addsetups "substitutions"
+ if underscores == "_" then -- normal reference
+ sub = sub .. [[\\reference[__target_]] .. rst_context.whitespace_to_underscore(stringstrip(str)) .. "]{}"
+ elseif underscores == "__" then -- normal reference
+ rst_context.anonymous_targets = rst_context.anonymous_targets + 1
+ sub = sub .. [[\\reference[__target_anon_]] .. rst_context.anonymous_targets .. "]{}"
+ end
+ return sub .. [[{\\RSTsubstitution]] .. stringgsub(str, "%s", "") .. "}"
+end
+
+do
+ -- see catc-sym.tex
+ local escape_me = {
+ ["&"] = [[\letterampersand ]],
+ ["$"] = [[\letterdollar ]],
+ ["#"] = [[\letterhash ]],
+ ["^"] = [[\letterhat ]],
+ ["_"] = [[\letterunderscore ]],
+ }
+
+ local chars
+ for chr, repl in next, escape_me do
+ chars = chars and chars + (P(chr) / repl) or P(chr) / repl
+ end
+
+ local p_escape = P{
+ [1] = Cs((V"skip"
+ --+ V"literal" -- achieved via gsub later
+ + chars
+ + 1)^1),
+ skip1 = P"\\starttyping" * (1 - P"\\stoptyping")^1,
+ balanced = P"{" * (V"balanced" + (1 - P"}"))^0 * P"}",
+ skip2 = P"\\type" * V"balanced",
+ skip3 = P"\\mathematics" * V"balanced",
+ skip = V"skip1" + V"skip2" + V"skip3",
+ --literal = Cs(P"\\" / "") * 1
+ }
+
+ function rst_context.escape (str)
+ str = stringgsub(str, "\\(.)", "%1")
+ return lpegmatch(p_escape, str)
+ end
+end
+
+function rst_context.joinindented (tab)
+ return tableconcat (tab, "")
+end
+
+local corresponding = {
+ ['"'] = '"',
+ ["'"] = "'",
+ ["{"] = "}",
+ ["("] = ")",
+ ["["] = "]",
+ ["<"] = ">",
+}
+
+local inline_parser = P{
+ [1] = "block",
+
+ block = Cs(V"inline_as_first"^-1 * (V"except" + V"inline_element" + V"normal_char")^0),
+
+ inline_element = V"precede_inline"
+ * Cs(V"inline_do_elements")
+ * #V"succede_inline"
+ + V"footnote_reference"
+ ,
+
+ -- Ugly but needed in case the first element of a paragraph is inline
+ -- formatted.
+ inline_as_first = V"inline_do_elements" * #V"succede_inline",
+
+ except = P"\\starttyping" * (1 - P"\\stoptyping")^1 * P"\\stoptyping"
+ + V"enclosed"
+ ,
+
+ inline_do_elements = V"strong_emphasis"
+ + V"substitution_reference"
+ + V"anon_reference"
+ + V"inline_literal"
+ + V"reference"
+ + V"emphasis"
+ + V"interpreted_text"
+ + V"inline_internal_target"
+ + V"link_standalone"
+ ,
+
+ precede_inline = V"spacing"
+ + V"eol"
+ + -P(1)
+ + S[['"([{<-/:]]
+ + P"‘" + P"“" + P"’" + P"«" + P"¡" + P"¿"
+ + V"inline_delimiter"
+ + P"„", -- not in standard Murkin reST
+
+ succede_inline = V"spacing"
+ + V"eol"
+ + S[['")]}>-/:.,;!?\]]
+ + P"’" + P"”" + P"»"
+ + V"inline_delimiter"
+ + -P(1)
+ + P"“" -- non-standard again but who cares
+ ,
+
+ enclosed = V"precede_inline"^-1
+ * Cg(V"quote_single" + V"quote_double" + V"leftpar", "lastgroup")
+ * V"inline_delimiter"
+ * Cmt(C(V"quote_single" + V"quote_double" + V"rightpar") * Cb("lastgroup"), function(s, i, char, oldchar)
+ return corresponding[oldchar] == char
+ end)
+ * V"succede_inline"^-1
+ * -V"underscore"
+ ,
+
+ space = P" ",
+ whitespace = (P" " + Cs(P"\t") / " " + Cs(S"\v") / " "),
+ spacing = V"whitespace"^1,
+
+ eol = P"\n",
+ --inline_delimiters = P"‐" + P"‑" + P"‒" + P"–" + V"emdash" + V"space", -- inline markup
+ inline_delimiter = P"‐" + P"‑" + P"‒" + P"–" + V"emdash" + V"space"
+ + V"bareia"
+ + V"asterisk"
+ + V"bar"
+ + V"lbrack" + V"rbrack"
+ , -- inline markup
+ asterisk = P"*",
+ quote_single = P"'",
+ quote_double = P'"',
+ double_asterisk = V"asterisk" * V"asterisk",
+ bareia = P"`",
+ backslash = P"\\",
+ bar = P"|",
+ double_bareia = V"bareia" * V"bareia",
+ escaped_bareia = (Cs(V"backslash") / "" * V"bareia") + 1,
+ colon = P":",
+ escaped_colon = (Cs(V"backslash") / "" * V"colon") + 1,
+ semicolon = P";",
+ underscore = P"_",
+ double_underscore = V"underscore" * V"underscore",
+ dot = P".",
+ interpunct = P"·",
+ comma = P",",
+ dash = P"-",
+ emdash = P"—",
+ ellipsis = P"…" + P"...",
+ exclamationmark = P"!",
+ questionmark = P"?",
+ interrobang = P"‽",
+ double_dash = V"dash" * V"dash",
+ triple_dash = V"double_dash" * V"dash",
+ hyphen = P"‐",
+ dashes = V"dash" + P"‒" + P"–" + V"emdash" + P"―",
+
+ lparenthesis = P"(",
+ rparenthesis = P")",
+ lbrack = P"[",
+ rbrack = P"]",
+ lbrace = P"{" / [[{\\letterleftbrace}]],
+ rbrace = P"}" / [[{\\letterrightbrace}]],
+ less = P"<",
+ greater = P">",
+ leftpar = V"lparenthesis" + V"lbrack" + V"lbrace" + V"less",
+ rightpar = V"rparenthesis" + V"rbrack" + V"rbrace" + V"greater",
+
+ normal_char = V"lbrace" + V"rbrace" + V"lbrack" + V"rbrack" -- escape those if in input
+ + 1
+ ,
+
+ --groupchars = S"()[]{}",
+ groupchars = V"leftpar" + V"rightpar",
+ apostrophe = P"’" + P"'",
+
+ guillemets = P"«" + P"»",
+ quotationmarks= P"‘" + P"’" + P"“" + P"”",
+ solidus= P"⁄",
+ slash = P"/",
+
+ gartenzaun = P"#",
+ digit = R"09",
+ letter = R"az" + R"AZ",
+
+ punctuation = V"apostrophe"
+ + V"colon"
+ + V"comma"
+ + V"dashes"
+ + V"dot"
+ + V"ellipsis"
+ + V"exclamationmark"
+ + V"guillemets"
+ + V"hyphen"
+ + V"interpunct"
+ + V"interrobang"
+ + V"questionmark"
+ + V"quotationmarks"
+ + V"semicolon"
+ + V"slash"
+ + V"solidus"
+ + V"underscore"
+ ,
+
+ emphasis = (V"asterisk" - V"double_asterisk")
+ * Cs((V"normal_char" - V"spacing" - V"eol" - V"asterisk")
+ * ((V"normal_char" - (V"normal_char" * V"asterisk"))^0
+ * (V"normal_char" - V"spacing" - V"eol" - V"asterisk"))^-1)
+ * V"asterisk"
+ / rst_context.emphasis,
+
+ strong_emphasis = V"double_asterisk"
+ * Cs((V"normal_char" - V"spacing" - V"eol" - V"asterisk")
+ * ((V"normal_char" - (V"normal_char" * V"double_asterisk"))^0
+ * (V"normal_char" - V"spacing" - V"eol" - V"asterisk"))^-1)
+ * V"double_asterisk"
+ / rst_context.strong_emphasis,
+
+ inline_literal = V"double_bareia"
+ * C ((V"escaped_bareia" - V"spacing" - V"eol" - V"bareia")
+ * ((V"escaped_bareia" - (V"normal_char" * V"double_bareia"))^0
+ * (V"escaped_bareia" - V"spacing" - V"eol" - V"bareia"))^-1)
+ * V"double_bareia"
+ / rst_context.literal,
+
+ interpreted_single_char = (V"normal_char" - V"spacing" - V"eol" - V"bareia") * #V"bareia",
+ interpreted_multi_char = (V"normal_char" - V"spacing" - V"eol" - V"bareia") * (V"normal_char" - (1 * V"bareia"))^0 * (1 - V"spacing" - V"eol" - V"bareia"),
+
+ interpreted_text = C(V"role_marker"^-1)
+ * (V"bareia" - V"double_bareia")
+ * C(V"interpreted_single_char" + V"interpreted_multi_char")
+ * V"bareia"
+ * C(V"role_marker"^-1)
+ / rst_context.interpreted_text,
+
+ role_marker = V"colon" * (V"backslash" * V"colon" + V"letter" + V"digit" + V"dash" + V"underscore" + V"dot")^1 * V"colon",
+
+ link_standalone = C(V"uri")
+ / rst_context.link_standalone,
+
+ anon_reference = Cs(V"anon_phrase_reference" + V"anon_normal_reference")
+ / rst_context.anon_reference,
+
+ anon_normal_reference = C((1 - V"underscore" - V"spacing" - V"eol" - V"punctuation" - V"groupchars")^1) * V"double_underscore",
+
+ anon_phrase_reference = (V"bareia" - V"double_bareia")
+ * C((1 - V"bareia")^1)
+ * V"bareia" * V"double_underscore"
+ ,
+
+ reference = Cs(V"normal_reference" + V"phrase_reference")
+ / rst_context.reference,
+
+ normal_reference = (1 - V"underscore" - V"spacing" - V"eol" - V"punctuation" - V"groupchars")^1 * V"underscore",
+
+ phrase_reference = (V"bareia" - V"double_bareia")
+ * C((1 - V"bareia")^1)
+ * V"bareia" * V"underscore"
+ ,
+
+ footnote_reference = V"lbrack"
+ * Cs(V"footnote_label" + V"citation_reference_label")
+ * V"rbrack"
+ * V"underscore"
+ / rst_context.footnote_reference
+ ,
+
+ footnote_label = V"digit"^1
+ + V"gartenzaun" * V"letter"^1
+ + V"gartenzaun"
+ + V"asterisk"
+ ,
+
+ citation_reference_label = V"letter" * (1 - V"rbrack")^1,
+
+ inline_internal_target = V"underscore"
+ * V"bareia"
+ * Cs((1 - V"bareia")^1)
+ * V"bareia"
+ / rst_context.inline_internal_target
+ ,
+
+ substitution_reference = V"bar"
+ * C((1 - V"bar")^1)
+ * V"bar"
+ * C((V"double_underscore" + V"underscore")^-1)
+ / rst_context.substitution_reference
+ ,
+
+--------------------------------------------------------------------------------
+-- Urls
+--------------------------------------------------------------------------------
+ uri = V"url_protocol" * V"url_domain" * V"url_path_char"^0,
+
+ url_protocol = (P"http" + P"ftp" + P"shttp" + P"sftp") * P"://",
+ url_domain_char = 1 - V"dot" - V"spacing" - V"eol" - V"punctuation",
+ url_domain = V"url_domain_char"^1 * (V"dot" * V"url_domain_char"^1)^0,
+ url_path_char = R("az", "AZ", "09") + S[[-_.!~*'()/]],
+}
+
+rst_context.inline_parser = inline_parser
+
+function rst_context.paragraph (data)
+ local str
+ if not data then
+ return ""
+ elseif type(data) == "table" then
+-- str = #data > 1 and helpers.string.wrapat(lpegmatch(inline_parser, tableconcat(data, " ")), 65)
+-- or inline_parser:match(data[1])
+ if #data > 1 then
+ str = helpers.string.wrapat(
+ lpegmatch(inline_parser, tableconcat(data, " "))
+ , 65)
+ else
+ str = lpegmatch(inline_parser, data[1])
+ end
+ else
+ str = data
+ end
+ return stringformat([[
+
+\\startparagraph
+%s
+\\stopparagraph
+]], str)
+end
+
+local sectionlevels = {
+ [1] = "chapter",
+ [2] = "section",
+ [3] = "subsection",
+ [4] = "subsubsection",
+ [5] = "subsubsubsection",
+}
+
+local function get_line_pattern (chr)
+ return P(chr)^1 * (-P(1))
+end
+
+--[[--
+ Quoth the spec:
+ An underline-only adornment is distinct from an
+ overline-and-underline adornment using the same character.
+
+ We store the depths by hashing the adorn character and distinguish
+ the overlined ones from only underlined ones by prefixing them with
+ “O” and “U”, respectively.
+--]]--
+
+function rst_context.section (first, second, third)
+ local section = true
+ local str = ""
+ local adornchar = nil
+ local ulen = utflen
+ if third then --- overlined
+ adornchar = "O" .. stringsub(first, 1,1)
+ section = ulen(first) >= ulen(second)
+ str = stringstrip(second)
+ else -- underline-only
+ adornchar = "U" .. stringsub(second, 1,1)
+ section = ulen(first) <= ulen(second)
+ str = stringstrip(first)
+ end
+
+ if section then -- determine level
+ local level = rst_context.last_section_level
+ local rca = rst_context.collected_adornments
+ if rca[adornchar] then
+ level = rca[adornchar]
+ else
+ level = level + 1
+ rca[adornchar] = level
+ rst_context.last_section_level = level
+ end
+
+ local ref = get_context_reference (str)
+
+ str = stringformat("\n\\\\%s[%s]{%s}\n",
+ sectionlevels[level],
+ ref,
+ str)
+ return str or ""
+ end
+ return [[{\\bf fix your sectioning!}\\endgraf}]]
+end
+
+-- Prime time for the fancybreak module.
+function rst_context.transition (str)
+ rst_context.addsetups("breaks")
+ --return "\\fancybreak\n"
+ return "\\fancybreak{$* * *$}\n"
+end
+
+function rst_context.bullet_marker(str)
+ return "marker"
+end
+
+-- This one should ignore escaped spaces.
+do
+ local stripper = P{
+ [1] = "stripper",
+ stripper = V"space"^0 * C((V"space"^0 * V"nospace"^1)^0),
+ space = S(" \t\v\n"),
+ escaped = P"\\" * V"space",
+ nospace = V"escaped" + (1 - V"space"),
+ }
+ function stringstrip(str)
+ return lpegmatch(stripper, str) or ""
+ end
+end
+
+local enumeration_types = {
+ ["*"] = "*", -- unordered bulleted
+ ["+"] = "*",
+ ["-"] = "*",
+ ["•"] = "*",
+ ["‣"] = "*",
+ ["⁃"] = "*",
+
+ ["#"] = "n", -- numbered lists and conversion
+ ["A"] = "A",
+ ["a"] = "a",
+ ["I"] = "R",
+ ["i"] = "r",
+}
+
+-- \setupitemize[left=(, right=), margin=4em, stopper=]
+
+local stripme = S"()."
+local dontstrip = 1 - stripme
+local itemstripper = stripme^0 * C(dontstrip^1) * stripme^0
+
+local function parse_itemstring(str)
+ local offset = nil
+ local setup = ",fit][itemalign=flushright,"
+ if stringmatch(str, "^%(") then
+ setup = setup .. [[left=(,]]
+ end
+ if stringmatch(str, "%)$") then
+ setup = setup .. [[right=)]]
+ end
+ if stringmatch(str, "%.$") then
+ setup = setup .. [[stopper={.\\space}]]
+ end
+ local num = stringmatch(str, "^%d")
+ if num then
+ -- http://thread.gmane.org/gmane.comp.tex.context/61728/focus=61729
+ setup = setup .. ",start=" .. num
+ str = "n"
+ end
+
+ str = lpegmatch(itemstripper, str)
+ str = enumeration_types[str] or str
+ return { setup = setup, str = str }
+end
+
+function rst_context.startitemize(str)
+ local setup = ""
+ local result = ""
+ str = stringstrip(str)
+
+ local listtype = enumeration_types[str] or parse_itemstring(str)
+
+ if type(listtype) == "table" then
+ setup = listtype.setup
+ listtype = listtype.str
+ end
+
+ result = [[
+\\startitemize[]] .. listtype .. setup .. [[]
+]]
+ return result
+end
+
+local item_stack = { }
+
+function rst_context.stopitemize(str)
+ item_stack[#item_stack] = nil
+ return str .. [[
+\\stopitemize
+]]
+end
+
+function rst_context.bullet_item (tab)
+ -- The capture of the first item has the \startitemize as
+ -- *second* element in the array.
+ local content = #tab == 2 and tab[2] or tab[3]
+ local startstr = #tab == 3 and tab[2] or nil
+ local itemtype = tab[1]
+ local result = startstr or ""
+ if startstr then
+ item_stack[#item_stack + 1] = itemtype
+ elseif next (item_stack) then
+ local current_item = item_stack [#item_stack]
+ if helpers.list.successor(itemtype, current_item) then
+ -- just leave it alone
+ elseif helpers.list.greater(itemtype, current_item) then
+ local itemnum = tonumber(stringstrip(itemtype)) or helpers.list.get_decimal(itemtype)
+ result = result .. stringformat([[
+\\setnumber[itemgroup:itemize]{%s}
+]], itemnum)
+ end
+ item_stack[#item_stack] = itemtype
+ end
+
+ return result .. [[
+
+\\item ]] .. lpegmatch(inline_parser, content) .. [[
+
+]]
+end
+
+--------------------------------------------------------------------------------
+-- Definition lists
+--------------------------------------------------------------------------------
+-- TODO define proper setups (probably bnf-like and some narrower for def-paragraphs)
+
+function rst_context.deflist (list)
+ rst_context.addsetups("deflist")
+
+ local deflist = [[
+\\startRSTdefinitionlist
+]]
+ for nd=1, #list do
+ local item = list[nd]
+ local term = item[1]
+ local nc = 2
+ local tmp = [[
+
+ \\RSTdeflistterm{]] .. stringstrip(term) .. "}"
+ if #item > 2 then
+ while nc < #item do
+ tmp = tmp .. [[
+
+ \\RSTdeflistclassifier{]] .. stringstrip(item[nc]) .. "}"
+ nc = nc + 1
+ end
+ end
+ tmp = tmp .. [[
+
+ \\RSTdeflistdefinition{%
+]]
+ local final = item[#item]
+ for np=1, #final do
+ local par = final[np]
+ tmp = tmp .. [[
+ \\RSTdeflistparagraph{%
+]] .. lpegmatch(inline_parser, par) .. "}\n"
+ end
+ tmp = tmp .. " }"
+ deflist = deflist .. tmp
+ end
+ return deflist .. [[
+
+\\stopRSTdefinitionlist
+]]
+end
+
+--------------------------------------------------------------------------------
+-- Field lists
+--------------------------------------------------------------------------------
+
+-- TODO Do something useful with field lists. For now I'm not sure what as the
+-- bibliography directives from the reST specification seem to make sense only
+-- when using docinfo and, after all, we have .bib files that are portable.
+
+function rst_context.field_list (str)
+ rst_context.addsetups("fieldlist")
+ return [[
+
+\\startRSTfieldlist]] .. str .. [[\\eTABLEbody\\stopRSTfieldlist
+]]
+end
+
+function rst_context.field_name (str)
+ return [[\\fieldname{]] .. str .. [[}]]
+end
+
+function rst_context.field_body (str)
+ return [[\\fieldbody{]] .. lpegmatch(inline_parser, str) .. [[}]]
+end
+
+function rst_context.field (tab)
+ local name, body = tab[1], tab[2]
+ return stringformat([[
+
+ \\RSTfieldname{%s}
+ \\RSTfieldbody{%s}
+]], name, lpegmatch(inline_parser, body))
+end
+
+function rst_context.line_comment (str)
+ return "% " .. str
+end
+
+function rst_context.block_comment (str)
+ return stringformat([[
+
+\iffalse %% start block comment
+%s\fi %% stop block comment
+]], str)
+end
+
+function rst_context.option_list (str)
+ return [[
+\\setupTABLE[c][first] [background=color, backgroundcolor=grey, style=\tt]
+\\setupTABLE[c][each] [frame=off]
+\\setupTABLE[r][each] [frame=off]
+\\bTABLE[split=yes,option=stretch]
+\\bTABLEhead
+\\bTR
+ \\bTH Option \\eTH
+ \\bTH Description \\eTH
+\\eTR
+\\eTABLEhead
+\\bTABLEbody
+]] .. lpegmatch(inline_parser, str) .. [[
+
+\\eTABLEbody
+\\eTABLE
+]]
+end
+
+function rst_context.option_item (tab)
+ return stringformat([[\\bTR\\bTC %s \\eTC\\bTC %s \\eTC\\eTR
+]], tab[1], tab[2])
+end
+
+function rst_context.test(str)
+ return ":"
+end
+
+function rst_context.literal_block (str, included)
+ local indent = P" "^1
+ local stripme = #str
+ for line in stringgmatch(str, "[^\n]+") do
+ -- setting to the lowest indend of all lines
+ local idt = lpegmatch(indent, line)
+ if line and idt then
+ stripme = idt < stripme and idt or stripme
+ end
+ end
+
+ local strip = P{
+ [1] = "strip",
+ strip = Cs(V"line"^1),
+ eol = P"\n",
+ restofline = (1 - V"eol")^0,
+ stop = Cs(V"eol" * P" "^0) * -P(1) / "", -- remove trailing blank lines
+ line = Cs(V"restofline" * (V"stop" + V"eol")) / function (line)
+ return #line > stripme and line:sub(stripme) or line
+ end,
+ }
+
+ str = lpegmatch(strip, str)
+ str = [[
+
+\starttyping[lines=hyphenated]
+]] .. str .. [[
+
+\stoptyping
+]]
+ if included then -- escaping can ruin your day
+ str = str:gsub("\\", "\\\\")
+ end
+ return str
+end
+
+function rst_context.included_literal_block (str)
+ return rst_context.literal_block(str, true)
+end
+
+function rst_context.line_block (str)
+ rst_context.addsetups("lines")
+ return [[
+
+\\startlines
+]] .. lpegmatch(inline_parser, str) .. [[\\stoplines
+]]
+end
+
+function rst_context.line_block_line(str)
+ str = str:gsub("\n", " ")
+ return str .. "\n"
+end
+
+function rst_context.line_block_empty()
+ return "\n"
+end
+
+function rst_context.block_quote (tab)
+ rst_context.addsetups("blockquote")
+ local str = [[
+\\startlinecorrection
+\\blank[small]
+\\startblockquote
+]] .. lpegmatch(inline_parser, tab[1]) .. [[
+
+\\stopblockquote
+]]
+
+ return tab[2] and str .. [[
+\\blank[small]
+\\startattribution
+]] .. lpegmatch(inline_parser, tab[2]) .. [[
+\\stopattribution
+\\blank[small]
+\\stoplinecorrection
+]] or str .. [[
+\\blank[small]
+\\stoplinecorrection
+]]
+end
+
+--function rst_context.table (str)
+ --return [[
+--\\startlinecorrection
+--]] .. str .. [[
+
+--\\stoplinecorrection
+--]]
+--end
+
+function rst_context.grid_table (tab)
+ local body = ""
+ local nr = 1
+ local head
+ if tab.has_head then
+ head = [[
+\\setupTABLE[c][each] [frame=off]
+\\setupTABLE[r][each] [frame=off]
+%\\startlinecorrection
+\\bTABLE[split=repeat,option=stretch]
+\\bTABLEhead
+]]
+ while nr <= tab.head_end do
+ local r = tab.rows[nr]
+ local isempty = true
+ for n=1, #r do
+ local cell = r[n]
+ if cell.variant == "normal" then
+ isempty = false
+ break
+ end
+ end
+
+ if not isempty then
+ local row = [[\\bTR]]
+ for n=1, #r do
+ local c = r[n]
+ if not (c.parent or
+ c.variant == "separator") then
+ local celltext = lpegmatch(inline_parser, c.stripped)
+ if c.span.x or c.span.y then
+ local span_exp = "["
+ if c.span.x then
+ span_exp = span_exp .. "nc=" .. c.span.x .. ","
+ end
+ if c.span.y then
+ span_exp = span_exp .. "nr=" .. c.span.y
+ end
+ celltext = span_exp .. "] " .. celltext
+
+ end
+
+ row = row .. "\n " .. [[\\bTH ]] .. celltext .. [[\\eTH]]
+ end
+ end
+ head = head .. row .. "\n" .. [[\\eTR]] .. "\n"
+ end
+ nr = nr + 1
+ end
+ head = head .. [[
+\\eTABLEhead
+\\bTABLEbody
+]]
+ else
+ head = [[
+\\setupTABLE[c][each] [frame=off]
+\\setupTABLE[r][each] [frame=off]
+%\\startlinecorrection
+\\bTABLE[split=repeat,option=stretch]
+\\bTABLEbody
+]]
+ end
+ while nr <= #tab.rows do
+ local r = tab.rows[nr]
+ local isempty = true
+ for n=1, #r do
+ local cell = r[n]
+ if cell.variant == "normal" then
+ isempty = false
+ break
+ end
+ end
+
+ if not isempty then
+ local row = [[\\bTR]]
+ for n=1, #r do
+ local c = r[n]
+ if not (c.parent or
+ c.variant == "separator") then
+ local celltext = lpegmatch(inline_parser, c.stripped)
+ if c.span.x or c.span.y then
+ local span_exp = "["
+ if c.span.x then
+ span_exp = span_exp .. "nc=" .. c.span.x .. ","
+ end
+ if c.span.y then
+ span_exp = span_exp .. "nr=" .. c.span.y
+ end
+ celltext = span_exp .. "] " .. celltext
+
+ end
+
+ row = row .. "\n " .. [[\\bTC ]] .. celltext .. [[\\eTC]]
+ end
+ end
+ body = body .. row .. "\n" .. [[\\eTR]] .. "\n"
+ end
+ nr = nr + 1
+ end
+ local tail = [[
+\\eTABLEbody
+\\eTABLE
+%\\stoplinecorrection
+]]
+ return head .. body .. tail
+end
+
+
+function rst_context.simple_table(tab)
+ local head
+ local nr = 1
+ if tab.head_end then
+ head = [[
+\\setupTABLE[c][each] [frame=off]
+\\setupTABLE[r][each] [frame=off]
+%\\startlinecorrection
+\\bTABLE[split=yes,option=stretch]
+\\bTABLEhead
+]]
+ while nr <= tab.head_end do
+ local row = tab[nr]
+ if not row.ignore then
+ dbg_write(">hr>" .. #row)
+ head = head .. [[\\bTR]]
+ for nc=1, #row do
+ local cell = row[nc]
+ dbg_write("%7s | ", cell.content)
+ local celltext = lpegmatch(inline_parser, cell.content)
+ if cell.span then
+ head = head .. stringformat([=[\\bTH[nc=%s]%s\\eTH]=], cell.span.x, celltext or "")
+ else
+ head = head .. [[\\bTH ]] .. celltext .. [[\\eTH]]
+ end
+ end
+ dbg_write("\n")
+ head = head .. "\\\\eTR\n"
+ end
+ nr = nr + 1
+ end
+
+ head = head .. [[
+\\eTABLEhead
+\\bTABLEbody
+]]
+ else
+ head = [[
+\\setupTABLE[c][each] [frame=off]
+\\setupTABLE[r][each] [frame=off]
+%\\startlinecorrection
+\\bTABLE[split=yes,option=stretch]
+\\bTABLEbody
+]]
+ end
+ local tail = [[
+\\eTABLEbody
+\\eTABLE
+%\\stoplinecorrection
+]]
+ local body = ""
+ while nr <= #tab do
+ local row = tab[nr]
+ if not row.ignore then
+ dbg_write(">tr>" .. #row)
+ body = body .. [[\\bTR]]
+ for nc=1, #row do
+ local cell = row[nc]
+ dbg_write("%7s | ", cell.content)
+ local celltext = lpegmatch(inline_parser, cell.content)
+ if cell.span then
+ body = body .. stringformat([=[\\bTC[nc=%s]%s\\eTC]=], cell.span.x, celltext or "")
+ else
+ body = body .. [[\\bTC ]] .. celltext .. [[\\eTC]]
+ end
+ end
+ dbg_write("\n")
+ body = body .. "\\\\eTR\n"
+ end
+ nr = nr + 1
+ end
+ return head .. body .. tail
+end
+
+function rst_context.footnote (label, content)
+ local tf = rst_context.state.footnotes
+ rst_context.addsetups("footnotes")
+ if stringmatch(label, "^%d+$") then -- all digits
+ tf.numbered[tonumber(label)] =
+ rst_context.escape(lpegmatch(inline_parser, content))
+ elseif label == "#" then --autonumber
+ repeat -- until next unrequested number
+ tf.autonumber = tf.autonumber + 1
+ until tf.numbered[tf.autonumber] == nil
+ tf.numbered[tf.autonumber] =
+ rst_context.escape(lpegmatch(inline_parser, content))
+ elseif stringmatch(label, "^#.+$") then
+ local thelabel = stringmatch(label, "^#(.+)$")
+ tf.autolabel[thelabel] =
+ rst_context.escape(lpegmatch(inline_parser, content))
+ elseif label == "*" then
+ rst_context.addsetups("footnote_symbol")
+ tf.symbol[#tf.symbol+1] =
+ rst_context.escape(lpegmatch(inline_parser, content))
+ else -- “citation reference” treated like ordinary footnote
+ repeat -- until next unrequested number
+ tf.autonumber = tf.autonumber + 1
+ until tf.numbered[tf.autonumber] == nil
+ tf.numbered[tf.autonumber] =
+ rst_context.escape(lpegmatch(inline_parser, content))
+ end
+ return ""
+end
+
+--- hack to differentiate inline images
+local special_substitutions = {
+ image = "inline_image",
+}
+
+function rst_context.substitution_definition (subtext, directive, data)
+ local special = special_substitutions[directive]
+ if special then
+ --- override; pass data directly
+ directive = special
+ else
+ local tmp
+ if data.first ~= "" then
+ tmp = { data.first }
+ else
+ tmp = { }
+ end
+ data.first = nil
+ for i=1, #data do -- paragraphs
+ local current = tableconcat(data[i], "\n")
+ --current = lpegmatch(inline_parser, current)
+ --current = rst_context.escape(current)
+ tmp[#tmp+1] = current
+ end
+ data = tableconcat(tmp, "\n\n")
+ data = stringstrip(data)
+ end
+ subtext = stringgsub(subtext, "%s", "")
+ rst_context.substitutions[subtext] = { directive = directive,
+ data = data }
+ return ""
+end
+
+-- not to be confused with the directive definition table rst_directives
+function rst_context.directive(directive, data)
+ local fun = rst_directives[directive]
+ if fun then
+ rst_context.addsetups("directive")
+ local result = ""
+ result = fun(data)
+ return result
+ end
+ return ""
+end
+
+-- vim:ft=lua:sw=4:ts=4:expandtab
diff --git a/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_directives.lua b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_directives.lua
new file mode 100644
index 0000000000..f5572b7be7
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_directives.lua
@@ -0,0 +1,381 @@
+#!/usr/bin/env texlua
+--------------------------------------------------------------------------------
+-- FILE: rst_directives.lua
+-- USAGE: called by rst_parser.lua
+-- DESCRIPTION: Complement to the reStructuredText parser
+-- AUTHOR: Philipp Gesang (Phg), <phg42.2a@gmail.com>
+-- CHANGED: 2013-06-03 18:52:35+0200
+--------------------------------------------------------------------------------
+--
+
+local helpers = helpers or thirddata and thirddata.rst_helpers
+
+--------------------------------------------------------------------------------
+-- Directives for use with |substitutions|
+--------------------------------------------------------------------------------
+
+local rst_directives = { }
+thirddata.rst_directives = rst_directives
+local rst_context = thirddata.rst
+
+local lpegmatch = lpeg.match
+local stringformat = string.format
+local stringstrip = string.strip
+local tableconcat = table.concat
+local tableflattened = table.flattened
+local type = type
+
+--rst_directives.anonymous = 0
+rst_directives.images = {}
+rst_directives.images.done = {}
+rst_directives.images.values = {}
+
+
+rst_directives.images.keys = {
+ ["width"] = "width",
+ ["size"] = "width",
+ ["caption"] = "caption",
+ ["alt"] = "caption",
+ ["scale"] = "scale",
+}
+
+rst_directives.images.values.scale = function (orig)
+ -- http://wiki.contextgarden.net/Reference/en/useexternalfigure
+ -- scale=1000 is original size; to get 72%, use scale=720.
+ return tonumber(orig) * 1000
+end
+
+rst_directives.images.values.width = {
+ ["fit"] = "\\hsize",
+ ["hsize"] = "\\hsize",
+ ["broad"] = "\\hsize",
+ ["normal"] = "local",
+ ["normal"] = "local",
+}
+
+-- we won't allow passing arbitrary setups to context
+local permitted_setups = {
+ "width",
+ "scale"
+}
+
+local function img_setup (properties)
+ local result = ""
+ for _, prop in next, permitted_setups do
+ if properties[prop] then
+ result = result .. prop .. "=" .. properties[prop] .. ","
+ end
+ end
+ if result ~= "" then
+ result = "[" .. result .. "]"
+ end
+ return result
+end
+
+local collect_image_properties = function (data)
+ local image_directives = rst_directives.images
+ local p_keyval = helpers.patterns.colon_keyval
+ local properties = { }
+
+ data = tableflattened(data)
+ for i=1, #data do
+ local str = stringstrip(data[i])
+ local key, val = lpegmatch(p_keyval, str)
+ if key and val then
+ key = image_directives.keys[key] -- sanitize key expression
+ local valtype = type(image_directives.values[key])
+ if valtype == "table" then
+ val = image_directives.values[key][val]
+ elseif valtype == "function" then
+ val = image_directives.values[key](val)
+ end
+ properties[key] = val
+ end
+ end
+ return properties
+end
+
+--- ordinary image directives are converted to floats
+
+local float_image = function (data)
+ rst_context.addsetups "image"
+ local inline_parser = rst_context.inline_parser
+ local properties
+ local anon = false
+ local rdi = rst_directives.images
+ local hp = helpers.patterns
+ local caption = ""
+ local name = ""
+
+ if data.name then
+ name = stringstrip(data.name)
+ data.name = nil
+ else
+ if next(data[1]) then
+ name = data[1][1]
+ end
+ end
+
+ --rd.anonymous = rd.anonymous + 1
+ --anon = true -- indicates a nameless picture
+ --name = "anonymous" .. rd.anonymous
+
+ properties = collect_image_properties(data)
+
+ if properties.caption then
+ caption = lpegmatch(inline_parser, properties.caption)
+ caption = rst_context.escape(caption)
+ end
+
+ properties.setup = img_setup(properties) or ""
+ local img = ""
+-- local images_done = rdi.done
+-- if not anon then -- TODO: implement?
+-- if not images_done[name] then
+-- img = img .. stringformat([[
+--
+--\useexternalfigure[%s][%s][]%%
+--]], name, data)
+-- images_done[name] = true
+-- end
+-- img = img .. stringformat([[
+--\def\RSTsubstitution%s{%%
+-- \placefigure[here]{%s}{\externalfigure[%s]%s}%%
+--}
+--]], name, rst_context.escape(lpegmatch(inline_parser, properties.caption)), name, properties.setup)
+-- else -- image won't be referenced but used instantly
+ img = stringformat(
+ "\n\\placefigure[here]{%s}{\\externalfigure[%s]%s}",
+ caption,
+ name,
+ properties.setup)
+-- end
+ return img
+end
+
+--- inline substitutions are converted to bare external figures
+local inline_image = function (name, data)
+ rst_context.addsetups "image"
+ local filename = data.first
+ local p_keyval = helpers.patterns.colon_keyval
+ local properties
+
+ if not filename then --- garbage, ignore
+ return ""
+ end
+ data.first = nil
+ filename = stringstrip(filename)
+ properties = collect_image_properties(data)
+
+ local scheme = "\n\\def\\RSTsubstitution%s{\n \\externalfigure[%s]%s%%\n}\n"
+ local options = ""
+ if next(properties) then
+ local tmp = { }
+ tmp[#tmp+1] = "["
+ for key, value in next, properties do
+ tmp[#tmp+1] = key
+ tmp[#tmp+1] = "={"
+ tmp[#tmp+1] = rst_context.escape(value)
+ tmp[#tmp+1] = "},"
+ end
+ tmp[#tmp+1] = "]"
+ options = tableconcat(tmp)
+ end
+ return stringformat(scheme, name, filename, options)
+end
+
+rst_directives.image = float_image
+rst_directives.inline_image = inline_image
+
+rst_directives.caution = function(data)
+ local inline_parser = rst_context.inline_parser
+ rst_context.addsetups("dbend")
+ rst_context.addsetups("caution")
+ local text = { }
+ for i=1, #data do -- paragraphs
+ local current = tableconcat(data[i], "\n")
+ current = lpegmatch(inline_parser, current)
+ current = rst_context.escape(current)
+ text[i] = current
+ end
+ return stringformat([[
+\startRSTcaution
+%s
+\stopRSTcaution
+]], tableconcat(text, "\n\n"))
+end
+
+rst_directives.danger = function(data)
+ local inline_parser = rst_context.inline_parser
+ rst_context.addsetups("dbend")
+ rst_context.addsetups("danger")
+ local text = { }
+ for i=1, #data do -- paragraphs
+ local current = tableconcat(data[i], "\n")
+ current = lpegmatch(inline_parser, current)
+ current = rst_context.escape(current)
+ text[i] = current
+ end
+ return stringformat([[
+\startRSTdanger
+%s
+\stopRSTdanger
+]], tableconcat(text, "\n\n"))
+end
+
+-- http://docutils.sourceforge.net/docs/ref/rst/directives.html
+rst_directives.DANGER = function(data)
+ local inline_parser = rst_context.inline_parser
+ local text = { }
+ for i=1, #data do -- paragraphs
+ local current = tableconcat(data[i], "\n")
+ current = lpegmatch(inline_parser, current)
+ current = rst_context.escape(current)
+ text[i] = current
+ end
+ return stringformat([[
+
+%% The Rabbit of Caerbannog
+\startlinecorrection
+\blank[force,big]
+\framed[frame=on,
+ corner=round,
+ rulethickness=5pt,
+ align=middle,
+ width=\hsize,
+ frameoffset=.5em,
+ backgroundoffset=1em,
+ background=color,
+ backgroundcolor=red,
+ foreground=color,
+ foregroundcolor=black]{%%
+ \language[en-gb]\tfb\bf
+ Follow only if ye be men of valour, for the entrance to this cave is guarded
+ by a creature so foul, so cruel that no man yet has fought with it and lived.
+ Bones of full fifty men lie strewn about its lair. So, brave knights, if you
+ do doubt your courage or your strength, come no further, for death awaits you
+ all with nasty, big, pointy teeth.%%
+ \blank[force,big]
+ %s%%
+}
+\blank[force,big]
+\stoplinecorrection
+]], tableconcat(text, "\n\n"))
+end
+
+rst_directives.mp = function(name, data)
+ local mpcode = stringformat([[
+\startreusableMPgraphic{%s}
+%s
+\stopreusableMPgraphic
+]], name, data)
+ mpcode = mpcode .. stringformat([[
+\def\RSTsubstitution%s{%%
+ \reuseMPgraphic{%s}%%
+}
+]], name, name)
+ return mpcode
+end
+
+--- There’s an issue with buffers leaving trailing spaces due to their
+--- implementation.
+--- http://archive.contextgarden.net/message/20111108.175913.1d994624.en.html
+rst_directives.ctx = function(name, data)
+ local ctx = stringformat([[
+
+\startbuffer[%s]
+%s\stopbuffer
+\def\RSTsubstitution%s{%%
+ \getbuffer[%s]\removeunwantedspaces%%
+}
+]], name, data, name, name)
+ return ctx
+end
+
+rst_directives.lua = function(name, data)
+ local luacode = stringformat([[
+
+\startbuffer[%s]
+\startluacode
+%s
+\stopluacode
+\stopbuffer
+\def\RSTsubstitution%s{%%
+ \getbuffer[%s]\removeunwantedspaces%%
+}
+]], name, data, name, name)
+ return luacode
+end
+
+--------------------------------------------------------------------------------
+--- Experimental math directive
+--------------------------------------------------------------------------------
+
+rst_directives.math = function (name, data)
+ data = data or name
+ local formula
+ if type(data) == "table" then
+ local last, i = #data, 1
+ while i <= last do
+ local line = stringstrip(data[i])
+ if line and line ~= "" then
+ formula = formula and formula .. " " .. line or line
+ end
+ i = i + 1
+ end
+ end
+ return stringformat([[
+\startformula
+%s
+\stopformula
+]], formula)
+end
+
+--------------------------------------------------------------------------------
+--- End math directive
+--------------------------------------------------------------------------------
+
+rst_directives.replace = function(name, data)
+ return stringformat([[
+
+\def\RSTsubstitution%s{%s}
+]], name, data)
+end
+
+--------------------------------------------------------------------------------
+--- Containers.
+--------------------------------------------------------------------------------
+
+--- *data*:
+--- { [1] -> directive name,
+--- [>1] -> paragraphs }
+
+rst_directives.container = function(data)
+ local inline_parser = rst_context.inline_parser
+ local tmp = { }
+ for i=1, #data do -- paragraphs
+ local current = tableconcat(data[i], "\n")
+ current = lpegmatch(inline_parser, current)
+ current = rst_context.escape(current)
+ tmp[i] = current
+ end
+ local content = tableconcat(tmp, "\n\n")
+ local name = data.name
+ if name and name ~= "" then
+ name = stringstrip(data.name)
+ return stringformat([[
+\start[%s]%%
+%s%%
+\stop
+]], name, content)
+ else
+ return stringformat([[
+\begingroup%%
+%s%%
+\endgroup
+]], content)
+ end
+end
+
+-- vim:ft=lua:sw=4:ts=4:expandtab
+
diff --git a/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_helpers.lua b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_helpers.lua
new file mode 100644
index 0000000000..ba6abfb123
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_helpers.lua
@@ -0,0 +1,657 @@
+#!/usr/bin/env texlua
+--------------------------------------------------------------------------------
+-- FILE: rst_helpers.lua
+-- USAGE: called by rst_parser.lua
+-- DESCRIPTION: Complement to the reStructuredText parser
+-- AUTHOR: Philipp Gesang (Phg), <phg42.2a@gmail.com>
+-- CHANGED: 2014-03-02 19:20:28+0100
+--------------------------------------------------------------------------------
+--
+
+local P, R, S, V, lpegmatch
+ = lpeg.P, lpeg.R, lpeg.S, lpeg.V, lpeg.match
+
+local C, Carg, Cb, Cc, Cg,
+ Cmt, Cp, Cs, Ct
+ = lpeg.C, lpeg.Carg, lpeg.Cb, lpeg.Cc, lpeg.Cg,
+ lpeg.Cmt, lpeg.Cp, lpeg.Cs, lpeg.Ct
+
+local helpers
+helpers = thirddata.rst_helpers
+helpers.table = {}
+helpers.cell = {}
+
+local utf = unicode.utf8
+local utflen = utf.len
+
+local stringstrip = string.strip
+local stringformat = string.format
+
+function helpers.dbg_writef(...)
+ if helpers.rst_debug then
+ io.write(stringformat(...))
+ end
+end
+
+local dbg_write = helpers.dbg_writef
+
+helpers.patterns = {}
+
+do
+ local p = helpers.patterns
+ p.dash = P"-"
+ p.equals = P"="
+ p.plus = P"+"
+ p.bar = P"|"
+ p.eol = P"\n"
+ p.last = -P(1)
+ p.space = P" "
+
+ p.dash_or_equals = p.dash + p.equals
+
+ p.celldelim = p.bar + p.plus
+ p.cellcontent = (1 - p.celldelim)
+ p.cell = p.celldelim * C((1 - p.celldelim)^1) * #p.celldelim
+ p.cell_line = p.plus * p.dash^1 * #p.plus
+ p.dashesonly = p.dash^1 * p.last
+ p.spacesonly = p.space^1 * p.last
+
+ p.col_start = Cp() * p.dash_or_equals^1
+ p.col_stop = p.dash_or_equals^1 * Cp()
+ p.column_starts = Ct(p.col_start * ( p.space^1 * p.col_start)^1)
+ p.column_stops = Ct(p.col_stop * ( p.space^1 * p.col_stop)^1)
+
+ p.st_headsep = p.equals^1 * (p.space^1 * p.equals^1)^1
+ p.st_colspan = p.dash^1 * (p.space^1 * p.dash^1)^0 * p.space^0 * p.last
+ p.st_span_starts = Ct(Cp() * p.dash^1 * (p.space^1 * Cp() * p.dash^1)^0)
+ p.st_span_stops = Ct(p.dash^1 * Cp() * (p.space^1 * p.dash^1 * Cp())^0)
+
+
+ p.cells = P{
+ [1] = "cells",
+ cells = p.celldelim
+ * (C(V"in_cell")
+ * (V"matchwidth" * C(V"in_cell"))^1),
+
+ in_cell = p.cellcontent^1
+ + (p.dash - p.cellcontent)^1,
+
+ matchwidth = Cmt(C(p.celldelim) * Carg(1), function(s,i,del, layout)
+ local pos = 1
+ local lw = layout.widths
+ for n=1, #lw do
+ pos = pos + lw[n] + 1
+ if (i - 1) == pos then return true end
+ end
+ return false
+ end),
+ }
+
+ p.sep_line = p.plus * (p.dash^1 * p.plus)^1 * p.last
+ p.sep_head = p.plus * (p.equals^1 * p.plus)^1 * p.last
+
+ p.sep_part = ((1 - p.cell_line)^0 * p.cell_line) - p.sep_line
+
+ p.new_row = p.sep_line + p.sep_head + p.sep_part
+
+ p.whitespace = S" \t\v\r\n"^1
+ p.strip = p.whitespace^0 * C((1 - (p.whitespace * p.last))^1) * p.whitespace^0 * p.last
+
+
+ local colon = P":"
+ local escaped_colon = P"\\:"
+ local nocolon = (escaped_colon + (1 - colon))^1
+ p.colon_right = nocolon * colon
+ p.colon_keyval = colon^-1 * C(nocolon) * colon * p.space^1 * C((1 - (p.space^0 * P(-1)))^1)
+
+ -- color expression matching for text roles
+ local digit = R"09"
+ local dot = P"."
+ local colvalue = digit * dot * digit^1
+ + digit
+ + dot * digit^1
+ local coldelim = P"_" + P"-"
+ p.rgbvalues = P"rgb_"
+ * Ct( C(colvalue) * coldelim * C(colvalue) * coldelim * C(colvalue) )
+end
+
+function helpers.cell.create(raw, n_row, n_col, parent, variant)
+ local p = helpers.patterns
+ local cell = {}
+ cell.stripped = raw and p.strip:match(raw) or ""
+ cell.content = raw
+ cell.width = raw and utflen(raw) or 0
+ cell.bytes = raw and #raw or 0
+ cell.variant = "normal" -- [normal|separator|y_continue|x_continue]
+ cell.pos = {}
+ cell.pos.x = n_col
+ cell.pos.y = n_row
+ cell.span = {}
+ cell.span.x = 1
+ cell.span.y = 1
+ cell.parent = parent
+ return cell
+end
+
+function helpers.cell.get_x_span(content, layout, init)
+ local acc = 0
+ local lw = layout.widths
+ for n=init, #lw do
+ acc = acc + lw[n] + 1
+ if utflen(content) + 1 == acc then
+ return n - init
+ end
+ end
+ return false
+end
+
+
+-- Extending a cell by 1 cell horizontally.
+function helpers.cell.add_x (cell)
+ cell.span.x = cell.span.x + 1
+end
+
+
+local function set_layout (line)
+ local p = helpers.patterns
+ local layout = {}
+ local slice = Ct((p.plus * C(p.dash^1) * #p.plus)^1)
+
+ layout.widths = {}
+ layout.slices = {}
+ local elms = lpegmatch(slice, line)
+ for n=1, #elms do
+ local elm = elms[n]
+ layout.widths[n] = #elm
+ layout.slices[n] = elm
+ end
+ return layout
+end
+
+function helpers.table.create(raw)
+ local newtab = {}
+ newtab.rows = {}
+ newtab.layout = set_layout(raw[1])
+
+ local p = helpers.patterns
+
+ newtab.resolve_parent = function(row, col, array)
+ local array = array or newtab.rows
+ local cell = array[row][col]
+ local par_row, par_col = row, col
+ if cell.parent then
+ par_row, par_col = newtab.resolve_parent(cell.parent.y, cell.parent.x)
+ end
+ return par_row, par_col
+ end
+
+ newtab.__init = function()
+ local hc = helpers.cell
+ local rowcount = 0
+ local newtablayout = newtab.layout
+ for nr=1, #raw do
+ local row = raw[nr]
+ newtab.rows[nr] = {}
+ local this_row = newtab.rows[nr]
+ this_row.sepline = p.sep_line:match(row)
+ this_row.sephead = p.sep_head:match(row)
+ this_row.seppart = p.sep_part:match(row)
+ if this_row.sephead then
+ newtab.has_head = true
+ newtab.head_end = nr
+ end
+
+ local splitted = { p.cells:match(row, 1, newtablayout) }
+ local pos_layout, pos_row = 1, 1
+ local make_empty = {}
+ make_empty.n, make_empty.parent = 0, nil
+
+ while pos_layout <= #newtablayout.widths do
+ local splitpos = splitted[pos_layout]
+ local layoutwidth = newtablayout.widths[pos_layout]
+ local span = 1
+ local this
+
+ if make_empty.n > 0 then
+ make_empty.n = make_empty.n - 1
+ this = hc.create("", nr, pos_layout, make_empty.parent)
+ this.parent = make_empty.parent
+ p_row, p_col = newtab.resolve_parent(this.parent.y, this.parent.x)
+ local thisparent = newtab.rows[p_row][p_col]
+ if this_row.sepline or this_row.sephead or
+ newtab.rows[p_row][p_col].variant == "separator" then
+ this.variant = "separator"
+ else
+ this.variant = "empty1"
+ end
+ else
+ local cellwidth = utflen(splitpos)
+ if cellwidth > layoutwidth then
+ span = span + hc.get_x_span(splitpos, newtablayout, pos_layout)
+ end
+ pos_row = pos_row + span
+ this = hc.create(splitpos, nr, pos_layout, nil)
+ if p.dashesonly:match(splitpos) or
+ this_row.sepline or this_row.sephead then
+ this.variant = "separator"
+ end
+ this.span.x = span
+ make_empty.n = span - 1
+ make_empty.parent = span > 1 and { y = nr, x = pos_layout } or nil
+ end
+
+ this_row[pos_layout] = this
+ pos_layout = pos_layout + 1
+ end -- while
+ end -- for loop over rows
+
+ local oldrows = newtab.rows
+ local newrows = oldrows
+ for nc=1, #newtablayout.widths do
+ local width = newtablayout.widths[nc]
+ -- this is gonna be extremely slow but at least it's readable
+ local newrow
+ local currentrow = 1
+ for nr=1, #newrows do
+ local row = newrows[nr]
+ local cell = row[nc]
+ dbg_write("nc: %s, nr:%2s | %9s | ", nc, nr,cell.variant)
+ if row.sepline or row.sephead
+ or p.dashesonly:match(cell.content)
+ or cell.variant == "separator" then -- separator; skipping and beginning new row
+ newrows[nr][nc] = cell
+ currentrow = currentrow + 1
+ newrow = true
+ dbg_write("new >%24s< ", cell.stripped)
+ if cell.parent then dbg_write("parent |") else dbg_write("no par |") end
+ else
+ dbg_write("old >%24s< ", cell.stripped)
+ if cell.parent then dbg_write("parent |") else dbg_write("no par |") end
+ if newrow then
+ newrows[nr][nc] = cell
+ currentrow = currentrow + 1
+ else -- continuing parent
+
+ local par_row, par_col
+ local parent
+ if cell.parent then
+ par_row, par_col = newtab.resolve_parent(cell.parent.y, cell.parent.x, newrows)
+ dbg_write(" use %s,%2s | ", par_col, par_row)
+ else -- Using vertical predecessor.
+ par_row, par_col = newtab.resolve_parent(nr-1,nc, newrows)
+ dbg_write(" new %s,%2s | ", par_col, par_row)
+ end
+ parent = newrows[par_row][par_col]
+
+ if newrows[nr].seppart then
+ dbg_write("span++")
+ parent.span.y = parent.span.y + 1
+ end
+
+ parent.content = parent.content .. cell.content
+ parent.stripped = parent.stripped .. " " .. cell.stripped
+ cell.variant = "empty2"
+ cell.parent = { x = par_col, y = par_row }
+ end
+ newrow = false
+ end
+ dbg_write("\n")
+ newrows[nr][nc] = cell
+ end -- for loop over rows
+ end -- for loop over columns
+ --newtab.rows = oldrows
+ newtab.rows = newrows
+ end
+
+ newtab.__init()
+
+--[[
+ newtab.__draw_debug = function()
+ for nr=1, #newtab.rows do
+ local row = newtab.rows[nr]
+ for nc=1, #row do
+ local cell = row[nc]
+ local field = cell.variant:sub(1,7)
+ if cell.parent then
+ field = field .. string.format(" %s,%2s",cell.parent.x, cell.parent.y)
+ end
+ dbg_write("%12s | ", field)
+ end
+ dbg_write("\n")
+ end
+ end
+--]]
+
+ return newtab
+end
+
+
+
+function helpers.table.resolve_parent (row, col, array)
+ local cell = array[row][col]
+ local par_row, par_col = row, col
+ if cell.parent then
+ par_row, par_col = self.resolve_parent(cell.parent.y, cell.parent.x)
+ end
+ return par_row, par_col
+end
+
+
+-- Check the column boundaries of a simple table.
+function helpers.get_st_boundaries (str)
+ local p_column_starts = helpers.patterns.column_starts
+ local p_column_stops = helpers.patterns.column_stops
+ local starts, stops, slices, elms = { }, { }, { }, nil
+
+ elms = lpegmatch(p_column_starts, str)
+ for n=1, #elms do
+ local elm = elms[n]
+ slices[n] = { start = elm }
+ starts[elm] = true
+ end
+
+ elms = lpegmatch(p_column_stops, str)
+ for n=1, #elms do
+ local elm = elms[n]
+ slices[n]["stop"] = elm
+ stops[elm] = true
+ end
+ return { starts = starts, stops = stops, slices = slices }
+end
+
+function helpers.table.simple(raw)
+ local rows = {}
+ local multispans = {}
+ local bounds = helpers.get_st_boundaries(raw[1])
+ local p = helpers.patterns
+
+ for nr=1, #raw do
+ local row = raw[nr]
+ local newrow = {}
+ if not p.st_headsep:match(row) and
+ not p.st_colspan:match(row) then
+ local starts, stops = {}, {}
+ local check_span = false
+ if p.st_colspan:match(raw[nr+1]) then -- expect spans over several columns
+ starts = p.st_span_starts:match(raw[nr+1])
+ stops = p.st_span_stops :match(raw[nr+1])
+ check_span = true
+ else
+ for ncol=1, #bounds.slices do
+ local slice = bounds.slices[ncol]
+ starts[ncol] = slice.start
+ stops [ncol] = slice.stop
+ end
+ end
+
+ for nc=1, #starts do
+ local start = starts[nc]
+ -- last column can exceed layout width
+ local stop = nc ~= #starts and stops[nc] or #row
+ local cell = {
+ content = "",
+ span = { x = 1, y = 1 },
+ }
+ cell.content = stringstrip(row:sub(start, stop))
+ if check_span then
+ local start_at, stop_at
+ for ncol=1, #bounds.slices do
+ local slice = bounds.slices[ncol]
+ if slice.start == start then
+ start_at = ncol
+ end
+ if start_at and
+ not (ncol == #bounds.slices) then
+ if slice.stop == stop then
+ stop_at = ncol
+ break
+ end
+ else -- last column, width doesn't matter
+ stop_at = ncol
+ end
+ end
+ cell.span.x = 1 + stop_at - start_at
+ end
+ newrow[nc] = cell
+ end
+ elseif p.st_colspan:match(row) then
+ newrow.ignore = true
+ elseif not rows.head_end and
+ nr > 1 and #raw > nr then -- ends the header
+ rows.head_end = nr
+ newrow.head_sep = true
+ newrow.ignore = true
+ else
+ newrow.ignore = true
+ end
+ rows[nr] = newrow
+ end
+
+ for nr=1, #rows do
+ local row = rows[nr]
+ if not row.ignore and row[1].content == "" then
+ row.ignore = true
+ for nc=1, #row do
+ local cell = row[nc]
+ local par_row, par_col = helpers.table.resolve_parent(nr - 1, nc, rows)
+ parent = rows[par_row][par_col]
+ parent.content = parent.content .. " " .. cell.content
+ cell.content = ""
+ end
+
+ end
+ end
+
+ return rows
+end
+
+helpers.list = {}
+
+do
+ local c = {}
+ c.roman = S"ivxlcdm"^1
+ c.Roman = S"IVXLCDM"^1
+ c.alpha = R"az" - P"i" - P"v" - P"x" - P"l"
+ c.Alpha = R"AZ" - P"I" - P"V" - P"X" - P"L"
+ c.digit = R"09"^1
+ c.auto = P"#"
+
+ local stripme = S" ()."
+ local dontstrip = 1 - stripme
+ local itemstripper = stripme^0 * C(dontstrip^1) * stripme^0
+
+ local con = function (str)
+ str = itemstripper:match(str)
+ for conv, pat in next, c do
+ if pat:match(str) then
+ return conv
+ end
+ end
+ return false
+ end
+ helpers.list.conversion = con
+
+ local rnums = {
+ i = 1,
+ v = 5,
+ x = 10,
+ l = 50,
+ c = 100,
+ d = 500,
+ m = 1000,
+ }
+
+ local function roman_to_arab (str)
+ local n = 1
+ local curr, succ
+ local max_three = { }
+ local value = 0
+ while n <= #str do
+ if curr and curr == max_three[#max_three] then
+ if #max_three >= 3 then
+ return "Not a number"
+ else
+ max_three[#max_three+1] = curr
+ end
+ else
+ max_three = { curr }
+ end
+
+ curr = rnums[str:sub(n,n)] or 1
+
+ n = n + 1
+ succ = str:sub(n,n)
+
+ if succ and succ ~= "" then
+ succ = rnums[succ]
+ if curr < succ then
+ --n = n + 1
+ --value = value + succ - curr
+ value = value - curr
+ else
+ value = value + curr
+ end
+ else
+ value = value + curr
+ end
+ end
+ return value
+ end
+ helpers.list.roman_to_arab = roman_to_arab
+
+ local suc = function (str, old)
+ str, old = itemstripper:match(str), itemstripper:match(old)
+ local n_str, n_old = tonumber(str), tonumber(old)
+ if n_str and n_old then -- arabic numeral
+ return n_str == n_old + 1
+ end
+
+ local con_str, con_old = con(str), con(old)
+ if con_str == "alpha" or
+ con_str == "Alpha" then
+ return str:byte() == old:byte() + 1
+ else -- “I'm a Roman!” - “A woman?” - “No, *Roman*! - Au!” - “So your father was a woman?”
+ if not (str:lower() == str or
+ str:upper() == str) then -- uneven cased --> fail
+ return false
+ end
+
+ local trc = thirddata.rst.state.roman_cache
+ n_str = trc[str] or nil
+ n_old = trc[old] or nil
+ if not n_str then
+ n_str = roman_to_arab(str:lower())
+ trc[str] = n_str
+ end
+ if not n_old then
+ n_old = roman_to_arab(old:lower())
+ trc[old] = n_old
+ end
+ return n_str == n_old + 1
+ end
+ end
+ helpers.list.successor = suc
+
+ local greater = function (str, old)
+ str, old = itemstripper:match(str), itemstripper:match(old)
+ local n_str, n_old = tonumber(str), tonumber(old)
+ if n_str and n_old then -- arabic numeral
+ return n_str > n_old
+ end
+
+ local con_str, con_old = con(str), con(old)
+ if con_str == "alpha" or
+ con_str == "Alpha" then
+ return str:byte() > old:byte()
+ else
+ if not (str:lower() == str or
+ str:upper() == str) then -- uneven cased --> fail
+ return false
+ end
+
+
+ local trc = thirddata.rst.state.roman_cache
+ n_str = trc[str] or nil
+ n_old = trc[old] or nil
+ if not n_str then
+ n_str = roman_to_arab(str:lower())
+ trc[str] = n_str
+ end
+ if not n_old then
+ n_old = roman_to_arab(old:lower())
+ trc[old] = n_old
+ end
+ return n_str > n_old
+ end
+ end
+ helpers.list.greater = greater
+
+ local gd = function(str)
+ str = itemstripper:match(str)
+ local value
+ local con_str = con(str)
+ if con_str == "alpha" or
+ con_str == "Alpha" then
+ return str:byte()
+ else
+ if not (str:lower() == str or
+ str:upper() == str) then
+ return false
+ end
+
+ local trc = thirddata.rst.state.roman_cache
+ n_str = trc[str] or nil
+ if not n_str then
+ n_str = roman_to_arab(str:lower())
+ trc[str] = n_str
+ end
+ return n_str
+ end
+ end
+
+ helpers.list.get_decimal = gd
+end
+
+helpers.string = {}
+
+do
+ --- This grammar inside the function is slightly faster than the
+ --- same as an upvalue with the value of “width” repeatedly given
+ --- via lpeg.Carg(). This holds for repeated calls as well.
+ local ulen = utflen
+ function helpers.string.wrapat (str, width)
+ local width = width or 65
+ local linelength = 0
+ local wrap = P{
+ [1] = "wrapper",
+
+ wrapper = Cs(V"nowhitespace"^0 * (Cs(V"wrapme") + V"other")^1),
+ whitespace = S" \t\v" + P"\n" / function() linelength = 0 end,
+ nowhitespace = 1 - V"whitespace",
+ typing = P[[\\type{]] * (1 - P"}")^0 * P"}",
+ typingenv = P[[\\starttyping]] * (1 - P[[\\stoptyping]])^0 * P[[\\stoptyping]],
+ ignore = V"typing" + V"typingenv",
+ --- the initial whitespace of the “other” pattern must not
+ --- be enforced (“^1”) as it will break the exceptions
+ --- (“ignore” pattern)! In general it is better to have the
+ --- wrapper ignore some valid breaks than to not have it
+ --- matching some valid strings at all.
+ other = Cmt(V"whitespace"^0 * (V"ignore" + (1 - V"whitespace")^1), function(s,i,w)
+ linelength = linelength + ulen(w)
+ return true
+ end),
+ wrapme = Cmt(V"whitespace"^1 * (1 - V"whitespace" - V"ignore")^1, function(s,i,w)
+ local lw = ulen(w)
+ if linelength + lw > width then
+ linelength = lw
+ return true
+ end
+ return false
+ end) / function (word) return "\n" .. word:match("[^%s]+") end,
+ }
+
+ local reflowed = wrap:match(str)
+ return reflowed
+ end
+end
+
diff --git a/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_parser.lua b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_parser.lua
new file mode 100644
index 0000000000..a3a59ae365
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_parser.lua
@@ -0,0 +1,1635 @@
+#!/usr/bin/env texlua
+--------------------------------------------------------------------------------
+-- FILE: rst_parser.lua
+-- USAGE: refer to doc/documentation.rst
+-- DESCRIPTION: https://bitbucket.org/phg/context-rst/overview
+-- AUTHOR: Philipp Gesang (Phg), <phg42.2a@gmail.com>
+-- VERSION: 0.6c
+-- CHANGED: 2014-03-02 19:20:17+0100
+--------------------------------------------------------------------------------
+--
+
+local usage_info = [[
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ rstConTeXt
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Functionality has been moved, the reST converter can now be
+accessed via mtxrun:
+
+ $mtxrun --script rst
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+]]
+
+local main = function ()
+ io.write("\n"..usage_info.."\n")
+ return -1
+end
+
+thirddata = thirddata or { }
+thirddata.rst = { }
+thirddata.rst_helpers = { rst_debug = false }
+
+if context then
+ if environment.argument "debug" == true then
+ thirddata.rst_helpers.rst_debug = true
+ end
+elseif not scripts then
+ return main()
+end
+
+environment.loadluafile"rst_helpers"
+environment.loadluafile"rst_directives"
+environment.loadluafile"rst_setups"
+environment.loadluafile"rst_context"
+
+local rst = thirddata.rst
+local helpers = thirddata.rst_helpers
+local optional_setups = thirddata.rst_setups
+
+rst.strip_BOM = true
+rst.expandtab = true
+rst.shiftwidth = 4
+rst.crlf = true
+
+local utf = unicode.utf8
+
+local ioopen = io.open
+local iowrite = io.write
+local select = select
+local stringfind = string.find
+local stringformat = string.format
+local stringgsub = string.gsub
+local stringlen = string.len
+local stringmatch = string.match
+local stringstrip = string.strip
+local stringsub = string.sub
+local tableconcat = table.concat
+local utflen = utf.len
+
+local context = context
+
+local warn
+do
+ local ndebug = 0
+ warn = function(str, ...)
+ if not helpers.rst_debug then return false end
+ ndebug = ndebug + 1
+ local slen = #str + 3
+ --str = "*["..str.."]"
+ str = stringformat("*[%4d][%s]", ndebug, str)
+ for i=1, select ("#", ...) do
+ local current = select (i, ...)
+ if 80 - i * 8 - slen < 0 then
+ local indent = ""
+ for i=1, slen do
+ indent = indent .. " "
+ end
+ str = str .. "\n" .. indent
+ end
+ str = str .. stringformat(" |%6s", stringstrip(tostring(current)))
+ end
+ iowrite(str .. " |\n")
+ return 0
+ end
+end
+
+local C, Cb, Cc, Cg,
+ Cmt, Cp, Cs, Ct
+ = lpeg.C, lpeg.Cb, lpeg.Cc, lpeg.Cg,
+ lpeg.Cmt, lpeg.Cp, lpeg.Cs, lpeg.Ct
+
+local P, R, S, V, lpegmatch
+ = lpeg.P, lpeg.R, lpeg.S, lpeg.V, lpeg.match
+
+local utf = unicode.utf8
+
+local state = {}
+thirddata.rst.state = state
+
+state.depth = 0
+state.bullets = {} -- mapping bullet forms to depth
+state.bullets.max = 0
+state.lastbullet = ""
+state.lastbullets = {}
+state.roman_cache = {} -- storing roman numerals that were already converted
+state.currentindent = "" -- used in definition lists and elsewhere
+state.previousindent = "" -- for literal blocks included in paragraphs to restore the paragraph indent
+state.currentwidth = 0 -- table layout
+state.currentlayout = {} -- table layout
+state.previousadorn = nil -- section underlining and overlining
+
+state.footnotes = {}
+state.footnotes.autonumber = 0
+state.footnotes.numbered = {}
+state.footnotes.labeled = {}
+state.footnotes.autolabel = {}
+state.footnotes.symbol = {}
+
+state.addme = {}
+
+local valid_adornment
+do
+ --[[--
+
+ valid_adornment -- This subpattern tests if the string consists
+ entirely of one repeated adornment char.
+
+ --]]--
+ local first_adornment = ""
+ local adornment_char = S[[!"#$%&'()*+,-./:;<=>?@[]^_`{|}~]] + P[[\\]]
+ local check_first = Cmt(adornment_char, function(_,_, first)
+ first_adornment = first
+ return true
+ end)
+ local check_other = Cmt(adornment_char, function(_,_, char)
+ return char == first_adornment
+ end)
+ valid_adornment = check_first * check_other^1 * -P(1)
+end
+
+local enclosed_mapping = {
+ ["'"] = "'",
+ ['"'] = '"',
+ ["("] = ")",
+ ["["] = "]",
+ ["{"] = "}",
+ ["<"] = ">",
+}
+
+local utfchar = P{ -- from l-lpeg.lua, modified to use as grammar
+ [1] = "utfchar",
+ utf8byte = R("\128\191"),
+ utf8one = R("\000\127"),
+ utf8two = R("\194\223") * V"utf8byte",
+ utf8three = R("\224\239") * V"utf8byte" * V"utf8byte",
+ utf8four = R("\240\244") * V"utf8byte" * V"utf8byte" * V"utf8byte",
+ utfchar = V"utf8one" + V"utf8two" + V"utf8three" + V"utf8four",
+}
+
+
+
+local rst_parser = P {
+ [1] = V"document",
+
+ document = V"blank_line"^0 * Cs(V"block"^1),
+
+--------------------------------------------------------------------------------
+-- Blocks
+--------------------------------------------------------------------------------
+
+ block = V"explicit_markup"
+ + Cs(V"section") / rst.escape
+ + V"target_block"
+ + V"literal_block"
+ + Cs(V"list") / rst.escape
+ + Cs(V"line_block") / rst.escape
+ + Cs(V"table_block") / rst.escape
+ + V"transition" --/ rst.escape
+ + V"comment_block"
+ + Cs(V"block_quote") / rst.escape
+ + Cs(V"paragraph") / rst.escape
+ ,
+
+--------------------------------------------------------------------------------
+-- Explicit markup block
+--------------------------------------------------------------------------------
+
+ explicit_markup_start = V"double_dot" * V"whitespace",
+
+ explicit_markup = V"footnote_block"
+ + V"directive_block"
+ + V"substitution_definition"
+ ,
+
+ explicit_markup_block = V"explicit_markup"^1
+ ,
+
+--------------------------------------------------------------------------------
+-- Directives block
+--------------------------------------------------------------------------------
+
+ directive_block = V"directive"
+ --* (V"blank_line"^-1 * V"directive")^0
+ * V"end_block"
+ ,
+
+ directive = V"explicit_markup_start"
+ * C(((V"escaped_colon" + (1 - V"colon" - V"eol"))
+ - V"substitution_text")^1) --> directive name
+ * V"double_colon"
+ * Ct(V"directive_block_multi" + V"directive_block_single") --> content
+ / rst.directive
+ ,
+
+ directive_block_multi = Cg((1 - V"eol")^0, "name") -- name
+ * V"eol"
+ * V"blank_line"^0 -- how many empty lines are permitted?
+ * V"directive_indented_lines"
+ ,
+
+ directive_block_single = V"whitespace"^1 * Ct(C((1 - V"eol")^1)) * V"eol",
+
+--------------------------------------------------------------------------------
+-- Substitution definition block
+--------------------------------------------------------------------------------
+
+ substitution_definition = V"explicit_markup_start"
+ * V"substitution_text"
+ * V"whitespace"^1
+ * C((1 - V"colon" - V"space" - V"eol")^1) -- directive
+ * V"double_colon"
+ * Ct(V"data_directive_block")
+ * V"end_block"^-1
+ / rst.substitution_definition
+ ,
+
+ substitution_text = V"bar"
+ * C((1 - V"bar" - V"eol")^1)
+ * V"bar"
+ ,
+
+ data_directive_block = V"data_directive_block_multi"
+ + V"data_directive_block_single"
+ ,
+ data_directive_block_single = Ct(C((1 - V"eol")^0)) * V"eol",
+
+ data_directive_block_multi = Cg((1 - V"eol")^0, "first") * V"eol"
+ * V"directive_indented_lines"
+ ,
+
+ directive_indented_lines = Ct(V"directive_indented_first"
+ * V"directive_indented_other"^0)
+ * (V"blank_line"^1 * Ct(V"directive_indented_other"^1))^0
+ ,
+
+
+ directive_indented_first = Cmt(V"space"^1, function(s,i,indent)
+ warn("sub-i", #indent, i)
+ state.currentindent = indent
+ return true
+ end)
+ * C((1 - V"eol")^1) * V"eol"
+ ,
+
+ directive_indented_other = Cmt(V"space"^1, function(s,i,indent)
+ warn("sub-m",
+ #state.currentindent <= #indent,
+ #indent,
+ #state.currentindent,
+ i)
+ return #state.currentindent <= #indent
+ end)
+ * C((1 - V"eol")^1) * V"eol"
+ ,
+
+
+--------------------------------------------------------------------------------
+-- Explicit markup footnote block
+--------------------------------------------------------------------------------
+
+ footnote_block = V"footnote"^1 * V"end_block",
+
+ footnote = V"explicit_markup_start"
+ * (V"footnote_marker" + V"citation_reference_label")
+ * C(V"footnote_content")
+ * (V"blank_line" - V"end_block")^-1
+ / rst.footnote
+ ,
+
+ footnote_marker = V"lsquare" * C(V"footnote_label") * V"rsquare" * V"whitespace"^0
+ ,
+
+ citation_reference_label = V"lsquare" * C(V"letter" * (1 - V"rsquare")^1) * V"rsquare" * V"whitespace"^0,
+
+ footnote_label = V"digit"^1
+ + (V"gartenzaun" * V"letter"^1)
+ + V"gartenzaun"
+ + V"asterisk"
+ ,
+
+ footnote_content = V"footnote_long" -- single line
+ + V"footnote_simple"
+ ,
+
+ footnote_simple = (1 - V"eol")^1 * V"eol"
+ ,
+
+ footnote_long = (1 - V"eol")^1 * V"eol"
+ * V"footnote_body"
+ ,
+
+ footnote_body = V"fn_body_first"
+ * (V"fn_body_other" + V"fn_body_other_block")^0
+ ,
+
+ fn_body_first = Cmt(V"space"^1, function(s, i, indent)
+ warn("fn-in", true, #indent)
+ state.currentindent = indent
+ return true
+ end)
+ * (1 - V"eol")^1 * V"eol"
+ ,
+
+ fn_matchindent = Cmt(V"space"^1, function(s, i, indent)
+ local tc = state.currentindent
+ warn("fn-ma", tc == indent, #tc, #indent, i)
+ return tc == indent
+ end)
+ ,
+
+ fn_body_other = V"fn_body_other_regular"
+ * (V"blank_line" * V"fn_body_other_regular")^0
+ ,
+
+ fn_body_other_regular = V"fn_matchindent"
+ * (1 - V"eol")^1 * V"eol"
+ ,
+
+ -- TODO find a way to get those to work in footnotes!
+ fn_body_other_block = V"line_block"
+ + V"table_block"
+ + V"transition"
+ + V"block_quote"
+ + V"list"
+ ,
+
+--------------------------------------------------------------------------------
+-- Table block
+--------------------------------------------------------------------------------
+
+ table_block = V"simple_table"
+ + V"grid_table"
+ ,
+
+--------------------------------------------------------------------------------
+-- Simple tables
+--------------------------------------------------------------------------------
+
+ simple_table = Ct(V"st_first_row"
+ * V"st_other_rows")
+ * V"end_block"
+ / function (tab)
+ return rst.simple_table(helpers.table.simple(tab))
+ end
+ ,
+
+ st_first_row = V"st_setindent"
+ * C(V"st_setlayout")
+ * V"space"^0
+ * V"eol"
+ ,
+
+ st_setindent = Cmt(V"space"^0, function(s, i, indent)
+ warn("sta-i", "true", #indent, "set", i)
+ state.currentindent = indent
+ return true
+ end)
+ ,
+
+ st_matchindent = Cmt(V"space"^0, function(s, i, indent)
+ warn("sta-m", state.currentindent == indent, #indent, #state.currentindent, i)
+ return state.currentindent == indent
+ end)
+ ,
+
+ st_setlayout = Cmt((V"equals"^1) * (V"spaces" * V"equals"^1)^1, function(s, i, layout)
+ local tc = state.currentlayout
+ warn("sta-l", #layout, "set", "", i)
+ tc.raw = layout
+ tc.bounds = helpers.get_st_boundaries(layout)
+ return true
+ end)
+ ,
+
+ st_other_rows = (V"st_content"^1 * V"st_separator")^1,
+
+ st_content = V"blank_line"^-1
+ * C(V"st_matchlayout"),
+
+ st_matchlayout = -#V"st_separator" * Cmt((1 - V"eol")^1, function (s, i, content)
+ -- Don't check for matching indent but if the rest is
+ -- fine then the line should be sane. This allows
+ -- cells starting with spaces.
+ content = stringsub (content, #state.currentindent)
+ local tcb = state.currentlayout.bounds
+ local n = 1
+ local spaces_only = P" "^1
+ while n < #tcb.slices do
+ local from = tcb.slices[n] .stop
+ local to = tcb.slices[n+1].start
+ local between = lpegmatch (spaces_only, content, from)
+ if not between then -- Cell spanning more than one row.
+ -- pass
+ warn("sta-c", "span", from, to, i)
+ elseif not (between >= to) then
+ warn("sta-c", "false", from, to, i)
+ return false
+ end
+ n = n + 1
+ end
+ warn("sta-c", "true", #tcb.slices, "", i)
+ return true
+ end)
+ * V"eol"
+ ,
+
+ st_separator = V"st_matchindent"
+ * C(V"st_normal_sep" + V"st_colspan_sep")
+ * V"eol"
+ ,
+
+ st_normal_sep = Cmt((V"equals"^1) * (V"spaces" * V"equals"^1)^1, function(s, i, layout)
+ warn("sta-s", state.currentlayout.raw == layout, #layout, #state.currentlayout.raw, i)
+ return state.currentlayout.raw == layout
+ end)
+ ,
+
+ st_colspan_sep = Cmt(V"dash"^1 * (V"spaces" * V"dash"^1)^0, function(s, i, layout)
+ local tcb = state.currentlayout.bounds
+ local this = helpers.get_st_boundaries (layout)
+ local start_valid = false
+ for start, _ in next, this.starts do
+ if tcb.starts[start] then
+ start_valid = true
+ local stop_valid = false
+ for stop, _ in next, this.stops do
+ if tcb.stops[stop] then -- bingo
+ stop_valid = true
+ end
+ end
+ if not stop_valid then
+ warn("sta-x", stop_valid, #layout, #state.currentlayout.raw, i)
+ return false
+ end
+ end
+ end
+ warn("sta-x", start_valid, #layout, #state.currentlayout.raw, i)
+ return start_valid
+ end)
+ ,
+
+
+--------------------------------------------------------------------------------
+-- Grid tables
+--------------------------------------------------------------------------------
+
+ grid_table = Ct(V"gt_first_row"
+ * V"gt_other_rows")
+ * V"blank_line"^1
+ / function(tab)
+ return rst.grid_table(helpers.table.create(tab))
+ end
+ ,
+
+ gt_first_row = V"gt_setindent"
+ * C(V"gt_sethorizontal")
+ * V"eol"
+ ,
+
+ gt_setindent = Cmt(V"space"^0, function(s, i, indent)
+ warn("tab-i", true, #indent, "set", i)
+ state.currentindent = indent
+ return true
+ end)
+ ,
+
+ gt_layoutmarkers = V"table_intersection" + V"table_hline" + V"table_header_hline",
+
+ gt_sethorizontal = Cmt(V"gt_layoutmarkers"^3, function (s, i, width)
+ warn("tab-h", "width", "true", #width, "set", i)
+ state.currentwidth = #width
+ return true
+ end)
+ ,
+
+ gt_other_rows = V"gt_head"^-1
+ * V"gt_body"
+ ,
+
+ gt_matchindent = Cmt(V"space"^0, function (s, i, this)
+ local matchme = state.currentindent
+ warn("tab-m", "indent", #this == #matchme, #this, #matchme, i)
+ return #this == #matchme
+ end)
+ ,
+
+
+ gt_cell = (V"gt_content_cell" + V"gt_line_cell")
+ * (V"table_intersection" + V"table_vline")
+ ,
+
+ gt_content_cell = ((1 - V"table_vline" - V"table_intersection" - V"eol")^1),
+
+ gt_line_cell = V"table_hline"^1,
+
+ gt_contentrow = V"gt_matchindent"
+ * C((V"table_intersection" + V"table_vline")
+ * V"gt_cell"^1)
+ * V"whitespace"^-1 * V"eol"
+ ,
+
+ gt_body = ((V"gt_contentrow" - V"gt_bodysep")^1 * V"gt_bodysep")^1,
+
+ gt_bodysep = V"gt_matchindent"
+ * C(Cmt(V"table_intersection"
+ * (V"table_hline"^1 * V"table_intersection")^1, function(s, i, separator)
+ local matchme = state.currentwidth
+ warn("tab-m", "body", #separator == matchme, #separator, matchme, i)
+ return #separator == matchme
+ end))
+ * V"whitespace"^-1 * V"eol"
+ ,
+
+ gt_head = V"gt_contentrow"^1
+ * V"gt_headsep"
+ ,
+
+ gt_headsep = V"gt_matchindent"
+ * C(Cmt(V"table_intersection"
+ * (V"table_header_hline"^1 * V"table_intersection")^1, function(s, i, separator)
+ local matchme = state.currentwidth
+ warn("tab-s", "head", #separator == matchme, #separator, matchme, i)
+ return #separator == matchme
+ end))
+ * V"whitespace"^-1 * V"eol"
+ ,
+
+
+--------------------------------------------------------------------------------
+-- Block quotes
+--------------------------------------------------------------------------------
+
+ block_quote = Ct(Cs(V"block_quote_first"
+ * V"block_quote_other"^0
+ * (V"blank_line" * V"block_quote_other"^1)^0)
+ * (V"blank_line"
+ * Cs(V"block_quote_attri"))^-1)
+ * V"end_block"
+ / rst.block_quote
+ ,
+
+ block_quote_first = Cmt(V"space"^1, function (s, i, indent)
+ warn("bkq-i", #indent, "", indent, "", i)
+ state.currentindent = indent
+ return true
+ end) / ""
+ * -V"attrib_dash"
+ * (1 - V"eol")^1
+ * V"eol"
+ ,
+
+ block_quote_other = Cmt(V"space"^1, function (s, i, indent)
+ warn("bkq-m", #indent, #state.currentindent,
+ indent, state.currentindent, i)
+ return state.currentindent == indent
+ end) / ""
+ * -V"attrib_dash"
+ * (1 - V"eol")^1
+ * V"eol"
+ ,
+
+ block_quote_attri = V"block_quote_attri_first"
+ * V"block_quote_attri_other"^0,
+
+ block_quote_attri_first = Cmt(V"space"^1 * V"attrib_dash" * V"space", function (s, i, indent)
+ local t = state
+ warn("bqa-i", utflen(indent), #t.currentindent,
+ indent, t.currentindent, i)
+ local ret = stringmatch (indent, " *") == t.currentindent
+ t.currentindent = ret and indent or t.currentindent
+ return ret
+ end) / ""
+ * (1 - V"eol")^1
+ * V"eol"
+ ,
+
+ block_quote_attri_other = Cmt(V"space"^1, function (s, i, indent)
+ warn("bqa-m", #indent, utflen(state.currentindent),
+ indent, state.currentindent, i)
+ return utflen(state.currentindent) == #indent
+ end) / ""
+ * (1 - V"eol")^1
+ * V"eol"
+ ,
+
+--------------------------------------------------------------------------------
+-- Line blocks
+--------------------------------------------------------------------------------
+
+ line_block = Cs(V"line_block_first"
+ * (V"line_block_other"
+ + V"line_block_empty")^1)
+ --* V"blank_line"
+ * V"end_block"
+ / rst.line_block
+ ,
+
+ line_block_marker = V"space"^0 * V"bar" * V"space",
+
+ line_block_empty_marker = V"space"^0 * V"bar" * V"space"^0 * V"eol",
+
+
+ line_block_first = Cmt(V"line_block_marker", function(s, i, marker)
+ warn("lbk-i", #marker, "", marker, "", i)
+ state.currentindent = marker
+ return true
+ end) / ""
+ * V"line_block_line"
+ ,
+
+ line_block_empty = Cmt(V"line_block_empty_marker", function(s, i, marker)
+ warn("lbk-e", #marker, #state.currentindent, marker, state.currentindent, i)
+ marker = stringgsub (marker, "|.*", "| ")
+ return state.currentindent == marker
+ end) / ""
+ / rst.line_block_empty
+ ,
+
+ line_block_other = Cmt(V"line_block_marker", function(s, i, marker)
+ warn("lbk-m", #marker, #state.currentindent, marker, state.currentindent, i)
+ return state.currentindent == marker
+ end) / ""
+ * V"line_block_line"
+ ,
+
+ line_block_line = Cs((1 - V"eol")^1
+ * V"line_block_cont"^0
+ * V"eol")
+ / rst.line_block_line
+ ,
+
+ line_block_cont = (V"eol" - V"line_block_marker")
+ * Cmt(V"space"^1, function(s, i, spaces)
+ warn("lbk-c", #spaces, #state.currentindent, spaces, state.currentindent, i)
+ return #spaces >= #state.currentindent
+ end) / ""
+ * (1 - V"eol")^1
+ ,
+
+--------------------------------------------------------------------------------
+-- Literal blocks
+--------------------------------------------------------------------------------
+
+ literal_block = V"literal_block_marker"
+ * Cs(V"literal_block_lines")
+ * V"end_block"
+ / rst.literal_block,
+
+ literal_block_marker = V"double_colon" * V"whitespace"^0 * V"eol" * V"blank_line",
+
+ literal_block_lines = V"unquoted_literal_block_lines"
+ + V"quoted_literal_block_lines"
+ ,
+
+ unquoted_literal_block_lines = V"literal_block_first"
+ * (V"blank_line"^-1 * V"literal_block_other")^0
+ ,
+
+ quoted_literal_block_lines = V"quoted_literal_block_first"
+ * V"quoted_literal_block_other"^0 -- no blank lines allowed
+ ,
+
+ literal_block_first = Cmt(V"space"^1, function (s, i, indent)
+ warn("lbk-f", #indent, "", "", i)
+ if not indent or
+ indent == "" then
+ return false
+ end
+ if state.currentindent and #state.currentindent < #indent then
+ state.currentindent = state.currentindent .. " "
+ return true
+ else
+ state.currentindent = " "
+ return true
+ end
+ end)
+ * V"rest_of_line"
+ * V"eol",
+
+ literal_block_other = Cmt(V"space"^1, function (s, i, indent)
+ warn("lbk-m",
+ #indent,
+ #state.currentindent,
+ #indent >= #state.currentindent,
+ i)
+ return #indent >= #state.currentindent
+ end)
+ * V"rest_of_line"
+ * V"eol"
+ ,
+
+ quoted_literal_block_first = Cmt(V"adornment_char", function (s, i, indent)
+ warn("qlb-f", #indent, indent, "", i)
+ if not indent or
+ indent == "" then
+ return false
+ end
+ state.currentindent = indent
+ return true
+ end)
+ * V"rest_of_line"
+ * V"eol"
+ ,
+
+ quoted_literal_block_other = Cmt(V"adornment_char", function (s, i, indent)
+ warn("qlb-m",
+ #indent,
+ #state.currentindent,
+ #indent >= #state.currentindent,
+ i)
+ return #indent >= #state.currentindent
+ end)
+ * V"rest_of_line"
+ * V"eol",
+
+--------------------------------------------------------------------------------
+-- Lists
+--------------------------------------------------------------------------------
+
+ list = (V"option_list"
+ + V"bullet_list"
+ + V"definition_list"
+ + V"field_list")
+ - V"explicit_markup_start"
+ ,
+
+--------------------------------------------------------------------------------
+-- Option lists
+--------------------------------------------------------------------------------
+
+ option_list = Cs((V"option_list_item"
+ * V"blank_line"^-1)^1)
+ /rst.option_list,
+
+ option_list_item = Ct(C(V"option_group")
+ * Cs(V"option_description"))
+ / rst.option_item,
+
+ option_description = V"option_desc_next"
+ + V"option_desc_more"
+ + V"option_desc_single",
+
+ option_desc_single = V"space"^2
+ --* V"rest_of_line"
+ * (1 - V"eol")^1
+ * V"eol",
+
+ option_desc_more = V"space"^2
+ * (1 - V"eol")^1
+ * V"eol"
+ * V"indented_lines"
+ * (V"blank_line" * V"indented_lines")^0,
+
+ option_desc_next = V"eol"
+ * V"indented_lines"
+ * (V"blank_line" * V"indented_lines")^0,
+
+ option_group = V"option"
+ * (V"comma" * V"space" * V"option")^0,
+
+ option = (V"option_posixlong"
+ + V"option_posixshort"
+ + V"option_dos_vms")
+ * V"option_arg"^-1,
+
+ option_arg = (V"equals" + V"space")
+ * ((V"letter" * (V"letter" + V"digit")^1)
+ + (V"angle_left" * (1 - V"angle_right")^1 * V"angle_right")),
+
+ option_posixshort = V"dash" * (V"letter" + V"digit"),
+
+ option_posixlong = V"double_dash"
+ * V"letter"
+ * (V"letter" + V"digit" + V"dash")^1,
+
+ option_dos_vms = V"slash"
+ * V"letter"^1,
+
+--------------------------------------------------------------------------------
+-- Field lists (for bibliographies etc.)
+--------------------------------------------------------------------------------
+
+ field_list = Cs(V"field"
+ * (V"blank_line"^-1 * V"field")^0)
+ * V"end_block"
+ / rst.field_list,
+
+ field = Ct(V"field_marker"
+ * V"whitespace"
+ * V"field_body")
+ / rst.field,
+
+ field_marker = V"colon"
+ * C(V"field_name")
+ * V"colon",
+
+ field_name = (V"escaped_colon" + (1 - V"colon"))^1,
+
+ field_body = V"field_single" + V"field_multi",
+
+ field_single = C((1 -V"eol")^1) * V"eol",
+
+ field_multi = C((1 - V"eol")^0 * V"eol"
+ * V"indented_lines"^-1),
+
+--------------------------------------------------------------------------------
+-- Definition lists
+--------------------------------------------------------------------------------
+
+ definition_list = Ct((V"definition_item" - V"comment")
+ * (V"blank_line" * V"definition_item")^0)
+ * V"end_block"
+ / rst.deflist
+ ,
+
+ definition_item = Ct(C(V"definition_term")
+ * V"definition_classifiers"
+ * V"eol"
+ * Ct(V"definition_def"))
+ ,
+
+ definition_term = #(1 - V"space" - V"field_marker")
+ * (1 - V"eol" - V"definition_classifier_separator")^1
+ ,
+
+ definition_classifier_separator = V"space" * V"colon" * V"space",
+
+ definition_classifiers = V"definition_classifier"^0,
+
+ definition_classifier = V"definition_classifier_separator"
+ * C((1 - V"eol" - V"definition_classifier_separator")^1)
+ ,
+
+ definition_def = C(V"definition_firstpar") * C(V"definition_par")^0
+ ,
+
+ definition_indent = Cmt(V"space"^1, function(s, i, indent)
+ warn("def-i", #indent, #state.currentindent, indent == state.currentindent, i)
+ state.currentindent = indent
+ return true
+ end),
+
+ definition_firstpar = V"definition_parinit"
+ * (V"definition_parline" - V"blank_line")^0
+ ,
+
+ definition_par = V"blank_line"
+ * (V"definition_parline" - V"blank_line")^1
+ ,
+
+ definition_parinit = V"definition_indent"
+ * (1 - V"eol")^1
+ * V"eol"
+ ,
+
+ definition_parline = V"definition_match"
+ * (1 - V"eol")^1
+ * V"eol"
+ ,
+
+ definition_match = Cmt(V"space"^1, function (s, i, this)
+ warn("def-m", #this, #state.currentindent, this == state.currentindent, i)
+ return this == state.currentindent
+ end),
+
+--------------------------------------------------------------------------------
+-- Bullet lists and enumerations
+--------------------------------------------------------------------------------
+
+ -- the next rule handles enumerations as well
+ bullet_list = V"bullet_init"
+ * (V"blank_line"^-1 * (V"bullet_list" + V"bullet_continue"))^0
+ * V"bullet_stop"
+ * Cmt(Cc(nil), function (s, i)
+ local depth = state.depth
+ warn("close", depth)
+ state.bullets[depth] = nil -- “pop”
+ depth = depth - 1
+ state.lastbullet = state.lastbullets[depth]
+ state.depth = depth
+ return true
+ end)
+ ,
+
+ bullet_stop = V"end_block" / rst.stopitemize,
+
+ bullet_init = Ct(C(V"bullet_first") * V"bullet_itemrest")
+ / rst.bullet_item
+ ,
+
+ bullet_first = #Cmt(V"bullet_indent", function (s, i, bullet)
+ local depth = state.depth
+ local bullets = state.bullets
+ local oldbullet = state.bullets[depth]
+ local n_spaces = lpegmatch(P" "^0, bullet)
+ warn("first",
+ depth,
+ (depth == 0 and n_spaces >= 1) or (depth > 0 and n_spaces > 1),
+ bullet,
+ oldbullet,
+ helpers.list.conversion(bullet))
+
+ if depth == 0 and n_spaces >= 1 then -- first level
+ depth = 1 -- “push”
+ bullets[1] = bullet
+ state.lastbullet = bullet
+ bullets.max = bullets.max < depth and depth or bullets.max
+ state.depth = depth
+ return true
+ elseif depth > 0 and n_spaces > 1 then -- sublist (of sublist)^0
+ if n_spaces >= utflen(oldbullet) then
+ state.lastbullets[depth] = state.lastbullet
+ depth = depth + 1
+ bullets[depth] = bullet
+ state.lastbullet = bullet
+ bullets.max = bullets.max < depth and depth or bullets.max
+ state.depth = depth
+ return true
+ end
+ end
+ return false
+ end)
+ * V"bullet_indent"
+ / rst.startitemize
+ ,
+
+ bullet_indent = V"space"^0 * V"bullet_expr" * V"space"^1,
+
+ bullet_cont = Cmt(V"bullet_indent", function (s, i, bullet)
+ local conversion = helpers.list.conversion
+ local depth = state.depth
+ local bullets = state.bullets
+ local lastbullets = state.lastbullets
+ warn("conti",
+ depth,
+ bullet == bullets[depth],
+ bullet,
+ bullets[depth],
+ lastbullets[depth],
+ conversion(state.lastbullet),
+ conversion(bullet)
+ )
+
+ if utflen(bullets[depth]) ~= utflen(bullet) then
+ return false
+ elseif not conversion(bullet) and bullets[depth] == bullet then
+ return true
+ elseif conversion(state.lastbullet) == conversion(bullet) then -- same type
+ local autoconv = conversion(bullet) == "auto"
+ local greater = helpers.list.greater (bullet, state.lastbullet)
+ state.lastbullet = bullet
+ return autoconv or successor or greater
+ end
+ end)
+ ,
+
+ bullet_continue = Ct(C(V"bullet_cont") * V"bullet_itemrest")
+ /rst.bullet_item
+ ,
+
+ bullet_itemrest = C(V"bullet_rest" -- first line
+ * ((V"bullet_match" * V"bullet_rest")^0 -- any successive lines
+ * (V"blank_line"
+ * (V"bullet_match" * (V"bullet_rest" - V"bullet_indent"))^1)^0))
+ ,
+ -- ^^^^^^^^^^^^^
+ -- otherwise matches bullet_first
+
+ bullet_rest = (1 - V"eol")^1 * V"eol", -- rest of one line
+
+ bullet_next = V"space"^1
+ ,
+
+ bullet_match = Cmt(V"bullet_next", function (s, i, this)
+ local t = state
+ warn("match",
+ t.depth,
+ stringlen(this) == utflen(t.bullets[t.depth]),
+ utflen(t.bullets[t.depth]), stringlen(this) )
+ return stringlen(this) == utflen(t.bullets[t.depth])
+ end)
+ ,
+
+ bullet_expr = V"bullet_char"
+ + (P"(" * V"number_char" * P")") --- surrounded by parentheses
+ + (V"number_char" * P")") --- suffixed with right parenthesis
+ + (V"number_char" * V"dot") * #V"space" --- suffixed with period
+ --[[--
+ below rule is invalid according to the spec:
+ http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#enumerated-lists
+ --]]--
+ --+ (V"number_char" * #V"space")
+ ,
+
+ number_char = V"roman_numeral"
+ + V"Roman_numeral"
+ + P"#"
+ + V"digit"^1
+ + R"AZ"
+ + R"az"
+ ,
+
+--------------------------------------------------------------------------------
+-- Transitions
+--------------------------------------------------------------------------------
+
+ transition_line = C(V"adornment_char"^4),
+
+ transition = V"transition_line" * V"eol"
+ * V"end_block"
+ / rst.transition
+ ,
+
+--------------------------------------------------------------------------------
+-- Sectioning
+--------------------------------------------------------------------------------
+
+ section_adorn = V"adornment_char"^1,
+
+ section = ((V"section_text" * V"section_once")
+ + (V"section_before" * V"section_text" * V"section_after"))
+ / rst.section
+ * (V"end_block" + V"blank_line")
+ ,
+
+ -- The whitespace handling after the overline is necessary because headings
+ -- without overline aren't allowed to be indented.
+ section_before = C(Cmt(V"section_adorn", function(s,i, adorn)
+ local adorn_matched = lpegmatch (valid_adornment, adorn)
+ state.previousadorn = adorn
+ warn ("sec-f", adorn_matched,
+ stringsub (adorn, 1,2) .. "...", "", i)
+ if adorn_matched then
+ return true
+ end
+ return false
+ end))
+ * V"whitespace"^0
+ * V"eol"
+ * V"whitespace"^0
+ ,
+
+ section_text = C((1 - V"space" - V"eol") * (1 - V"eol")^1) * V"eol",
+
+ section_after = C(Cmt(V"section_adorn", function(s,i, adorn)
+ local tests = false
+ if lpegmatch (valid_adornment, adorn) then
+ tests = true
+ end
+ if state.previousadorn then
+ tests = tests and adorn == state.previousadorn
+ end
+ warn ("sec-a", tests, stringsub (adorn, 1,2) .. "…", "", i)
+ state.previousadorn = nil
+ return tests
+ end))
+ * V"whitespace"^0
+ ,
+
+ section_once = C(Cmt(V"section_adorn", function(s,i, adorn)
+ local tests = false
+ if lpegmatch (valid_adornment, adorn) then
+ tests = true
+ end
+ warn ("sec-o", tests, stringsub (adorn, 1,2) .. "…", "", i)
+ state.previousadorn = nil
+ return tests
+ end))
+ * V"whitespace"^0
+ ,
+
+--------------------------------------------------------------------------------
+-- Target Blocks
+--------------------------------------------------------------------------------
+
+ tname_normal = C((V"escaped_colon" + 1 - V"colon")^1)
+ * V"colon",
+
+ tname_bareia = C(V"bareia"
+ * (1 - V"eol" - V"bareia")^1
+ * V"bareia")
+ * V"colon",
+
+ target_name = V"double_dot"
+ * V"space"
+ * V"underscore"
+ * (V"tname_bareia" + V"tname_normal"),
+
+ target_firstindent = V"eol" * Cg(V"space"^1, "indent"),
+
+ target_nextindent = V"eol" * C(V"space"^1),
+
+ target_indentmatch = Cmt(V"target_nextindent" -- I ♡ LPEG!
+ * Cb("indent"), function (s, i, a, b)
+ return a == b
+ end),
+
+ target_link = ( V"space"^0 * V"target_firstindent"
+ * Ct(C(1 - V"whitespace" - V"eol")^1
+ * (V"target_indentmatch"
+ * C(1 - V"whitespace" - V"eol")^1)^0)
+ * V"eol" * #(1 - V"whitespace" - "eol")) / rst.joinindented
+ + C((1 - V"eol")^1) * V"eol" * #(V"double_dot" + V"double_underscore" + V"eol")
+ + (1 - V"end_block")^0 * Cc(""),
+
+ target = Ct((V"target_name" * (V"space"^0 * V"eol" * V"target_name")^0)
+ * V"space"^0
+ * V"target_link")
+ / rst.target,
+
+ anonymous_prefix = (V"double_dot" * V"space" * V"double_underscore" * V"colon")
+ + (V"double_underscore")
+ ,
+
+ anonymous_target = V"anonymous_prefix"
+ * V"space"^0
+ * Ct(Cc"" * V"target_link")
+ / rst.target
+ ,
+
+ target_block = (V"anonymous_target" + V"target")^1
+ * V"end_block",
+
+--------------------------------------------------------------------------------
+-- Paragraphs * Inline Markup
+--------------------------------------------------------------------------------
+
+ paragraph = Ct(V"par_first"
+ * V"par_other"^0) / rst.paragraph
+ * V"end_block"
+ * V"reset_depth"
+ ,
+
+ par_first = V"par_setindent"
+ * C((1 - V"literal_block_shorthand" - V"eol")^1)
+ * (V"included_literal_block" + V"eol")
+ ,
+
+ par_other = V"par_matchindent"
+ * C((1 - V"literal_block_shorthand" - V"eol")^1)
+ * (V"included_literal_block" + V"eol")
+ ,
+
+ par_setindent = Cmt(V"space"^0, function (s, i, indent)
+ warn("par-i", #indent, "", "", i)
+ state.previousindent = state.currentindent
+ state.currentindent = indent
+ return true
+ end),
+
+ par_matchindent = Cmt(V"space"^0, function (s, i, indent)
+ warn("par-m", state.currentindent == indent, #indent, #state.currentindent, i)
+ return state.currentindent == indent
+ end),
+
+ included_literal_block = V"literal_block_shorthand"
+ * V"literal_block_markerless"
+ * Cmt(Cp(), function (s, i, _)
+ warn("par-s", "", #state.previousindent, #state.currentindent, i)
+ state.currentindent = state.previousindent
+ return true
+ end)
+ ,
+
+ literal_block_shorthand = Cs((V"colon" * V"space" * V"double_colon"
+ + V"double_colon")
+ * V"whitespace"^0
+ * V"eol"
+ * V"blank_line")
+ -- The \unskip is necessary because the lines of a
+ -- paragraph get concatenated from a table with a
+ -- space as separator. And the literal block is
+ -- treated as one such line, hence it would be
+ -- preceded by a space. As the ":" character
+ -- always follows a non-space this should be a
+ -- safe, albeit unpleasant, hack. If you don't
+ -- agree then file a bug report and I'll look into
+ -- it.
+ / "\\\\unskip:"
+ ,
+
+ literal_block_markerless = Cs(V"literal_block_lines")
+ * V"blank_line"
+ / rst.included_literal_block
+ ,
+
+ -- This is needed because lpeg.Cmt() patterns are evaluated even
+ -- if they are part of a larger pattern that doesn’t match. The
+ -- result is that they confuse the nesting.
+ -- Resetting the current nesting depth at every end of block
+ -- should be safe because this pattern always matches last.
+ reset_depth = Cmt(Cc("nothing") / "", function (s,i, something)
+ state.depth = 0
+ warn("reset", "", state.depth, #state.currentindent, i)
+ return true
+ end)
+ ,
+
+--------------------------------------------------------------------------------
+-- Comments
+--------------------------------------------------------------------------------
+
+ comment_block = V"comment"
+ * V"end_block"^-1
+ ,
+
+ comment = V"double_dot" / ""
+ * (V"block_comment" + V"line_comment")
+ ,
+
+ block_comment = V"whitespace"^0
+ * Cs((1 - V"eol")^0 * V"eol"
+ * V"indented_lines")
+ / rst.block_comment,
+
+ line_comment = V"whitespace"^1
+ * C((1 - V"eol")^0 * V"eol")
+ / rst.line_comment
+ ,
+
+--------------------------------------------------------------------------------
+-- Generic indented block
+--------------------------------------------------------------------------------
+
+ indented_lines = V"indented_first"
+ * (V"indented_other"^0
+ * (V"blank_line" * V"indented_other"^1)^0)
+ ,
+
+ indented_first = Cmt(V"space"^1, function (s, i, indent)
+ warn("idt-f", indent, i)
+ state.currentindent = indent
+ return true
+ end) / ""
+ * (1 - V"eol")^1
+ * V"eol"
+ ,
+
+ indented_other = Cmt(V"space"^1, function (s, i, indent)
+ warn("idt-m", #indent, #state.currentindent, #indent == #state.currentindent, i)
+ return indent == state.currentindent
+ end) / ""
+ * (1 - V"eol")^1
+ * V"eol"
+ ,
+
+--------------------------------------------------------------------------------
+-- Urls
+--------------------------------------------------------------------------------
+ uri = V"url_protocol" * V"url_domain" * (V"slash" * V"url_path")^0,
+
+ url_protocol = (P"http" + P"ftp" + P"shttp" + P"sftp") * P"://",
+ url_domain_char = 1 - V"dot" - V"spacing" - V"eol" - V"punctuation",
+ url_domain = V"url_domain_char"^1 * (V"dot" * V"url_domain_char"^1)^0,
+ url_path_char = R("az", "AZ", "09") + S"-_.!~*'()",
+ url_path = V"slash" * (V"url_path_char"^1 * V"slash"^-1)^1,
+
+--------------------------------------------------------------------------------
+-- Terminal Symbols and Low-Level Elements
+--------------------------------------------------------------------------------
+
+ asterisk = P"*",
+ backslash = P"\\",
+ bar = P"|",
+ bareia = P"`",
+ slash = P"/",
+ solidus = P"⁄",
+ equals = P"=",
+
+ --- Punctuation
+ -- Some of the following are used for markup as well as for punctuation.
+
+ apostrophe = P"’" + P"'",
+ comma = P",",
+ colon = P":",
+ dot = P".",
+ interpunct = P"·",
+ semicolon = P";",
+ underscore = P"_",
+ dash = P"-",
+ emdash = P"—",
+ hyphen = P"‐",
+ questionmark = P"?",
+ exclamationmark = P"!",
+ interrobang = P"‽",
+ lsquare = P"[",
+ rsquare = P"]",
+ ellipsis = P"…" + P"...",
+ guillemets = P"«" + P"»",
+ quotationmarks = P"‘" + P"’" + P"“" + P"”",
+
+ period = V"dot",
+ double_dot = V"dot" * V"dot",
+ double_colon = V"colon" * V"colon",
+ escaped_colon = V"backslash" * V"colon",
+ double_underscore = V"underscore" * V"underscore",
+ double_dash = V"dash" * V"dash",
+ triple_dash = V"double_dash" * V"dash",
+ attrib_dash = V"triple_dash" + V"double_dash" + V"emdash", -- begins quote attribution blocks
+ dashes = V"dash" + P"‒" + P"–" + V"emdash" + P"―",
+
+
+
+ punctuation = V"apostrophe"
+ + V"colon"
+ + V"comma"
+ + V"dashes"
+ + V"dot"
+ + V"ellipsis"
+ + V"exclamationmark"
+ + V"guillemets"
+ + V"hyphen"
+ + V"interpunct"
+ + V"interrobang"
+ + V"questionmark"
+ + V"quotationmarks"
+ + V"semicolon"
+ + V"slash"
+ + V"solidus"
+ + V"underscore"
+ ,
+
+ -- End punctuation
+
+ letter = R"az" + R"AZ",
+ digit = R"09",
+
+ space = P" ",
+ spaces = V"space"^1,
+ whitespace = (P" " + Cs(P"\t") / " " + Cs(S"\v") / " "),
+ spacing = V"whitespace"^1,
+ blank_line = V"whitespace"^0 * V"eol",
+
+ rest_of_line = (1 - V"eol")^1,
+
+ eol = S"\r\n",
+ eof = V"eol"^0 * -P(1),
+
+ end_block = V"blank_line"^1 * V"eof"^-1
+ + V"eof"
+ ,
+
+ -- diverse markup character sets
+ adornment_char = S[[!"#$%&'()*+,-./:;<=>?@[]^_`{|}~]] + P[[\\]], -- headings
+ bullet_char = S"*+-" + P"•" + P"‣" + P"⁃", -- bullet lists
+
+ roman_numeral = S"ivxlcdm"^1,
+ Roman_numeral = S"IVXLCDM"^1,
+
+ angle_left = P"<",
+ angle_right = P">",
+ gartenzaun = P"#",
+
+ table_intersection = P"+",
+ table_hline = V"dash",
+ table_vline = V"bar",
+ table_header_hline = P"=",
+}
+
+--- 225 rules at 2014-02-28 with lpeg 0.12 and Luatex 0.78.3
+--lpeg.print(rst_parser)
+--lpeg.ptree(rst_parser)
+--os.exit()
+
+local file_helpers = { }
+
+function file_helpers.strip_BOM (raw)
+ if stringmatch (raw, "^\239\187\191") then
+ return stringsub (raw, 4)
+ end
+ return raw
+end
+
+--- Tab expansion: feature request by Philipp A.
+do
+ local shiftwidth = rst.shiftwidth
+ local stringrep = string.rep
+ local position = 1
+
+ local reset_position = function () position = 1 return "\n" end
+ local increment_position = function (c) position = position + 1 return c end
+ local expand_tab = function ()
+ local expand = (shiftwidth - position) % shiftwidth + 1
+ position = position + expand
+ return stringrep(" ", expand)
+ end
+
+ local tab = S"\t\v" / expand_tab
+ local utfchar = utfchar / increment_position
+ local eol = P"\n" / reset_position
+ local p_expand = Cs((tab + eol + utfchar)^1)
+
+ function file_helpers.expandtab (raw)
+ position = 1
+ return lpegmatch (p_expand, raw)
+ end
+end
+
+--- Spotted by Philipp A.
+function file_helpers.insert_blank (raw)
+ if not stringfind (raw, "\n%s$") then
+ return raw .. "\n\n"
+ end
+ return raw
+end
+
+function file_helpers.crlf (raw)
+ if stringfind (raw, "\r\n") then
+ return stringgsub (raw, "\r\n", "\n")
+ end
+ return raw
+end
+
+local function load_file (name)
+ f = assert(ioopen(name, "r"), "Not a file!")
+ if not f then return 1 end
+ local tmp = f:read("*all")
+ f:close()
+
+ local fh = file_helpers
+ if thirddata.rst.strip_BOM then
+ tmp = fh.strip_BOM(tmp)
+ end
+ if thirddata.rst.crlf then
+ tmp = fh.crlf(tmp)
+ end
+ if thirddata.rst.expandtab then
+ tmp = fh.expandtab(tmp)
+ end
+ return fh.insert_blank(tmp)
+end
+
+local function save_file (name, data)
+ f = assert(ioopen(name, "w"), "Could not open file "..name.." for writing! Check its permissions")
+ if not f then return 1 end
+ f:write(data)
+ f:close()
+ return 0
+end
+
+local function get_setups (inline)
+ local optional_setups = optional_setups
+ local setups = ""
+ if not inline then
+ setups = setups .. [[
+%+-------------------------------------------------------------+%
+%| Setups |%
+%+-------------------------------------------------------------+%
+% General %
+%---------------------------------------------------------------%
+
+]]
+ end
+
+ setups = setups .. [[
+\setupcolors[state=start]
+%% Interaction is supposed to be handled manually.
+%%\setupinteraction[state=start,focus=standard,color=darkgreen,contrastcolor=darkgreen]
+\setupbodyfontenvironment [default] [em=italic]
+\sethyphenatedurlnormal{:=?&}
+\sethyphenatedurlbefore{?&}
+\sethyphenatedurlafter {:=/-}
+
+\doifundefined{startparagraph}{% -->mkii
+ \enableregime[utf]
+ \let\startparagraph\relax
+ \let\stopparagraph\endgraf
+}
+
+]]
+ for item, _ in next, state.addme do
+ local f = optional_setups[item]
+ setups = f and setups .. f() or setups
+ end
+ if not inline then
+ setups = setups .. [[
+
+
+%+-------------------------------------------------------------+%
+%| Main |%
+%+-------------------------------------------------------------+%
+
+\starttext
+]]
+ end
+ return setups
+end
+
+function thirddata.rst.standalone (infile, outfile)
+ local testdata = load_file(infile)
+ if testdata == 1 then return 1 end
+
+ local processeddata = lpegmatch (rst_parser, testdata)
+ local setups = get_setups(false)
+
+ processeddata = setups .. processeddata .. [[
+
+\stoptext
+
+%+-------------------------------------------------------------+%
+%| End of Document |%
+%+-------------------------------------------------------------+%
+
+% vim:ft=context:tw=65:shiftwidth=2:tabstop=2:set expandtab
+]]
+
+ if processeddata then
+ save_file(outfile, processeddata)
+ else
+ return 1
+ end
+ return 0
+end
+
+local p_strip_comments
+do
+ local Cs, P = lpeg.Cs, lpeg.P
+ local percent = P"%"
+ local eol = P"\n"
+ local comment = percent * (1 - eol)^0 * eol / "\n"
+ p_strip_comments = Cs((comment + 1)^0)
+end
+
+
+local tempfile_count = { } --- map category -> count
+
+local get_tmpfile = function (category)
+ local cnt = tempfile_count[category]
+ if not cnt then
+ cnt = 0
+ end
+ cnt = cnt + 1
+ tempfile_count[category] = cnt
+ local filename = stringformat ("%s_rst-%s-%d",
+ tex.jobname, category, cnt)
+ return luatex.registertempfile (filename,
+ true,
+ (helpers.rst_debug == true)) --- for debugging generated code
+end
+
+
+function thirddata.rst.do_rst_file(fname)
+ local raw_data = load_file(fname)
+ local processed = lpegmatch (rst_parser, raw_data)
+ local setups = get_setups(false)
+ local tmp_file = get_tmpfile "temporary"
+ if processed then
+ processed = lpegmatch (p_strip_comments, setups..processed.."\n\\stoptext\n")
+ save_file(tmp_file, processed)
+ context.input("./"..tmp_file)
+ end
+end
+
+local rst_inclusions = { }
+local rst_incsetups = { }
+function thirddata.rst.do_rst_inclusion (iname, fname)
+ local raw_data = load_file(fname)
+ local processed = lpegmatch (rst_parser, raw_data)
+ local setups = get_setups(true)
+ local tmp_file = get_tmpfile "setup"
+
+ if processed then
+ processed = lpegmatch (p_strip_comments, processed)
+ save_file(tmp_file, processed)
+ rst_inclusions[iname] = tmp_file
+ rst_incsetups[#rst_incsetups +1] = setups
+ end
+end
+
+function thirddata.rst.do_rst_setups ()
+ local out = tableconcat(rst_incsetups)
+ --context(out) --- why doesn’t this work?
+ local tmp_file = get_tmpfile "setup"
+ save_file(tmp_file, out)
+ context.input(tmp_file)
+end
+
+function thirddata.rst.get_rst_inclusion (iname)
+ if rst_inclusions[iname] then
+ context.input(rst_inclusions[iname])
+ else
+ context(stringformat([[{\bf File for inclusion “%s” not found.}\par ]], iname))
+ end
+end
+
+function thirddata.rst.do_rst_snippet(txt)
+ local processed = lpegmatch (rst_parser, txt)
+ local setups = get_setups(true)
+ local tmp_file = get_tmpfile "snippet"
+ if processed then
+ warn("·cs·", txt)
+ processed = lpegmatch (p_strip_comments, setups..processed)
+ save_file(tmp_file, processed)
+ context.input("./" .. tmp_file)
+ else
+ warn("·cs·", txt)
+ context.par()
+ context("{\\bf context-rst could not process snippet.\\par}")
+ context.type(txt)
+ context.par()
+ end
+end
+
+--- vim:tw=79:et:sw=4:ts=8:sts=4
diff --git a/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_setups.lua b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_setups.lua
new file mode 100644
index 0000000000..31f314e2d9
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/rst_setups.lua
@@ -0,0 +1,377 @@
+#!/usr/bin/env texlua
+--------------------------------------------------------------------------------
+-- FILE: rst_setups.lua
+-- USAGE: called by rst_parser.lua
+-- DESCRIPTION: Complement to the reStructuredText parser
+-- AUTHOR: Philipp Gesang (Phg), <phg42.2a@gmail.com>
+-- CHANGED: 2013-06-03 18:52:29+0200
+--------------------------------------------------------------------------------
+--
+
+local optional_setups = { }
+thirddata.rst_setups = optional_setups
+local rst_directives = thirddata.rst_directives
+local rst_context = thirddata.rst
+
+local stringformat = string.format
+local stringstrip = string.strip
+local stringgsub = string.gsub
+
+function optional_setups.footnote_symbol ()
+ local setup = [[
+%---------------------------------------------------------------%
+% Footnotes with symbol conversion %
+%---------------------------------------------------------------%
+\definenote[symbolnote][footnote]
+\setupnote [symbolnote][way=bypage,numberconversion=set 2]
+]]
+ return setup
+end
+
+function optional_setups.footnotes ()
+ local tf = rst_context.state.footnotes
+ local fn = [[
+
+%---------------------------------------------------------------%
+% Footnotes %
+%---------------------------------------------------------------%
+]]
+ local buffer = [[
+
+%% %s
+\startbuffer[%s]
+%s\stopbuffer
+]]
+
+ for nf, note in next, tf.numbered do
+ fn = fn .. stringformat(buffer, "Autonumbered footnote", "__footnote_number_"..nf, note)
+ end
+ for nf, note in next, tf.autolabel do
+ fn = fn .. stringformat(buffer, "Labeled footnote", "__footnote_label_"..nf, note)
+ end
+ for nf, note in next, tf.symbol do
+ fn = fn .. stringformat(buffer, "Symbol footnote", "__footnote_symbol_"..nf, note)
+ end
+ return fn
+end
+
+function optional_setups.references ()
+ local refs = rst_context.collected_references
+ local crefs = rst_context.context_references
+ local arefs = rst_context.anonymous_set
+
+ local function urlescape (str)
+ return str:gsub("#", "\\#")
+ end
+
+ local function resolve_indirect (r)
+ if r and r:match(".*_$") then -- pointing elsewhere
+ local look_me_up = r:match("^`?([^`]*)`?_$")
+ local result = resolve_indirect (refs[look_me_up])
+ if result then
+ return result
+ else
+ if rst_context.structure_references[look_me_up] then
+ -- Internal link, no useURL etc.
+ return false
+ end
+ end
+ end
+ return r
+ end
+
+ local refsection = [[
+
+%---------------------------------------------------------------%
+% References %
+%---------------------------------------------------------------%
+
+]]
+ local references = {}
+ local ref_keys = {}
+ for ref, target in next, refs do
+ ref_keys[#ref_keys+1] = [[__target_]] .. rst_context.whitespace_to_underscore(ref)
+ target = resolve_indirect(target)
+ if target ~= false then
+ ref_text = ref
+ if arefs[ref_text] then
+ ref_text = rst_context.anonymous_links[tonumber(arefs[ref_text])]
+ end
+ references[#references+1] = stringformat([[
+\useURL[__target_%s] [%s] [] [%s] ]], rst_context.whitespace_to_underscore(ref), urlescape(target), ref_text)
+ end
+ end
+ refsection = refsection .. table.concat(references, "\n")
+ -- this is needed in order to select the right reference command later
+ refsection = refsection .. "\n\n" .. [[\def \RSTexternalreferences{]] .. table.concat(ref_keys, ",") .. [[}
+
+% #1 target name, #2 link text
+\def\RSTchoosegoto#1#2{%
+ \rawdoifinsetelse{#1}{\RSTexternalreferences}%
+ {\from[#1]}%
+ {\goto{#2}[#1]}%
+}
+]]
+
+ return refsection
+end
+
+function optional_setups.substitutions ()
+ local directives = rst_directives
+ local substitutions = [[
+
+%---------------------------------------------------------------%
+% Substitutions %
+%---------------------------------------------------------------%
+]]
+ local rs = rst_context.substitutions
+ for name, content in next, rs do
+ local id, data = content.directive, content.data
+ local directive = directives[id]
+ if directive then
+ substitutions = substitutions .. directive(name, data)
+ else
+ err(id .. " does not exist.")
+ end
+ end
+ return substitutions
+end
+
+function optional_setups.directive ()
+ --local dirstr = [[
+
+--%---------------------------------------------------------------%
+--% Directives %
+--%---------------------------------------------------------------%
+--]]
+ --return dirstr
+ return ""
+end
+
+function optional_setups.blockquote ()
+ return [[
+
+%---------------------------------------------------------------%
+% Blockquotes %
+%---------------------------------------------------------------%
+\setupdelimitedtext [blockquote][style={\tfx}] % awful placeholder
+\definedelimitedtext[attribution][blockquote]
+\setupdelimitedtext [attribution][style={\tfx\it}]
+]]
+end
+
+function optional_setups.deflist ()
+ return [[
+
+%---------------------------------------------------------------%
+% Definitionlist %
+%---------------------------------------------------------------%
+\def\startRSTdefinitionlist{
+ \bgroup
+ \def \RSTdeflistterm##1{{\bf ##1}}
+ \def\RSTdeflistclassifier##1{\hbox to 1em{\it ##1}}
+ \def\RSTdeflistdefinition##1{%
+ \startnarrower[left]
+ ##1%
+ \stopnarrower}
+ \def\RSTdeflistparagraph ##1{%
+ \startparagraph{%
+ \noindentation ##1
+ \stopparagraph}
+ }
+}
+
+\let\stopRSTdefinitionlist\egroup
+]]
+end
+
+function optional_setups.lines ()
+ return [[
+
+%---------------------------------------------------------------%
+% Lines environment (line blocks) %
+%---------------------------------------------------------------%
+
+\setuplines[%
+ space=on,%
+ before={\startlinecorrection\blank[small]},%
+ after={\blank[small]\stoplinecorrection},%
+]
+]]
+end
+
+function optional_setups.breaks ()
+ return [[
+
+%---------------------------------------------------------------%
+% Fancy transitions %
+%---------------------------------------------------------------%
+
+% Get Wolfgang’s module at <https://bitbucket.org/wolfs/fancybreak>.
+\usemodule[fancybreak]
+\setupfancybreak[symbol=star]
+]]
+end
+
+function optional_setups.fieldlist ()
+ return [[
+
+%---------------------------------------------------------------%
+% Fieldlists %
+%---------------------------------------------------------------%
+
+\def\startRSTfieldlist{%
+ \bgroup%
+ \unexpanded\def\RSTfieldname##1{\bTR\bTC ##1\eTC}
+ \unexpanded\def\RSTfieldbody##1{\bTC ##1\eTC\eTR}
+%
+ \setupTABLE[c][first] [background=color, backgroundcolor=grey, style=\bf]
+ \setupTABLE[c][2] [align=right]
+ \setupTABLE[c][each] [frame=off]
+ \setupTABLE[r][each] [frame=off]
+ \bTABLE[split=yes,option=stretch]
+ \bTABLEhead
+ \bTR
+ \bTH Field \eTH
+ \bTH Body \eTH
+ \eTR
+ \eTABLEhead
+ \bTABLEbody
+}
+
+\def\stopRSTfieldlist{%
+ %\eTABLEbody % doesn't work, temporarily moved to rst_context.field_list()
+ \eTABLE
+ \egroup%
+}
+]]
+end
+
+function optional_setups.dbend ()
+ -- There's just no reason for not providing this.
+ optional_setups.dbend_done = true
+ return [[
+%---------------------------------------------------------------%
+% Dangerous bend %
+%---------------------------------------------------------------%
+
+\loadmapfile [manfnt.map]
+\definefontsynonym [bends] [manfnt]
+
+\def\GetSym#1{\getglyph{bends}{\char#1}}
+
+\startsymbolset [Dangerous Bends]
+ \definesymbol [dbend] [\GetSym{127}]
+ \definesymbol [lhdbend] [\GetSym{126}]
+ \definesymbol [lhdbend] [\GetSym{0}]
+\stopsymbolset
+
+\setupsymbolset [Dangerous Bends]
+
+]]
+end
+
+function optional_setups.caution ()
+ local result = ""
+ --if not optional_setups.dbend_done then
+ --result = result .. optional_setups.dbend()
+ --end
+ return result .. [[
+%---------------------------------------------------------------%
+% Caution directive %
+%---------------------------------------------------------------%
+
+\usemodule[lettrine]
+
+\setbox0=\hbox{\symbol[dbend]}
+\newskip\RSTbendskip
+\RSTbendskip=\wd0
+\advance\RSTbendskip by 1em % These two lines should add
+\advance\RSTbendskip by 1pt % 13.4pt in mkiv and 13.14983pt in mkii
+ % to make the indent equal to the indent
+ % of the “danger” directive.
+ % (2*(width)dbend + (kern)1pt + 1em
+
+\def\startRSTcaution{%
+\startparagraph
+\dontleavehmode\lettrine[Lines=2,Raise=.6,Findent=\RSTbendskip,Nindent=0pt]{\symbol[dbend]}{}%
+}
+
+\let\stopRSTcaution\stopparagraph
+
+]]
+
+end
+
+function optional_setups.danger ()
+ local result = ""
+ --if not optional_setups.dbend_done then
+ --result = result .. optional_setups.dbend()
+ --end
+ return result .. [[
+%---------------------------------------------------------------%
+% Danger directive %
+%---------------------------------------------------------------%
+
+\usemodule[lettrine]
+
+\def\startRSTdanger{%
+\startparagraph
+\lettrine[Lines=2,Raise=.6,Findent=1em,Nindent=0pt]{\symbol[dbend]\kern 1pt\symbol[dbend]}{}%
+}
+
+\let\stopRSTdanger\stopparagraph
+
+]]
+
+end
+
+function optional_setups.citations ()
+ local cit = [[
+%---------------------------------------------------------------%
+% Citations %
+%---------------------------------------------------------------%
+\setupbibtex[database=\jobname]
+]]
+
+
+ return cit
+end
+
+function optional_setups.citator ()
+ local cit = [[
+%---------------------------------------------------------------%
+% Citator Options %
+%---------------------------------------------------------------%
+\usemodule[citator]
+\loadbibdb{\jobname.bib}
+\setupcitator[sortmode=authoryear]
+\setupcite[mainmode=authoryear]
+
+\startbuffer[bibliography]
+\chapter{References}
+\setupbodyfont[small]
+\bibbykey{shorthand}{all}{author}
+\stopbuffer
+
+\prependtoks \getbuffer[bibliography] \to \everystoptext
+]]
+
+ return cit
+end
+
+function optional_setups.image ()
+ local image = [[
+
+%---------------------------------------------------------------%
+% images %
+%---------------------------------------------------------------%
+\setupexternalfigure[location={local,global,default}]
+
+]]
+ return image
+end
+
+return optional_setups
+
+-- vim:ft=lua:sw=4:ts=4:expandtab:tw=80
diff --git a/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/t-rst.mkiv b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/t-rst.mkiv
new file mode 100644
index 0000000000..a69e238ce5
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-rst/tex/context/third/rst/t-rst.mkiv
@@ -0,0 +1,241 @@
+%D \module [
+%D file=t-rst,
+%D version=0.6c ‘It’s the Arts’,
+%D title=\CONTEXT\ User Module,
+%D subtitle=reStructuredText,
+%D author=Philipp Gesang,
+%D date=\currentdate,
+%D copyright=Philipp Gesang,
+%D license=2-clause BSD,
+%D ]
+
+%M \usemodule [rst]
+%M \usemodule [int-load]
+%M \loadsetups [t-letterspace.xml]
+
+%C Read the license conditions in the file \type{COPYING}.
+
+%M \definecolor [gutenred] [x=bf221f] % rubrication from digitized Göttingen Gutenberg bible
+%M \setupinteraction [contrastcolor=gutenred,color=gutenred]
+%M
+%M \define\beautifyshowsetups{%
+%M \unexpanded \def \setupnumfont {\rm}%
+%M \unexpanded \def \setuptxtfont {\rm}%
+%M \unexpanded \def \setupintfont {\rm\sc\Word}%
+%M \unexpanded \def \setupvarfont {\rm\it}%
+%M \unexpanded \def \setupoptfont {\rm\it}%
+%M \unexpanded \def \setupalwcolor {gutenred}%
+%M \unexpanded \def \setupoptcolor {gutenred}%
+%M \defineframedtext [setuptext] [
+%M frame=off,
+%M background=color,
+%M backgroundcolor=gray:2,
+%M width=\hsize,
+%M height=fit,
+%M align=right,
+%M offset=0.75em,
+%M ]%
+%M }
+%M
+%M \let \Oldshowsetup \showsetup
+%M
+%M \define [1] \showsetup {%
+%M \bgroup \beautifyshowsetups%
+%M \Oldshowsetup{#1}%
+%M \egroup%
+%M }
+
+\writestatus{loading}{ConTeXt User Module / reStructuredText}
+
+\unprotect
+
+\startinterface all
+ \setinterfacevariable {RST} {RST}
+\stopinterface
+
+\definenamespace [\v!RST] [
+ type=module,
+ comment=reStructuredText module,
+ version=0.6c,
+ name=\v!RST,
+ style=\v!no,
+ command=\v!yes,
+ setup=\v!list,
+ parent=\v!RST,
+]
+
+%D Loading the reStructuredText parser.
+\ctxloadluafile{rst_parser}
+
+%D Easy way to define a global test setting. Activated
+%D by \type{\usemodule[rst][test=yes]}.
+
+\startmoduletestsection
+ \ctxlua{thirddata.rst_helpers.rst_debug = true}
+\stopmoduletestsection
+
+%D To process inline reST markup we’ll have to reset all catcodes
+%D except for grouping, escaping and cs arguments.
+
+\newcatcodetable \RST_catcodes
+\startcatcodetable \RST_catcodes
+ \catcode`\^^I = 12
+ \catcode`\^^M = 12
+ \catcode`\^^L = 12
+ \catcode`\ = 12
+ \catcode`\^^Z = 12
+ \catcode`\\ = 0
+ \catcode`\% = 12
+ \catcode`\# = 6
+ \catcode`\_ = 12
+ \catcode`\^ = 12
+ \catcode`\& = 12
+ \catcode`\| = 12
+ \catcode`\{ = 1
+ \catcode`\} = 2
+ \catcode`\~ = 12
+ \catcode`\$ = 12
+\stopcatcodetable
+
+%D \section {User-level Commands}
+%D
+%D \subsection{Typesetting reST-Files}
+%D
+%D \macros
+%D {typesetRSTfile}
+%D
+%D This command loads and processes an \type{*.rst} file.
+%D All necessary setups for the elements to be used (e.g. tables)
+%D have to be specified {\em before} this macro is called.
+%D As \type{\typesetRSTfile} is intended to process a single file
+%D only, it will handle \type{\start|stoptext} automatically.
+%D Thus, the user should never supply any of these manually,
+%D neither before nor after \type{\typesetRSTfile}.
+%D
+%D We now handle rogue utf-8 byte order marks on demand, just set
+%D the optional parameter \type{stripBOM} to {\em true}.
+%D
+%D There also is an option \type{expandtab} to convert tabs
+%D (ascii 0x09) to indents prior to converting reST input. The
+%D expansion width defaults to {\em 4} and can be configured
+%D through the parameter \type{shiftwidth} (takes an integer).
+%D
+%D \showsetup{typesetRSTfile}
+
+\def\do_typeset_RST_file[#1]#2{%
+ \iffirstargument
+ \getparameters[RST][#1]%
+ \doifdefined{RSTstripBOM} {\ctxlua{thirddata.rst.strip_BOM = \RSTstripBOM}}%
+ \doifdefined{RSTexpandtab} {\ctxlua{thirddata.rst.expandtab = \RSTexpandtab}}%
+ \doifdefined{RSTshiftwidth}{\ctxlua{thirddata.rst.shiftwidth = \RSTshiftwidth}}%
+ \fi
+ \ctxlua{thirddata.rst.do_rst_file("#2")}%
+}
+
+\def\typesetRSTfile{%
+ \dosingleempty\do_typeset_RST_file%
+}
+
+%D \subsection{Typesetting Inline Snippets}
+%D
+%D reST markup can be handy in situations where \CONTEXT\ markup
+%D would result in unappropriately verbose source code, e.g. when
+%D typesetting tables with simple layout.
+%D
+%D \macros
+%D {RST,startRST}
+%D
+%D The environment \type{\[start|stop]RST} and the macro
+%D \type{\RST} allow access to reST-parser from inside a
+%D \CONTEXT\ document when the module is loaded.
+%D
+%D \showsetup{RST}
+%D \showsetup{startRST}
+
+% Wolfgang’s code below.
+
+\unexpanded \def \startRST{%
+ \begingroup
+ \setcatcodetable \RST_catcodes
+ \do_start_RST%
+}
+
+\let \stopRST \relax
+
+\def \do_start_RST#1\stopRST{%
+ \endgroup%
+ \ctxlua{thirddata.rst.do_rst_snippet(\!!bs#1\!!es)}%
+}
+
+\def \RST{%
+ \begingroup
+ \setcatcodetable \RST_catcodes
+ \do_RST%
+}
+
+\def \do_RST#1{%
+ \endgroup%
+ \ctxlua{thirddata.rst.do_rst_snippet(\!!bs#1\!!es)}%
+}
+
+%D \subsection{Including multiple reST files}
+%D
+%D \macros
+%D {defineRSTinclusion,startRSTproject,RSTinclusion}
+%D
+%D When content is split among multiple files, these macros allow
+%D for including them in arbitrary order. Note that setups from
+%D previous includes, unless overwritten, will remain defined.
+%D \type{\defineRSTinclusion} takes three arguments: the first one
+%D will be the identifier that can be used to refer to the actual
+%D inclusion, which is specified via the second argument as a
+%D filename. The third optional argument receives the usual
+%D setups \type{stripBOM}, \type{expandtab} and
+%D \type{shiftwidth}.
+%D
+%D Defined inclusions can be typeset only within an the
+%D \type{\startRSTproject} environment using the macro
+%D \type{RSTinclusion}. Between those inclusion all kinds of
+%D \TEX\ code except for \type{\starttext} and \type{\stoptext}
+%D are permitted.
+
+\def\do_define_RST_inclusion[#1][#2][#3]{%
+ \ifthirdargument
+ \getparameters[RST][#3]%
+ \doifdefined{RSTstripBOM} {\ctxlua{thirddata.rst.strip_BOM = \RSTstripBOM}}%
+ \doifdefined{RSTexpandtab} {\ctxlua{thirddata.rst.expandtab = \RSTexpandtab}}%
+ \doifdefined{RSTshiftwidth}{\ctxlua{thirddata.rst.shiftwidth = \RSTshiftwidth}}%
+ \fi
+ \ifsecondargument
+ \ctxlua{thirddata.rst.do_rst_inclusion("#1", "#2")}%
+ \fi%
+}
+
+\def\defineRSTinclusion{%
+ \dotripleempty\do_define_RST_inclusion%
+}
+
+\def\do_RST_inclusion[#1]{%
+ \iffirstargument
+ \ctxlua{thirddata.rst.get_rst_inclusion("#1")}%
+ \fi%
+}
+
+\def\do_RST_setups{%
+ \ctxlua{thirddata.rst.do_rst_setups()}%
+}
+
+\def\startRSTproject{
+ \begingroup
+ \def\RSTinclusion{\dosingleempty\do_RST_inclusion}
+ \do_RST_setups
+ \starttext%
+}
+
+\def\stopRSTproject{
+ \stoptext \endgroup \endinput
+}
+
+\protect \endinput
+
+% vim:ft=context:sw=2:ts=2
diff --git a/obsolete/macros/context/contrib/context-ruby/VERSION b/obsolete/macros/context/contrib/context-ruby/VERSION
new file mode 100644
index 0000000000..eb97e70dd5
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-ruby/VERSION
@@ -0,0 +1 @@
+2012.12.01
diff --git a/obsolete/macros/context/contrib/context-ruby/doc/context/third/ruby/README b/obsolete/macros/context/contrib/context-ruby/doc/context/third/ruby/README
new file mode 100644
index 0000000000..6e6fcd4ad6
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-ruby/doc/context/third/ruby/README
@@ -0,0 +1,43 @@
+Modulename : t-ruby
+Author : Wolfgang Schuster
+License : Public Domain
+
+
+Description
+-----------
+
+The 'ruby' module allows users to write ruby annotations in ConTeXt.
+
+
+Usage
+-----
+
+The module is loaded with the command:
+
+ \usemodule[ruby]
+
+Ruby text can be set with the command:
+
+ \ruby{base text}{ruy text}
+
+The layout of the base and ruby text could be changed with:
+
+ \setupruby
+ [basestyle=...,
+ basecolor=...,
+ textstyle=...,
+ textcolor=...]
+
+Whether ruby text overlaps with the surrounding text or not can be configured with:
+
+ \setupruby
+ [overhang=auto|start|end|none] % default: yes
+
+The last option is the distance between the ruby and the base text:
+
+ \setupruby
+ [inbetween=...] % default: \blank[small]
+
+All of these parameters can also be changed for a single ruby command:
+
+ \ruby[..,..=..,..]{...}{...}
diff --git a/obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkii b/obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkii
new file mode 100644
index 0000000000..7f2a6e2680
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkii
@@ -0,0 +1,286 @@
+%D \module
+%D [ file=t-ruby,
+%D version=2010.10.10,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Ruby Markup,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\writestatus{loading}{ConTeXt User Module / Ruby Markup}
+
+\unprotect
+
+%D simple ruby:
+%D
+%D \starttyping
+%D <ruby>
+%D <rb>WWW</rb>
+%D <rt>World Wide Web</rt>
+%D </ruby>
+%D \stoptyping
+%D
+%D complex ruby:
+%D
+%D \starttyping
+%D <ruby>
+%D <rbc>
+%D <rb>10</rb>
+%D <rb>31</rb>
+%D <rb>2002</rb>
+%D </rbc>
+%D <rtc>
+%D <rt>Month</rt>
+%D <rt>Day</rt>
+%D <rt>Year</rt>
+%D </rtc>
+%D <rtc>
+%D <rt rbspan="3">Expiration Date</rt>
+%D </rtc>
+%D </ruby>
+%D \stoptyping
+
+%D Constants/variables
+
+\startinterface all
+ \setinterfaceconstant {basestyle} {basestyle}
+ \setinterfaceconstant {basecolor} {basecolor}
+ \setinterfaceconstant {overhang} {overhang}
+\stopinterface
+
+\startinterface all
+ \setinterfacevariable {letter} {letter}
+ \setinterfacevariable {end} {end}
+ \setinterfacevariable {inline} {inline}
+\stopinterface
+
+%D Namespace
+
+\def\????rb{@@@@rb}
+
+%D Additional registers
+
+\newdimen \!!rubywidth
+\newdimen \!!rubyleftmargin
+\newdimen \!!rubyrightmargin
+\newsignal\!!rubysignal
+\newcount \!!rubycount
+\newtoks \!!rubybase
+\newtoks \!!rubytext
+
+%D \macros
+%D {setupruby}
+
+\def\setupruby
+ {\dodoubleargument\getparameters[\????rb]}
+
+\def\rubyparameter#1{\csname\????rb#1\endcsname}
+
+%D \macros
+%D {pdfactualtext}
+
+\ifx\pdfactualtext\undefined \let\pdfactualtext\secondoftwoarguments \fi
+
+%D \macros
+%D {bRUBY,eRUBY,bRB,eRB,bRT,eRT}
+
+\def\bRUBY
+ {\dosingleempty\dobRUBY}
+
+\def\dobRUBY[#1]%
+ {\begingroup
+ \iffirstargument
+ \setupruby[#1]%
+ \fi
+ \scratchdimen\lastskip
+ \ifdim\scratchdimen=\!!rubysignal\else\global\!!rubywidth\!!zeropoint\fi
+ \global\advance\!!rubycount\plusone
+ \xypos{rubyposition:\number\!!rubycount}%
+ \doifmodeelse\v!first
+ {\edef\rubyposition{\the\onepoint}}%
+ {\edef\rubyposition{\the\dimexpr\MPx{rubyposition:\number\!!rubycount}-\MPx{text:\the\realpageno}\relax}}}
+
+\def\eRUBY
+ {\setbox\scratchboxone\hbox{\redoconvertfont\doattributes\????rb\c!basestyle\c!basecolor{\the\!!rubybase}}%
+ \setbox\scratchboxtwo\hbox{\redoconvertfont\doattributes\????rb\c!textstyle\c!textcolor{\the\!!rubytext}}%
+ \scratchdimenone\wd\scratchboxone
+ \scratchdimentwo\wd\scratchboxtwo
+ %\scratchdimenthree\ifdim\scratchdimenone<\scratchdimentwo\space\scratchdimenone\else\scratchdimentwo\fi
+ \scratchdimenthree\scratchdimenone
+ \executeifdefined{\????rb:\c!align :\rubyparameter\c!align }{\getvalue{\????rb:\c!align :\v!auto }}%
+ \executeifdefined{\????rb:\c!position:\rubyparameter\c!position}{\getvalue{\????rb:\c!position:\v!before}}%
+ \executeifdefined{\????rb:\c!overhang:\rubyparameter\c!overhang}{\getvalue{\????rb:\c!overhang:\v!auto }}%
+ \hskip\!!rubysignal\relax
+ \endgroup}
+
+\def\bRB{\dodoubleempty\dobRB}
+\def\bRT{\dodoubleempty\dobRT}
+
+\def\dobRB[#1][#2]#3\eRB{\!!rubybase{#3}}
+\def\dobRT[#1][#2]#3\eRT{\!!rubytext{#3}}
+
+\def\placerubystrut{\doif{\rubyparameter\c!strut}\v!yes{\setstrut\strut}}
+
+%D Alignment
+
+\def\RUBYdistributespace #1{\processtokens{\hss }{\hss\hss}{\hss }{\hss\hss}{#1}}
+\def\RUBYdistributeletter#1{\processtokens{\relax}{\hss }{\relax}{\hss\hss}{#1}}
+
+\setvalue{\????rb:\c!align:\v!space}%
+ {\!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \ifdim\scratchdimenone>\scratchdimentwo
+ \setbox\scratchboxone\hbox to \scratchdimenone{\hss\box\scratchboxone\hss}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenone{\redoconvertfont\doattributes\????rb\c!textstyle\c!textcolor{\@EA\RUBYdistributespace\@EA{\the\!!rubytext}}}%
+ \else
+ \setbox\scratchboxone\hbox to \scratchdimentwo{\redoconvertfont\doattributes\????rb\c!basestyle\c!basecolor{\@EA\RUBYdistributespace\@EA{\the\!!rubybase}}}%
+ \setbox\scratchboxtwo\hbox to \scratchdimentwo{\hss\box\scratchboxtwo\hss}%
+ \fi}
+
+\setvalue{\????rb:\c!align:\v!letter}%
+ {\!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \ifdim\scratchdimenone>\scratchdimentwo
+ \setbox\scratchboxone\hbox to \scratchdimenone{\hss\box\scratchboxone\hss}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenone{\redoconvertfont\doattributes\????rb\c!textstyle\c!textcolor{\@EA\RUBYdistributeletter\@EA{\the\!!rubytext}}}%
+ \else
+ \setbox\scratchboxone\hbox to \scratchdimentwo{\redoconvertfont\doattributes\????rb\c!basestyle\c!basecolor{\@EA\RUBYdistributeletter\@EA{\the\!!rubybase}}}%
+ \setbox\scratchboxtwo\hbox to \scratchdimentwo{\hss\box\scratchboxtwo\hss}%
+ \fi}
+
+\setvalue{\????rb:\c!align:\v!auto}% I need special alignments for the begin/end of the line!!!
+ {\ifdim\scratchdimenone>\scratchdimentwo
+ \getvalue{\????rb:\c!align:\v!space}%
+ \else
+ \ifdim\rubyposition=\!!zeropoint % begin of the line
+ \getvalue{\????rb:\c!align:\v!left}%
+ \else\ifdim\rubyposition=\the\dimexpr\textwidth-\scratchdimenthree\relax % end of the line
+ \getvalue{\????rb:\c!align:\v!right}%
+ \else
+ \getvalue{\????rb:\c!align:\v!space}%
+ \fi\fi
+ \fi}
+
+\setvalue{\????rb:\c!align:\v!left}%
+ {\ifdim\scratchdimenone>\scratchdimentwo
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \else
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\dimexpr\scratchdimentwo-\scratchdimenone\relax
+ \fi
+ \setbox\scratchboxone\hbox to \scratchdimenthree{\box\scratchboxone\hss}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenthree{\box\scratchboxtwo\hss}}
+
+\setvalue{\????rb:\c!align:\v!start}%
+ {\getvalue{\????rb:\c!align:\v!left}}
+
+\setvalue{\????rb:\c!align:\v!center}%
+ {\ifdim\scratchdimenone>\scratchdimentwo
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \else
+ \!!rubyleftmargin \dimexpr(\scratchdimentwo-\scratchdimenone)/2\relax
+ \!!rubyrightmargin\dimexpr(\scratchdimentwo-\scratchdimenone)/2\relax
+ \fi
+ \setbox\scratchboxone\hbox to \scratchdimenthree{\hss\box\scratchboxone\hss}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenthree{\hss\box\scratchboxtwo\hss}}
+
+\setvalue{\????rb:\c!align:\v!right}%
+ {\ifdim\scratchdimenone>\scratchdimentwo
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \else
+ \!!rubyleftmargin \dimexpr\scratchdimentwo-\scratchdimenone\relax
+ \!!rubyrightmargin\zeropoint
+ \fi
+ \setbox\scratchboxone\hbox to \scratchdimenthree{\hss\box\scratchboxone}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenthree{\hss\box\scratchboxtwo}}
+
+\setvalue{\????rb:\c!align:\v!end}%
+ {\getvalue{\v!ruby:\c!align:\v!right}}
+
+\setvalue{\????rb:\c!align:\v!edge}% modify to take care of overlap etc.
+ {\ifdim\rubyposition=\zeropoint
+ \getvalue{\????rb:\c!align:\v!left}%
+ \else\ifdim\rubyposition=\the\dimexpr\textwidth-\scratchdimenthree\relax
+ \getvalue{\????rb:\c!align:\v!right}%
+ \else
+ \getvalue{\????rb:\c!align:\v!center}%
+ \fi\fi}
+
+%D Positioning
+
+\setvalue{\????rb:\c!position:\v!before}%
+ {\setbox\scratchboxthree\vbox
+ {\offinterlineskip
+ \hbox{\undepthed{\placerubystrut\box\scratchboxtwo}}
+ \rubyparameter\c!inbetween
+ \hbox{\placerubystrut\box\scratchboxone}}}
+
+\setvalue{\????rb:\c!position:\v!after}%
+ {\setbox\scratchboxthree\vtop
+ {\offinterlineskip
+ \hbox{\undepthed{\placerubystrut\box\scratchboxone}}
+ \rubyparameter\c!inbetween
+ \hbox{\placerubystrut\box\scratchboxtwo}}}
+
+\setvalue{\????rb:\c!position:\v!inline}% pure text to allow line breaks in the text
+ {\setbox\scratchboxthree\box\voidbox
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \the\!!rubybase
+ \rubyparameter\c!separator
+ \rubyparameter\c!lefttext\the\!!rubytext\rubyparameter\c!righttext}
+
+%D Overhang
+
+\setvalue{\????rb:\c!overhang:\v!auto}%
+ {\ifdim\!!rubywidth>\!!zeropoint
+ \kern\dimexpr\!!rubyleftmargin+\!!rubywidth\relax
+ \fi
+ \box\scratchboxthree
+ \global\!!rubywidth\!!rubyrightmargin}
+
+\setvalue{\????rb:\c!overhang:\v!start}%
+ {\box\scratchboxthree\kern\!!rubyrightmargin
+ \global\!!rubywidth\!!rubyrightmargin}
+
+\setvalue{\????rb:\c!overhang:\v!end}%
+ {\ifdim\!!rubywidth>\!!zeropoint
+ \kern\dimexpr\!!rubyleftmargin+\!!rubywidth\relax
+ \else
+ \kern\!!rubyleftmargin
+ \fi
+ \box\scratchboxthree
+ \global\!!rubywidth\!!zeropoint}
+
+\setvalue{\????rb:\c!overhang:\v!none}%
+ {\kern\!!rubyleftmargin\box\scratchboxthree\kern\!!rubyrightmargin
+ \global\!!rubywidth\!!zeropoint}
+
+%D \macros
+%D {ruby}
+
+\def\ruby
+ {\dontleavehmode\dosingleempty\doruby}
+
+\def\doruby[#1]#2#3%
+ {\dobRUBY[#1]\bRB#2\eRB\bRT#3\eRT\eRUBY}
+
+%D Default values
+
+\setupruby
+ [\c!position=\v!before, % before|after|inline
+ \c!align=\v!auto, % auto|start|left|center|end|right|distribute-letter|distribute-space|line-edge
+ \c!overhang=\v!auto, % auto|start|end|none
+ \c!separator={ },
+ \c!lefttext=(,
+ \c!righttext=),
+ \c!strut=\v!no,
+ \c!inbetween={\blank[\v!small]},
+ \c!textstyle=\txx]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkiv b/obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkiv
new file mode 100644
index 0000000000..d90330a41b
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkiv
@@ -0,0 +1,283 @@
+%D \module
+%D [ file=t-ruby,
+%D version=2010.11.23,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Ruby Markup,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\writestatus{loading}{ConTeXt User Module / Ruby Markup}
+
+\unprotect
+
+%D simple ruby:
+%D
+%D \starttyping
+%D <ruby>
+%D <rb>WWW</rb>
+%D <rt>World Wide Web</rt>
+%D </ruby>
+%D \stoptyping
+%D
+%D complex ruby:
+%D
+%D \starttyping
+%D <ruby>
+%D <rbc>
+%D <rb>10</rb>
+%D <rb>31</rb>
+%D <rb>2002</rb>
+%D </rbc>
+%D <rtc>
+%D <rt>Month</rt>
+%D <rt>Day</rt>
+%D <rt>Year</rt>
+%D </rtc>
+%D <rtc>
+%D <rt rbspan="3">Expiration Date</rt>
+%D </rtc>
+%D </ruby>
+%D \stoptyping
+
+%D Constants/variables
+
+\startinterface all
+ \setinterfaceconstant {basestyle} {basestyle}
+ \setinterfaceconstant {basecolor} {basecolor}
+ \setinterfaceconstant {overhang} {overhang}
+\stopinterface
+
+\startinterface all
+ \setinterfacevariable {letter} {letter}
+ \setinterfacevariable {end} {end}
+ \setinterfacevariable {inline} {inline}
+\stopinterface
+
+%D Namespace
+
+\def\????rb{@@@@rb}
+
+%D Additional registers
+
+\newdimen \!!rubywidth
+\newdimen \!!rubyleftmargin
+\newdimen \!!rubyrightmargin
+\newsignal\!!rubysignal
+\newcount \!!rubycount
+\newtoks \!!rubybase
+\newtoks \!!rubytext
+
+%D \macros
+%D {setupruby}
+
+\def\setupruby
+ {\dodoubleargument\getparameters[\????rb]}
+
+\def\rubyparameter#1{\csname\????rb#1\endcsname}
+
+%D \macros
+%D {bRUBY,eRUBY,bRB,eRB,bRT,eRT}
+
+\def\bRUBY
+ {\dosingleempty\dobRUBY}
+
+\def\dobRUBY[#1]%
+ {\begingroup
+ \iffirstargument
+ \setupruby[#1]%
+ \fi
+ \scratchdimen\lastskip
+ \ifdim\scratchdimen=\!!rubysignal\else\global\!!rubywidth\!!zeropoint\fi
+ \global\advance\!!rubycount\plusone
+ \xypos{rubyposition:\number\!!rubycount}%
+ \doifmodeelse\v!first
+ {\edef\rubyposition{\the\onepoint}}%
+ {\edef\rubyposition{\the\dimexpr\MPx{rubyposition:\number\!!rubycount}-\MPx{text:\the\realpageno}\relax}}}
+
+\def\eRUBY
+ {\setbox\scratchboxone\hbox{\redoconvertfont\doattributes\????rb\c!basestyle\c!basecolor{\the\!!rubybase}}%
+ \setbox\scratchboxtwo\hbox{\redoconvertfont\doattributes\????rb\c!textstyle\c!textcolor{\the\!!rubytext}}%
+ \scratchdimenone\wd\scratchboxone
+ \scratchdimentwo\wd\scratchboxtwo
+ %\scratchdimenthree\ifdim\scratchdimenone<\scratchdimentwo\space\scratchdimenone\else\scratchdimentwo\fi
+ \scratchdimenthree\scratchdimenone
+ \executeifdefined{\????rb:\c!align :\rubyparameter\c!align }{\getvalue{\????rb:\c!align :\v!auto }}%
+ \executeifdefined{\????rb:\c!position:\rubyparameter\c!position}{\getvalue{\????rb:\c!position:\v!before}}%
+ \executeifdefined{\????rb:\c!overhang:\rubyparameter\c!overhang}{\getvalue{\????rb:\c!overhang:\v!auto }}%
+ \hskip\!!rubysignal\relax
+ \endgroup}
+
+\def\bRB{\dodoubleempty\dobRB}
+\def\bRT{\dodoubleempty\dobRT}
+
+\def\dobRB[#1][#2]#3\eRB{\!!rubybase{#3}}
+\def\dobRT[#1][#2]#3\eRT{\!!rubytext{#3}}
+
+\def\placerubystrut{\doif{\rubyparameter\c!strut}\v!yes{\setstrut\strut}}
+
+%D Alignment
+
+\def\RUBYdistributespace #1{\processtokens{\hss }{\hss\hss}{\hss }{\hss\hss}{#1}}
+\def\RUBYdistributeletter#1{\processtokens{\relax}{\hss }{\relax}{\hss\hss}{#1}}
+
+\setvalue{\????rb:\c!align:\v!space}%
+ {\!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \ifdim\scratchdimenone>\scratchdimentwo
+ \setbox\scratchboxone\hbox to \scratchdimenone{\hss\box\scratchboxone\hss}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenone{\redoconvertfont\doattributes\????rb\c!textstyle\c!textcolor{\@EA\RUBYdistributespace\@EA{\the\!!rubytext}}}%
+ \else
+ \setbox\scratchboxone\hbox to \scratchdimentwo{\redoconvertfont\doattributes\????rb\c!basestyle\c!basecolor{\@EA\RUBYdistributespace\@EA{\the\!!rubybase}}}%
+ \setbox\scratchboxtwo\hbox to \scratchdimentwo{\hss\box\scratchboxtwo\hss}%
+ \fi}
+
+\setvalue{\????rb:\c!align:\v!letter}%
+ {\!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \ifdim\scratchdimenone>\scratchdimentwo
+ \setbox\scratchboxone\hbox to \scratchdimenone{\hss\box\scratchboxone\hss}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenone{\redoconvertfont\doattributes\????rb\c!textstyle\c!textcolor{\@EA\RUBYdistributeletter\@EA{\the\!!rubytext}}}%
+ \else
+ \setbox\scratchboxone\hbox to \scratchdimentwo{\redoconvertfont\doattributes\????rb\c!basestyle\c!basecolor{\@EA\RUBYdistributeletter\@EA{\the\!!rubybase}}}%
+ \setbox\scratchboxtwo\hbox to \scratchdimentwo{\hss\box\scratchboxtwo\hss}%
+ \fi}
+
+\setvalue{\????rb:\c!align:\v!auto}% I need special alignments for the begin/end of the line!!!
+ {\ifdim\scratchdimenone>\scratchdimentwo
+ \getvalue{\????rb:\c!align:\v!space}%
+ \else
+ \ifdim\rubyposition=\!!zeropoint % begin of the line
+ \getvalue{\????rb:\c!align:\v!left}%
+ \else\ifdim\rubyposition=\the\dimexpr\textwidth-\scratchdimenthree\relax % end of the line
+ \getvalue{\????rb:\c!align:\v!right}%
+ \else
+ \getvalue{\????rb:\c!align:\v!space}%
+ \fi\fi
+ \fi}
+
+\setvalue{\????rb:\c!align:\v!left}%
+ {\ifdim\scratchdimenone>\scratchdimentwo
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \else
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\dimexpr\scratchdimentwo-\scratchdimenone\relax
+ \fi
+ \setbox\scratchboxone\hbox to \scratchdimenthree{\box\scratchboxone\hss}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenthree{\box\scratchboxtwo\hss}}
+
+\setvalue{\????rb:\c!align:\v!start}%
+ {\getvalue{\????rb:\c!align:\v!left}}
+
+\setvalue{\????rb:\c!align:\v!center}%
+ {\ifdim\scratchdimenone>\scratchdimentwo
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \else
+ \!!rubyleftmargin \dimexpr(\scratchdimentwo-\scratchdimenone)/2\relax
+ \!!rubyrightmargin\dimexpr(\scratchdimentwo-\scratchdimenone)/2\relax
+ \fi
+ \setbox\scratchboxone\hbox to \scratchdimenthree{\hss\box\scratchboxone\hss}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenthree{\hss\box\scratchboxtwo\hss}}
+
+\setvalue{\????rb:\c!align:\v!right}%
+ {\ifdim\scratchdimenone>\scratchdimentwo
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \else
+ \!!rubyleftmargin \dimexpr\scratchdimentwo-\scratchdimenone\relax
+ \!!rubyrightmargin\zeropoint
+ \fi
+ \setbox\scratchboxone\hbox to \scratchdimenthree{\hss\box\scratchboxone}%
+ \setbox\scratchboxtwo\hbox to \scratchdimenthree{\hss\box\scratchboxtwo}}
+
+\setvalue{\????rb:\c!align:\v!end}%
+ {\getvalue{\v!ruby:\c!align:\v!right}}
+
+\setvalue{\????rb:\c!align:\v!edge}% modify to take care of overlap etc.
+ {\ifdim\rubyposition=\zeropoint
+ \getvalue{\????rb:\c!align:\v!left}%
+ \else\ifdim\rubyposition=\the\dimexpr\textwidth-\scratchdimenthree\relax
+ \getvalue{\????rb:\c!align:\v!right}%
+ \else
+ \getvalue{\????rb:\c!align:\v!center}%
+ \fi\fi}
+
+%D Positioning
+
+\setvalue{\????rb:\c!position:\v!before}%
+ {\setbox\scratchboxthree\vbox
+ {\offinterlineskip
+ \hbox{\undepthed{\placerubystrut\box\scratchboxtwo}}
+ \rubyparameter\c!inbetween
+ \hbox{\placerubystrut\box\scratchboxone}}}
+
+\setvalue{\????rb:\c!position:\v!after}%
+ {\setbox\scratchboxthree\vtop
+ {\offinterlineskip
+ \hbox{\undepthed{\placerubystrut\box\scratchboxone}}
+ \rubyparameter\c!inbetween
+ \hbox{\placerubystrut\box\scratchboxtwo}}}
+
+\setvalue{\????rb:\c!position:\v!inline}% pure text to allow line breaks in the text
+ {\setbox\scratchboxthree\box\voidbox
+ \!!rubyleftmargin \zeropoint
+ \!!rubyrightmargin\zeropoint
+ \the\!!rubybase
+ \rubyparameter\c!separator
+ \rubyparameter\c!lefttext\the\!!rubytext\rubyparameter\c!righttext}
+
+%D Overhang
+
+\setvalue{\????rb:\c!overhang:\v!auto}%
+ {\ifdim\!!rubywidth>\!!zeropoint
+ \kern\dimexpr\!!rubyleftmargin+\!!rubywidth\relax
+ \fi
+ \box\scratchboxthree
+ \global\!!rubywidth\!!rubyrightmargin}
+
+\setvalue{\????rb:\c!overhang:\v!start}%
+ {\box\scratchboxthree\kern\!!rubyrightmargin
+ \global\!!rubywidth\!!rubyrightmargin}
+
+\setvalue{\????rb:\c!overhang:\v!end}%
+ {\ifdim\!!rubywidth>\!!zeropoint
+ \kern\dimexpr\!!rubyleftmargin+\!!rubywidth\relax
+ \else
+ \kern\!!rubyleftmargin
+ \fi
+ \box\scratchboxthree
+ \global\!!rubywidth\!!zeropoint}
+
+\setvalue{\????rb:\c!overhang:\v!none}%
+ {\kern\!!rubyleftmargin\box\scratchboxthree\kern\!!rubyrightmargin
+ \global\!!rubywidth\!!zeropoint}
+
+%D \macros
+%D {ruby}
+
+\def\ruby
+ {\dontleavehmode\dosingleempty\doruby}
+
+\def\doruby[#1]#2#3%
+ {\pdfactualtext
+ {\dobRUBY[#1]\bRB#2\eRB\bRT#3\eRT\eRUBY}
+ {#2\rubyparameter\c!separator\rubyparameter\c!lefttext#3\rubyparameter\c!righttext}}
+
+%D Default values
+
+\setupruby
+ [\c!position=\v!before, % before|after|inline
+ \c!align=\v!auto, % auto|start|left|center|end|right|distribute-letter|distribute-space|line-edge
+ \c!overhang=\v!auto, % auto|start|end|none
+ \c!separator={ },
+ \c!lefttext=(,
+ \c!righttext=),
+ \c!strut=\v!no,
+ \c!inbetween={\blank[\v!small]},
+ \c!textstyle=\txx]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkvi b/obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkvi
new file mode 100644
index 0000000000..21f6ae9a22
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-ruby/tex/context/third/ruby/t-ruby.mkvi
@@ -0,0 +1,393 @@
+%D \module
+%D [ file=t-ruby,
+%D version=2012.12.01,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Ruby Markup,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\writestatus{loading}{ConTeXt User Module / Ruby Markup}
+
+\unprotect
+
+%D simple ruby:
+%D
+%D \starttyping
+%D <ruby>
+%D <rb>WWW</rb>
+%D <rt>World Wide Web</rt>
+%D </ruby>
+%D \stoptyping
+%D
+%D complex ruby:
+%D
+%D \starttyping
+%D <ruby>
+%D <rbc>
+%D <rb>10</rb>
+%D <rb>31</rb>
+%D <rb>2002</rb>
+%D </rbc>
+%D <rtc>
+%D <rt>Month</rt>
+%D <rt>Day</rt>
+%D <rt>Year</rt>
+%D </rtc>
+%D <rtc>
+%D <rt rbspan="3">Expiration Date</rt>
+%D </rtc>
+%D </ruby>
+%D \stoptyping
+
+%D Constants/variables
+
+\startinterface all
+ \setinterfaceconstant {basestyle} {basestyle}
+ \setinterfaceconstant {basecolor} {basecolor}
+ \setinterfaceconstant {rubybase} {rubybase}
+ \setinterfaceconstant {rubytext} {rubytext}
+\stopinterface
+
+\startinterface all
+ \setinterfacevariable {letter} {letter}
+\stopinterface
+
+%D Lua
+
+\startluacode
+
+thirddata = thirddata or { }
+thirddata.ruby = thirddata.ruby or { }
+
+function thirddata.ruby.doifelsecjk(string)
+ local state = true
+ for c in unicode.utf8.gmatch(string,".") do
+ local n = scripts.hash[utf.byte(c)]
+ if not ( n == "chinese" or n == "korean" ) then
+ state = false
+ break
+ end
+ end
+ commands.doifelse(state)
+end
+
+\stopluacode
+
+%D Namespace
+
+\installnamespace {ruby}
+\installnamespace {rubyalign}
+\installnamespace {rubyalternative}
+\installnamespace {rubyhang}
+
+%D Additional registers
+
+\newdimen \d_ruby_width
+\newdimen \d_ruby_left
+\newdimen \d_ruby_right
+\newdimen \d_ruby_position
+
+\newsignal \s_ruby_signal
+
+\newcount \c_ruby_n
+
+\newtoks \t_ruby_base
+\newtoks \t_ruby_text
+
+\newbox \b_ruby_base
+\newbox \b_ruby_text
+\newbox \b_ruby_box
+
+%D \macros
+%D {defineruby,setupruby}
+
+\installcommandhandler \????ruby {ruby} \????ruby
+
+%D \macros
+%D {ruby}
+
+\unexpanded\def\ruby
+ {\dontleavehmode
+ \begingroup
+ \let\currentruby\empty
+ \dosingleempty\ruby_direct_indeed}
+
+\unexpanded\def\ruby_direct#name%
+ {\dontleavehmode
+ \begingroup
+ \edef\currentruby{#name}%
+ \dosingleempty\ruby_direct_indeed}
+
+\def\ruby_direct_indeed[#parameters]#rubybase#rubytext%
+ {\setupcurrentruby[#parameters,\c!rubybase={#rubybase},\c!rubytext={#rubytext}]%
+ %
+ \scratchdimen\lastskip
+ \ifdim\scratchdimen=\s_ruby_signal\else\global\d_ruby_width\zeropoint\fi
+ %
+ \global\advance\c_ruby_n\plusone
+ %
+ \xypos{rubyposition:\number\c_ruby_n}%
+ \doifmodeelse\v!first
+ {\d_ruby_position\onepoint}
+ {\d_ruby_position\dimexpr\MPx{rubyposition:\number\c_ruby_n}-\MPx{text:\number\realpageno}\relax}%
+ %
+ \setbox\b_ruby_base\hbox{\userubystyleandcolor\c!basestyle\c!basecolor\directrubyparameter\c!rubybase}%
+ \setbox\b_ruby_text\hbox{\userubystyleandcolor\c!textstyle\c!textcolor\directrubyparameter\c!rubytext}%
+ %
+ \edef\p_ruby_align {\rubyparameter\c!align }%
+ \edef\p_ruby_alternative{\rubyparameter\c!alternative}%
+ \edef\p_ruby_hang {\rubyparameter\c!hang }%
+ %
+ \ruby_align
+ \ruby_alternative
+ \ruby_hang
+ %
+ \hskip\s_ruby_signal\relax
+ \endgroup}
+
+\appendtoks
+ \setuevalue\currentruby{\ruby_direct{\currentruby}}%
+\to \everydefineruby
+
+%D Alignment
+%D
+%D \startitemize[packed]
+%D \item left
+%D \item middle
+%D \item right
+%D \item auto
+%D \item letter
+%D \item space
+%D \stopitemize
+
+\unexpanded\def\ruby_distribute_space #1{\processtokens{\hss }{\hss\hss}{\hss }{\hss\hss}{#1}}
+\unexpanded\def\ruby_distribute_letter#1{\processtokens{\relax}{\hss }{\relax}{\hss\hss}{#1}}
+
+\def\ruby_align_stretch
+ {\d_ruby_left \zeropoint
+ \d_ruby_right\zeropoint
+ \ifdim\wd\b_ruby_base>\wd\b_ruby_text
+ \setbox\b_ruby_base\hbox to \wd\b_ruby_base{\hss\box\b_ruby_base\hss}%
+ \setbox\b_ruby_text\hbox to \wd\b_ruby_base{\userubystyleandcolor\c!textstyle\c!textcolor\normalexpanded{\ruby_distribute_space{\directrubyparameter\c!rubytext}}}%
+ \else
+ \setbox\b_ruby_base\hbox to \wd\b_ruby_text{\userubystyleandcolor\c!basestyle\c!basecolor\normalexpanded{\ruby_distribute_space{\directrubyparameter\c!rubybase}}}%
+ \setbox\b_ruby_text\hbox to \wd\b_ruby_text{\hss\box\b_ruby_text\hss}%
+ \fi}
+
+\def\ruby_align_letter
+ {\d_ruby_left \zeropoint
+ \d_ruby_right\zeropoint
+ \ifdim\wd\b_ruby_base>\wd\b_ruby_test
+ \setbox\b_ruby_base\hbox to \wd\b_ruby_base{\hss\box\b_ruby_base\hss}%
+ \setbox\b_ruby_text\hbox to \wd\b_ruby_base{\userubystyleandcolor\c!textstyle\c!textcolor\normalexpanded{\ruby_distribute_letter{\directrubyparameter\c!rubytext}}}%
+ \else
+ \setbox\b_ruby_base\hbox to \wd\b_ruby_text{\userubystyleandcolor\c!basestyle\c!basecolor\normalexpanded{\ruby_distribute_letter{\directrubyparameter\c!rubybase}}}%
+ \setbox\b_ruby_text\hbox to \wd\b_ruby_text{\hss\box\b_ruby_text\hss}%
+ \fi}
+
+\def\ruby_align_auto
+ {\ifdim\wd\b_ruby_base>\wd\b_ruby_text
+ \ctxlua{thirddata.ruby.doifelsecjk("\directrubyparameter\c!rubybase")}\donetrue\donefalse
+ \ifdone
+ \ruby_align_stretch
+ \else
+ \ruby_align_middle
+ \fi
+ \else
+ \ifdim\d_ruby_position=\zeropoint % begin of the line
+ \ruby_align_left
+ \else\ifdim\d_ruby_position=\dimexpr\textwidth-\wd\b_ruby_base\relax % end of the line
+ \ruby_align_right
+ \else
+ \ctxlua{thirddata.ruby.doifelsecjk("\directrubyparameter\c!rubytext")}\donetrue\donefalse
+ \ifdone
+ \ruby_align_stretch
+ \else
+ \ruby_align_middle
+ \fi
+ \fi\fi
+ \fi}
+
+\def\ruby_align_left
+ {\ifdim\wd\b_ruby_base>\wd\b_ruby_text
+ \d_ruby_left \zeropoint
+ \d_ruby_right\zeropoint
+ \else
+ \d_ruby_left \zeropoint
+ \d_ruby_right\dimexpr\wd\b_ruby_text-\wd\b_ruby_base\relax
+ \fi
+ \setbox\b_ruby_base\hbox to \wd\b_ruby_base{\box\b_ruby_base\hss}%
+ \setbox\b_ruby_text\hbox to \wd\b_ruby_base{\box\b_ruby_text\hss}}
+
+\def\ruby_align_middle
+ {\ifdim\wd\b_ruby_base>\wd\b_ruby_text
+ \d_ruby_left \zeropoint
+ \d_ruby_right\zeropoint
+ \else
+ \d_ruby_left \dimexpr(\wd\b_ruby_text-\wd\b_ruby_base)/2\relax
+ \d_ruby_right\dimexpr(\wd\b_ruby_text-\wd\b_ruby_base)/2\relax
+ \fi
+ \setbox\b_ruby_base\hbox to \wd\b_ruby_base{\hss\box\b_ruby_base\hss}%
+ \setbox\b_ruby_text\hbox to \wd\b_ruby_base{\hss\box\b_ruby_text\hss}}
+
+\def\ruby_align_right
+ {\ifdim\wd\b_ruby_base>\wd\b_ruby_base
+ \d_ruby_left \zeropoint
+ \d_ruby_right\zeropoint
+ \else
+ \d_ruby_left \dimexpr\wd\b_ruby_text-\wd\b_ruby_base\relax
+ \d_ruby_right\zeropoint
+ \fi
+ \setbox\b_ruby_base\hbox to \wd\b_ruby_base{\hss\box\b_ruby_base}%
+ \setbox\b_ruby_text\hbox to \wd\b_ruby_base{\hss\box\b_ruby_text}}
+
+\def\ruby_align_margin
+ {\ifdim\d_ruby_position=\zeropoint
+ \ruby_align_left
+ \else\ifdim\d_ruby_position=\dimexpr\textwidth-\wd\b_ruby_base\relax
+ \ruby_align_right
+ \else
+ \ruby_align_middle
+ \fi\fi}
+
+\def\ruby_align
+ {\csname\????rubyalign
+ \ifcsname\????rubyalign\p_ruby_align\endcsname\p_ruby_align\else\v!auto\fi
+ \endcsname}
+
+\setvalue{\????rubyalign\v!auto }{\ruby_align_auto }
+\setvalue{\????rubyalign\v!left }{\ruby_align_left }
+\setvalue{\????rubyalign\v!right }{\ruby_align_right }
+\setvalue{\????rubyalign\v!middle }{\ruby_align_middle }
+\setvalue{\????rubyalign\v!letter }{\ruby_align_letter }
+\setvalue{\????rubyalign\v!stretch}{\ruby_align_stretch}
+\setvalue{\????rubyalign\v!margin }{\ruby_align_margin }
+
+%D Alternative
+%D
+%D \startitemize[packed]
+%D \item top
+%D \item bottom
+%D \item text
+%D \stopitemize
+
+% \setvalue{\????rubyalternative\v!none}% needed for \pdfactualtext
+% {\directrubyparameter\c!rubybase
+% \rubyparameter\c!separator
+% \rubyparameter\c!lefttext
+% \directrubyparameter\c!rubytext
+% \rubyparameter\c!righttext}
+
+\def\ruby_alternative_top
+ {\setbox\b_ruby_box\vbox
+ {\doifsomething{\rubyparameter\c!strut}{\setupstrut[\rubyparameter\c!strut]}%
+ \offinterlineskip
+ \hbox{\undepthed{\begstrut\box\b_ruby_text\endstrut}}
+ \rubyparameter\c!inbetween
+ \hbox{\begstrut\box\b_ruby_base\endstrut}}}
+
+\def\ruby_alternative_bottom
+ {\setbox\b_ruby_box\vtop
+ {\doifsomething{\rubyparameter\c!strut}{\setupstrut[\rubyparameter\c!strut]}%
+ \offinterlineskip
+ \hbox{\undepthed{\begstrut\box\b_ruby_base\endstrut}}
+ \rubyparameter\c!inbetween
+ \hbox{\begstrut\box\b_ruby_text\endstrut}}}
+
+\def\ruby_alternative_text
+ {\setbox\b_ruby_box\box\voidbox
+ \d_ruby_left \zeropoint
+ \d_ruby_right\zeropoint
+ \directrubyparameter\c!rubybase
+ \rubyparameter\c!separator
+ \rubyparameter\c!lefttext\directrubyparameter\c!rubytext\rubyparameter\c!righttext}
+
+\unexpanded\def\ruby_alternative_vertical_process#text%
+ {\setbox\scratchbox\vbox
+ {\userubystyleandcolor\c!textstyle\c!textcolor
+ \setupinterlinespace[\rubyparameter\c!interlinespace]%
+ \handletokens#text\with\hbox
+ \par}%
+ \lower\dimexpr(\ht\scratchbox+\strutdp-\strutht)/2-\rubyparameter\c!dy\relax\box\scratchbox}
+
+\def\ruby_alternative_vertical
+ {\d_ruby_left \zeropoint
+ \d_ruby_right\zeropoint
+ \setbox\b_ruby_box\hbox\bgroup
+ \begingroup
+ \userubystyleandcolor\c!basestyle\c!basecolor
+ \directrubyparameter\c!rubybase
+ \endgroup
+ \normalexpanded{\ruby_alternative_vertical_process{\directrubyparameter\c!rubytext}}%
+ \egroup}
+
+\def\ruby_alternative
+ {\csname\????rubyalternative
+ \ifcsname\????rubyalternative\p_ruby_alternative\endcsname\p_ruby_alternative\else\v!text\fi
+ \endcsname}
+
+\setvalue{\????rubyalternative\v!top }{\ruby_alternative_top }
+\setvalue{\????rubyalternative\v!bottom}{\ruby_alternative_bottom}
+\setvalue{\????rubyalternative\v!text }{\ruby_alternative_text }
+
+%D Overhang
+%D
+%D \startitemize[packed]
+%D \item left
+%D \item right
+%D \item auto
+%D \item none
+%D \stopitemize
+
+\def\ruby_hang_auto
+ {\ifdim\d_ruby_width>\zeropoint
+ \kern\dimexpr\d_ruby_left+\d_ruby_width\relax
+ \fi
+ \box\b_ruby_box
+ \global\d_ruby_width\d_ruby_right}
+
+\def\ruby_hang_left
+ {\box\b_ruby_box\kern\d_ruby_right
+ \global\d_ruby_width\d_ruby_right}
+
+\def\ruby_hang_right
+ {\ifdim\d_ruby_width>\zeropoint
+ \kern\dimexpr\d_ruby_left+\d_ruby_width\relax
+ \else
+ \kern\d_ruby_left
+ \fi
+ \box\b_ruby_box
+ \global\d_ruby_width\zeropoint}
+
+\def\ruby_hang_none
+ {\kern\d_ruby_left\box\b_ruby_box\kern\d_ruby_right
+ \global\d_ruby_width\zeropoint}
+
+\def\ruby_hang
+ {\csname\????rubyhang
+ \ifcsname\????rubyhang\p_ruby_hang\endcsname\p_ruby_hang\else\v!auto\fi
+ \endcsname}
+
+\setvalue{\????rubyhang\v!auto }{\ruby_hang_auto }
+\setvalue{\????rubyhang\v!left }{\ruby_hang_left }
+\setvalue{\????rubyhang\v!right}{\ruby_hang_right}
+\setvalue{\????rubyhang\v!none }{\ruby_hang_none }
+
+%D Default values
+
+\setupruby
+ [\c!alternative=\v!top,
+ \c!align=\v!auto,
+ \c!hang=\v!auto,
+ \c!dy=\zeropoint,
+ \c!separator={ },
+ \c!lefttext={(},
+ \c!righttext={)},
+ \c!strut=\v!no,
+ \c!inbetween={\blank[\v!small]},
+ \c!textstyle=\txx]
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-simplefonts/VERSION b/obsolete/macros/context/contrib/context-simplefonts/VERSION
new file mode 100644
index 0000000000..c34405eff9
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-simplefonts/VERSION
@@ -0,0 +1 @@
+2013.02.24
diff --git a/obsolete/macros/context/contrib/context-simplefonts/doc/context/third/simplefonts/README b/obsolete/macros/context/contrib/context-simplefonts/doc/context/third/simplefonts/README
new file mode 100644
index 0000000000..a541e0faac
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-simplefonts/doc/context/third/simplefonts/README
@@ -0,0 +1,40 @@
+Modulename : t-simplefonts
+Author : Wolfgang Schuster
+License : GNU General Public License
+
+Description
+-----------
+
+The 'simplefonts' module provides a interface to use fonts in ConTeXt MkIV
+in similar way as you can do with the 'fontspec' package for XeLaTeX.
+
+Usage
+-----
+
+The module is loaded in the document with:
+
+ \usemodule[simplefonts]
+
+The global fonts can be set with the following three commands:
+
+ \setmainfont[...][..,..=..,..]
+ \setsansfont[...][..,..=..,..]
+ \setmonofont[...][..,..=..,..]
+
+A single typeface can bet set with the command:
+
+ \definesimplefonttypeface[...][...][..,..=..,..]
+
+For each a complete typeface switch like \switchtobodyfont but you can use
+
+ \simplefonttypeface[...][..,..=..,..]
+
+With the command
+
+ \definesimplefont[...][..,..=..,..]
+
+you can define a single font for the use in header or other style elements and the last commmand
+
+ \simplefont[...][..,..=..,..]
+
+is for inline use and acts like \definedfont.
diff --git a/obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.lua b/obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.lua
new file mode 100644
index 0000000000..5c53164fcc
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.lua
@@ -0,0 +1,228 @@
+if not modules then modules = { } end modules ['t-simplefonts'] = {
+ version = 1.000,
+ comment = "Simplefonts",
+ author = "Wolfgang Schuster",
+ copyright = "Wolfgang Schuster",
+ email = "schuster.wolfgang@googlemail.com",
+ license = "GNU General Public License"
+}
+
+local texsprint, ctxcatcodes, prtcatcodes, format, lower, gsub, find = tex.sprint, tex.ctxcatcodes, tex.prtcatcodes, string.format, string.lower, string.gsub, string.find
+
+thirddata = thirddata or { }
+thirddata.simplefonts = thirddata.simplefonts or { }
+
+local simplefonts = thirddata.simplefonts
+
+simplefonts.fontlist = simplefonts.fontlist or { }
+simplefonts.extlist = simplefonts.extlist or { }
+simplefonts.features = simplefonts.features or { }
+simplefonts.scripts = simplefonts.scripts or { }
+simplefonts.languages = simplefonts.languages or { }
+
+simplefonts.fontlist = {
+ ["hiraginokakugothicpro"] = -- Hiragino Kaku Gothic Pro
+ {
+ ["normal"] =
+ {
+ regular = "hirakakuprow3" ,
+ italic = "hirakakuprow3" ,
+ bold = "hirakakuprow6" ,
+ bolditalic = "hirakakuprow6" ,
+ } ,
+ } ,
+ ["hiraginokakugothicpron"] = -- Hiragino Kaku Gothic ProN
+ {
+ ["normal"] =
+ {
+ regular = "hirakakupronw3" ,
+ italic = "hirakakupronw3" ,
+ bold = "hirakakupronw6" ,
+ bolditalic = "hirakakupronw6" ,
+ } ,
+ } ,
+ ["hiraginokakugothicstd"] = -- Hiragino Kaku Gothic Std
+ {
+ ["normal"] =
+ {
+ regular = "hirakakustdw8" ,
+ italic = "hirakakustdw8" ,
+ bold = "hirakakustdw8" ,
+ bolditalic = "hirakakustdw8" ,
+ } ,
+ } ,
+ ["hiraginokakugothicstdn"] = -- Hiragino Kaku Gothic StdN
+ {
+ ["normal"] =
+ {
+ regular = "hirakakustdnw8" ,
+ italic = "hirakakustdnw8" ,
+ bold = "hirakakustdnw8" ,
+ bolditalic = "hirakakustdnw8" ,
+ } ,
+ } ,
+ ["hiraginomarugothicpro"] = -- Hiragino Maru Gothic Pro
+ {
+ ["normal"] =
+ {
+ regular = "hiramaruprow4" ,
+ italic = "hiramaruprow4" ,
+ bold = "hiramaruprow4" ,
+ bolditalic = "hiramaruprow4" ,
+ } ,
+ } ,
+ ["hiraginomarugothicpron"] = -- Hiragino Maru Gothic ProN
+ {
+ ["normal"] =
+ {
+ regular = "hiramarupronw4" ,
+ italic = "hiramarupronw4" ,
+ bold = "hiramarupronw4" ,
+ bolditalic = "hiramarupronw4" ,
+ } ,
+ } ,
+ ["hiraginominchopro"] = -- Hiragino Mincho Pro
+ {
+ ["normal"] =
+ {
+ regular = "hiraminprow3" ,
+ italic = "hiraminprow3" ,
+ bold = "hiraminprow6" ,
+ bolditalic = "hiraminprow6" ,
+ } ,
+ } ,
+ ["hiraginominchopron"] = -- Hiragino Mincho ProN
+ {
+ ["normal"] =
+ {
+ regular = "hiraminpronw3" ,
+ italic = "hiraminpronw3" ,
+ bold = "hiraminpronw6" ,
+ bolditalic = "hiraminpronw6" ,
+ } ,
+ } ,
+ ["latinmodernmono"] = -- Latin Modern Mono
+ {
+ ["normal"] =
+ {
+ regular = "lmmono10regular" ,
+ bold = "lmmonolt10bold" ,
+ italic = "lmmono10italic" ,
+ slanted = "lmmono10italic" ,
+ bolditalic = "lmmonolt10boldoblique" ,
+ boldslanted = "lmmonolt10boldoblique" ,
+ caps = "lmmonocaps10regular" ,
+ slantedcaps = "lmmonocaps10oblique" ,
+ } ,
+ } ,
+ ["latinmodernroman"] = -- Latin Modern Roman
+ {
+ ["normal"] =
+ {
+ regular = "lmroman10regular" ,
+ bold = "lmroman10bold" ,
+ italic = "lmroman10italic" ,
+ slanted = "lmromanslant10regular" ,
+ bolditalic = "lmroman10bolditalic" ,
+ boldslanted = "lmromanslant10bold" ,
+ caps = "lmromancaps10regular" ,
+ slantedcaps = "lmromancaps10oblique" ,
+ } ,
+ } ,
+ ["latinmodernsans"] = -- Latin Modern Sans
+ {
+ ["normal"] =
+ {
+ regular = "lmsans10regular" ,
+ bold = "lmsans10bold" ,
+ italic = "lmsans10oblique" ,
+ slanted = "lmsans10oblique" ,
+ bolditalic = "lmsans10boldoblique" ,
+ boldslanted = "lmsans10boldoblique" ,
+ } ,
+ } ,
+}
+
+function simplefonts.selectfont(font,name,extension,style,weight)
+ local fontname = {}
+ local truename = name
+ local name = lower(gsub(name,"[^a-zA-Z0-9]",""))
+ if extension ~= "" then
+ ext = find(extension,"*")
+ if ext ~= nil then
+ fontname = gsub(extension,"*",name)
+ else
+ fontname = extension
+ end
+ fontname = "name:" .. lower(gsub(fontname,"[^a-zA-Z0-9]",""))
+ else
+ if string.match(truename,"file:") then -- can't i check for 'file:' and 'name:' with one string.match?
+ fontname = truename
+ elseif string.match(truename,"name:") then
+ fontname = truename
+ elseif simplefonts.fontlist[name] then
+ if simplefonts.fontlist[name][weight] then
+ if simplefonts.fontlist[name][weight][style] then
+ fontname = simplefonts.fontlist[name][weight][style]
+ else
+ fontname = simplefonts.fontlist[name][weight]["regular"]
+ end
+ elseif simplefonts.fontlist[name]["normal"] then
+ if simplefonts.fontlist[name]["normal"][style] then
+ fontname = simplefonts.fontlist[name]["normal"][style]
+ else
+ fontname = simplefonts.fontlist[name]["normal"]["regular"]
+ end
+ end
+ fontname = "name:" .. fontname
+ else
+ -- use comma list
+ for _, v in ipairs(simplefonts.extlist[weight][style]) do
+ fontname = name .. v
+ if global.fonts.names.exists(fontname) then
+ fontname = "name:" .. fontname
+ break
+ else
+ --~ interfaces.showmessage("simplefonts","1",fontname) -- wrong place
+ fontname = "DefaultFont" -- no font is found
+ end
+ end
+ end
+ end
+ --~ print(fontname)
+ if fontname == "DefaultFont" then
+ interfaces.showmessage("simplefonts","1",name)
+ end
+ texsprint(prtcatcodes,format("\\setvalue{\\????sf %s%s}{%s}",font,style,fontname))
+end
+
+function simplefonts.normalizefontname(name)
+ local fontname = lower(gsub(name,"[^a-zA-Z0-9]","")) -- remove spaces and hyphens etc. from the user specified name
+ texsprint(ctxcatcodes,fontname)
+end
+
+function simplefonts.parameter(key,value,list)
+ local feature = simplefonts.features [key]
+ local script = simplefonts.scripts [value]
+ local language = simplefonts.languages [value]
+ if feature then
+ texsprint(format("\\addvalue{%s}{%s=%s}",list,feature,value))
+ --~ print("feature: " .. feature .. " = " .. value)
+ else
+ if key == "script" then
+ if script then
+ texsprint(format("\\addvalue{%s}{%s=%s}",list,key,script))
+ --~ print("script: " script)
+ else
+ interfaces.showmessage("simplefonts","4",value)
+ end
+ elseif key == "language" then
+ if language then
+ texsprint(format("\\addvalue{%s}{%s=%s}",list,key,language))
+ --~ print("language: " language)
+ else
+ interfaces.showmessage("simplefonts","5",value)
+ end
+ end
+ end
+end
diff --git a/obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.mkii b/obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.mkii
new file mode 100644
index 0000000000..67e7774d6b
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.mkii
@@ -0,0 +1,400 @@
+%D \module
+%D [ file=t-simplefonts,
+%D version=2009.11.08,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Simplefonts,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=Public Domain]
+
+\writestatus{loading}{ConTeXt User Module / Simplefonts}
+
+\unprotect
+
+\startmodule[simplefonts]
+
+%D Constants and variables
+
+\startinterface all
+ \setinterfaceconstant {regular} {regular}
+ \setinterfaceconstant {italic} {italic}
+ \setinterfaceconstant {slanted} {slanted}
+ \setinterfaceconstant {bold} {bold}
+ \setinterfaceconstant {bolditalic} {bolditalic}
+ \setinterfaceconstant {boldslanted} {boldslanted}
+ \setinterfaceconstant {caps} {caps}
+ \setinterfaceconstant {scale} {scale}
+ \setinterfaceconstant {features} {features}
+ \setinterfaceconstant {regularfont} {regularfont}
+ \setinterfaceconstant {italicfont} {italicfont}
+ \setinterfaceconstant {slantedfont} {slantedfont}
+ \setinterfaceconstant {boldfont} {boldfont}
+ \setinterfaceconstant {bolditalicfont} {bolditalicfont}
+ \setinterfaceconstant {boldslantedfont} {boldslantedfont}
+ \setinterfaceconstant {capsfont} {capsfont}
+ \setinterfaceconstant {regularfeatures} {regularfeatures}
+ \setinterfaceconstant {italicfeatures} {italicfeatures}
+ \setinterfaceconstant {slantedfeatures} {slantedfeatures}
+ \setinterfaceconstant {boldfeatures} {boldfeatures}
+ \setinterfaceconstant {bolditalicfeatures} {bolditalicfeatures}
+ \setinterfaceconstant {boldslantedfeatures} {boldslantedfeatures}
+ \setinterfaceconstant {smallcapsfeatures} {smallcapsfeatures}
+ \setinterfaceconstant {capsfeatures} {capsfeatures}
+ \setinterfaceconstant {typeface} {typeface}
+\stopinterface
+
+\startinterface all
+ \setinterfacevariable {simplefonts} {simplefonts}
+ \setinterfacevariable {simplefont} {simplefont}
+ \setinterfacevariable {style} {style}
+ \setinterfacevariable {suffix} {suffix}
+ \setinterfacevariable {serif} {serif}
+ \setinterfacevariable {sans} {sans}
+ \setinterfacevariable {mono} {mono}
+ \setinterfacevariable {math} {math}
+ \setinterfacevariable {mainfont} {mainfont}
+ \setinterfacevariable {sansfont} {sansfont}
+ \setinterfacevariable {monofont} {monofont}
+ \setinterfacevariable {mathfont} {mathfont}
+ \setinterfacevariable {handwritingfont} {handwritingfont}
+ \setinterfacevariable {calligraphicfont} {calligraphicfont}
+ \setinterfacevariable {handwriting} {handwriting}
+ \setinterfacevariable {calligraphy} {calligraphy}
+ \setinterfacevariable {fontfamily} {fontfamily}
+ \setinterfacevariable {alternative} {alternative}
+\stopinterface
+
+\startinterface all
+ \setinterfaceelement {set} {set}
+\stopinterface
+
+%D System constants
+
+\definesystemconstant {Handwriting}
+\definesystemconstant {Calligraphy}
+
+%D Module setup
+
+\setupmodule
+ [\c!size=\!!twelvepoint,
+ \c!style=\c!rm]
+
+%D Namespace
+
+\def\????sf{@@@@sf}
+
+%D Counter
+
+\newcounter\simplefonts!typeface
+\newcounter\simplefonts!fontfamily
+
+%D Boolean
+
+\newif\if!!donesimplefonts
+
+%D Comma value lists
+
+\def\simplefonts!commands
+ {\v!mainfont,\v!sansfont,\v!monofont,\v!mathfont,\v!handwritingfont,\v!calligraphicfont}
+
+\def\simplefonts!alternative
+ {\c!regular,\c!italic,\c!slanted,\c!bold,\c!bolditalic,\c!boldslanted,\c!caps}
+
+%D \macros
+%D {simplefontparameter,namedsimplefontparameter,
+%D setupsimplefonts,presetsimplefonts}
+%D
+%D Internal helper macros
+
+\def\simplefontparameter #1{\csname\????sf\currentsimplefont#1\endcsname}
+\def\namedsimplefontparameter#1#2{\csname\????sf #1#2\endcsname}
+
+\def\setupsimplefonts
+ {\dosingleempty\dosetupsimplefonts}
+
+\def\dosetupsimplefonts[#1]% first argument is optional
+ {\iffirstargument\getparameters[\????sf][#1]\fi
+ \if!!donesimplefonts\simplefonts@bodyfont\fi}
+
+\def\presetsimplefonts[#1]%
+ {\getparameters
+ [#1]
+ [\c!regularfont=,
+ \c!italicfont=,
+ \c!slantedfont=,
+ \c!boldfont=,
+ \c!bolditalicfont=,
+ \c!boldslantedfont=,
+ \c!capsfont=,
+ \c!features=\@@@@sffeatures,
+ \c!regularfeatures=\simplefontparameter\c!features,
+ \c!italicfeatures=\simplefontparameter\c!features,
+ \c!slantedfeatures=\simplefontparameter\c!features,
+ \c!boldfeatures=\simplefontparameter\c!features,
+ \c!bolditalicfeatures=\simplefontparameter\c!features,
+ \c!boldslantedfeatures=\simplefontparameter\c!features,
+ \c!smallcapsfeatures=\@@@@sfsmallcapsfeatures,
+ \c!capsfeatures=\simplefontparameter\c!smallcapsfeatures,
+ \c!scale=1.0]}
+
+\letvalue{\????sf:\v!style :\v!serif }\c!rm
+\letvalue{\????sf:\v!style :\v!sans }\c!ss
+\letvalue{\????sf:\v!style :\v!mono }\c!tt
+\letvalue{\????sf:\v!style :\v!math }\c!mm
+\letvalue{\????sf:\v!style :\v!handwriting}\c!hw
+\letvalue{\????sf:\v!style :\v!calligraphy}\c!cg
+
+\letvalue{\????sf:\v!suffix:\v!serif }\s!Serif
+\letvalue{\????sf:\v!suffix:\v!sans }\s!Sans
+\letvalue{\????sf:\v!suffix:\v!mono }\s!Mono
+\letvalue{\????sf:\v!suffix:\v!handwriting}\s!Handwriting
+\letvalue{\????sf:\v!suffix:\v!calligraphy}\s!Calligraphy
+
+\setvalue{\????sf:\v!alternative:\c!regular }{}
+\setvalue{\????sf:\v!alternative:\c!italic }{/I}
+\setvalue{\????sf:\v!alternative:\c!slanted }{/I}
+\setvalue{\????sf:\v!alternative:\c!bold }{/B}
+\setvalue{\????sf:\v!alternative:\c!bolditalic }{/BI}
+\setvalue{\????sf:\v!alternative:\c!boldslanted}{/BI}
+\setvalue{\????sf:\v!alternative:\c!caps }{}
+
+\definetypescriptsynonym[latinmodernmath][latin-modern] % do I need more of them
+
+\def\sf@style #1{\csname\????sf:\v!style :#1\endcsname}
+\def\sf@suffix #1{\csname\????sf:\v!suffix :#1\endcsname}
+\def\sf@alternative#1{\csname\????sf:\v!alternative:#1\endcsname}
+
+\starttexdefinition simplefonts@typeface #1#2#3
+
+ \definetypeface
+ [#1]
+ [\sf@style{\namedsimplefontparameter{#3}\c!style}]
+ [\namedsimplefontparameter{#3}\c!style]
+ [#2]
+ [\s!default]
+ [rscale=\namedsimplefontparameter{#3}\c!scale]
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@family #1
+
+ \simplefonts@typeface{#1}{\v!mainfont }{\v!mainfont }
+ \simplefonts@typeface{#1}{\v!sansfont }{\v!sansfont }
+ \simplefonts@typeface{#1}{\v!monofont }{\v!monofont }
+ \simplefonts@typeface{#1}{\namedsimplefontparameter\v!mathfont\c!typeface}{\v!mathfont }
+ \simplefonts@typeface{#1}{\v!handwritingfont }{\v!handwritingfont }
+ \simplefonts@typeface{#1}{\v!calligraphicfont }{\v!calligraphicfont}
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@typescript #1#2
+
+ \startexpanded
+
+ \@NX\starttypescript[#1][#2]
+
+ \simplefonts@fontsynonym{\sf@suffix{#1}\empty }{\c!regular }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Italic }{\c!italic }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Slanted }{\c!slanted }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Bold }{\c!bold }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!BoldItalic }{\c!bolditalic }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!BoldSlanted}{\c!boldslanted}
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Caps }{\c!caps }
+
+ \@NX\stoptypescript
+
+ \stopexpanded
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@scripttypescript #1#2
+
+ \startexpanded
+
+ \@NX\starttypescript[#1][#2]
+
+ \simplefonts@fontsynonym{\sf@suffix{#1}}{\c!regular}
+
+ \@NX\stoptypescript
+
+ \stopexpanded
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@fontsynonym #1#2
+
+ \@NX\definefontsynonym
+ [#1]
+ [\simplefontparameter{#2}]
+ [\s!features=\simplefontparameter{#2\s!features}]
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@bodyfont
+
+ \doglobal\increment\simplefonts!typeface
+
+ \simplefonts@family{\v!simplefonts:\simplefonts!typeface}
+
+ \setupbodyfont[\v!simplefonts:\simplefonts!typeface,\@@@@sfstyle,\@@@@sfsize]
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@definetextfont [#1][#2][#3][#4]
+
+ \edef\currentsimplefont{#1}\edef\currenttypeface{#2}
+
+ \presetsimplefonts[\????sf\currentsimplefont]
+
+ \getparameters[\????sf\currentsimplefont][#4]
+
+ \startprocesscommacommand[\simplefonts!alternative]
+
+ \doifsomethingelse{\simplefontparameter{##1\s!font}}
+ {\doifinstringelse{*}{\simplefontparameter{##1\s!font}}
+ {\setevalue{\????sf#1##1}{name:#3\@EAEAEA\gobbleoneargument\csname\????sf\currentsimplefont##1\s!font\endcsname}}
+ {\setevalue{\????sf#1##1}{name:\simplefontparameter{##1\s!font}}}}
+ {\setevalue{\????sf#1##1}{name:#3\sf@alternative{##1}}}
+
+ \stopprocesscommacommand
+
+ \simplefonts@typescript{\simplefontparameter\c!style}{#1}
+
+ \ifx\currenttypeface\v!simplefonts
+
+ % don't create a typeface and set bodyfont when the module is loaded
+
+ \if!!donesimplefonts\simplefonts@bodyfont\fi
+
+ \else
+
+ \simplefonts@typeface{#2}{#1}{#1}
+
+ \fi
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@definescriptfont [#1][#2][#3][#4]
+
+ \edef\currentsimplefont{#1}\edef\currenttypeface{#2}
+
+ \presetsimplefonts[\????sf\currentsimplefont]
+
+ \getparameters[\????sf\currentsimplefont][#4]
+
+ \startprocesscommacommand[\c!regular]
+
+ \setvalue{\????sf#1##1}{name:#3}
+
+ \stopprocesscommacommand
+
+ \simplefonts@scripttypescript{\simplefontparameter\c!style}{#1}
+
+ \ifx\currenttypeface\v!simplefonts
+
+ % don't create a typeface and set bodyfont when the module is loaded
+
+ \if!!donesimplefonts\simplefonts@bodyfont\fi
+
+ \else
+
+ \simplefonts@typeface{#2}{#1}{#1}
+
+ \fi
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@definemathfont [#1][#2][#3][#4]
+
+ \edef\currentsimplefont{#1}\edef\currenttypeface{#2}
+
+ \presetsimplefonts[\????sf\currentsimplefont]
+
+ \getparameters[\????sf\currentsimplefont][#4]
+
+ \lowercase{\unspacestring#3\to\!!simplefont}
+
+ \letvalue{\????sf\currentsimplefont\c!typeface}\!!simplefont
+
+ \ifx\currenttypeface\v!simplefonts
+
+ % don't create a typeface and set bodyfont when the module is loaded
+
+ \if!!donesimplefonts\simplefonts@bodyfont\fi
+
+ \else
+
+ \simplefonts@typeface{#2}{#1}{#1}
+
+ \fi
+
+\stoptexdefinition
+
+%D \macros
+%D {definefontcommand}
+
+\def\definefontcommand
+ {\dotripleempty\dodefinefontcommand}
+
+\def\dodefinefontcommand[#1][#2][#3]%
+ {\getparameters[\????sf#1][\c!style=\v!serif,#3]%
+ \processaction
+ [\namedsimplefontparameter{#1}\c!style]
+ [ \v!serif=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont [#1][#2]},
+ \v!sans=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont [#1][#2]},
+ \v!mono=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont [#1][#2]},
+ \v!math=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definemathfont [#1][#2]},
+ \v!handwriting=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definescriptfont[#1][#2]},
+ \v!calligraphy=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definescriptfont[#1][#2]},
+ \s!unknown=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont [#1][#2]}]}
+
+\definefontcommand[\v!mainfont ][\v!simplefonts][\c!style=\v!serif ]
+\definefontcommand[\v!sansfont ][\v!simplefonts][\c!style=\v!sans ]
+\definefontcommand[\v!monofont ][\v!simplefonts][\c!style=\v!mono ]
+\definefontcommand[\v!mathfont ][\v!simplefonts][\c!style=\v!math ]
+\definefontcommand[\v!handwritingfont ][\v!simplefonts][\c!style=\v!handwriting]
+\definefontcommand[\v!calligraphicfont][\v!simplefonts][\c!style=\v!calligraphy]
+
+%D \macros
+%D {definesimplefonttypeface}
+
+\def\definesimplefonttypeface
+ {\dotripleempty\dodefinesimplefonttypeface}
+
+\def\dodefinesimplefonttypeface[#1][#2][#3]%
+ {\getparameters[\????sf#1][\c!style=\v!serif,#3]%
+ \processaction
+ [\namedsimplefontparameter{#1}\c!style]
+ [ \v!serif=>{\simplefonts@definetextfont [#1][#1][#2][#3]},
+ \v!sans=>{\simplefonts@definetextfont [#1][#1][#2][#3]},
+ \v!mono=>{\simplefonts@definetextfont [#1][#1][#2][#3]},
+ \v!math=>{\simplefonts@definemathfont [#1][#1][#2][#3]},
+ \v!math=>{\simplefonts@definemathfont [#1][#1][#2][#3]},
+ \v!handwriting=>{\simplefonts@definescriptfont[#1][#1][#2][#3]},
+ \v!calligraphy=>{\simplefonts@definescriptfont[#1][#1][#2][#3]},
+ \s!unknown=>{\simplefonts@definetextfont [#1][#1][#2][#3]}]}
+
+%D Default setup
+
+\setupsimplefonts
+ [\c!size=\moduleparameter\v!simplefonts\c!size,
+ \c!style=\moduleparameter\v!simplefonts\c!style,
+ \c!features=\v!default,
+ \c!smallcapsfeatures=\v!smallcaps]
+
+%D Default fonts
+
+\setmainfont [Latin Modern Roman]
+\setsansfont [Latin Modern Sans]
+\setmonofont [Latin Modern Mono]
+\setmathfont [Latin Modern Math]
+\sethandwritingfont [Latin Modern Roman] % neither handwritten nor calligraphic are available
+\setcalligraphicfont[Latin Modern Roman] % for Latin Modern but I need a default font for them
+
+\!!donesimplefontstrue
+
+\stopmodule
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.mkiv b/obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.mkiv
new file mode 100644
index 0000000000..e2e9a339b6
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.mkiv
@@ -0,0 +1,812 @@
+%D \module
+%D [ file=t-simplefonts,
+%D version=2012.01.09,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Simplefonts,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D email=schuster.wolfgang@googlemail.com,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2010 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C (at your option) any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+\writestatus{loading}{ConTeXt User Module / Simplefonts}
+
+\unprotect
+
+\startmodule[simplefonts]
+
+%D Constants and variables
+
+\startinterface all
+ \setinterfaceconstant {regular} {regular}
+ \setinterfaceconstant {italic} {italic}
+ \setinterfaceconstant {slanted} {slanted}
+ \setinterfaceconstant {bold} {bold}
+ \setinterfaceconstant {bolditalic} {bolditalic}
+ \setinterfaceconstant {boldslanted} {boldslanted}
+ \setinterfaceconstant {caps} {caps}
+ \setinterfaceconstant {italiccaps} {italiccaps}
+ \setinterfaceconstant {slantedcaps} {slantedcaps}
+ \setinterfaceconstant {boldcaps} {boldcaps}
+ \setinterfaceconstant {bolditaliccaps} {bolditaliccaps}
+ \setinterfaceconstant {boldslantedcaps} {boldslantedcaps}
+ \setinterfaceconstant {scale} {scale}
+ \setinterfaceconstant {range} {range}
+ \setinterfaceconstant {weight} {weight}
+ \setinterfaceconstant {features} {features}
+ \setinterfaceconstant {regularfont} {regularfont}
+ \setinterfaceconstant {italicfont} {italicfont}
+ \setinterfaceconstant {slantedfont} {slantedfont}
+ \setinterfaceconstant {boldfont} {boldfont}
+ \setinterfaceconstant {bolditalicfont} {bolditalicfont}
+ \setinterfaceconstant {boldslantedfont} {boldslantedfont}
+ \setinterfaceconstant {capsfont} {capsfont}
+ \setinterfaceconstant {italiccapsfont} {italiccapsfont}
+ \setinterfaceconstant {slantedcapsfont} {slantedcapsfont}
+ \setinterfaceconstant {boldcapsfont} {boldcapsfont}
+ \setinterfaceconstant {bolditaliccapsfont} {bolditaliccapsfont}
+ \setinterfaceconstant {boldslantedcapsfont} {boldslantedcapsfont}
+ \setinterfaceconstant {regularfeatures} {regularfeatures}
+ \setinterfaceconstant {italicfeatures} {italicfeatures}
+ \setinterfaceconstant {slantedfeatures} {slantedfeatures}
+ \setinterfaceconstant {boldfeatures} {boldfeatures}
+ \setinterfaceconstant {bolditalicfeatures} {bolditalicfeatures}
+ \setinterfaceconstant {boldslantedfeatures} {boldslantedfeatures}
+ \setinterfaceconstant {smallcapsfeatures} {smallcapsfeatures}
+ \setinterfaceconstant {capsfeatures} {capsfeatures}
+ \setinterfaceconstant {italiccapsfeatures} {italiccapsfeatures}
+ \setinterfaceconstant {slantedcapsfeatures} {slantedcapsfeatures}
+ \setinterfaceconstant {boldcapsfeatures} {boldcapsfeatures}
+ \setinterfaceconstant {bolditaliccapsfeatures} {bolditaliccapsfeatures}
+ \setinterfaceconstant {boldslantedcapsfeatures} {boldslantedcapsfeatures}
+ \setinterfaceconstant {typeface} {typeface}
+ \setinterfaceconstant {protrusion} {protrusion}
+ \setinterfaceconstant {contextversion} {contextversion}
+ \setinterfaceconstant {sf} {sf}
+ \setinterfaceconstant {bc} {bc}
+ \setinterfaceconstant {mode} {mode}
+ \setinterfaceconstant {check} {check}
+\stopinterface
+
+\startinterface all
+ \setinterfacevariable {simplefonts} {simplefonts}
+ \setinterfacevariable {simplefont} {simplefont}
+ \setinterfacevariable {style} {style}
+ \setinterfacevariable {suffix} {suffix}
+ \setinterfacevariable {serif} {serif}
+ \setinterfacevariable {sans} {sans}
+ \setinterfacevariable {mono} {mono}
+ \setinterfacevariable {math} {math}
+ \setinterfacevariable {mainfont} {mainfont}
+ \setinterfacevariable {sansfont} {sansfont}
+ \setinterfacevariable {monofont} {monofont}
+ \setinterfacevariable {mathfont} {mathfont}
+ \setinterfacevariable {handwritingfont} {handwritingfont}
+ \setinterfacevariable {calligraphicfont} {calligraphicfont}
+ \setinterfacevariable {cjk} {cjk}
+ \setinterfacevariable {fallback} {fallback}
+ \setinterfacevariable {condensed} {condensed}
+ \setinterfacevariable {light} {light}
+ \setinterfacevariable {heavy} {heavy}
+ \setinterfacevariable {feature} {feature}
+ \setinterfacevariable {handwriting} {handwriting}
+ \setinterfacevariable {calligraphy} {calligraphy}
+ \setinterfacevariable {fontfamily} {fontfamily}
+ \setinterfacevariable {node} {node}
+\stopinterface
+
+\startinterface all
+ \setinterfaceelement {set} {set}
+\stopinterface
+
+%D System constants
+
+\definesystemconstant {Handwriting}
+\definesystemconstant {Calligraphy}
+\definesystemconstant {Simplefont}
+
+%D Messages
+
+\definemessageconstant {simplefonts}
+
+\startinterface all
+ \setinterfacemessage{simplefonts}{title}{simplefonts}
+ \setinterfacemessage{simplefonts}{1} {font '--' not found}
+ \setinterfacemessage{simplefonts}{2} {feature '--' is not defined}
+ \setinterfacemessage{simplefonts}{3} {your context is too old, you need at last version '--'}
+ \setinterfacemessage{simplefonts}{4} {script '--' is not defined}
+ \setinterfacemessage{simplefonts}{5} {language '--' is not defined}
+\stopinterface
+
+%D Module setup
+
+\setupmodule
+ [ \c!size=12pt,
+ \c!style=rm]
+
+%D Lua code
+
+\ctxloadluafile{t-simplefonts}{}
+
+%D Namespace
+
+\def\????sf{@@@@sf}
+
+%D Counter
+
+\newcounter\simplefonts!typeface
+\newcounter\simplefonts!fontfamily
+
+\newcounter\simplefonts!mainfont
+\newcounter\simplefonts!sansfont
+\newcounter\simplefonts!monofont
+\newcounter\simplefonts!handwritingfont
+\newcounter\simplefonts!calligraphicfont
+
+%D Boolean
+
+\newif\if!!donesimplefonts
+
+%D Tracing
+
+\let\enablesimplefonts \!!donesimplefontstrue
+\let\disablesimplefonts\!!donesimplefontsfalse
+
+%D Comma value lists
+
+\letempty\simplefont!features
+\letempty\simplefont!localfeatures
+\letempty\simplefont!globalfeatures
+
+\def\simplefonts!commands
+ {\v!mainfont,\v!sansfont,\v!monofont,\v!mathfont,\v!handwritingfont,\v!calligraphicfont}
+
+\def\simplefonts!weight
+ {\v!condensed,\v!light,\v!normal,\v!medium,\v!heavy}
+
+\def\simplefonts!alternative
+ {\c!regular,\c!italic,\c!slanted,\c!bold,\c!bolditalic,\c!boldslanted,\c!caps,
+ \c!italiccaps,\c!slantedcaps,\c!boldcaps,\c!bolditaliccaps,\c!boldslantedcaps}
+
+%D Simplefont style
+
+\definefontstyle [\c!sf,\v!simplefont] [\c!sf]
+
+\starttypescript [simplefont] [default] [size]
+ \definebodyfont
+ [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
+ [sf] [default]
+\stoptypescript
+
+\definebodyfont [default] [sf]
+ [tf=Simplefont sa 1,
+ bf=SimplefontBold sa 1,
+ it=SimplefontItalic sa 1,
+ sl=SimplefontSlanted sa 1,
+ bi=SimplefontBoldItalic sa 1,
+ bs=SimplefontBoldSlanted sa 1,
+ sc=SimplefontCaps sa 1]
+
+%D \macros
+%D {simplefontparameter,namedsimplefontparameter,
+%D setupsimplefonts,presetsimplefonts}
+%D
+%D Internal helper macros
+
+\def\simplefontparameter #1{\csname\????sf\currentsimplefont#1\endcsname}
+\def\namedsimplefontparameter#1#2{\csname\????sf #1#2\endcsname}
+
+\def\setupsimplefonts
+ {\dosingleempty\dosetupsimplefonts}
+
+\def\dosetupsimplefonts[#1]% first argument is optional
+ {\iffirstargument
+ \getparameters[\????sf][#1]%
+ \simplefonts@features{#1}\v!global
+ \fi
+ \if!!donesimplefonts\simplefonts@bodyfont\fi}
+
+\def\presetsimplefonts[#1]%
+ {\getparameters
+ [#1]
+ [\c!regularfont=,
+ \c!italicfont=,
+ \c!slantedfont=,
+ \c!boldfont=,
+ \c!bolditalicfont=,
+ \c!boldslantedfont=,
+ \c!capsfont=,
+ \c!italiccapsfont=,
+ \c!slantedcapsfont=,
+ \c!boldcapsfont=,
+ \c!bolditaliccapsfont=,
+ \c!boldslantedcapsfont=,
+ \c!features=\@@@@sffeatures,
+ \c!regularfeatures=\simplefontparameter\c!features,
+ \c!italicfeatures=\simplefontparameter\c!features,
+ \c!slantedfeatures=\simplefontparameter\c!features,
+ \c!boldfeatures=\simplefontparameter\c!features,
+ \c!bolditalicfeatures=\simplefontparameter\c!features,
+ \c!boldslantedfeatures=\simplefontparameter\c!features,
+ \c!smallcapsfeatures=\@@@@sfsmallcapsfeatures,
+ \c!capsfeatures=\simplefontparameter\c!smallcapsfeatures,
+ \c!italiccapsfeatures=\simplefontparameter\c!smallcapsfeatures,
+ \c!slantedcapsfeatures=\simplefontparameter\c!smallcapsfeatures,
+ \c!boldcapsfeatures=\simplefontparameter\c!smallcapsfeatures,
+ \c!bolditaliccapsfeatures=\simplefontparameter\c!smallcapsfeatures,
+ \c!boldslantedcapsfeatures=\simplefontparameter\c!smallcapsfeatures,
+ \c!weight=\v!normal,
+ \c!mode=, % the three keys mode, expansion and protrusion
+ \c!expansion=, % are reset for font command when you select
+ \c!protrusion=, % a new font to avoid conflicts or unwanted effects
+ \c!scale=1.0]}
+
+\setvalue{\????sf:\v!style :\v!serif }{rm}
+\setvalue{\????sf:\v!style :\v!sans }{ss}
+\setvalue{\????sf:\v!style :\v!mono }{tt}
+\setvalue{\????sf:\v!style :\v!math }{mm}
+\setvalue{\????sf:\v!style :\v!handwriting}{hw}
+\setvalue{\????sf:\v!style :\v!calligraphy}{cg}
+\setvalue{\????sf:\v!style :\v!simplefont }{sf}
+
+\letvalue{\????sf:\v!suffix:\v!serif }\s!Serif
+\letvalue{\????sf:\v!suffix:\v!sans }\s!Sans
+\letvalue{\????sf:\v!suffix:\v!mono }\s!Mono
+\letvalue{\????sf:\v!suffix:\v!handwriting}\s!Handwriting
+\letvalue{\????sf:\v!suffix:\v!calligraphy}\s!Calligraphy
+\letvalue{\????sf:\v!suffix:\v!simplefont }\s!Simplefont
+
+\definetypescriptsynonym[latinmodernmath][latin-modern]
+\definetypescriptsynonym[asanamath] [asana]
+
+\def\sf@style #1{\csname\????sf:\v!style :#1\endcsname}
+\def\sf@suffix#1{\csname\????sf:\v!suffix:#1\endcsname}
+
+\starttexdefinition simplefonts@typeface #1#2#3
+
+ \definetypeface
+ [#1]
+ [\sf@style{\namedsimplefontparameter{#3}\c!style}]
+ [\namedsimplefontparameter{#3}\c!style]
+ [#2]
+ [\s!default]
+ [rscale=\namedsimplefontparameter{#3}\c!scale]
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@family #1
+
+ \simplefonts@typeface{#1}{\v!mainfont :\simplefonts!mainfont }{\v!mainfont }
+ \simplefonts@typeface{#1}{\v!sansfont :\simplefonts!sansfont }{\v!sansfont }
+ \simplefonts@typeface{#1}{\v!monofont :\simplefonts!monofont }{\v!monofont }
+ \simplefonts@typeface{#1}{\namedsimplefontparameter\v!mathfont\c!typeface }{\v!mathfont }
+ \simplefonts@typeface{#1}{\v!handwritingfont :\simplefonts!handwritingfont }{\v!handwritingfont }
+ \simplefonts@typeface{#1}{\v!calligraphicfont :\simplefonts!calligraphicfont}{\v!calligraphicfont}
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@typescript #1#2
+
+ \startexpanded
+
+ \@NX\starttypescript[#1][#2]
+
+ \simplefonts@fontsynonym{\sf@suffix{#1}\empty }{\c!regular }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Italic }{\c!italic }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Slanted }{\c!slanted }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Bold }{\c!bold }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!BoldItalic }{\c!bolditalic }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!BoldSlanted }{\c!boldslanted }
+
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Caps }{\c!caps }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Italic\s!Caps }{\c!italiccaps }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Slanted\s!Caps }{\c!slantedcaps }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!Bold\s!Caps }{\c!boldcaps }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!BoldItalic\s!Caps }{\c!bolditaliccaps }
+ \simplefonts@fontsynonym{\sf@suffix{#1}\s!BoldSlanted\s!Caps}{\c!boldslantedcaps}
+
+ \@NX\stoptypescript
+
+ \stopexpanded
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@scripttypescript #1#2
+
+ \startexpanded
+
+ \@NX\starttypescript[#1][#2]
+
+ \simplefonts@fontsynonym{\sf@suffix{#1}}{\c!regular}
+
+ \@NX\stoptypescript
+
+ \stopexpanded
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@fontsynonym #1#2
+
+ \@NX\definefontsynonym
+ [#1]
+ [\simplefontparameter{#2}]
+ [\s!fallbacks=\currentsimplefont#2\s!fallbacks,
+ \s!features=\currentsimplefont#2\s!features ]
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@fontfallback #1#2#3
+
+ \definefontfallback
+ [#1#3\s!fallbacks]
+ [\namedsimplefontparameter{#2}{#3}*#2#3\s!features]
+ [\namedsimplefontparameter{#2}\c!range]
+ [\s!rscale=\namedsimplefontparameter{#2}\c!scale,
+ \c!force=\namedsimplefontparameter{#2}\c!force,
+ \c!check=\namedsimplefontparameter{#2}\c!check]
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@bodyfont
+
+ \doglobal\increment\simplefonts!typeface
+
+ \simplefonts@family{\v!simplefonts:\simplefonts!typeface}
+
+ \edef\@@@@sfstyle{\@@@@sfstyle}
+ \edef\@@@@sfsize {\@@@@sfsize }
+
+ \setupbodyfont
+ [\v!simplefonts:\simplefonts!typeface
+ \ifx\@@@@sfstyle\empty\else,\@@@@sfstyle\fi
+ \ifx\@@@@sfsize \empty\else,\@@@@sfsize \fi]
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@fontfeature #1#2
+
+ \letempty\simplefont!features
+
+ % expansion and protrusion could bet se either global for all styles or local for only one style
+
+ \doifvaluesomething{\????sf\c!mode }{\appendtocommalist{\c!mode =\csname\????sf\c!mode \endcsname }\simplefont!features}
+ \doifvaluesomething{\????sf\c!expansion }{\appendtocommalist{\c!expansion =\csname\????sf\c!expansion \endcsname }\simplefont!features}
+ \doifvaluesomething{\????sf\c!protrusion }{\appendtocommalist{\c!protrusion=\csname\????sf\c!protrusion\endcsname }\simplefont!features}
+
+ \doifvaluesomething{\????sf#1\c!mode }{\appendtocommalist{\c!mode =\csname\????sf#1\c!mode \endcsname }\simplefont!features}
+ \doifvaluesomething{\????sf#1\c!expansion }{\appendtocommalist{\c!expansion =\csname\????sf#1\c!expansion \endcsname }\simplefont!features}
+ \doifvaluesomething{\????sf#1\c!protrusion}{\appendtocommalist{\c!protrusion=\csname\????sf#1\c!protrusion\endcsname }\simplefont!features}
+
+ \appendtocommalist\simplefont!globalfeatures\simplefont!features
+ \appendtocommalist\simplefont!localfeatures \simplefont!features
+
+ \normalexpanded{\@NX\definefontfeature[#1#2\s!features][\namedsimplefontparameter{#1}{#2\s!features}][\simplefont!features]}
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@features #1#2
+
+ \letvalueempty{simplefont!#2features}
+
+ \startprocessassignmentcommand[#1]
+
+ \ctxlua{thirddata.simplefonts.parameter("##1","##2","simplefont!#2features")}
+
+ \stopprocessassignmentcommand
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@definetextfont [#1][#2][#3][#4]
+
+ \edef\currentsimplefont{#1}\edef\currenttypeface{#2}
+
+ \presetsimplefonts[\????sf\currentsimplefont]
+
+ \getparameters[\????sf\currentsimplefont][#4]
+
+ \simplefonts@features{#4}\v!local % parse assignment list for font features
+
+ \startprocesscommacommand[\simplefonts!alternative]
+
+ \simplefonts@fontfeature{#1}{##1}
+
+ \ctxlua{thirddata.simplefonts.selectfont("#1","#3","\simplefontparameter{##1\s!font}","##1","\simplefontparameter\c!weight")}
+
+ \stopprocesscommacommand
+
+ \ifx\currenttypeface\v!simplefonts
+
+ \ifx\currentsimplefont\v!mainfont
+ \doglobal\increment\simplefonts!mainfont
+ \simplefonts@typescript{\simplefontparameter\c!style}{\v!mainfont:\simplefonts!mainfont}
+ \else\ifx\currentsimplefont\v!sansfont
+ \doglobal\increment\simplefonts!sansfont
+ \simplefonts@typescript{\simplefontparameter\c!style}{\v!sansfont:\simplefonts!sansfont}
+ \else\ifx\currentsimplefont\v!monofont
+ \doglobal\increment\simplefonts!monofont
+ \simplefonts@typescript{\simplefontparameter\c!style}{\v!monofont :\simplefonts!monofont}
+ \fi\fi\fi
+
+ % don't create a typeface and set bodyfont when the module is loaded
+
+ \if!!donesimplefonts\simplefonts@bodyfont\fi
+
+ \else
+
+ \simplefonts@typescript{\simplefontparameter\c!style}{#1}
+
+ \simplefonts@typeface{#2}{#1}{#1}
+
+ \fi
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@definescriptfont [#1][#2][#3][#4]
+
+ \edef\currentsimplefont{#1}\edef\currenttypeface{#2}
+
+ \presetsimplefonts[\????sf\currentsimplefont]
+
+ \getparameters[\????sf\currentsimplefont][#4]
+
+ \simplefonts@features{#4}\v!local % parse assignment list for font features
+
+ \startprocesscommacommand[\c!regular]
+
+ \simplefonts@fontfeature{#1}{##1}
+
+ \ctxlua{thirddata.simplefonts.selectfont("#1","#3","\simplefontparameter{##1\s!font}","##1","\simplefontparameter\c!weight")}
+
+ \stopprocesscommacommand
+
+ \ifx\currenttypeface\v!simplefonts
+
+ \ifx\currentsimplefont\v!handwritingfont
+ \doglobal\increment\simplefonts!handwritingfont
+ \simplefonts@scripttypescript{\simplefontparameter\c!style}{\v!handwritingfont :\simplefonts!handwritingfont}
+ \else\ifx\currentsimplefont\v!calligraphicfont
+ \doglobal\increment\simplefonts!calligraphicfont
+ \simplefonts@scripttypescript{\simplefontparameter\c!style}{\v!calligraphicfont:\simplefonts!calligraphicfont}
+ \fi\fi
+
+ % don't create a typeface and set bodyfont when the module is loaded
+
+ \if!!donesimplefonts\simplefonts@bodyfont\fi
+
+ \else
+
+ \simplefonts@scripttypescript{\simplefontparameter\c!style}{#1}
+
+ \simplefonts@typeface{#2}{#1}{#1}
+
+ \fi
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@definemathfont [#1][#2][#3][#4]
+
+ \edef\currentsimplefont{#1}\edef\currenttypeface{#2}
+
+ \presetsimplefonts[\????sf\currentsimplefont]
+
+ \getparameters[\????sf\currentsimplefont][#4]
+
+ % no fonts are searched for the math fonts, all what happens is to normalize
+ % the given name and save it in a macro is is later used to load a predefined
+ % typescript
+
+ \setvalue{\????sf\currentsimplefont\c!typeface}{\ctxlua{thirddata.simplefonts.normalizefontname("#3")}}
+
+ \ifx\currenttypeface\v!simplefonts
+
+ % don't create a typeface and set bodyfont when the module is loaded
+
+ \if!!donesimplefonts\simplefonts@bodyfont\fi
+
+ \else
+
+ \simplefonts@typeface{#2}{\namedsimplefontparameter\currentsimplefont\c!typeface}{#1}
+
+ \fi
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@setfallbackfont [#1][#2][#3][#4]
+
+ \edef\currentsimplefont{#1}\edef\currentmainfont{#2}
+
+ \presetsimplefonts[\????sf\currentsimplefont]
+
+ \getparameters[\????sf\currentsimplefont][#4]
+
+ \simplefonts@features{#4}\v!local % parse assignment list for font features
+
+ \startprocesscommacommand[\simplefonts!alternative]
+
+ \simplefonts@fontfeature{#1}{##1}
+
+ \ctxlua{thirddata.simplefonts.selectfont("#1","#3","\simplefontparameter{##1\s!font}","##1","\simplefontparameter\c!weight")}
+
+ \simplefonts@fontfallback{#2}{#1}{##1}
+
+ \stopprocesscommacommand
+
+\stoptexdefinition
+
+\starttexdefinition simplefonts@definefallbackfont [#1][#2][#3][#4]
+
+ \edef\currentsimplefont{#1}\edef\currentmainfont{#2}
+
+ % to allow more than one fallback font I save the settings
+ % in a token register and set then all fallbacks in one turn
+
+ % i should wrap this in a macro which checks if a register
+ % is already defined, append the setting and flush all
+
+ \unless\ifcsname\currentmainfont\s!fallbacks\endcsname\@EA\newtoks\csname\currentmainfont\s!fallbacks\endcsname\fi
+
+ \csname\currentmainfont\s!fallbacks\endcsname\@EA{\the\@EA\csname\currentmainfont\s!fallbacks\endcsname\simplefonts@setfallbackfont[#1][#2][#3][#4]}
+
+ \the\@EA\csname\currentmainfont\s!fallbacks\endcsname
+
+ % the only way to make fallback fonts working with the module
+ % is to create a new typeface and enable it as bodyfont
+
+ % don't create a typeface or set the bodyfont when the module code is loaded
+
+ \if!!donesimplefonts
+
+ \startprocesscommacommand[\simplefonts!commands] % why not \doifinset?
+
+ \ifx\currentcommalistitem\currentmainfont\simplefonts@bodyfont\quitcommalist\fi
+
+ \stopprocesscommacommand
+
+ \fi
+
+\stoptexdefinition
+
+%D \macros
+%D {definefontcommand,definesubfontcommand}
+
+\def\definefontcommand
+ {\dotripleempty\dodefinefontcommand}
+
+\def\dodefinefontcommand[#1][#2][#3]%
+ {\getparameters[\????sf#1][\c!style=\v!serif,#3]%
+ \processaction
+ [\namedsimplefontparameter{#1}\c!style]
+ [ \v!serif=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont [#1][#2]},
+ \v!sans=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont [#1][#2]},
+ \v!mono=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont [#1][#2]},
+ \v!math=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definemathfont [#1][#2]},
+ \v!handwriting=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definescriptfont[#1][#2]},
+ \v!calligraphy=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definescriptfont[#1][#2]},
+ \s!unknown=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont [#1][#2]}]}
+
+\definefontcommand[\v!mainfont ][\v!simplefonts][\c!style=\v!serif ]
+\definefontcommand[\v!sansfont ][\v!simplefonts][\c!style=\v!sans ]
+\definefontcommand[\v!monofont ][\v!simplefonts][\c!style=\v!mono ]
+\definefontcommand[\v!mathfont ][\v!simplefonts][\c!style=\v!math ]
+\definefontcommand[\v!handwritingfont ][\v!simplefonts][\c!style=\v!handwriting]
+\definefontcommand[\v!calligraphicfont][\v!simplefonts][\c!style=\v!calligraphy]
+
+\def\definesubfontcommand
+ {\dotripleempty\dodefinesubfontcommand}
+
+\def\dodefinesubfontcommand[#1][#2][#3]%
+ {\getparameters[\????sf#1][\c!range=,#3]%
+ \setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definefallbackfont[#1][#2]}}
+
+\definesubfontcommand[\v!cjk\v!mainfont][\v!mainfont][\c!range={0x00400-0x2FA1F}]
+\definesubfontcommand[\v!cjk\v!sansfont][\v!sansfont][\c!range={0x00400-0x2FA1F}]
+\definesubfontcommand[\v!cjk\v!monofont][\v!monofont][\c!range={0x00400-0x2FA1F}]
+
+\definesubfontcommand[\v!mainfont\v!fallback][\v!mainfont][\c!range=]
+\definesubfontcommand[\v!sansfont\v!fallback][\v!sansfont][\c!range=]
+\definesubfontcommand[\v!monofont\v!fallback][\v!monofont][\c!range=]
+
+%D \macros
+%D {simplefont,definesimplefont}
+
+\def\simplefont
+ {\dodoubleempty\dosimplefont}
+
+\def\dosimplefont[#1][#2]%
+ {\getparameters[\????sf\v!default][\c!features=\v!default,\c!alternative=\v!regular,\c!weight=\v!normal,\c!size=,#2]%
+ \edef\simplefontsize{\namedsimplefontparameter\v!default\c!size}%
+ \ifx\simplefontsize\empty\else
+ \doifdimenstringelse\simplefontsize
+ {\edef\simplefontsize{ at \simplefontsize}}
+ {\edef\simplefontsize{ \simplefontsize}}%
+ \fi
+ \ctxlua{thirddata.simplefonts.selectfont("\v!default","#1","","\@@@@sfdefaultalternative","\@@@@sfdefaultweight")}%
+ \expanded{\definedfont[\csname\????sf\v!default\@@@@sfdefaultalternative\endcsname*\@@@@sfdefaultfeatures\simplefontsize]}}
+
+\def\definesimplefont
+ {\dotripleempty\dodefinesimplefont}
+
+\def\dodefinesimplefont[#1][#2][#3]%
+ {\getparameters[\????sf\v!default][\c!features=\v!default,\c!alternative=\v!regular,\c!weight=\v!normal,\c!size=,#3]%
+ \edef\simplefontsize{\namedsimplefontparameter\v!default\c!size}%
+ \ifx\simplefontsize\empty\else
+ \doifdimenstringelse\simplefontsize
+ {\edef\simplefontsize{ at \simplefontsize}}
+ {\edef\simplefontsize{ \simplefontsize}}%
+ \fi
+ \ctxlua{thirddata.simplefonts.selectfont("\v!default","#2","","\@@@@sfdefaultalternative","\@@@@sfdefaultweight")}%
+ \expanded{\definefont[#1][\csname\????sf\v!default\@@@@sfdefaultalternative\endcsname*\@@@@sfdefaultfeatures\simplefontsize][#3]}}
+
+%D \macros
+%D {simplefonttypeface,definesimplefonttypeface}
+
+\def\simplefonttypeface
+ {\dodoubleempty\dosimplefonttypeface}
+
+\def\dosimplefonttypeface[#1][#2]%
+ {\doglobal\increment\simplefonts!fontfamily
+ \simplefonts@definetextfont[\v!fontfamily][\v!fontfamily:\simplefonts!fontfamily][#1][\c!style=\v!simplefont,#2]%
+ \switchtobodyfont[\v!fontfamily:\simplefonts!fontfamily]}
+
+\def\definesimplefonttypeface
+ {\dotripleempty\dodefinesimplefonttypeface}
+
+\def\dodefinesimplefonttypeface[#1][#2][#3]%
+ {\getparameters[\????sf#1][\c!style=\v!serif,#3]%
+ \processaction
+ [\namedsimplefontparameter{#1}\c!style]
+ [ \v!serif=>{\simplefonts@definetextfont [#1][#1][#2][#3]},
+ \v!sans=>{\simplefonts@definetextfont [#1][#1][#2][#3]},
+ \v!mono=>{\simplefonts@definetextfont [#1][#1][#2][#3]},
+ \v!math=>{\simplefonts@definemathfont [#1][#1][#2][#3]},
+ \v!handwriting=>{\simplefonts@definescriptfont[#1][#1][#2][#3]},
+ \v!calligraphy=>{\simplefonts@definescriptfont[#1][#1][#2][#3]},
+ \s!unknown=>{\simplefonts@definetextfont [#1][#1][#2][#3]}]}
+
+%D Font extensions
+
+\getparameters
+ [\????sf\v!condensed]
+ [ \c!regular={condensedregular,condregular,condensed},
+ \c!italic={condenseditalic,condensedoblique,conditalic,\namedsimplefontparameter\v!condensed\c!regular},
+ \c!slanted={\namedsimplefontparameter\v!condensed\c!italic},
+ \c!bold={condensedbold,condbold,\namedsimplefontparameter\v!condensed\c!regular},
+ \c!bolditalic={condensedbolditalic,condensedboldoblique,condbolditalic,\namedsimplefontparameter\v!condensed\c!bold},
+ \c!boldslanted={\namedsimplefontparameter\v!condensed\c!bolditalic},
+ \c!caps={\namedsimplefontparameter\v!condensed\c!regular},
+ \c!italiccaps={\namedsimplefontparameter\v!condensed\c!caps},
+ \c!slantedcaps={\namedsimplefontparameter\v!condensed\c!italiccaps},
+ \c!boldcaps={\namedsimplefontparameter\v!condensed\c!caps},
+ \c!bolditaliccaps={\namedsimplefontparameter\v!condensed\c!boldcaps},
+ \c!boldslantedcaps={\namedsimplefontparameter\v!condensed\c!bolditaliccaps}]
+
+\getparameters
+ [\????sf\v!light]
+ [ \c!regular={lightregular,light},
+ \c!italic={lightitalic,lightit,lightoblique,\namedsimplefontparameter\v!light\c!regular},
+ \c!slanted={\namedsimplefontparameter\v!light\c!italic},
+ \c!bold={bookregular,regular,book,\namedsimplefontparameter\v!light\c!regular},
+ \c!bolditalic={bookitalic,bookit,italic,oblique,\namedsimplefontparameter\v!light\c!bold},
+ \c!boldslanted={\namedsimplefontparameter\v!light\c!bolditalic},
+ \c!caps={smallcapslight,\namedsimplefontparameter\v!light\c!regular},
+ \c!italiccaps={\namedsimplefontparameter\v!light\c!caps},
+ \c!slantedcaps={\namedsimplefontparameter\v!light\c!italiccaps},
+ \c!boldcaps={\namedsimplefontparameter\v!light\c!caps},
+ \c!bolditaliccaps={\namedsimplefontparameter\v!light\c!boldcaps},
+ \c!boldslantedcaps={\namedsimplefontparameter\v!light\c!bolditaliccaps}]
+
+\getparameters
+ [\????sf\v!normal]
+ [ \c!regular={roman,regular,book,\empty},
+ \c!italic={italic,it,oblique,kursiv,bookitalic,bookit,\namedsimplefontparameter\v!normal\c!regular},
+ \c!slanted={\namedsimplefontparameter\v!normal\c!italic},
+ \c!bold={bold,bd,kraeftig,mediumregular,semibold,demi,\namedsimplefontparameter\v!normal\c!regular},
+ \c!bolditalic={bolditalic,boldit,bdit,boldoblique,mediumitalic,semibolditalic,demiitalic,\namedsimplefontparameter\v!normal\c!bold},
+ \c!boldslanted={\namedsimplefontparameter\v!normal\c!bolditalic},
+ \c!caps={smallcaps,capitals,sc,\namedsimplefontparameter\v!normal\c!regular},
+ \c!italiccaps={\namedsimplefontparameter\v!normal\c!caps},
+ \c!slantedcaps={\namedsimplefontparameter\v!normal\c!italiccaps},
+ \c!boldcaps={scbold,\namedsimplefontparameter\v!normal\c!caps},
+ \c!bolditaliccaps={\namedsimplefontparameter\v!normal\c!boldcaps},
+ \c!boldslantedcaps={\namedsimplefontparameter\v!normal\c!bolditaliccaps}]
+
+\getparameters
+ [\????sf\v!medium]
+ [ \c!regular={mediumregular,medregular,medium},
+ \c!italic={mediumitalic,meditalic,\namedsimplefontparameter\v!medium\c!regular},
+ \c!slanted={\namedsimplefontparameter\v!medium\c!italic},
+ \c!bold={heavyregular,heavy,\namedsimplefontparameter\v!medium\c!regular},
+ \c!bolditalic={heavyitalic,\namedsimplefontparameter\v!medium\c!bold},
+ \c!boldslanted={\namedsimplefontparameter\v!medium\c!bolditalic},
+ \c!caps={mediumcaps,\namedsimplefontparameter\v!medium\c!regular},
+ \c!italiccaps={\namedsimplefontparameter\v!medium\c!caps},
+ \c!slantedcaps={\namedsimplefontparameter\v!medium\c!italiccaps},
+ \c!boldcaps={\namedsimplefontparameter\v!medium\c!caps},
+ \c!bolditaliccaps={\namedsimplefontparameter\v!medium\c!boldcaps},
+ \c!boldslantedcaps={\namedsimplefontparameter\v!medium\c!bolditaliccaps}]
+
+\getparameters
+ [\????sf\v!heavy]
+ [ \c!regular={heavyregular,heavy},
+ \c!italic={heavyitalic,\namedsimplefontparameter\v!heavy\c!regular},
+ \c!slanted={\namedsimplefontparameter\v!heavy\c!italic},
+ \c!bold={\namedsimplefontparameter\v!heavy\c!regular},
+ \c!bolditalic={\namedsimplefontparameter\v!heavy\c!bold},
+ \c!boldslanted={\namedsimplefontparameter\v!heavy\c!bolditalic},
+ \c!caps={\namedsimplefontparameter\v!heavy\c!regular},
+ \c!italiccaps={\namedsimplefontparameter\v!heavy\c!caps},
+ \c!slantedcaps={\namedsimplefontparameter\v!heavy\c!italiccaps},
+ \c!boldcaps={\namedsimplefontparameter\v!heavy\c!caps},
+ \c!bolditaliccaps={\namedsimplefontparameter\v!heavy\c!boldcaps},
+ \c!boldslantedcaps={\namedsimplefontparameter\v!heavy\c!bolditaliccaps}]
+
+\startprocesscommacommand[\simplefonts!weight]
+
+ \ctxlua{thirddata.simplefonts.extlist["#1"] = { }}
+
+ {
+
+ \startprocesscommacommand[\simplefonts!alternative]
+
+ \ctxlua{thirddata.simplefonts.extlist["#1"]["##1"] = { }}
+
+ {
+
+ \startprocesscommacommand[\namedsimplefontparameter{#1}{##1}]
+
+ \ctxlua{table.insert(thirddata.simplefonts.extlist["#1"]["##1"],"####1")}
+
+ \stopprocesscommacommand
+
+ }
+
+ \stopprocesscommacommand
+
+ }
+
+\stopprocesscommacommand
+
+%D Default setup
+
+\enabledirectives[fonts.autoreload]
+
+\setupsimplefonts
+ [\c!size=\moduleparameter\v!simplefonts\c!size,
+ \c!style=\moduleparameter\v!simplefonts\c!style,
+ \c!features=\v!default,
+ \c!smallcapsfeatures=\v!smallcaps,
+ \c!mode=\v!node,
+ \c!force=\v!yes,
+ \c!check=\v!no,
+ \c!expansion=\v!no,
+ \c!protrusion=\v!no]
+
+%D Default fonts
+
+\setmainfont [Latin Modern Roman]
+\setsansfont [Latin Modern Sans]
+\setmonofont [Latin Modern Mono][\s!features=\s!none]
+\setmathfont [Latin Modern Math]
+\sethandwritingfont [Latin Modern Roman] % neither handwritten nor calligraphic are available
+\setcalligraphicfont[Latin Modern Roman] % for Latin Modern but I need a default font for them
+
+\!!donesimplefontstrue
+
+\stopmodule
+
+\protect \endinput
diff --git a/obsolete/macros/context/contrib/context-title/VERSION b/obsolete/macros/context/contrib/context-title/VERSION
new file mode 100644
index 0000000000..295009c0aa
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-title/VERSION
@@ -0,0 +1 @@
+2017.08.27
diff --git a/obsolete/macros/context/contrib/context-title/doc/context/third/title/title-doc.pdf b/obsolete/macros/context/contrib/context-title/doc/context/third/title/title-doc.pdf
new file mode 100644
index 0000000000..faa54f573f
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-title/doc/context/third/title/title-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-title/tex/context/interface/third/t-title.xml b/obsolete/macros/context/contrib/context-title/tex/context/interface/third/t-title.xml
new file mode 100644
index 0000000000..1a06172632
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-title/tex/context/interface/third/t-title.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2011.10.04">
+
+<cd:command name="placetitle" file="t-tile.mkvi">
+ <cd:sequence>
+ <cd:string value="placetitle"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes" optional="yes">
+ <cd:inherit name="setuptitle" n="2"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setuptitle" variant="1" file="t-tile.mkvi">
+ <cd:sequence>
+ <cd:string value="setuptitle"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments n="1" list="yes">
+ <cd:parameter name="author">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="date">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="spacebefore">
+ <cd:inherit name="blank" n="1"/>
+ </cd:parameter>
+ <cd:parameter name="spaceafter">
+ <cd:inherit name="blank" n="1"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign" n="1"/>
+ </cd:parameter>
+ <cd:parameter name="pagestate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="KEY">
+ <cd:constant type="VALUE"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setuptitle" variant="2" file="t-tile.mkvi">
+ <cd:sequence>
+ <cd:string value="setuptitle"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords n="1" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments n="2" list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="titleelement" file="t-title.mkvi">
+ <cd:sequence>
+ <cd:string value="titleelement"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content n="1"/>
+ </cd:arguments>
+</cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/obsolete/macros/context/contrib/context-title/tex/context/third/title/t-title.mkvi b/obsolete/macros/context/contrib/context-title/tex/context/third/title/t-title.mkvi
new file mode 100644
index 0000000000..b7d72f0120
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-title/tex/context/third/title/t-title.mkvi
@@ -0,0 +1,130 @@
+%D \module
+%D [ file=t-title,
+%D version=2013.02.05,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Document titles,
+%D author=Wolfgang Schuster,
+%D date=\currentdate,
+%D copyright=Wolfgang Schuster,
+%D license=GNU General Public License]
+
+%C Copyright (C) 2011 Wolfgang Schuster
+%C
+%C This program is free software: you can redistribute it and/or modify
+%C it under the terms of the GNU General Public License as published by
+%C the Free Software Foundation, either version 3 of the License, or
+%C (at your option) any later version.
+%C
+%C This program is distributed in the hope that it will be useful,
+%C but WITHOUT ANY WARRANTY; without even the implied warranty of
+%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%C GNU General Public License for more details.
+%C
+%C You should have received a copy of the GNU General Public License
+%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+%M \loadsetups[t-title.xml]
+
+%D \showsetup{placetitle}
+%D \showsetup{setuptitle}
+%D \showsetup{titleelement}
+
+\writestatus{loading}{ConTeXt User Module / Document titles}
+
+\unprotect
+
+\installnamespace {title}
+\installnamespace {titlealternative}
+\installnamespace {titlerenderings}
+
+\installsimplecommandhandler \????title {title} \????title
+\installcommandhandler \????titlealternative {titlealternative} \????titlealternative
+
+\unexpanded\def\title_place
+ {\begingroup
+ \dostarttagged\t!division\v!title
+ \dosingleempty\title_place_indeed}
+
+\def\title_place_indeed[#parameters]%
+ {\let\currenttitle\empty
+ \iffirstargument
+ \setupcurrenttitle[#parameters]%
+ \fi
+ \edef\currenttitlealternative{\roottitleparameter\c!alternative}%
+ \edef\p_renderingsetup{\titlealternativeparameter\c!renderingsetup}%
+ \autosetups\p_renderingsetup
+ \dostoptagged
+ \doif{\roottitleparameter\c!pagestate}\v!stop{\aftergroup\noheaderandfooterlines}% why here and not after \endgroup?
+ \endgroup}
+
+\def\title_parameter#element%
+ {\begingroup
+ \def\currenttitle{#element}%
+ \usetitlestyleandcolor\c!style\c!color
+ \dostarttagged\t!construct\currenttitle
+ \setupinterlinespace\roottitleparameter\currenttitle\par
+ \dostoptagged
+ \endgroup}
+
+\let\placetitle \title_place
+\let\titleelement\title_parameter
+
+\definetitlealternative[\s!default][\c!renderingsetup=\????titlerenderings:\s!default]
+
+\startsetups[\????titlerenderings:\s!default]
+
+ \blank[\roottitleparameter\c!spacebefore]
+
+ \startalignment[\roottitleparameter\c!align]
+
+ \titleelement\c!title
+
+ \blank[1.5em]
+
+ \titleelement\c!author
+
+ \blank[1em]
+
+ \titleelement\c!date
+
+ \stopalignment
+
+
+ \blank[\roottitleparameter\c!spaceafter]
+
+\stopsetups
+
+\setuptitle
+ [\c!spacebefore={\v!force,2em},
+ \c!spaceafter={1.5em},
+ \c!align=\v!middle,
+ \c!pagestate=\v!stop,
+ \c!alternative=\s!default]
+
+\setuptitle
+ [\c!title]
+ [\c!style=\tfd,
+ \c!color=]
+
+\setuptitle
+ [\c!author,\c!date]
+ [\c!style=\tfa,
+ \c!color=]
+
+\protect
+
+\continueifinputfile{t-title.mkvi}
+
+\starttext
+
+\placetitle
+ [author=Ben Lee User,
+ title=How to write a \tex{placetitle} command,
+ date=\currentdate\space\currenttime]
+
+\dorecurse{6}
+ {\startparagraph
+ \input tufte\par
+ \stopparagraph}
+
+\stoptext \ No newline at end of file
diff --git a/obsolete/macros/context/contrib/context-typearea/VERSION b/obsolete/macros/context/contrib/context-typearea/VERSION
new file mode 100644
index 0000000000..d600ebb715
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-typearea/VERSION
@@ -0,0 +1 @@
+2008.04.05
diff --git a/obsolete/macros/context/contrib/context-typearea/doc/context/third/typearea/typearea-demo.pdf b/obsolete/macros/context/contrib/context-typearea/doc/context/third/typearea/typearea-demo.pdf
new file mode 100644
index 0000000000..abe8cee74b
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-typearea/doc/context/third/typearea/typearea-demo.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-typearea/doc/context/third/typearea/typearea-doc.pdf b/obsolete/macros/context/contrib/context-typearea/doc/context/third/typearea/typearea-doc.pdf
new file mode 100644
index 0000000000..f3724f47eb
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-typearea/doc/context/third/typearea/typearea-doc.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-typearea/tex/context/third/typearea/t-typearea.tex b/obsolete/macros/context/contrib/context-typearea/tex/context/third/typearea/t-typearea.tex
new file mode 100644
index 0000000000..8d429100c8
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-typearea/tex/context/third/typearea/t-typearea.tex
@@ -0,0 +1,99 @@
+%D \module
+%D [ file=t-typearea,
+%D version=2008.04.05,
+%D title=\CONTEXT\ User Module,
+%D subtitle=Something like KOMA-TypeArea,
+%D author=Peter Münster,
+%D date=\currentdate,
+%D copyright={Peter Münster}]
+%C This module is copyrighted by Peter Münster.
+%C Please send any comments to pmrb at free.fr.
+
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+
+% This program 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
+% GNU General Public License for more details.
+
+\writestatus{loading}{Something like KOMA-TypeArea}
+
+\unprotect
+
+%D \macros{setupTypeArea}
+%D Setting up some values.
+%D
+%D Default setup:
+%D
+%D \starttyping
+%D \setupTypeArea[bcor=0pt,oneside=no,alphabets=2.6]
+%D \stoptyping
+%D
+%D Example:
+%D
+%D \starttyping
+%D \setupTypeArea[bcor=3mm,oneside=yes,alphabets=3.1]
+%D \stoptyping
+\def\setupTypeArea[#1]{\getparameters[TA@][#1]\doTypeArea}
+
+%D Some internal dimensions:
+\newdimen\PageWidth \newdimen\Back
+\doifundefined{Width}{\newdimen\Width}
+\doifundefined{Height}{\newdimen\Height}
+
+%D This internal macro does the whole work:
+\def\doTypeArea{
+
+%D Set visible page width:
+\PageWidth=\dimexpr\paperwidth-\TA@bcor\relax
+
+%D Determine the paper aspect ratio:
+\edef\Ratio{\withoutpt{\the\dimexpr2\paperheight/(\PageWidth/32768)\relax}}
+
+%D Set the textarea width to X alphabets:
+\setbox\scratchbox\hbox{\dorecurse{26}{\character\recurselevel}}
+\Width=\dimexpr\TA@alphabets\wd\scratchbox\relax
+\ifdim\Width<\PageWidth\else
+\writestatus{error}{line wider than page}\end\fi
+
+%D Set the textarea height proportional to the width:
+\Height=\dimexpr(\Ratio\Width)
+
+%D Set the margin/gutter widths to be equal on a full spread:
+\doifelse\TA@oneside{yes}
+ {\Back=\dimexpr(\PageWidth - \Width) / 2 + \TA@bcor\relax}
+ {\Back=\dimexpr(\PageWidth - \Width) / 3 + \TA@bcor\relax}
+
+%D Set the top and bottom margins in a 1:2 ratio, ignoring headers:
+\edef\Top{\the\dimexpr(\paperheight - \Height) / 3 - 3\lineheight\relax}
+
+%D Redefine \type{\Height} to include header and footer space:
+\Height=\dimexpr(\Height + 8\lineheight)
+
+%D Set up the page layout using the calculated parameters:
+\setuplayout[
+ backspace=\the\Back,
+ height=\the\Height,
+ width=\the\Width,
+ header=2\lineheight,
+ headerdistance=\lineheight,
+ footer=2\lineheight,
+ footerdistance=3\lineheight,
+ topspace=\Top]
+}
+\protect
+
+\setupTypeArea[bcor=0pt,oneside=no,alphabets=2.6]
+
+\doifnotmode{demo}{\endinput}
+
+%D Usage example:
+\usemodule[typearea]
+\setupTypeArea[bcor=0mm,alphabets=3.1]
+\setuppagenumbering[alternative=doublesided]
+\starttext
+\dorecurse4{\framed[width=\textwidth,height=\textheight]{test}\page}
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/VERSION b/obsolete/macros/context/contrib/context-urwgaramond/VERSION
new file mode 100644
index 0000000000..0d8e1ffa1c
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/VERSION
@@ -0,0 +1 @@
+2006.12.23
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/test.pdf b/obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/test.pdf
new file mode 100644
index 0000000000..6a2e7edc23
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/test.pdf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/test.tex b/obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/test.tex
new file mode 100644
index 0000000000..1da2dfd29b
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/test.tex
@@ -0,0 +1,11 @@
+\setupoutput[pdf]
+\usemodule[urwgaramond]
+\starttext
+\rm\input knuth
+
+\it\input knuth
+
+\bf\input knuth
+
+\bi\input knuth
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/texnansi-urw-garamond.tex b/obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/texnansi-urw-garamond.tex
new file mode 100644
index 0000000000..5d7d0861a1
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/doc/fonts/urw/garamond/texnansi-urw-garamond.tex
@@ -0,0 +1,80 @@
+% output=pdftex interface=en
+
+\usemodule[fnt-01]
+
+\loadmapfile[texnansi-urw-garamond.map]
+
+\starttext
+
+\ShowFont[GaramondNo8-Med][texnansi-ugmm8a][texnansi]
+\ShowFont[GaramondNo8-MedIta][texnansi-ugmmi8a][texnansi]
+\ShowFont[GaramondNo8-Reg][texnansi-ugmr8a][texnansi]
+\ShowFont[GaramondNo8-Ita][texnansi-ugmri8a][texnansi]
+
+\setupheadertexts[\tttf example definitions]
+
+\starttyping
+texfont --encoding=texnansi --fontroot=/home/peter/tmp/garamond/texmf --ma --in --ve=urw --co=garamond --show
+\stoptyping
+
+\starttyping
+/home/peter/tmp/garamond/texmf/fonts/map/pdftex/context/texnansi-urw-garamond.map
+\stoptyping
+
+\starttyping
+\definefontsynonym[GaramondNo8-Med][texnansi-ugmm8a][encoding=texnansi]
+\definefontsynonym[GaramondNo8-MedIta][texnansi-ugmmi8a][encoding=texnansi]
+\definefontsynonym[GaramondNo8-Reg][texnansi-ugmr8a][encoding=texnansi]
+\definefontsynonym[GaramondNo8-Ita][texnansi-ugmri8a][encoding=texnansi]
+\stoptyping
+
+\page
+
+\setupheadertexts[\tttf texnansi-urw-garamond.map]
+
+\starttyping
+texnansi-raw-ugmm8a GaramondNo8-Med 4 < ugmm8a.pfb texnansi.enc
+texnansi-raw-ugmmi8a GaramondNo8-MedIta 4 < ugmmi8a.pfb texnansi.enc
+texnansi-raw-ugmr8a GaramondNo8-Reg 4 < ugmr8a.pfb texnansi.enc
+texnansi-raw-ugmri8a GaramondNo8-Ita 4 < ugmri8a.pfb texnansi.enc
+\stoptyping
+
+
+%appended section
+
+\page
+
+\ShowFont[GaramondNo8-Med][texnansi-ugmm8a][texnansi]
+\ShowFont[GaramondNo8-MedIta][texnansi-ugmmi8a][texnansi]
+\ShowFont[GaramondNo8-Reg][texnansi-ugmr8a][texnansi]
+\ShowFont[GaramondNo8-Ita][texnansi-ugmri8a][texnansi]
+
+\setupheadertexts[\tttf example definitions]
+
+\starttyping
+texfont --encoding=texnansi --fontroot=/home/peter/tmp/garamond/texmf --ma --in --ve=urw --co=garamond --show
+\stoptyping
+
+\starttyping
+/home/peter/tmp/garamond/texmf/fonts/map/pdftex/context/texnansi-urw-garamond.map
+\stoptyping
+
+\starttyping
+\definefontsynonym[GaramondNo8-Med][texnansi-ugmm8a][encoding=texnansi]
+\definefontsynonym[GaramondNo8-MedIta][texnansi-ugmmi8a][encoding=texnansi]
+\definefontsynonym[GaramondNo8-Reg][texnansi-ugmr8a][encoding=texnansi]
+\definefontsynonym[GaramondNo8-Ita][texnansi-ugmri8a][encoding=texnansi]
+\stoptyping
+
+\page
+
+\setupheadertexts[\tttf texnansi-urw-garamond.map]
+
+\starttyping
+texnansi-raw-ugmm8a GaramondNo8-Med 4 < ugmm8a.pfb texnansi.enc
+texnansi-raw-ugmmi8a GaramondNo8-MedIta 4 < ugmmi8a.pfb texnansi.enc
+texnansi-raw-ugmr8a GaramondNo8-Reg 4 < ugmr8a.pfb texnansi.enc
+texnansi-raw-ugmri8a GaramondNo8-Ita 4 < ugmri8a.pfb texnansi.enc
+\stoptyping
+
+\stoptext
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/map/pdftex/context/texnansi-urw-garamond.map b/obsolete/macros/context/contrib/context-urwgaramond/fonts/map/pdftex/context/texnansi-urw-garamond.map
new file mode 100644
index 0000000000..5bb842630f
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/map/pdftex/context/texnansi-urw-garamond.map
@@ -0,0 +1,14 @@
+% This file is generated by the TeXFont Perl script.
+%
+% You need to add the following line to your file:
+%
+% \pdfmapfile{+texnansi-urw-garamond.map}
+%
+% In ConTeXt you can best use:
+%
+% \loadmapfile[texnansi-urw-garamond.map]
+
+texnansi-raw-ugmm8a GaramondNo8-Med "TeXnANSIEncoding ReEncodeFont" <texnansi.enc <ugmm8a.pfb
+texnansi-raw-ugmmi8a GaramondNo8-MedIta "TeXnANSIEncoding ReEncodeFont" <texnansi.enc <ugmmi8a.pfb
+texnansi-raw-ugmr8a GaramondNo8-Reg "TeXnANSIEncoding ReEncodeFont" <texnansi.enc <ugmr8a.pfb
+texnansi-raw-ugmri8a GaramondNo8-Ita "TeXnANSIEncoding ReEncodeFont" <texnansi.enc <ugmri8a.pfb
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmm8a.tfm b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmm8a.tfm
new file mode 100644
index 0000000000..f5a3808e56
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmm8a.tfm
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmmi8a.tfm b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmmi8a.tfm
new file mode 100644
index 0000000000..04fa84aed0
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmmi8a.tfm
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmr8a.tfm b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmr8a.tfm
new file mode 100644
index 0000000000..4949188d78
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmr8a.tfm
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmri8a.tfm b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmri8a.tfm
new file mode 100644
index 0000000000..4f03149966
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-raw-ugmri8a.tfm
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmm8a.tfm b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmm8a.tfm
new file mode 100644
index 0000000000..a25a5850e9
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmm8a.tfm
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmmi8a.tfm b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmmi8a.tfm
new file mode 100644
index 0000000000..acaca4073b
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmmi8a.tfm
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmr8a.tfm b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmr8a.tfm
new file mode 100644
index 0000000000..aab12ea71b
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmr8a.tfm
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmri8a.tfm b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmri8a.tfm
new file mode 100644
index 0000000000..f98baff02a
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/tfm/urw/garamond/texnansi-ugmri8a.tfm
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmm8a.vf b/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmm8a.vf
new file mode 100644
index 0000000000..cf986ffffe
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmm8a.vf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmmi8a.vf b/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmmi8a.vf
new file mode 100644
index 0000000000..e5899f0282
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmmi8a.vf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmr8a.vf b/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmr8a.vf
new file mode 100644
index 0000000000..d4a7fc62d9
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmr8a.vf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmri8a.vf b/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmri8a.vf
new file mode 100644
index 0000000000..ca5b0cff8e
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/fonts/vf/urw/garamond/texnansi-ugmri8a.vf
Binary files differ
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/tex/context/third/urwgaramond/t-urwgaramond.tex b/obsolete/macros/context/contrib/context-urwgaramond/tex/context/third/urwgaramond/t-urwgaramond.tex
new file mode 100644
index 0000000000..71948cf8b6
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/tex/context/third/urwgaramond/t-urwgaramond.tex
@@ -0,0 +1,16 @@
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+
+% This program 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
+% GNU General Public License for more details.
+
+%texfont --encoding=texnansi --fontroot=%{texmf} --ma --in \
+% --ve=urw --co=garamond --show
+
+\usetypescriptfile[type-urwgaramond]
+\usetypescript[URWGaramond]
+\setupbodyfont[urwgaramond]
diff --git a/obsolete/macros/context/contrib/context-urwgaramond/tex/context/third/urwgaramond/type-urwgaramond.tex b/obsolete/macros/context/contrib/context-urwgaramond/tex/context/third/urwgaramond/type-urwgaramond.tex
new file mode 100644
index 0000000000..3a72979230
--- /dev/null
+++ b/obsolete/macros/context/contrib/context-urwgaramond/tex/context/third/urwgaramond/type-urwgaramond.tex
@@ -0,0 +1,94 @@
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+
+% This program 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
+% GNU General Public License for more details.
+
+% raw fonts
+
+\starttypescript[serif] [garamond] [texnansi]
+
+\definefontsynonym[Garamond] [ugmr8a] [encoding=texnansi]
+\definefontsynonym[GaramondItalic] [ugmri8a] [encoding=texnansi]
+\definefontsynonym[GaramondBold] [ugmm8a] [encoding=texnansi]
+\definefontsynonym[GaramondBoldItalic][ugmmi8a] [encoding=texnansi]
+
+\stoptypescript
+
+% names
+
+\starttypescript [serif] [garamond] [name]
+
+\setups[font:fallback:serif]
+
+\definefontsynonym[Serif] [Garamond]
+\definefontsynonym[SerifBold] [Garamond-Bold]
+\definefontsynonym[SerifItalic] [Garamond-Italic]
+\definefontsynonym[SerifBoldItalic][Garamond-BoldItalic]
+
+\stoptypescript
+
+% synonyms
+
+\starttypescript [serif] [garamond] [texnansi]
+
+\definefontsynonym [Garamond]
+[\typescriptthree-ugmr8a]
+[encoding=\typescriptthree]
+
+\definefontsynonym [Garamond-Italic]
+[\typescriptthree-ugmri8a]
+[encoding=\typescriptthree]
+
+\definefontsynonym [Garamond-Bold]
+[\typescriptthree-ugmm8a]
+[encoding=\typescriptthree]
+
+\definefontsynonym [Garamond-BoldItalic]
+[\typescriptthree-ugmmi8a]
+[encoding=\typescriptthree]
+
+\stoptypescript
+
+% maps
+
+\starttypescript [map] [garamond] [texnansi]
+
+\loadmapfile[texnansi-urw-garamond.map]
+
+\stoptypescript%
+
+% typefaces
+
+\starttypescript [URWGaramond]
+
+\definebodyfontenvironment
+ [urwgaramond]
+ [default]
+ [interlinespace=2.8ex]
+
+\definetypeface [urwgaramond]
+[rm] [serif] [garamond] [default]
+[encoding=texnansi]
+
+\definetypeface [urwgaramond]
+[ss] [sans] [helvetica] [default]
+[encoding=texnansi]
+
+\definetypeface [urwgaramond]
+[mm] [math] [palatino] [default]
+[encoding=texnansi]
+
+\definetypeface [urwgaramond]
+[tt] [mono] [modern] [default]
+[encoding=texnansi]
+
+\stoptypescript
+
+%%% Local Variables:
+%%% mode: context
+%%% End: