aboutsummaryrefslogtreecommitdiff
path: root/share/images/articles
diff options
context:
space:
mode:
authorMarc Fonvieille <blackend@FreeBSD.org>2003-04-11 08:59:19 +0000
committerMarc Fonvieille <blackend@FreeBSD.org>2003-04-11 08:59:19 +0000
commit7b3eaf363b6fc1ab205d4f7c929f8039ac5e6d61 (patch)
tree027b057b9d3847fb2e311d137bbefebf4175a987 /share/images/articles
parent6dd95937d9756a06cd28b8c7389cf8d821bd648b (diff)
downloaddoc-7b3eaf363b6fc1ab205d4f7c929f8039ac5e6d61.tar.gz
doc-7b3eaf363b6fc1ab205d4f7c929f8039ac5e6d61.zip
Add doc/share/images/articles files for images separation.
Notes
Notes: svn path=/head/; revision=16531
Diffstat (limited to 'share/images/articles')
-rw-r--r--share/images/articles/checkpoint/networks.pic30
-rw-r--r--share/images/articles/console-server/tk0231-9-1.pngbin0 -> 1401 bytes
-rw-r--r--share/images/articles/releng/branches.pic135
-rw-r--r--share/images/articles/vinum/ad0b4aft.eps626
-rw-r--r--share/images/articles/vinum/ad2b4aft.eps657
-rw-r--r--share/images/articles/vinum/arch.eps410
-rw-r--r--share/images/articles/vm-design/fig1.eps104
-rw-r--r--share/images/articles/vm-design/fig2.eps115
-rw-r--r--share/images/articles/vm-design/fig3.eps133
-rw-r--r--share/images/articles/vm-design/fig4.eps133
10 files changed, 2343 insertions, 0 deletions
diff --git a/share/images/articles/checkpoint/networks.pic b/share/images/articles/checkpoint/networks.pic
new file mode 100644
index 0000000000..866f45a0cb
--- /dev/null
+++ b/share/images/articles/checkpoint/networks.pic
@@ -0,0 +1,30 @@
+.\" $FreeBSD$
+.\"
+.PS
+
+A: box "Firewall-1" right;
+B: line 1.4;
+C: box "Internet" dashed;
+D: line 1.4;
+E: box "FreeBSD GW" wid 1.0;
+
+F: line down at A.s;
+G: box ht .04 wid 1.8 fill \
+ with .nw at F.s - (.4,0);
+
+H: line down at E.s;
+I: box ht .04 wid 1.8 fill \
+ with .ne at H.s + (.4,0);
+
+box ht .2 invis "\fC\s-2 208.229.100.6\s+2\fP" \
+ with .sw at B.nw + (.06,0);
+box ht .2 invis "\fC\s-2 216.218.197.2\s+2\fP" \
+ with .se at D.e - (.12,0);
+box wid 1.2 invis \
+ "\fC\s-2199.208.192.0/24\s+2\fP" "FW-1 protected nets" \
+ with .nw at G.w;
+box wid 1.2 invis \
+ "\fC\s-2199.208.192.0/24\s+2\fP" "internal nets" \
+ with .ne at I.e;
+
+.PE
diff --git a/share/images/articles/console-server/tk0231-9-1.png b/share/images/articles/console-server/tk0231-9-1.png
new file mode 100644
index 0000000000..ddce3e0e34
--- /dev/null
+++ b/share/images/articles/console-server/tk0231-9-1.png
Binary files differ
diff --git a/share/images/articles/releng/branches.pic b/share/images/articles/releng/branches.pic
new file mode 100644
index 0000000000..9003712d59
--- /dev/null
+++ b/share/images/articles/releng/branches.pic
@@ -0,0 +1,135 @@
+.\" -*- nroff -*-
+.\" $FreeBSD$
+
+.PS 6
+
+HEAD_3:
+ box width .9 "\s-23.0-CURRENT\s+2" dashed
+
+ line -> down from HEAD_3.s
+RELENG_3_0_0_RELEASE:
+ box width .9 "\s-23.0-RELEASE\s+2"
+ move right 3
+ "\s-2RELENG_3\s+2"
+
+ line -> down from RELENG_3_0_0_RELEASE.s
+RELENG_3_1_0_RELEASE:
+ ellipse width .9 "\s-23.1-RELEASE\s+2"
+ move left .75
+ "\s-2H\s+2"
+ move down .15
+ "\s-2E\s+2"
+ move down .15
+ "\s-2A\s+2"
+ move down .15
+ "\s-2D\s+2"
+
+ line -> right from RELENG_3_1_0_RELEASE.e
+RELENG_3_2_0_RELEASE:
+ box width .5 "\s-23.2R\s+2"
+
+ line -> right from RELENG_3_2_0_RELEASE.e
+RELENG_3_3_0_RELEASE:
+ box width .5 "\s-23.3R\s+2"
+
+ line -> right from RELENG_3_3_0_RELEASE.e
+RELENG_3_4_0_RELEASE:
+ box width .5 "\s-23.4R\s+2"
+
+ line -> right from RELENG_3_4_0_RELEASE.e
+RELENG_3_5_0_RELEASE:
+ box width .5 "\s-23.5R\s+2"
+
+ line -> right from RELENG_3_5_0_RELEASE.e
+RELENG_3_5_1_RELEASE:
+ box width .5 "\s-23.5.1R\s+2"
+
+ line -> right from RELENG_3_5_1_RELEASE.e
+RELENG_3:
+ box "\s-23-STABLE\s+2"
+
+ line -> down from RELENG_3_1_0_RELEASE.s
+HEAD_4:
+ box width .9 "\s-24.0-CURRENT\s+2" dashed
+ move right 3
+ "\s-2RELENG_4\s+2"
+
+ line -> down from HEAD_4.s
+RELENG_4_0_0_RELEASE:
+ ellipse width .9 "\s-24.0-RELEASE\s+2"
+
+ line -> right from RELENG_4_0_0_RELEASE.e
+RELENG_4_1_0_RELEASE:
+ box width .5 "\s-24.1R\s+2"
+
+ line -> right from RELENG_4_1_0_RELEASE.e
+RELENG_4_1_1_RELEASE:
+ box width .5 "\s-24.1.1R\s+2"
+
+ line -> right from RELENG_4_1_1_RELEASE.e
+RELENG_4_2_0_RELEASE:
+ box width .5 "\s-24.2R\s+2"
+
+ line -> right from RELENG_4_2_0_RELEASE.e
+RELENG_4_3_0_RELEASE:
+ ellipse width .5 "\s-24.3R\s+2"
+
+ line -> down from RELENG_4_3_0_RELEASE.s
+RELENG_4_3:
+ box width .9 "\s-3RELENG_4_3\s+3" dashed
+
+ line -> right from RELENG_4_3_0_RELEASE.e
+RELENG_4_4_0_RELEASE:
+ ellipse width .5 "\s-24.4R\s+2"
+
+ line -> down from RELENG_4_4_0_RELEASE.s
+RELENG_4_4:
+ box width .9 "\s-3RELENG_4_4\s+3" dashed
+
+ line -> right from RELENG_4_4_0_RELEASE.e
+RELENG_4_5_0_RELEASE:
+ ellipse width .5 "\s-24.5R\s+2"
+
+ line -> down from RELENG_4_5_0_RELEASE.s
+RELENG_4_5:
+ box width .9 "\s-3RELENG_4_5\s+3" dashed
+
+ line -> right from RELENG_4_5_0_RELEASE.e
+RELENG_4_6_0_RELEASE:
+ ellipse width .5 "\s-24.6R\s+2"
+
+ line -> down from RELENG_4_6_0_RELEASE.s
+RELENG_4_6_2_RELEASE:
+ ellipse width .5 "\s-24.6.2R\s+2"
+ line -> down from RELENG_4_6_2_RELEASE.s
+
+RELENG_4_6:
+ box width .9 "\s-3RELENG_4_6\s+3" dashed
+
+ line -> right from RELENG_4_6_0_RELEASE.e
+
+RELENG_4_7_0_RELEASE:
+ ellipse width .5 "\s-24.7R\s+2"
+ line -> down from RELENG_4_7_0_RELEASE.s
+
+RELENG_4_7:
+ box width .9 "\s-3RELENG_4_7\s+3" dashed
+ line -> right from RELENG_4_7_0_RELEASE.e
+
+RELENG_4:box "\s-24-STABLE\s+2"
+
+ line -> down from RELENG_4_0_0_RELEASE.s
+
+
+RELENG_5_0_0_RELEASE:
+ ellipse width .9 "\s-25.0-RELEASE\s+2"
+ line -> right from RELENG_5_0_0_RELEASE.e
+
+RELENG_5_0:
+ box width .9 "\s-3RELENG_5_0\s+3" dashed
+ line -> down from RELENG_5_0_0_RELEASE.s
+
+HEAD_5:
+ box width .9 "\s-25.0-CURRENT\s+2" dashed
+
+.PE
diff --git a/share/images/articles/vinum/ad0b4aft.eps b/share/images/articles/vinum/ad0b4aft.eps
new file mode 100644
index 0000000000..c7cb4cc979
--- /dev/null
+++ b/share/images/articles/vinum/ad0b4aft.eps
@@ -0,0 +1,626 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Untitled-2
+%%Creator: Dia v0.88.1
+%%CreationDate: Fri Oct 12 17:22:15 2001
+%%For: murray
+%%Magnification: 1.0000
+%%Orientation: Portrait
+%%BoundingBox: 0 0 311 173
+%%Pages: 1
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/Times-Roman-latin1
+ /Times-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Italic-latin1
+ /Times-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Bold-latin1
+ /Times-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+ /Times-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+ /AvantGarde-Book findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+ /AvantGarde-BookOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+ /AvantGarde-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+ /AvantGarde-DemiOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Light-latin1
+ /Bookman-Light findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+ /Bookman-LightItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Demi-latin1
+ /Bookman-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+ /Bookman-DemiItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-latin1
+ /Courier findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Oblique-latin1
+ /Courier-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Bold-latin1
+ /Courier-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+ /Courier-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-latin1
+ /Helvetica findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+ /Helvetica-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+ /Helvetica-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+ /Helvetica-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+ /Helvetica-Narrow findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+ /Helvetica-Narrow-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+ /Helvetica-Narrow-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+ /Helvetica-Narrow-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+ /NewCenturySchoolbook-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+ /NewCenturySchoolbook-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+ /NewCenturySchoolbook-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+ /NewCenturySchoolbook-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Roman-latin1
+ /Palatino-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Italic-latin1
+ /Palatino-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Bold-latin1
+ /Palatino-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+ /Palatino-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Symbol-latin1
+ /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+ /ZapfChancery-MediumItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/ZapfDingbats-latin1
+ /ZapfDingbats findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+28.346000 -28.346000 scale
+-2.500000 -8.079412 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 2.627195 2.617647 m 2.627195 7.617647 l 6.427195 7.617647 l 6.427195 2.617647 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 2.627195 2.617647 m 2.627195 7.617647 l 6.427195 7.617647 l 6.427195 2.617647 l cp s
+1.000000 1.000000 1.000000 srgb
+n 9.627195 2.617647 m 9.627195 7.617647 l 13.427195 7.617647 l 13.427195 2.617647 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.627195 2.617647 m 9.627195 7.617647 l 13.427195 7.617647 l 13.427195 2.617647 l cp s
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 13.427195 3.617647 m 9.627195 3.617647 l s
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 13.427195 4.617647 m 9.627195 4.617647 l s
+/Times-Bold-latin1 ff 0.400000 scf sf
+(ad0 Before Vinum) dup sw 2 div 4.527195 ex sub 2.317647 m gs 1 -1 sc sh gr
+/Times-Bold-latin1 ff 0.400000 scf sf
+(ad0 After Vinum) dup sw 2 div 11.527195 ex sub 2.317647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(root) dup sw 2 div 11.602195 ex sub 2.942647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(swap) dup sw 2 div 11.527195 ex sub 4.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.350000 scf sf
+(Vinum drive YouCrazy) dup sw 2 div 11.527195 ex sub 5.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(root) dup sw 2 div 4.527195 ex sub 3.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(swap) dup sw 2 div 4.527195 ex sub 4.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(/home) dup sw 2 div 4.527195 ex sub 6.017647 m gs 1 -1 sc sh gr
+/Times-Bold-latin1 ff 0.400000 scf sf
+(Offset \(blocks\)) dup sw 2 div 8.127195 ex sub 2.317647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.300000 scf sf
+(\(not to scale\)) dup sw 2 div 3.427195 ex sub 8.017647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad0s1a) dup sw 2 div 11.527195 ex sub 3.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad0s1b) dup sw 2 div 11.527195 ex sub 4.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad0s1h) dup sw 2 div 11.527195 ex sub 5.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad0s1a) dup sw 2 div 4.527195 ex sub 3.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad0s1b) dup sw 2 div 4.527195 ex sub 4.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad0s1e) dup sw 2 div 4.527195 ex sub 6.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+() dup sw 2 div 11.927195 ex sub 7.817647 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 9.627195 5.617647 m 9.627195 6.617647 l 12.227195 6.617647 l 12.227195 5.617647 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.627195 5.617647 m 9.627195 6.617647 l 12.227195 6.617647 l 12.227195 5.617647 l cp s
+1.000000 1.000000 1.000000 srgb
+n 9.627195 6.617647 m 9.627195 7.617647 l 12.227195 7.617647 l 12.227195 6.617647 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.627195 6.617647 m 9.627195 7.617647 l 12.227195 7.617647 l 12.227195 6.617647 l cp s
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(usr.p0.s0) dup sw 2 div 10.927195 ex sub 7.417647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(Vinum sd) dup sw 2 div 10.927195 ex sub 7.017647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(home.p0.s0) dup sw 2 div 10.927195 ex sub 6.417647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(Vinum sd) dup sw 2 div 10.927195 ex sub 6.017647 m gs 1 -1 sc sh gr
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 7.617647 m 9.427195 7.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 7.717647 m 9.427195 7.617647 l 9.227195 7.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 7.717647 m 9.427195 7.617647 l 9.227195 7.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 6.617647 m 9.427195 6.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 6.717647 m 9.427195 6.617647 l 9.227195 6.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 6.717647 m 9.427195 6.617647 l 9.227195 6.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 5.617647 m 9.427195 5.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 5.717647 m 9.427195 5.617647 l 9.227195 5.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 5.717647 m 9.427195 5.617647 l 9.227195 5.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 4.617647 m 9.427195 4.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 4.717647 m 9.427195 4.617647 l 9.227195 4.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 4.717647 m 9.427195 4.617647 l 9.227195 4.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 3.617647 m 9.427195 3.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 3.717647 m 9.427195 3.617647 l 9.227195 3.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 3.717647 m 9.427195 3.617647 l 9.227195 3.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 2.617647 m 9.427195 2.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 2.717647 m 9.427195 2.617647 l 9.227195 2.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 2.717647 m 9.427195 2.617647 l 9.227195 2.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 2.617647 m 7.027195 2.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 2.517647 m 6.627195 2.617647 l 6.827195 2.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 2.517647 m 6.627195 2.617647 l 6.827195 2.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 3.617647 m 7.027195 3.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 3.517647 m 6.627195 3.617647 l 6.827195 3.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 3.517647 m 6.627195 3.617647 l 6.827195 3.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 4.617647 m 7.027195 4.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 4.517647 m 6.627195 4.617647 l 6.827195 4.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 4.517647 m 6.627195 4.617647 l 6.827195 4.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 5.617647 m 7.027195 5.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 5.517647 m 6.627195 5.617647 l 6.827195 5.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 5.517647 m 6.627195 5.617647 l 6.827195 5.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 6.617647 m 7.027195 6.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 6.517647 m 6.627195 6.617647 l 6.827195 6.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 6.517647 m 6.627195 6.617647 l 6.827195 6.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 7.617647 m 7.027195 7.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 7.517647 m 6.627195 7.617647 l 6.827195 7.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 7.517647 m 6.627195 7.617647 l 6.827195 7.717647 l cp s
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(0) dup sw 8.827195 ex sub 2.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(200000) dup sw 8.827195 ex sub 3.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(400000) dup sw 8.827195 ex sub 4.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(400265) dup sw 8.827195 ex sub 5.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(1400265) dup sw 8.827195 ex sub 6.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(4124673) dup sw 8.827195 ex sub 7.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+() dup sw 2 div 8.427195 ex sub 2.617647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+() dup sw 2 div 7.927195 ex sub 2.617647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+() dup sw 2 div 7.927195 ex sub 2.617647 m gs 1 -1 sc sh gr
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.427195 3.617647 m 2.627195 3.617647 l s
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.427195 5.617647 m 2.627195 5.617647 l s
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad0s1f) dup sw 2 div 4.527195 ex sub 7.417647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(/usr) dup sw 2 div 4.527195 ex sub 7.017647 m gs 1 -1 sc sh gr
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.427195 6.617647 m 2.627195 6.617647 l s
+showpage
diff --git a/share/images/articles/vinum/ad2b4aft.eps b/share/images/articles/vinum/ad2b4aft.eps
new file mode 100644
index 0000000000..b118e90ac0
--- /dev/null
+++ b/share/images/articles/vinum/ad2b4aft.eps
@@ -0,0 +1,657 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Untitled-3
+%%Creator: Dia v0.88.1
+%%CreationDate: Fri Oct 12 17:25:35 2001
+%%For: murray
+%%Magnification: 1.0000
+%%Orientation: Portrait
+%%BoundingBox: 0 0 311 201
+%%Pages: 1
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/Times-Roman-latin1
+ /Times-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Italic-latin1
+ /Times-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Bold-latin1
+ /Times-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+ /Times-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+ /AvantGarde-Book findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+ /AvantGarde-BookOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+ /AvantGarde-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+ /AvantGarde-DemiOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Light-latin1
+ /Bookman-Light findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+ /Bookman-LightItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Demi-latin1
+ /Bookman-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+ /Bookman-DemiItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-latin1
+ /Courier findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Oblique-latin1
+ /Courier-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Bold-latin1
+ /Courier-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+ /Courier-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-latin1
+ /Helvetica findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+ /Helvetica-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+ /Helvetica-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+ /Helvetica-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+ /Helvetica-Narrow findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+ /Helvetica-Narrow-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+ /Helvetica-Narrow-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+ /Helvetica-Narrow-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+ /NewCenturySchoolbook-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+ /NewCenturySchoolbook-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+ /NewCenturySchoolbook-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+ /NewCenturySchoolbook-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Roman-latin1
+ /Palatino-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Italic-latin1
+ /Palatino-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Bold-latin1
+ /Palatino-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+ /Palatino-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Symbol-latin1
+ /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+ /ZapfChancery-MediumItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/ZapfDingbats-latin1
+ /ZapfDingbats findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+28.346000 -28.346000 scale
+-2.500000 -9.079412 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 2.627195 2.617647 m 2.627195 8.617647 l 6.427195 8.617647 l 6.427195 2.617647 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 2.627195 2.617647 m 2.627195 8.617647 l 6.427195 8.617647 l 6.427195 2.617647 l cp s
+1.000000 1.000000 1.000000 srgb
+n 9.627195 2.617647 m 9.627195 8.617647 l 13.427195 8.617647 l 13.427195 2.617647 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.627195 2.617647 m 9.627195 8.617647 l 13.427195 8.617647 l 13.427195 2.617647 l cp s
+1.000000 1.000000 1.000000 srgb
+n 9.627195 7.617647 m 9.627195 8.617647 l 12.227195 8.617647 l 12.227195 7.617647 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.627195 7.617647 m 9.627195 8.617647 l 12.227195 8.617647 l 12.227195 7.617647 l cp s
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 13.427195 3.617647 m 9.627195 3.617647 l s
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 13.427195 4.617647 m 9.627195 4.617647 l s
+/Times-Bold-latin1 ff 0.400000 scf sf
+(ad2 Before Vinum) dup sw 2 div 4.527195 ex sub 2.317647 m gs 1 -1 sc sh gr
+/Times-Bold-latin1 ff 0.400000 scf sf
+(ad2 After Vinum) dup sw 2 div 11.527195 ex sub 2.317647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(/rootback) dup sw 2 div 11.527195 ex sub 3.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(swap) dup sw 2 div 11.527195 ex sub 4.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.350000 scf sf
+(Vinum drive UpWindow) dup sw 2 div 11.527195 ex sub 5.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(Vinum sd) dup sw 2 div 10.927195 ex sub 8.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(/rootback) dup sw 2 div 4.527195 ex sub 3.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(swap) dup sw 2 div 4.527195 ex sub 4.017647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(/NOFUTURE) dup sw 2 div 4.527195 ex sub 6.017647 m gs 1 -1 sc sh gr
+/Times-Bold-latin1 ff 0.400000 scf sf
+(Offset \(blocks\)) dup sw 2 div 8.127195 ex sub 2.317647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.300000 scf sf
+(\(not to scale\)) dup sw 2 div 3.427195 ex sub 9.017647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad2s1a) dup sw 2 div 11.527195 ex sub 3.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad2s1b) dup sw 2 div 11.527195 ex sub 4.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad2s1h) dup sw 2 div 11.527195 ex sub 5.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(hope.p0.s0) dup sw 2 div 10.927195 ex sub 8.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad2s1e) dup sw 2 div 4.527195 ex sub 3.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad2s1b) dup sw 2 div 4.527195 ex sub 4.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(/dev/ad2s1f) dup sw 2 div 4.527195 ex sub 6.417647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+() dup sw 2 div 11.927195 ex sub 7.817647 m gs 1 -1 sc sh gr
+1.000000 1.000000 1.000000 srgb
+n 9.627195 5.617647 m 9.627195 6.617647 l 12.227195 6.617647 l 12.227195 5.617647 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.627195 5.617647 m 9.627195 6.617647 l 12.227195 6.617647 l 12.227195 5.617647 l cp s
+1.000000 1.000000 1.000000 srgb
+n 9.627195 6.617647 m 9.627195 7.617647 l 12.227195 7.617647 l 12.227195 6.617647 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.627195 6.617647 m 9.627195 7.617647 l 12.227195 7.617647 l 12.227195 6.617647 l cp s
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(usr.p1.s0) dup sw 2 div 10.927195 ex sub 7.417647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(Vinum sd) dup sw 2 div 10.927195 ex sub 7.017647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(home.p1.s0) dup sw 2 div 10.927195 ex sub 6.417647 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(Vinum sd) dup sw 2 div 10.927195 ex sub 6.017647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(8420769) dup sw 8.827195 ex sub 8.717647 m gs 1 -1 sc sh gr
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 7.617647 m 9.427195 7.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 7.717647 m 9.427195 7.617647 l 9.227195 7.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 7.717647 m 9.427195 7.617647 l 9.227195 7.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 6.617647 m 9.427195 6.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 6.717647 m 9.427195 6.617647 l 9.227195 6.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 6.717647 m 9.427195 6.617647 l 9.227195 6.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 5.617647 m 9.427195 5.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 5.717647 m 9.427195 5.617647 l 9.227195 5.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 5.717647 m 9.427195 5.617647 l 9.227195 5.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 4.617647 m 9.427195 4.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 4.717647 m 9.427195 4.617647 l 9.227195 4.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 4.717647 m 9.427195 4.617647 l 9.227195 4.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 3.617647 m 9.427195 3.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 3.717647 m 9.427195 3.617647 l 9.227195 3.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 3.717647 m 9.427195 3.617647 l 9.227195 3.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 2.617647 m 9.427195 2.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 2.717647 m 9.427195 2.617647 l 9.227195 2.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 2.717647 m 9.427195 2.617647 l 9.227195 2.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 9.027195 8.617647 m 9.427195 8.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 9.227195 8.717647 m 9.427195 8.617647 l 9.227195 8.517647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 9.227195 8.717647 m 9.427195 8.617647 l 9.227195 8.517647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 8.617647 m 7.027195 8.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 8.517647 m 6.627195 8.617647 l 6.827195 8.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 8.517647 m 6.627195 8.617647 l 6.827195 8.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 2.617647 m 7.027195 2.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 2.517647 m 6.627195 2.617647 l 6.827195 2.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 2.517647 m 6.627195 2.617647 l 6.827195 2.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 3.617647 m 7.027195 3.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 3.517647 m 6.627195 3.617647 l 6.827195 3.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 3.517647 m 6.627195 3.617647 l 6.827195 3.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 4.617647 m 7.027195 4.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 4.517647 m 6.627195 4.617647 l 6.827195 4.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 4.517647 m 6.627195 4.617647 l 6.827195 4.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 5.617647 m 7.027195 5.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 5.517647 m 6.627195 5.617647 l 6.827195 5.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 5.517647 m 6.627195 5.617647 l 6.827195 5.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 6.617647 m 7.027195 6.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 6.517647 m 6.627195 6.617647 l 6.827195 6.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 6.517647 m 6.627195 6.617647 l 6.827195 6.717647 l cp s
+0.020000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.627195 7.617647 m 7.027195 7.617647 l s
+0 slj
+1.000000 1.000000 1.000000 srgb
+n 6.827195 7.517647 m 6.627195 7.617647 l 6.827195 7.717647 l f
+0.020000 slw
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 6.827195 7.517647 m 6.627195 7.617647 l 6.827195 7.717647 l cp s
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(0) dup sw 8.827195 ex sub 2.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(200000) dup sw 8.827195 ex sub 3.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(400000) dup sw 8.827195 ex sub 4.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(400265) dup sw 8.827195 ex sub 5.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(1400265) dup sw 8.827195 ex sub 6.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+(4124673) dup sw 8.827195 ex sub 7.717647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+() dup sw 2 div 8.427195 ex sub 2.617647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+() dup sw 2 div 7.927195 ex sub 2.617647 m gs 1 -1 sc sh gr
+/Courier-Bold-latin1 ff 0.400000 scf sf
+() dup sw 2 div 7.927195 ex sub 2.617647 m gs 1 -1 sc sh gr
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.427195 3.617647 m 2.627195 3.617647 l s
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 6.427195 5.617647 m 2.627195 5.617647 l s
+showpage
diff --git a/share/images/articles/vinum/arch.eps b/share/images/articles/vinum/arch.eps
new file mode 100644
index 0000000000..2d4e34519d
--- /dev/null
+++ b/share/images/articles/vinum/arch.eps
@@ -0,0 +1,410 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: Untitled-4
+%%Creator: Dia v0.88.1
+%%CreationDate: Fri Oct 12 17:26:03 2001
+%%For: murray
+%%Magnification: 1.0000
+%%Orientation: Portrait
+%%BoundingBox: 0 0 104 138
+%%Pages: 1
+%%BeginSetup
+%%EndSetup
+%%EndComments
+%%BeginProlog
+[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E
+/F /G /H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W /X /Y
+/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
+/d /e /f /g /h /i /j /k /l /m
+/n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
+/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
+/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
+/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
+/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
+/Times-Roman-latin1
+ /Times-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Italic-latin1
+ /Times-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-Bold-latin1
+ /Times-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Times-BoldItalic-latin1
+ /Times-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Book-latin1
+ /AvantGarde-Book findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-BookOblique-latin1
+ /AvantGarde-BookOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-Demi-latin1
+ /AvantGarde-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/AvantGarde-DemiOblique-latin1
+ /AvantGarde-DemiOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Light-latin1
+ /Bookman-Light findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-LightItalic-latin1
+ /Bookman-LightItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-Demi-latin1
+ /Bookman-Demi findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Bookman-DemiItalic-latin1
+ /Bookman-DemiItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-latin1
+ /Courier findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Oblique-latin1
+ /Courier-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-Bold-latin1
+ /Courier-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Courier-BoldOblique-latin1
+ /Courier-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-latin1
+ /Helvetica findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Oblique-latin1
+ /Helvetica-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Bold-latin1
+ /Helvetica-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-BoldOblique-latin1
+ /Helvetica-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-latin1
+ /Helvetica-Narrow findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Oblique-latin1
+ /Helvetica-Narrow-Oblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-Bold-latin1
+ /Helvetica-Narrow-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Helvetica-Narrow-BoldOblique-latin1
+ /Helvetica-Narrow-BoldOblique findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Roman-latin1
+ /NewCenturySchoolbook-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Italic-latin1
+ /NewCenturySchoolbook-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-Bold-latin1
+ /NewCenturySchoolbook-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/NewCenturySchoolbook-BoldItalic-latin1
+ /NewCenturySchoolbook-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Roman-latin1
+ /Palatino-Roman findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Italic-latin1
+ /Palatino-Italic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-Bold-latin1
+ /Palatino-Bold findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Palatino-BoldItalic-latin1
+ /Palatino-BoldItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/Symbol-latin1
+ /Symbol findfont
+definefont pop
+/ZapfChancery-MediumItalic-latin1
+ /ZapfChancery-MediumItalic findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/ZapfDingbats-latin1
+ /ZapfDingbats findfont
+ dup length dict begin
+ {1 index /FID ne {def} {pop pop} ifelse} forall
+ /Encoding isolatin1encoding def
+ currentdict end
+definefont pop
+/cp {closepath} bind def
+/c {curveto} bind def
+/f {fill} bind def
+/a {arc} bind def
+/ef {eofill} bind def
+/ex {exch} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth pop} bind def
+/tr {translate} bind def
+
+/ellipsedict 8 dict def
+ellipsedict /mtrx matrix put
+/ellipse
+{ ellipsedict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def /savematrix mtrx currentmatrix def
+ x y tr xrad yrad sc
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+} def
+
+/mergeprocs {
+dup length
+3 -1 roll
+dup
+length
+dup
+5 1 roll
+3 -1 roll
+add
+array cvx
+dup
+3 -1 roll
+0 exch
+putinterval
+dup
+4 2 roll
+putinterval
+} bind def
+28.346000 -28.346000 scale
+-2.500000 -6.850000 translate
+%%EndProlog
+
+
+1.000000 1.000000 1.000000 srgb
+n 2.525000 2.025000 m 2.525000 6.825000 l 6.125000 6.825000 l 6.125000 2.025000 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 2.525000 2.025000 m 2.525000 6.825000 l 6.125000 6.825000 l 6.125000 2.025000 l cp s
+1.000000 1.000000 1.000000 srgb
+n 2.525000 2.825000 m 2.525000 6.025000 l 5.725000 6.025000 l 5.725000 2.825000 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 2.525000 2.825000 m 2.525000 6.025000 l 5.725000 6.025000 l 5.725000 2.825000 l cp s
+1.000000 1.000000 1.000000 srgb
+n 3.725000 2.025000 m 3.725000 2.825000 l 4.925000 2.825000 l 4.925000 2.025000 l f
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slj
+0.000000 0.000000 0.000000 srgb
+n 3.725000 2.025000 m 3.725000 2.825000 l 4.925000 2.825000 l 4.925000 2.025000 l cp s
+/Times-Roman-latin1 ff 0.400000 scf sf
+(UFS) dup sw 2 div 3.125000 ex sub 2.525000 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(swap) dup sw 2 div 4.325000 ex sub 2.525000 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(volume) dup sw 2 div 4.525000 ex sub 3.325000 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(plex) dup sw 2 div 4.525000 ex sub 4.125000 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(subdisk) dup sw 2 div 4.625000 ex sub 4.925000 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(drive) dup sw 2 div 4.525000 ex sub 5.725000 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(Block I/O devices) dup sw 2 div 4.325000 ex sub 6.525000 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(V) dup sw 2 div 3.025000 ex sub 3.725000 m gs 1 -1 sc sh gr
+(i) dup sw 2 div 3.025000 ex sub 4.125000 m gs 1 -1 sc sh gr
+(n) dup sw 2 div 3.025000 ex sub 4.525000 m gs 1 -1 sc sh gr
+(u) dup sw 2 div 3.025000 ex sub 4.925000 m gs 1 -1 sc sh gr
+(m) dup sw 2 div 3.025000 ex sub 5.325000 m gs 1 -1 sc sh gr
+/Times-Roman-latin1 ff 0.400000 scf sf
+(Etc.) dup sw 2 div 5.625000 ex sub 2.525000 m gs 1 -1 sc sh gr
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 5.725000 3.625000 m 3.525000 3.625000 l s
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 5.725000 5.225000 m 3.525000 5.225000 l s
+0.050000 slw
+[] 0 sd
+[] 0 sd
+0 slc
+n 5.725000 4.425000 m 3.525000 4.425000 l s
+showpage
diff --git a/share/images/articles/vm-design/fig1.eps b/share/images/articles/vm-design/fig1.eps
new file mode 100644
index 0000000000..49d2c05a56
--- /dev/null
+++ b/share/images/articles/vm-design/fig1.eps
@@ -0,0 +1,104 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: fig1.eps
+%%Creator: fig2dev Version 3.2.3 Patchlevel
+%%CreationDate: Sun Oct 8 19:54:25 2000
+%%For: nik@canyon.nothing-going-on.org (Nik Clayton)
+%%BoundingBox: 0 0 119 65
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 65 moveto 0 0 lineto 119 0 lineto 119 65 lineto closepath clip newpath
+-143.0 298.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+%%Page: 1 1
+10 setmiterlimit
+ 0.06000 0.06000 sc
+% Polyline
+7.500 slw
+n 2400 4200 m 4050 4200 l 4050 4950 l 2400 4950 l
+ cp gs col0 s gr
+% Polyline
+n 4050 4200 m
+ 4350 3900 l gs col0 s gr
+% Polyline
+n 2400 4200 m 2700 3900 l 4350 3900 l 4350 4650 l
+ 4050 4950 l gs col0 s gr
+/Helvetica-Bold ff 180.00 scf sf
+3225 4650 m
+gs 1 -1 sc (A) dup sw pop 2 div neg 0 rm col0 sh gr
+$F2psEnd
+rs
diff --git a/share/images/articles/vm-design/fig2.eps b/share/images/articles/vm-design/fig2.eps
new file mode 100644
index 0000000000..fcb8bd41ad
--- /dev/null
+++ b/share/images/articles/vm-design/fig2.eps
@@ -0,0 +1,115 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: fig2.eps
+%%Creator: fig2dev Version 3.2.3 Patchlevel
+%%CreationDate: Sun Oct 8 19:55:31 2000
+%%For: nik@canyon.nothing-going-on.org (Nik Clayton)
+%%BoundingBox: 0 0 120 110
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 110 moveto 0 0 lineto 120 0 lineto 120 110 lineto closepath clip newpath
+-174.0 370.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+%%Page: 1 1
+10 setmiterlimit
+ 0.06000 0.06000 sc
+/Helvetica-Bold ff 180.00 scf sf
+3750 5100 m
+gs 1 -1 sc (B) dup sw pop 2 div neg 0 rm col0 sh gr
+% Polyline
+7.500 slw
+n 4871 5100 m 4879 5100 l gs col0 s gr
+% Polyline
+n 2925 5400 m 4575 5400 l 4575 6150 l 2925 6150 l
+ cp gs col0 s gr
+% Polyline
+n 4575 4650 m
+ 4875 4350 l gs col0 s gr
+% Polyline
+n 2925 4650 m 4575 4650 l 4575 5400 l 2925 5400 l
+ cp gs col0 s gr
+% Polyline
+n 2925 4650 m 3225 4350 l 4875 4350 l 4875 5100 l
+ 4575 5400 l gs col0 s gr
+/Helvetica-Bold ff 180.00 scf sf
+3750 5850 m
+gs 1 -1 sc (A) dup sw pop 2 div neg 0 rm col0 sh gr
+% Polyline
+n 4875 5100 m 4875 5850 l
+ 4575 6150 l gs col0 s gr
+$F2psEnd
+rs
diff --git a/share/images/articles/vm-design/fig3.eps b/share/images/articles/vm-design/fig3.eps
new file mode 100644
index 0000000000..0e3138b2ed
--- /dev/null
+++ b/share/images/articles/vm-design/fig3.eps
@@ -0,0 +1,133 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: fig3.eps
+%%Creator: fig2dev Version 3.2.3 Patchlevel
+%%CreationDate: Sun Oct 8 19:53:51 2000
+%%For: nik@canyon.nothing-going-on.org (Nik Clayton)
+%%BoundingBox: 0 0 120 155
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 155 moveto 0 0 lineto 120 0 lineto 120 155 lineto closepath clip newpath
+-174.0 370.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+%%Page: 1 1
+10 setmiterlimit
+ 0.06000 0.06000 sc
+/Helvetica-Bold ff 180.00 scf sf
+4125 4350 m
+gs 1 -1 sc (C2) dup sw pop 2 div neg 0 rm col0 sh gr
+% Polyline
+7.500 slw
+n 4871 5100 m 4879 5100 l gs col0 s gr
+% Polyline
+n 2925 5400 m 4575 5400 l 4575 6150 l 2925 6150 l
+ cp gs col0 s gr
+% Polyline
+n 4575 4650 m
+ 4875 4350 l gs col0 s gr
+% Polyline
+n 2925 4650 m 4575 4650 l 4575 5400 l 2925 5400 l
+ cp gs col0 s gr
+% Polyline
+n 4875 3600 m 4875 5100 l
+ 4575 5400 l gs col0 s gr
+% Polyline
+n 2925 4650 m 2925 3900 l 3225 3600 l
+ 4875 3600 l gs col0 s gr
+% Polyline
+n 2925 3900 m 4425 3900 l 4575 3900 l
+ 4875 3600 l gs col0 s gr
+% Polyline
+n 4575 4650 m
+ 4575 3900 l gs col0 s gr
+% Polyline
+n 3750 4650 m 3750 3900 l
+ 4050 3600 l gs col0 s gr
+/Helvetica-Bold ff 180.00 scf sf
+3750 5850 m
+gs 1 -1 sc (A) dup sw pop 2 div neg 0 rm col0 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+3750 5100 m
+gs 1 -1 sc (B) dup sw pop 2 div neg 0 rm col0 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+3375 4350 m
+gs 1 -1 sc (C1) dup sw pop 2 div neg 0 rm col0 sh gr
+% Polyline
+n 4875 5100 m 4875 5850 l
+ 4575 6150 l gs col0 s gr
+$F2psEnd
+rs
diff --git a/share/images/articles/vm-design/fig4.eps b/share/images/articles/vm-design/fig4.eps
new file mode 100644
index 0000000000..24fc1b5add
--- /dev/null
+++ b/share/images/articles/vm-design/fig4.eps
@@ -0,0 +1,133 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: fig4.eps
+%%Creator: fig2dev Version 3.2.3 Patchlevel
+%%CreationDate: Sun Oct 8 19:55:53 2000
+%%For: nik@canyon.nothing-going-on.org (Nik Clayton)
+%%BoundingBox: 0 0 120 155
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+newpath 0 155 moveto 0 0 lineto 120 0 lineto 120 155 lineto closepath clip newpath
+-174.0 370.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add
+ 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+ bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+ 4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+
+$F2psBegin
+%%Page: 1 1
+10 setmiterlimit
+ 0.06000 0.06000 sc
+/Helvetica-Bold ff 180.00 scf sf
+3375 4350 m
+gs 1 -1 sc (C1) dup sw pop 2 div neg 0 rm col0 sh gr
+% Polyline
+7.500 slw
+n 4871 5100 m 4879 5100 l gs col0 s gr
+% Polyline
+n 2925 5400 m 4575 5400 l 4575 6150 l 2925 6150 l
+ cp gs col0 s gr
+% Polyline
+n 4575 4650 m
+ 4875 4350 l gs col0 s gr
+% Polyline
+n 2925 4650 m 4575 4650 l 4575 5400 l 2925 5400 l
+ cp gs col0 s gr
+% Polyline
+n 4875 4350 m 4875 5100 l
+ 4575 5400 l gs col0 s gr
+% Polyline
+n 2925 4650 m 2925 3900 l 3225 3600 l
+ 4050 3600 l gs col0 s gr
+% Polyline
+n 3750 4650 m 3750 3900 l
+ 4050 3600 l gs col0 s gr
+% Polyline
+n 2925 3900 m
+ 3750 3900 l gs col0 s gr
+% Polyline
+n 3750 4650 m 4050 4350 l
+ 4875 4350 l gs col0 s gr
+% Polyline
+n 4050 4350 m
+ 4050 3600 l gs col0 s gr
+/Helvetica-Bold ff 180.00 scf sf
+3750 5850 m
+gs 1 -1 sc (A) dup sw pop 2 div neg 0 rm col0 sh gr
+/Helvetica-Bold ff 180.00 scf sf
+3750 5100 m
+gs 1 -1 sc (B) dup sw pop 2 div neg 0 rm col0 sh gr
+% Polyline
+n 4875 5100 m 4875 5850 l
+ 4575 6150 l gs col0 s gr
+$F2psEnd
+rs