]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
docs-v3: Add Tutorials section and update xrefs.
authornolade <nola.aunger@inkbridge.io>
Thu, 3 Jul 2025 20:12:58 +0000 (16:12 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 4 Jul 2025 18:44:20 +0000 (14:44 -0400)
65 files changed:
doc/antora/antora.yml
doc/antora/modules/tutorials/assets/images/SAVE.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/access-challenge.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/access-request-proxy.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/access-request.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/accounting-request-proxy.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/accounting-request.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/asciifull.gif [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/dispatcher.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/dual_nas_backup_server.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/dual_nas_backup_server_failover.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/dual_nas_backup_server_redundancy.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/dual_nas_load_balance.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/eap-md5.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/eap-ttls.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/login.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/login_net_access.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/login_ok.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/nas_backup_server.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/nas_backup_server_failover.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/peap_packet.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/proxy.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/proxy_backup_server.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/proxy_load_balance.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/radius_packet.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/request_files.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/request_handoff.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/request_processing.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/request_receive.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/server_schematic.svg [new file with mode: 0644]
doc/antora/modules/tutorials/assets/images/ttls_packet.svg [new file with mode: 0644]
doc/antora/modules/tutorials/nav.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/accounting.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/autz-type.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/dictionary.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/dynamic-translation.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/eap-md5.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/eap-peap.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/eap-tls.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/eap-ttls.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/failover.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/final_group_project.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/matching_users.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/module_fail_over.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/multiple_modules.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/new_client.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/new_user.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/prepaid.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/proxy.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/proxy_failover.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/proxy_load_balance.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/proxy_receive.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/radmin.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/simultaneous_use.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/sql.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/sql_user.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/trouble_shooting.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/unlang_policies.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/unlang_return_codes.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/unlang_splitting_strings.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/unlang_update_blocks_and_conditions.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/variables.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/pages/virtual.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/partials/common_control_attrs_sidebar.adoc [new file with mode: 0644]
doc/antora/modules/tutorials/partials/unlang_start.adoc [new file with mode: 0644]

index 65d3854263b56e89b982d878905b24d9ce719d0d..76f3273296e23553d77903924d9e50a2a09ccc69 100644 (file)
@@ -12,5 +12,6 @@ nav:
 - modules/installation/nav.adoc
 - modules/concepts/nav.adoc
 - modules/howto/nav.adoc
+- modules/tutorials/nav.adoc
 - modules/unlang/nav.adoc
 - modules/developers/nav.adoc
diff --git a/doc/antora/modules/tutorials/assets/images/SAVE.svg b/doc/antora/modules/tutorials/assets/images/SAVE.svg
new file mode 100644 (file)
index 0000000..6389bc7
--- /dev/null
@@ -0,0 +1,396 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.0in" height="6.5in"
+       viewBox="578 288 7244 7824">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line: box -->
+<rect x="600" y="300" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1800" y="300" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="300" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="4200" y="300" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6825" y="300" width="975" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5475" y="300" width="975" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="2100" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="4200" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="4575" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="4950" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="5325" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="5700" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="6075" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="4875" y="7500" width="1650" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="1800" width="7200" height="900" rx="0" 
+style="stroke:#000000;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1050,975
+1050,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1050 975 - 1050 1740-->
+<polygon points="1020 1604
+1050 1724
+1080 1604
+1020 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2250,975
+2250,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2250 975 - 2250 1740-->
+<polygon points="2220 1604
+2250 1724
+2280 1604
+2220 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="3450,975
+3450,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3450 975 - 3450 1740-->
+<polygon points="3420 1604
+3450 1724
+3480 1604
+3420 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4650,975
+4650,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4650 975 - 4650 1740-->
+<polygon points="4620 1604
+4650 1724
+4680 1604
+4620 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="6000,975
+6000,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6000 975 - 6000 1740-->
+<polygon points="5970 1604
+6000 1724
+6030 1604
+5970 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="7350,975
+7350,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 7350 975 - 7350 1740-->
+<polygon points="7320 1604
+7350 1724
+7380 1604
+7320 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line: box -->
+<rect x="3600" y="4200" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="4200" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="4575" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="4950" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="5325" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="5700" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="6075" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="4200" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="4575" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="4950" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5700,6750
+5700,7305
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5700 6750 - 5700 7440-->
+<polygon points="5670 7304
+5700 7424
+5730 7304
+5670 7304
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+1918,2985
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 1785 3001-->
+<polygon points="1916 2954
+1801 2999
+1923 3013
+1916 2954
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+3413,2962
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 3285 3004-->
+<polygon points="3404 2932
+3300 2999
+3423 2989
+3404 2932
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+4200,2880
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 4200 3015-->
+<polygon points="4170 2879
+4200 2999
+4230 2879
+4170 2879
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+4986,2962
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 5114 3004-->
+<polygon points="4975 2989
+5099 2999
+4994 2932
+4975 2989
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+6481,2985
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 6614 3001-->
+<polygon points="6475 3013
+6598 2999
+6482 2954
+6475 3013
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Text -->
+<text xml:space="preserve" x="825" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="2025" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3225" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="4425" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="7050" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="5700" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="2400" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="3900" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="5400" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="6900" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="4425" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">preprocess</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="4800" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">chap</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="5175" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">suffix</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="5550" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">files</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="5925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">eap</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="6300" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">sql</text>
+<!-- Text -->
+<text xml:space="preserve" x="750" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">authorize</text>
+<!-- Text -->
+<text xml:space="preserve" x="5100" y="7875" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Home server</text>
+<!-- Text -->
+<text xml:space="preserve" x="2400" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">waiting</text>
+<!-- Text -->
+<text xml:space="preserve" x="3750" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">authenticate</text>
+<!-- Text -->
+<text xml:space="preserve" x="3675" y="4425" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">unix</text>
+<!-- Text -->
+<text xml:space="preserve" x="5250" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">authorize</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="4425" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">preprocess</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="4800" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">chap</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="5175" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">suffix</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="5550" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">files</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="5925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">eap</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="6300" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">sql</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="6600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">proxy to realm</text>
+<!-- Text -->
+<text xml:space="preserve" x="6675" y="4425" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">preprocess</text>
+<!-- Text -->
+<text xml:space="preserve" x="6750" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">accounting</text>
+<!-- Text -->
+<text xml:space="preserve" x="6675" y="4800" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">suffix</text>
+<!-- Text -->
+<text xml:space="preserve" x="6675" y="5175" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">files</text>
+<!-- Text -->
+<text xml:space="preserve" x="2625" y="2325" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">FreeRADIUS Server core</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/access-challenge.svg b/doc/antora/modules/tutorials/assets/images/access-challenge.svg
new file mode 100644 (file)
index 0000000..042aad5
--- /dev/null
@@ -0,0 +1,109 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="4.0in" height="4.3in"
+       viewBox="285 224 4846 5188">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="1800,3300
+2586,3562
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1800 3300 - 2714 3604-->
+<polygon points="2575 3589
+2699 3599
+2594 3532
+2575 3589
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="1800,1200
+2586,1462
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1800 1200 - 2714 1504-->
+<polygon points="2575 1489
+2699 1499
+2594 1432
+2575 1489
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2700,2700
+1913,2962
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2700 2700 - 1785 3004-->
+<polygon points="1904 2932
+1800 2999
+1923 2989
+1904 2932
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="5100,225
+5100,300
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5100 225 - 5100 300-->
+<polygon points="5070 296
+5100 296
+5130 296
+5070 296
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2700,5100
+1913,5362
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2700 5100 - 1785 5404-->
+<polygon points="1904 5332
+1800 5399
+1923 5389
+1904 5332
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Text -->
+<text xml:space="preserve" x="300" y="3225" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="300" y="1125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2625" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Challenge</text>
+<!-- Text -->
+<text xml:space="preserve" x="450" y="3525" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">State = 0x01</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="2925" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">State = 0x01</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="5025" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Accept</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="1725" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authorize</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2025" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authenticate</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="3825" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authorize</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="4110" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authenticate</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="4395" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">post-auth</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Server</text>
+<!-- Text -->
+<text xml:space="preserve" x="600" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/access-request-proxy.svg b/doc/antora/modules/tutorials/assets/images/access-request-proxy.svg
new file mode 100644 (file)
index 0000000..da004dc
--- /dev/null
@@ -0,0 +1,121 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.4in" height="5.1in"
+       viewBox="285 224 7696 6088">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="4800,2925
+5586,3187
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4800 2925 - 5714 3229-->
+<polygon points="5575 3214
+5699 3224
+5594 3157
+5575 3214
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="5700,4800
+4913,5062
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5700 4800 - 4785 5104-->
+<polygon points="4904 5032
+4800 5099
+4923 5089
+4904 5032
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="1800,1200
+2586,1462
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1800 1200 - 2714 1504-->
+<polygon points="2575 1489
+2699 1499
+2594 1432
+2575 1489
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2700,6000
+1913,6262
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2700 6000 - 1785 6304-->
+<polygon points="1904 6232
+1800 6299
+1923 6289
+1904 6232
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="7950,300
+7950,450
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 7950 300 - 7950 450-->
+<polygon points="7920 446
+7950 446
+7980 446
+7920 446
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="600,225
+825,225
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="5850" y="4725" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Accept</text>
+<!-- Text -->
+<text xml:space="preserve" x="6000" y="5025" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Proxy-State = 0x01</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="3225" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Proxy-State = 0x01</text>
+<!-- Text -->
+<text xml:space="preserve" x="300" y="1125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="5925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Accept</text>
+<!-- Text -->
+<text xml:space="preserve" x="5850" y="3525" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authorize</text>
+<!-- Text -->
+<text xml:space="preserve" x="5850" y="3825" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authenticate</text>
+<!-- Text -->
+<text xml:space="preserve" x="5850" y="4095" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">post-auth</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="1725" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authorize</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2010" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authenticate</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2325" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">pre-proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="2925" y="5325" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">post-proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="6000" y="600" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">Home server</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/access-request.svg b/doc/antora/modules/tutorials/assets/images/access-request.svg
new file mode 100644 (file)
index 0000000..e8af0a2
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="3.8in" height="2.5in"
+       viewBox="285 299 4546 3013">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="1800,1200
+2586,1462
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1800 1200 - 2714 1504-->
+<polygon points="2575 1489
+2699 1499
+2594 1432
+2575 1489
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2700,3000
+1913,3262
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2700 3000 - 1785 3304-->
+<polygon points="1904 3232
+1800 3299
+1923 3289
+1904 3232
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4800,300
+4800,525
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4800 300 - 4800 525-->
+<polygon points="4770 521
+4800 521
+4830 521
+4770 521
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Text -->
+<text xml:space="preserve" x="300" y="1125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Accept</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="1725" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authorize</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2010" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authenticate</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2295" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">post-auth</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Server</text>
+<!-- Text -->
+<text xml:space="preserve" x="600" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/accounting-request-proxy.svg b/doc/antora/modules/tutorials/assets/images/accounting-request-proxy.svg
new file mode 100644 (file)
index 0000000..7b8c3a3
--- /dev/null
@@ -0,0 +1,119 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.3in" height="5.1in"
+       viewBox="285 224 7502 6163">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="600,225
+825,225
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1500,1200
+2286,1462
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1500 1200 - 2414 1504-->
+<polygon points="2275 1489
+2399 1499
+2294 1432
+2275 1489
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="7650,300
+7650,450
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 7650 300 - 7650 450-->
+<polygon points="7620 446
+7650 446
+7680 446
+7620 446
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2400,6075
+1613,6337
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2400 6075 - 1485 6379-->
+<polygon points="1604 6307
+1500 6374
+1623 6364
+1604 6307
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,3300
+4986,3562
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 3300 - 5114 3604-->
+<polygon points="4975 3589
+5099 3599
+4994 3532
+4975 3589
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="5100,4875
+4313,5137
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5100 4875 - 4185 5179-->
+<polygon points="4304 5107
+4200 5174
+4323 5164
+4304 5107
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="300" y="1125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Accounting-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="2700" y="3225" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Proxy-State = 0x01</text>
+<!-- Text -->
+<text xml:space="preserve" x="2550" y="2325" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">pre-proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="2700" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="2550" y="1725" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">preacct</text>
+<!-- Text -->
+<text xml:space="preserve" x="2550" y="2010" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">accounting</text>
+<!-- Text -->
+<text xml:space="preserve" x="2550" y="2925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Accounting-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="2625" y="5400" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">post-proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="2550" y="6000" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Accounting-Response</text>
+<!-- Text -->
+<text xml:space="preserve" x="5325" y="600" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">Home server</text>
+<!-- Text -->
+<text xml:space="preserve" x="5250" y="3900" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">preacct</text>
+<!-- Text -->
+<text xml:space="preserve" x="5250" y="4200" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">accounting</text>
+<!-- Text -->
+<text xml:space="preserve" x="5400" y="5100" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Proxy-State = 0x01</text>
+<!-- Text -->
+<text xml:space="preserve" x="5250" y="4800" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Accounting-Response</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/accounting-request.svg b/doc/antora/modules/tutorials/assets/images/accounting-request.svg
new file mode 100644 (file)
index 0000000..8824bfa
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="4.3in" height="2.3in"
+       viewBox="285 299 5102 2713">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="1800,1200
+2586,1462
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1800 1200 - 2714 1504-->
+<polygon points="2575 1489
+2699 1499
+2594 1432
+2575 1489
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4800,300
+4800,525
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4800 300 - 4800 525-->
+<polygon points="4770 521
+4800 521
+4830 521
+4770 521
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2700,2700
+1913,2962
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2700 2700 - 1785 3004-->
+<polygon points="1904 2932
+1800 2999
+1923 2989
+1904 2932
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Server</text>
+<!-- Text -->
+<text xml:space="preserve" x="600" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="300" y="1125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Accounting-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="1725" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">preacct</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2010" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">accounting</text>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="2625" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Accounting-Response</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/asciifull.gif b/doc/antora/modules/tutorials/assets/images/asciifull.gif
new file mode 100644 (file)
index 0000000..271960b
Binary files /dev/null and b/doc/antora/modules/tutorials/assets/images/asciifull.gif differ
diff --git a/doc/antora/modules/tutorials/assets/images/dispatcher.svg b/doc/antora/modules/tutorials/assets/images/dispatcher.svg
new file mode 100644 (file)
index 0000000..4258963
--- /dev/null
@@ -0,0 +1,243 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.9in" height="4.2in"
+       viewBox="878 222 8269 5044">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line: box -->
+<rect x="2100" y="1200" width="600" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3300" y="1200" width="600" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="4500" y="1200" width="600" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5700" y="1200" width="600" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="2100" y="3000" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="3000" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="3000" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="3000" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="8100" y="3000" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="4500" width="600" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4500,4800
+6060,4800
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4500 4800 - 6330 4800-->
+<polygon points="6058 4860
+6298 4800
+6058 4740
+6058 4860
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="7500,4800
+7502,4800
+7505,4800
+7511,4801
+7521,4802
+7534,4803
+7551,4804
+7572,4805
+7597,4806
+7625,4807
+7657,4808
+7690,4808
+7726,4808
+7763,4807
+7800,4805
+7839,4802
+7878,4797
+7918,4791
+7958,4783
+7998,4773
+8039,4760
+8080,4744
+8121,4726
+8162,4704
+8204,4678
+8246,4648
+8286,4613
+8325,4575
+8359,4536
+8389,4496
+8416,4454
+8440,4412
+8461,4370
+8478,4328
+8494,4286
+8506,4245
+8517,4204
+8526,4163
+8533,4122
+8539,4082
+8544,4042
+8547,4002
+8550,3963
+8552,3925
+8553,3889
+8554,3854
+8554,3822
+8554,3792
+8553,3765
+8553,3742
+8552,3722
+8551,3706
+8551,3694
+8562,3914
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 8551 3694 - 8548 3645-->
+<polygon points="8624 3912
+8550 3677
+8504 3920
+8624 3912
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="1800,3300
+1799,3299
+1796,3298
+1790,3295
+1781,3290
+1769,3284
+1752,3275
+1732,3264
+1707,3251
+1679,3236
+1647,3218
+1612,3199
+1574,3177
+1534,3154
+1492,3129
+1450,3103
+1406,3075
+1363,3046
+1320,3017
+1277,2986
+1235,2954
+1195,2921
+1156,2887
+1119,2852
+1083,2815
+1050,2776
+1019,2736
+991,2694
+965,2650
+943,2603
+925,2555
+912,2505
+903,2453
+900,2400
+903,2347
+912,2295
+925,2245
+943,2197
+965,2150
+991,2106
+1019,2064
+1050,2024
+1083,1985
+1119,1948
+1156,1913
+1195,1879
+1235,1846
+1277,1814
+1320,1783
+1363,1754
+1406,1725
+1450,1697
+1492,1671
+1534,1646
+1574,1623
+1612,1601
+1647,1582
+1679,1564
+1707,1549
+1732,1536
+1752,1525
+1769,1516
+1781,1510
+1588,1611
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1781 1510 - 1826 1486-->
+<polygon points="1613 1666
+1797 1501
+1557 1561
+1613 1666
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Text -->
+<text xml:space="preserve" x="1950" y="1125" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Thread 1</text>
+<!-- Text -->
+<text xml:space="preserve" x="3150" y="1125" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Thread 2</text>
+<!-- Text -->
+<text xml:space="preserve" x="4350" y="1125" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Thread 3</text>
+<!-- Text -->
+<text xml:space="preserve" x="5550" y="1125" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Thread 4</text>
+<!-- Text -->
+<text xml:space="preserve" x="2025" y="2925" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Request 1</text>
+<!-- Text -->
+<text xml:space="preserve" x="3525" y="2925" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Request 2</text>
+<!-- Text -->
+<text xml:space="preserve" x="5025" y="2925" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Request 3</text>
+<!-- Text -->
+<text xml:space="preserve" x="6525" y="2925" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Request 4</text>
+<!-- Text -->
+<text xml:space="preserve" x="8025" y="2925" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Request 5</text>
+<!-- Text -->
+<text xml:space="preserve" x="6300" y="4425" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Server core</text>
+<!-- Text -->
+<text xml:space="preserve" x="1425" y="525" fill="#000000"  font-family="Helvetica" font-style="normal" font-weight="bold" font-size="240" text-anchor="start">Thread Pool and request dispatcher</text>
+<!-- Text -->
+<text xml:space="preserve" x="4125" y="5175" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Access-Request</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/dual_nas_backup_server.svg b/doc/antora/modules/tutorials/assets/images/dual_nas_backup_server.svg
new file mode 100644 (file)
index 0000000..bc317b6
--- /dev/null
@@ -0,0 +1,3024 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.3in" height="4.8in"
+       viewBox="288 288 7536 5799">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polygon points="1784,4365
+1515,4558
+1515,4711
+2283,4788
+2283,4634
+2437,4404
+1784,4365
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#aaaaaa;
+"/>
+<!-- Line -->
+<polygon points="1784,1215
+1515,1408
+1515,1561
+2283,1638
+2283,1484
+2437,1254
+1784,1215
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#aaaaaa;
+"/>
+<!-- Line: box -->
+<rect x="1899" y="4634" width="231" height="62" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1554" y="4638" width="38" height="23" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1899" y="1484" width="231" height="62" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1554" y="1488" width="38" height="23" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polygon points="2283,4634
+2283,4788
+2437,4519
+2437,4404
+2283,4634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2283,4749
+1515,4673
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,4746
+2245,4669
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1784,4700
+1784,4623
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,4707
+1784,4661
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1535" y="4598" width="77" height="46" rx="0" 
+style="stroke:#ff0000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#ff0000;
+"/>
+<!-- Line: box -->
+<rect x="2168" y="4661" width="58" height="25" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2206,4742
+2206,4703
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2168,4738
+2168,4700
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="2283,1484
+2283,1638
+2437,1369
+2437,1254
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2283,1599
+1515,1523
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1596
+2245,1519
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1784,1550
+1784,1473
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1557
+1784,1511
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1535" y="1448" width="77" height="46" rx="0" 
+style="stroke:#ff0000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#ff0000;
+"/>
+<!-- Line: box -->
+<rect x="2168" y="1511" width="58" height="25" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2206,1592
+2206,1553
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2168,1588
+2168,1550
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1515,4558
+2283,4634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1544,4560
+1808,4367
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1572,4563
+1833,4368
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1601,4566
+1857,4370
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1629,4569
+1881,4371
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1658,4572
+1905,4372
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1686,4575
+1929,4374
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1715,4577
+1953,4376
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1743,4580
+1977,4377
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1771,4583
+2002,4378
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1800,4586
+2026,4380
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1828,4589
+2050,4381
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1857,4592
+2074,4382
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1885,4594
+2098,4384
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1914,4597
+2122,4385
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1942,4600
+2147,4387
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1970,4603
+2171,4388
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1999,4606
+2195,4389
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2027,4609
+2219,4391
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2056,4611
+2243,4393
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2084,4614
+2267,4394
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2113,4617
+2292,4395
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2141,4620
+2316,4397
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2170,4623
+2340,4398
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2198,4626
+2365,4400
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2226,4628
+2388,4401
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2255,4632
+2412,4402
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1546,4676
+1546,4714
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1577,4679
+1577,4717
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1608,4681
+1608,4720
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1639,4685
+1639,4723
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1669,4688
+1669,4727
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1700,4691
+1700,4729
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1731,4694
+1731,4732
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1761,4697
+1761,4736
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1792,4700
+1792,4738
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1823,4703
+1823,4742
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1853,4706
+1853,4745
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1884,4710
+1884,4748
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1915,4712
+1915,4751
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1946,4715
+1946,4754
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1976,4719
+1976,4757
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2007,4722
+2007,4760
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2038,4725
+2038,4763
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2068,4728
+2068,4766
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2099,4731
+2099,4769
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2130,4734
+2130,4772
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2161,4737
+2161,4775
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2191,4740
+2191,4779
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2222,4743
+2222,4781
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2253,4746
+2253,4784
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2283,4673
+1515,4596
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1515,1408
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1544,1410
+1808,1217
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1572,1413
+1833,1218
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1601,1416
+1857,1220
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1629,1419
+1881,1221
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1658,1422
+1905,1222
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1686,1425
+1929,1224
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1715,1427
+1953,1226
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1743,1430
+1977,1227
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1771,1433
+2002,1228
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1800,1436
+2026,1230
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1828,1439
+2050,1231
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1857,1442
+2074,1232
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1885,1444
+2098,1234
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1914,1447
+2122,1235
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1942,1450
+2147,1237
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1970,1453
+2171,1238
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1999,1456
+2195,1239
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2027,1459
+2219,1241
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2056,1461
+2243,1243
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2084,1464
+2267,1244
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2113,1467
+2292,1245
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2141,1470
+2316,1247
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2170,1473
+2340,1248
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2198,1476
+2365,1250
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2226,1478
+2388,1251
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2255,1482
+2412,1252
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1546,1526
+1546,1564
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1577,1529
+1577,1567
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1608,1531
+1608,1570
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1639,1535
+1639,1573
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1669,1538
+1669,1577
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1700,1541
+1700,1579
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1731,1544
+1731,1582
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1761,1547
+1761,1586
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1792,1550
+1792,1588
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1823,1553
+1823,1592
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1853,1556
+1853,1595
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1884,1560
+1884,1598
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1915,1562
+1915,1601
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1946,1565
+1946,1604
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1976,1569
+1976,1607
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2007,1572
+2007,1610
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2038,1575
+2038,1613
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2068,1578
+2068,1616
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2099,1581
+2099,1619
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2130,1584
+2130,1622
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2161,1587
+2161,1625
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2191,1590
+2191,1629
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2222,1593
+2222,1631
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2253,1596
+2253,1634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2283,1523
+1515,1446
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="4050" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1200,4425
+1800,4425
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,1275
+1800,1275
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4800,1350
+5250,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4800,4500
+5250,4500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="6525,375
+6560,368
+6590,361
+6611,353
+6623,347
+6630,341
+6631,335
+6631,330
+6631,325
+6633,319
+6640,314
+6654,309
+6677,305
+6710,301
+6750,300
+6784,301
+6816,303
+6844,306
+6868,310
+6887,314
+6902,318
+6914,323
+6923,327
+6931,331
+6940,336
+6949,340
+6961,345
+6977,350
+6997,355
+7022,360
+7053,365
+7088,370
+7125,375
+7166,379
+7202,381
+7231,381
+7253,380
+7269,377
+7280,373
+7288,368
+7294,363
+7299,357
+7306,353
+7316,350
+7329,349
+7347,350
+7370,355
+7396,363
+7425,375
+7451,390
+7473,406
+7489,421
+7500,434
+7506,445
+7508,454
+7508,462
+7506,469
+7505,476
+7504,485
+7506,495
+7511,509
+7520,526
+7534,547
+7553,572
+7575,600
+7599,628
+7621,652
+7641,671
+7659,686
+7673,695
+7686,701
+7696,704
+7706,706
+7716,708
+7726,712
+7737,718
+7748,729
+7762,744
+7775,766
+7789,793
+7800,825
+7807,854
+7810,882
+7812,906
+7812,926
+7812,942
+7811,955
+7810,966
+7808,974
+7806,981
+7804,989
+7801,997
+7797,1006
+7791,1019
+7783,1034
+7773,1053
+7760,1075
+7744,1100
+7725,1125
+7703,1149
+7682,1169
+7661,1185
+7644,1197
+7630,1205
+7618,1210
+7609,1212
+7601,1213
+7594,1212
+7586,1212
+7578,1212
+7567,1214
+7554,1217
+7536,1223
+7514,1232
+7488,1244
+7458,1259
+7425,1275
+7392,1291
+7362,1307
+7337,1320
+7317,1331
+7302,1340
+7291,1347
+7284,1353
+7279,1358
+7275,1363
+7271,1367
+7266,1371
+7259,1376
+7248,1382
+7233,1389
+7213,1397
+7188,1406
+7158,1416
+7125,1425
+7088,1433
+7056,1439
+7029,1443
+7009,1445
+6995,1446
+6986,1446
+6979,1445
+6975,1444
+6971,1442
+6964,1441
+6955,1439
+6941,1437
+6921,1435
+6894,1432
+6862,1429
+6825,1425
+6788,1420
+6756,1414
+6730,1409
+6710,1404
+6697,1399
+6689,1395
+6684,1391
+6681,1388
+6678,1384
+6673,1380
+6664,1376
+6650,1371
+6630,1366
+6601,1361
+6566,1355
+6525,1350
+6488,1346
+6453,1344
+6422,1343
+6397,1344
+6377,1346
+6361,1349
+6349,1353
+6340,1358
+6331,1363
+6323,1367
+6314,1371
+6302,1374
+6287,1376
+6268,1376
+6244,1374
+6216,1369
+6184,1361
+6150,1350
+6118,1336
+6090,1322
+6066,1308
+6047,1296
+6032,1285
+6020,1276
+6012,1268
+6005,1261
+6000,1255
+5995,1248
+5989,1241
+5983,1232
+5976,1221
+5967,1207
+5957,1190
+5946,1171
+5935,1149
+5925,1125
+5918,1095
+5916,1070
+5918,1051
+5924,1039
+5932,1032
+5942,1029
+5952,1028
+5962,1026
+5973,1023
+5982,1015
+5991,1002
+5998,981
+6002,952
+6004,918
+6003,886
+6000,856
+5996,831
+5990,809
+5983,792
+5976,779
+5968,768
+5961,759
+5953,749
+5946,738
+5940,726
+5934,710
+5929,691
+5927,669
+5926,644
+5929,618
+5936,593
+5945,573
+5954,561
+5962,555
+5970,553
+5976,554
+5983,558
+5990,561
+5998,563
+6007,563
+6020,560
+6035,552
+6054,540
+6075,525
+6096,509
+6113,494
+6126,482
+6134,472
+6138,464
+6140,458
+6139,453
+6140,448
+6142,442
+6147,435
+6158,426
+6175,416
+6199,404
+6229,393
+6258,385
+6285,379
+6308,375
+6327,373
+6342,373
+6354,374
+6363,377
+6371,379
+6379,382
+6389,384
+6401,386
+6417,387
+6437,386
+6463,384
+6493,380
+6525,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="750,5100
+3435,5100
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 750 5100 - 3705 5100-->
+<polygon points="3433 5160
+3673 5100
+3433 5040
+3433 5160
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="750,1950
+3435,1950
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 750 1950 - 3705 1950-->
+<polygon points="3433 2010
+3673 1950
+3433 1890
+3433 2010
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="2325,1500
+2850,1500
+2925,1275
+3075,1725
+3150,1500
+3600,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2325,4650
+2850,4650
+2925,4425
+3075,4875
+3150,4650
+3600,4650
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,5325
+6300,5325
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,3000
+6300,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4200,1950
+5625,1950
+5625,2850
+5985,2850
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5625 2850 - 6255 2850-->
+<polygon points="5983 2910
+6223 2850
+5983 2790
+5983 2910
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="5250,450
+5250,6075
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4200,5100
+5100,5100
+5100,5550
+5985,5550
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5100 5550 - 6255 5550-->
+<polygon points="5983 5610
+6223 5550
+5983 5490
+5983 5610
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="3900" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="6225" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Text -->
+<text xml:space="preserve" x="6300" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">One</text>
+<!-- Text -->
+<text xml:space="preserve" x="6300" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Two</text>
+<!-- Line: box -->
+<rect x="652" y="4232" width="391" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="613" y="4271" width="469" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="378" y="3450" width="939" height="782" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polygon points="417,4583
+1278,4583
+1395,4779
+1395,4818
+300,4818
+300,4779
+417,4583
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="398" y="4524" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="1180" y="4524" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="398" y="4310" width="899" height="216" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="652" y="1082" width="391" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="613" y="1121" width="469" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="378" y="300" width="939" height="782" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polygon points="417,1433
+1278,1433
+1395,1629
+1395,1668
+300,1668
+300,1629
+417,1433
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="1180" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1160" width="899" height="216" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polyline points="3600,999
+4810,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,990
+4810,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1007
+4810,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1652
+4810,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1642
+4810,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1659
+4810,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3901,995
+3901,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3910,995
+3910,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3893,995
+3893,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3831,995
+3831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3840,995
+3840,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3823,995
+3823,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4129,995
+4129,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4139,995
+4139,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4122,995
+4122,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4060,995
+4060,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4069,995
+4069,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4052,995
+4052,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4351,995
+4351,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4361,995
+4361,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4343,995
+4343,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4281,995
+4281,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4290,995
+4290,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4274,995
+4274,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4576,995
+4576,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4585,995
+4585,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4569,995
+4569,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4506,995
+4506,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4515,995
+4515,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4498,995
+4498,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4781,995
+4781,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4789,995
+4789,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4773,995
+4773,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4711,995
+4711,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4720,995
+4720,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4702,995
+4702,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4131,995
+4131,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4149
+4810,4149
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4140
+4810,4140
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4157
+4810,4157
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4802
+4810,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4792
+4810,4792
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4809
+4810,4809
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3901,4145
+3901,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3910,4145
+3910,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3893,4145
+3893,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3831,4145
+3831,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3840,4145
+3840,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3823,4145
+3823,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4129,4145
+4129,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4139,4145
+4139,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4122,4145
+4122,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4060,4145
+4060,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4069,4145
+4069,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4052,4145
+4052,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4351,4145
+4351,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4361,4145
+4361,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4343,4145
+4343,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4281,4145
+4281,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4290,4145
+4290,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4274,4145
+4274,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4576,4145
+4576,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4585,4145
+4585,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4569,4145
+4569,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4506,4145
+4506,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4515,4145
+4515,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4498,4145
+4498,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4781,4145
+4781,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4789,4145
+4789,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4773,4145
+4773,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4711,4145
+4711,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4720,4145
+4720,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4702,4145
+4702,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4131,4145
+4131,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="4425" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="300,4779
+300,4818
+1395,4818
+1395,4779
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,4623
+378,4740
+1082,4740
+1043,4623
+456,4623
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polygon points="1239,4623
+1082,4623
+1121,4740
+1317,4740
+1239,4623
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polyline points="976,4390
+976,4370
+1061,4370
+1061,4351
+1166,4351
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,4429
+1061,4390
+1166,4390
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,4370
+1250,4370
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,4351
+1166,4370
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="976,4390
+1061,4390
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,4429
+1166,4429
+1166,4390
+1250,4390
+1250,4370
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,4429
+1229,4429
+1229,4409
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,4429
+1187,4409
+1229,4409
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1629
+300,1668
+1395,1668
+1395,1629
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1473
+378,1590
+1082,1590
+1043,1473
+456,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polygon points="1239,1473
+1082,1473
+1121,1590
+1317,1590
+1239,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+976,1220
+1061,1220
+1061,1201
+1166,1201
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1061,1240
+1166,1240
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1220
+1250,1220
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1201
+1166,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+1061,1240
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1166,1279
+1166,1240
+1250,1240
+1250,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1229,1279
+1229,1259
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1187,1259
+1229,1259
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6300,2566
+7200,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5026" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4993" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5126" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5093" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5226" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5193" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5326" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5293" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5426" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5393" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5528" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5493" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5626" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5594" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5727" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5694" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4793" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4758" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4692" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4658" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4592" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4558" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="5861" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6300,4891
+7200,4891
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,4154
+457,4153
+464,4146
+476,4134
+488,4122
+495,4115
+496,4114
+496,4111
+496,4105
+496,4093
+496,4075
+496,4050
+496,4019
+496,3981
+496,3937
+496,3890
+496,3840
+496,3791
+496,3744
+496,3700
+496,3662
+496,3631
+496,3606
+496,3588
+496,3576
+496,3570
+496,3567
+495,3566
+488,3559
+476,3547
+464,3536
+457,3529
+456,3528
+456,3531
+456,3536
+456,3547
+456,3563
+456,3586
+456,3615
+456,3651
+456,3693
+456,3739
+456,3789
+456,3841
+456,3893
+456,3943
+456,3989
+456,4031
+456,4067
+456,4096
+456,4119
+456,4135
+456,4146
+456,4151
+456,4154
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1239,4154
+1238,4153
+1231,4146
+1219,4134
+1207,4122
+1200,4115
+1199,4114
+1199,4111
+1199,4105
+1199,4093
+1199,4075
+1199,4050
+1199,4019
+1199,3981
+1199,3937
+1199,3890
+1199,3840
+1199,3791
+1199,3744
+1199,3700
+1199,3662
+1199,3631
+1199,3606
+1199,3588
+1199,3576
+1199,3570
+1199,3567
+1200,3566
+1207,3559
+1219,3547
+1231,3536
+1238,3529
+1239,3528
+1239,3531
+1239,3536
+1239,3547
+1239,3563
+1239,3586
+1239,3615
+1239,3651
+1239,3693
+1239,3739
+1239,3789
+1239,3841
+1239,3893
+1239,3943
+1239,3989
+1239,4031
+1239,4067
+1239,4096
+1239,4119
+1239,4135
+1239,4146
+1239,4151
+1239,4154
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="496,3567
+498,3567
+502,3567
+508,3566
+518,3565
+532,3564
+548,3563
+567,3562
+587,3560
+609,3559
+633,3558
+658,3556
+685,3555
+714,3554
+745,3553
+779,3553
+816,3552
+855,3552
+894,3552
+930,3553
+963,3553
+994,3554
+1022,3555
+1047,3556
+1071,3558
+1094,3559
+1114,3560
+1134,3562
+1151,3563
+1166,3564
+1178,3565
+1188,3566
+1194,3567
+1197,3567
+1199,3567
+1200,3566
+1207,3559
+1219,3547
+1231,3536
+1238,3529
+1239,3528
+1236,3528
+1231,3528
+1220,3528
+1204,3528
+1181,3528
+1151,3528
+1114,3528
+1070,3528
+1020,3528
+966,3528
+907,3528
+847,3528
+788,3528
+729,3528
+675,3528
+625,3528
+581,3528
+544,3528
+514,3528
+491,3528
+475,3528
+464,3528
+459,3528
+456,3528
+457,3529
+464,3536
+476,3548
+488,3559
+495,3566
+496,3567
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="496,4114
+498,4114
+502,4114
+508,4115
+518,4116
+532,4117
+548,4118
+567,4120
+587,4121
+609,4122
+633,4124
+658,4125
+685,4126
+714,4128
+745,4129
+779,4129
+816,4130
+855,4130
+894,4130
+930,4129
+963,4129
+994,4128
+1022,4126
+1047,4125
+1071,4124
+1094,4122
+1114,4121
+1134,4120
+1151,4118
+1166,4117
+1178,4116
+1188,4115
+1194,4114
+1197,4114
+1199,4114
+1200,4115
+1207,4122
+1219,4134
+1231,4146
+1238,4153
+1239,4154
+1236,4154
+1231,4154
+1220,4154
+1204,4154
+1181,4154
+1151,4154
+1114,4154
+1070,4154
+1020,4154
+966,4154
+907,4154
+847,4154
+788,4154
+729,4154
+675,4154
+625,4154
+581,4154
+544,4154
+514,4154
+491,4154
+475,4154
+464,4154
+459,4154
+456,4154
+457,4153
+464,4146
+476,4134
+488,4122
+495,4115
+496,4114
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line: box -->
+<rect x="378" y="4740" width="704" height="14" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="442,4623
+378,4740
+496,4740
+512,4701
+485,4701
+500,4662
+475,4662
+496,4623
+442,4623
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1082,4740
+965,4740
+965,4700
+990,4701
+986,4662
+1004,4662
+1010,4662
+1002,4623
+1050,4623
+1082,4740
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1317,4740
+1281,4740
+1239,4646
+1089,4646
+1082,4623
+1255,4623
+1317,4740
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="1121" y="4740" width="196" height="13" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="1121,4740
+1121,4754
+1081,4634
+1082,4623
+1121,4740
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+496,961
+496,955
+496,943
+496,925
+496,900
+496,869
+496,831
+496,787
+496,740
+496,690
+496,641
+496,594
+496,550
+496,512
+496,481
+496,456
+496,438
+496,426
+496,420
+496,417
+495,416
+488,409
+476,397
+464,386
+457,379
+456,378
+456,381
+456,386
+456,397
+456,413
+456,436
+456,465
+456,501
+456,543
+456,589
+456,639
+456,691
+456,743
+456,793
+456,839
+456,881
+456,917
+456,946
+456,969
+456,985
+456,996
+456,1001
+456,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1239,1004
+1238,1003
+1231,996
+1219,984
+1207,972
+1200,965
+1199,964
+1199,961
+1199,955
+1199,943
+1199,925
+1199,900
+1199,869
+1199,831
+1199,787
+1199,740
+1199,690
+1199,641
+1199,594
+1199,550
+1199,512
+1199,481
+1199,456
+1199,438
+1199,426
+1199,420
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1239,381
+1239,386
+1239,397
+1239,413
+1239,436
+1239,465
+1239,501
+1239,543
+1239,589
+1239,639
+1239,691
+1239,743
+1239,793
+1239,839
+1239,881
+1239,917
+1239,946
+1239,969
+1239,985
+1239,996
+1239,1001
+1239,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="496,417
+498,417
+502,417
+508,416
+518,415
+532,414
+548,413
+567,412
+587,410
+609,409
+633,408
+658,406
+685,405
+714,404
+745,403
+779,403
+816,402
+855,402
+894,402
+930,403
+963,403
+994,404
+1022,405
+1047,406
+1071,408
+1094,409
+1114,410
+1134,412
+1151,413
+1166,414
+1178,415
+1188,416
+1194,417
+1197,417
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1236,378
+1231,378
+1220,378
+1204,378
+1181,378
+1151,378
+1114,378
+1070,378
+1020,378
+966,378
+907,378
+847,378
+788,378
+729,378
+675,378
+625,378
+581,378
+544,378
+514,378
+491,378
+475,378
+464,378
+459,378
+456,378
+457,379
+464,386
+476,398
+488,409
+495,416
+496,417
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="496,964
+498,964
+502,964
+508,965
+518,966
+532,967
+548,968
+567,970
+587,971
+609,972
+633,974
+658,975
+685,976
+714,978
+745,979
+779,979
+816,980
+855,980
+894,980
+930,979
+963,979
+994,978
+1022,976
+1047,975
+1071,974
+1094,972
+1114,971
+1134,970
+1151,968
+1166,967
+1178,966
+1188,965
+1194,964
+1197,964
+1199,964
+1200,965
+1207,972
+1219,984
+1231,996
+1238,1003
+1239,1004
+1236,1004
+1231,1004
+1220,1004
+1204,1004
+1181,1004
+1151,1004
+1114,1004
+1070,1004
+1020,1004
+966,1004
+907,1004
+847,1004
+788,1004
+729,1004
+675,1004
+625,1004
+581,1004
+544,1004
+514,1004
+491,1004
+475,1004
+464,1004
+459,1004
+456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line: box -->
+<rect x="378" y="1590" width="704" height="14" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="442,1473
+378,1590
+496,1590
+512,1551
+485,1551
+500,1512
+475,1512
+496,1473
+442,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1082,1590
+965,1590
+965,1550
+990,1551
+986,1512
+1004,1512
+1010,1512
+1002,1473
+1050,1473
+1082,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1317,1590
+1281,1590
+1239,1496
+1089,1496
+1082,1473
+1255,1473
+1317,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="1121" y="1590" width="196" height="13" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="1121,1590
+1121,1604
+1081,1484
+1082,1473
+1121,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polyline points="3645,1170
+3645,1260
+3738,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3640,1170
+3735,1170
+3735,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3645,4320
+3645,4410
+3738,4410
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3640,4320
+3735,4320
+3735,4409
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3649,1185
+3730,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,1222
+3730,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,4335
+3730,4336
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,4372
+3730,4372
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="4950,4275
+5100,4275
+5100,3300
+5910,3300
+" style="stroke:#0000b0;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:60 60;"/>
+<!-- Arrowhead on XXXpoint 5100 3300 - 6180 3300-->
+<polygon points="5908 3360
+6148 3300
+5908 3240
+5908 3360
+
+" style="stroke:#0000b0;stroke-width:15;stroke-miterlimit:8;
+fill:#0000b0;"/>
+<!-- Line -->
+<polyline points="4950,1125
+5400,1125
+5400,5100
+5910,5100
+" style="stroke:#0000b0;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:60 60;"/>
+<!-- Arrowhead on XXXpoint 5400 5100 - 6180 5100-->
+<polygon points="5908 5160
+6148 5100
+5908 5040
+5908 5160
+
+" style="stroke:#0000b0;stroke-width:15;stroke-miterlimit:8;
+fill:#0000b0;"/>
+<!-- Text -->
+<text xml:space="preserve" x="2175" y="5475" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">User Two</text>
+<!-- Text -->
+<text xml:space="preserve" x="2025" y="2325" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">User One</text>
+<!-- Line: box -->
+<rect x="3645" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="3645" y="4343" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/dual_nas_backup_server_failover.svg b/doc/antora/modules/tutorials/assets/images/dual_nas_backup_server_failover.svg
new file mode 100644 (file)
index 0000000..88fe8a0
--- /dev/null
@@ -0,0 +1,3004 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.3in" height="4.8in"
+       viewBox="288 288 7536 5799">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polygon points="1784,4365
+1515,4558
+1515,4711
+2283,4788
+2283,4634
+2437,4404
+1784,4365
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#aaaaaa;
+"/>
+<!-- Line -->
+<polygon points="1784,1215
+1515,1408
+1515,1561
+2283,1638
+2283,1484
+2437,1254
+1784,1215
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#aaaaaa;
+"/>
+<!-- Line: box -->
+<rect x="1899" y="4634" width="231" height="62" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1554" y="4638" width="38" height="23" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1899" y="1484" width="231" height="62" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1554" y="1488" width="38" height="23" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polygon points="2283,4634
+2283,4788
+2437,4519
+2437,4404
+2283,4634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2283,4749
+1515,4673
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,4746
+2245,4669
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1784,4700
+1784,4623
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,4707
+1784,4661
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1535" y="4598" width="77" height="46" rx="0" 
+style="stroke:#ff0000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#ff0000;
+"/>
+<!-- Line: box -->
+<rect x="2168" y="4661" width="58" height="25" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2206,4742
+2206,4703
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2168,4738
+2168,4700
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="2283,1484
+2283,1638
+2437,1369
+2437,1254
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2283,1599
+1515,1523
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1596
+2245,1519
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1784,1550
+1784,1473
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1557
+1784,1511
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1535" y="1448" width="77" height="46" rx="0" 
+style="stroke:#ff0000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#ff0000;
+"/>
+<!-- Line: box -->
+<rect x="2168" y="1511" width="58" height="25" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2206,1592
+2206,1553
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2168,1588
+2168,1550
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1515,4558
+2283,4634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1544,4560
+1808,4367
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1572,4563
+1833,4368
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1601,4566
+1857,4370
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1629,4569
+1881,4371
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1658,4572
+1905,4372
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1686,4575
+1929,4374
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1715,4577
+1953,4376
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1743,4580
+1977,4377
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1771,4583
+2002,4378
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1800,4586
+2026,4380
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1828,4589
+2050,4381
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1857,4592
+2074,4382
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1885,4594
+2098,4384
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1914,4597
+2122,4385
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1942,4600
+2147,4387
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1970,4603
+2171,4388
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1999,4606
+2195,4389
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2027,4609
+2219,4391
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2056,4611
+2243,4393
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2084,4614
+2267,4394
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2113,4617
+2292,4395
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2141,4620
+2316,4397
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2170,4623
+2340,4398
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2198,4626
+2365,4400
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2226,4628
+2388,4401
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2255,4632
+2412,4402
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1546,4676
+1546,4714
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1577,4679
+1577,4717
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1608,4681
+1608,4720
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1639,4685
+1639,4723
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1669,4688
+1669,4727
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1700,4691
+1700,4729
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1731,4694
+1731,4732
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1761,4697
+1761,4736
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1792,4700
+1792,4738
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1823,4703
+1823,4742
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1853,4706
+1853,4745
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1884,4710
+1884,4748
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1915,4712
+1915,4751
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1946,4715
+1946,4754
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1976,4719
+1976,4757
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2007,4722
+2007,4760
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2038,4725
+2038,4763
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2068,4728
+2068,4766
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2099,4731
+2099,4769
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2130,4734
+2130,4772
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2161,4737
+2161,4775
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2191,4740
+2191,4779
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2222,4743
+2222,4781
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2253,4746
+2253,4784
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2283,4673
+1515,4596
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1515,1408
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1544,1410
+1808,1217
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1572,1413
+1833,1218
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1601,1416
+1857,1220
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1629,1419
+1881,1221
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1658,1422
+1905,1222
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1686,1425
+1929,1224
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1715,1427
+1953,1226
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1743,1430
+1977,1227
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1771,1433
+2002,1228
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1800,1436
+2026,1230
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1828,1439
+2050,1231
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1857,1442
+2074,1232
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1885,1444
+2098,1234
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1914,1447
+2122,1235
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1942,1450
+2147,1237
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1970,1453
+2171,1238
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1999,1456
+2195,1239
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2027,1459
+2219,1241
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2056,1461
+2243,1243
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2084,1464
+2267,1244
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2113,1467
+2292,1245
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2141,1470
+2316,1247
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2170,1473
+2340,1248
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2198,1476
+2365,1250
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2226,1478
+2388,1251
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2255,1482
+2412,1252
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1546,1526
+1546,1564
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1577,1529
+1577,1567
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1608,1531
+1608,1570
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1639,1535
+1639,1573
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1669,1538
+1669,1577
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1700,1541
+1700,1579
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1731,1544
+1731,1582
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1761,1547
+1761,1586
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1792,1550
+1792,1588
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1823,1553
+1823,1592
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1853,1556
+1853,1595
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1884,1560
+1884,1598
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1915,1562
+1915,1601
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1946,1565
+1946,1604
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1976,1569
+1976,1607
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2007,1572
+2007,1610
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2038,1575
+2038,1613
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2068,1578
+2068,1616
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2099,1581
+2099,1619
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2130,1584
+2130,1622
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2161,1587
+2161,1625
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2191,1590
+2191,1629
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2222,1593
+2222,1631
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2253,1596
+2253,1634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2283,1523
+1515,1446
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="4050" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1200,4425
+1800,4425
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,1275
+1800,1275
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4800,1350
+5250,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4800,4500
+5250,4500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="6525,375
+6560,368
+6590,361
+6611,353
+6623,347
+6630,341
+6631,335
+6631,330
+6631,325
+6633,319
+6640,314
+6654,309
+6677,305
+6710,301
+6750,300
+6784,301
+6816,303
+6844,306
+6868,310
+6887,314
+6902,318
+6914,323
+6923,327
+6931,331
+6940,336
+6949,340
+6961,345
+6977,350
+6997,355
+7022,360
+7053,365
+7088,370
+7125,375
+7166,379
+7202,381
+7231,381
+7253,380
+7269,377
+7280,373
+7288,368
+7294,363
+7299,357
+7306,353
+7316,350
+7329,349
+7347,350
+7370,355
+7396,363
+7425,375
+7451,390
+7473,406
+7489,421
+7500,434
+7506,445
+7508,454
+7508,462
+7506,469
+7505,476
+7504,485
+7506,495
+7511,509
+7520,526
+7534,547
+7553,572
+7575,600
+7599,628
+7621,652
+7641,671
+7659,686
+7673,695
+7686,701
+7696,704
+7706,706
+7716,708
+7726,712
+7737,718
+7748,729
+7762,744
+7775,766
+7789,793
+7800,825
+7807,854
+7810,882
+7812,906
+7812,926
+7812,942
+7811,955
+7810,966
+7808,974
+7806,981
+7804,989
+7801,997
+7797,1006
+7791,1019
+7783,1034
+7773,1053
+7760,1075
+7744,1100
+7725,1125
+7703,1149
+7682,1169
+7661,1185
+7644,1197
+7630,1205
+7618,1210
+7609,1212
+7601,1213
+7594,1212
+7586,1212
+7578,1212
+7567,1214
+7554,1217
+7536,1223
+7514,1232
+7488,1244
+7458,1259
+7425,1275
+7392,1291
+7362,1307
+7337,1320
+7317,1331
+7302,1340
+7291,1347
+7284,1353
+7279,1358
+7275,1363
+7271,1367
+7266,1371
+7259,1376
+7248,1382
+7233,1389
+7213,1397
+7188,1406
+7158,1416
+7125,1425
+7088,1433
+7056,1439
+7029,1443
+7009,1445
+6995,1446
+6986,1446
+6979,1445
+6975,1444
+6971,1442
+6964,1441
+6955,1439
+6941,1437
+6921,1435
+6894,1432
+6862,1429
+6825,1425
+6788,1420
+6756,1414
+6730,1409
+6710,1404
+6697,1399
+6689,1395
+6684,1391
+6681,1388
+6678,1384
+6673,1380
+6664,1376
+6650,1371
+6630,1366
+6601,1361
+6566,1355
+6525,1350
+6488,1346
+6453,1344
+6422,1343
+6397,1344
+6377,1346
+6361,1349
+6349,1353
+6340,1358
+6331,1363
+6323,1367
+6314,1371
+6302,1374
+6287,1376
+6268,1376
+6244,1374
+6216,1369
+6184,1361
+6150,1350
+6118,1336
+6090,1322
+6066,1308
+6047,1296
+6032,1285
+6020,1276
+6012,1268
+6005,1261
+6000,1255
+5995,1248
+5989,1241
+5983,1232
+5976,1221
+5967,1207
+5957,1190
+5946,1171
+5935,1149
+5925,1125
+5918,1095
+5916,1070
+5918,1051
+5924,1039
+5932,1032
+5942,1029
+5952,1028
+5962,1026
+5973,1023
+5982,1015
+5991,1002
+5998,981
+6002,952
+6004,918
+6003,886
+6000,856
+5996,831
+5990,809
+5983,792
+5976,779
+5968,768
+5961,759
+5953,749
+5946,738
+5940,726
+5934,710
+5929,691
+5927,669
+5926,644
+5929,618
+5936,593
+5945,573
+5954,561
+5962,555
+5970,553
+5976,554
+5983,558
+5990,561
+5998,563
+6007,563
+6020,560
+6035,552
+6054,540
+6075,525
+6096,509
+6113,494
+6126,482
+6134,472
+6138,464
+6140,458
+6139,453
+6140,448
+6142,442
+6147,435
+6158,426
+6175,416
+6199,404
+6229,393
+6258,385
+6285,379
+6308,375
+6327,373
+6342,373
+6354,374
+6363,377
+6371,379
+6379,382
+6389,384
+6401,386
+6417,387
+6437,386
+6463,384
+6493,380
+6525,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="750,5100
+3510,5100
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 750 5100 - 3780 5100-->
+<polygon points="3508 5160
+3748 5100
+3508 5040
+3508 5160
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="750,1950
+3510,1950
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 750 1950 - 3780 1950-->
+<polygon points="3508 2010
+3748 1950
+3508 1890
+3508 2010
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="2250,1500
+2850,1500
+2925,1275
+3075,1725
+3150,1500
+3600,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2250,4650
+2850,4650
+2925,4425
+3075,4875
+3150,4650
+3600,4650
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,5325
+6300,5325
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,3000
+6300,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,450
+5250,6075
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4200,5100
+5100,5100
+5100,5550
+5985,5550
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5100 5550 - 6255 5550-->
+<polygon points="5983 5610
+6223 5550
+5983 5490
+5983 5610
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="3900" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="6225" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Text -->
+<text xml:space="preserve" x="6300" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">One</text>
+<!-- Text -->
+<text xml:space="preserve" x="6300" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Two</text>
+<!-- Line: box -->
+<rect x="652" y="4232" width="391" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="613" y="4271" width="469" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="378" y="3450" width="939" height="782" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polygon points="417,4583
+1278,4583
+1395,4779
+1395,4818
+300,4818
+300,4779
+417,4583
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="398" y="4524" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="1180" y="4524" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="398" y="4310" width="899" height="216" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="652" y="1082" width="391" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="613" y="1121" width="469" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="378" y="300" width="939" height="782" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polygon points="417,1433
+1278,1433
+1395,1629
+1395,1668
+300,1668
+300,1629
+417,1433
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="1180" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1160" width="899" height="216" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polyline points="3600,999
+4810,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,990
+4810,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1007
+4810,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1652
+4810,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1642
+4810,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1659
+4810,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3901,995
+3901,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3910,995
+3910,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3893,995
+3893,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3831,995
+3831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3840,995
+3840,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3823,995
+3823,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4129,995
+4129,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4139,995
+4139,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4122,995
+4122,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4060,995
+4060,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4069,995
+4069,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4052,995
+4052,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4351,995
+4351,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4361,995
+4361,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4343,995
+4343,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4281,995
+4281,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4290,995
+4290,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4274,995
+4274,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4576,995
+4576,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4585,995
+4585,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4569,995
+4569,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4506,995
+4506,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4515,995
+4515,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4498,995
+4498,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4781,995
+4781,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4789,995
+4789,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4773,995
+4773,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4711,995
+4711,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4720,995
+4720,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4702,995
+4702,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4131,995
+4131,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4149
+4810,4149
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4140
+4810,4140
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4157
+4810,4157
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4802
+4810,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4792
+4810,4792
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,4809
+4810,4809
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3901,4145
+3901,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3910,4145
+3910,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3893,4145
+3893,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3831,4145
+3831,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3840,4145
+3840,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3823,4145
+3823,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4129,4145
+4129,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4139,4145
+4139,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4122,4145
+4122,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4060,4145
+4060,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4069,4145
+4069,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4052,4145
+4052,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4351,4145
+4351,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4361,4145
+4361,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4343,4145
+4343,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4281,4145
+4281,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4290,4145
+4290,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4274,4145
+4274,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4576,4145
+4576,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4585,4145
+4585,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4569,4145
+4569,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4506,4145
+4506,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4515,4145
+4515,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4498,4145
+4498,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4781,4145
+4781,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4789,4145
+4789,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4773,4145
+4773,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4711,4145
+4711,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4720,4145
+4720,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4702,4145
+4702,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4131,4145
+4131,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="4425" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="300,4779
+300,4818
+1395,4818
+1395,4779
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,4623
+378,4740
+1082,4740
+1043,4623
+456,4623
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polygon points="1239,4623
+1082,4623
+1121,4740
+1317,4740
+1239,4623
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polyline points="976,4390
+976,4370
+1061,4370
+1061,4351
+1166,4351
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,4429
+1061,4390
+1166,4390
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,4370
+1250,4370
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,4351
+1166,4370
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="976,4390
+1061,4390
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,4429
+1166,4429
+1166,4390
+1250,4390
+1250,4370
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,4429
+1229,4429
+1229,4409
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,4429
+1187,4409
+1229,4409
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1629
+300,1668
+1395,1668
+1395,1629
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1473
+378,1590
+1082,1590
+1043,1473
+456,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polygon points="1239,1473
+1082,1473
+1121,1590
+1317,1590
+1239,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+976,1220
+1061,1220
+1061,1201
+1166,1201
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1061,1240
+1166,1240
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1220
+1250,1220
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1201
+1166,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+1061,1240
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1166,1279
+1166,1240
+1250,1240
+1250,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1229,1279
+1229,1259
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1187,1259
+1229,1259
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6300,2566
+7200,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5026" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4993" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5126" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5093" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5226" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5193" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5326" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5293" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5426" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5393" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5528" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5493" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5626" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5594" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5727" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5694" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4793" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4758" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4692" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4658" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4592" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4558" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="5861" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6300,4891
+7200,4891
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,4154
+457,4153
+464,4146
+476,4134
+488,4122
+495,4115
+496,4114
+496,4111
+496,4105
+496,4093
+496,4075
+496,4050
+496,4019
+496,3981
+496,3937
+496,3890
+496,3840
+496,3791
+496,3744
+496,3700
+496,3662
+496,3631
+496,3606
+496,3588
+496,3576
+496,3570
+496,3567
+495,3566
+488,3559
+476,3547
+464,3536
+457,3529
+456,3528
+456,3531
+456,3536
+456,3547
+456,3563
+456,3586
+456,3615
+456,3651
+456,3693
+456,3739
+456,3789
+456,3841
+456,3893
+456,3943
+456,3989
+456,4031
+456,4067
+456,4096
+456,4119
+456,4135
+456,4146
+456,4151
+456,4154
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1239,4154
+1238,4153
+1231,4146
+1219,4134
+1207,4122
+1200,4115
+1199,4114
+1199,4111
+1199,4105
+1199,4093
+1199,4075
+1199,4050
+1199,4019
+1199,3981
+1199,3937
+1199,3890
+1199,3840
+1199,3791
+1199,3744
+1199,3700
+1199,3662
+1199,3631
+1199,3606
+1199,3588
+1199,3576
+1199,3570
+1199,3567
+1200,3566
+1207,3559
+1219,3547
+1231,3536
+1238,3529
+1239,3528
+1239,3531
+1239,3536
+1239,3547
+1239,3563
+1239,3586
+1239,3615
+1239,3651
+1239,3693
+1239,3739
+1239,3789
+1239,3841
+1239,3893
+1239,3943
+1239,3989
+1239,4031
+1239,4067
+1239,4096
+1239,4119
+1239,4135
+1239,4146
+1239,4151
+1239,4154
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="496,3567
+498,3567
+502,3567
+508,3566
+518,3565
+532,3564
+548,3563
+567,3562
+587,3560
+609,3559
+633,3558
+658,3556
+685,3555
+714,3554
+745,3553
+779,3553
+816,3552
+855,3552
+894,3552
+930,3553
+963,3553
+994,3554
+1022,3555
+1047,3556
+1071,3558
+1094,3559
+1114,3560
+1134,3562
+1151,3563
+1166,3564
+1178,3565
+1188,3566
+1194,3567
+1197,3567
+1199,3567
+1200,3566
+1207,3559
+1219,3547
+1231,3536
+1238,3529
+1239,3528
+1236,3528
+1231,3528
+1220,3528
+1204,3528
+1181,3528
+1151,3528
+1114,3528
+1070,3528
+1020,3528
+966,3528
+907,3528
+847,3528
+788,3528
+729,3528
+675,3528
+625,3528
+581,3528
+544,3528
+514,3528
+491,3528
+475,3528
+464,3528
+459,3528
+456,3528
+457,3529
+464,3536
+476,3548
+488,3559
+495,3566
+496,3567
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="496,4114
+498,4114
+502,4114
+508,4115
+518,4116
+532,4117
+548,4118
+567,4120
+587,4121
+609,4122
+633,4124
+658,4125
+685,4126
+714,4128
+745,4129
+779,4129
+816,4130
+855,4130
+894,4130
+930,4129
+963,4129
+994,4128
+1022,4126
+1047,4125
+1071,4124
+1094,4122
+1114,4121
+1134,4120
+1151,4118
+1166,4117
+1178,4116
+1188,4115
+1194,4114
+1197,4114
+1199,4114
+1200,4115
+1207,4122
+1219,4134
+1231,4146
+1238,4153
+1239,4154
+1236,4154
+1231,4154
+1220,4154
+1204,4154
+1181,4154
+1151,4154
+1114,4154
+1070,4154
+1020,4154
+966,4154
+907,4154
+847,4154
+788,4154
+729,4154
+675,4154
+625,4154
+581,4154
+544,4154
+514,4154
+491,4154
+475,4154
+464,4154
+459,4154
+456,4154
+457,4153
+464,4146
+476,4134
+488,4122
+495,4115
+496,4114
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line: box -->
+<rect x="378" y="4740" width="704" height="14" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="442,4623
+378,4740
+496,4740
+512,4701
+485,4701
+500,4662
+475,4662
+496,4623
+442,4623
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1082,4740
+965,4740
+965,4700
+990,4701
+986,4662
+1004,4662
+1010,4662
+1002,4623
+1050,4623
+1082,4740
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1317,4740
+1281,4740
+1239,4646
+1089,4646
+1082,4623
+1255,4623
+1317,4740
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="1121" y="4740" width="196" height="13" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="1121,4740
+1121,4754
+1081,4634
+1082,4623
+1121,4740
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+496,961
+496,955
+496,943
+496,925
+496,900
+496,869
+496,831
+496,787
+496,740
+496,690
+496,641
+496,594
+496,550
+496,512
+496,481
+496,456
+496,438
+496,426
+496,420
+496,417
+495,416
+488,409
+476,397
+464,386
+457,379
+456,378
+456,381
+456,386
+456,397
+456,413
+456,436
+456,465
+456,501
+456,543
+456,589
+456,639
+456,691
+456,743
+456,793
+456,839
+456,881
+456,917
+456,946
+456,969
+456,985
+456,996
+456,1001
+456,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1239,1004
+1238,1003
+1231,996
+1219,984
+1207,972
+1200,965
+1199,964
+1199,961
+1199,955
+1199,943
+1199,925
+1199,900
+1199,869
+1199,831
+1199,787
+1199,740
+1199,690
+1199,641
+1199,594
+1199,550
+1199,512
+1199,481
+1199,456
+1199,438
+1199,426
+1199,420
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1239,381
+1239,386
+1239,397
+1239,413
+1239,436
+1239,465
+1239,501
+1239,543
+1239,589
+1239,639
+1239,691
+1239,743
+1239,793
+1239,839
+1239,881
+1239,917
+1239,946
+1239,969
+1239,985
+1239,996
+1239,1001
+1239,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="496,417
+498,417
+502,417
+508,416
+518,415
+532,414
+548,413
+567,412
+587,410
+609,409
+633,408
+658,406
+685,405
+714,404
+745,403
+779,403
+816,402
+855,402
+894,402
+930,403
+963,403
+994,404
+1022,405
+1047,406
+1071,408
+1094,409
+1114,410
+1134,412
+1151,413
+1166,414
+1178,415
+1188,416
+1194,417
+1197,417
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1236,378
+1231,378
+1220,378
+1204,378
+1181,378
+1151,378
+1114,378
+1070,378
+1020,378
+966,378
+907,378
+847,378
+788,378
+729,378
+675,378
+625,378
+581,378
+544,378
+514,378
+491,378
+475,378
+464,378
+459,378
+456,378
+457,379
+464,386
+476,398
+488,409
+495,416
+496,417
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="496,964
+498,964
+502,964
+508,965
+518,966
+532,967
+548,968
+567,970
+587,971
+609,972
+633,974
+658,975
+685,976
+714,978
+745,979
+779,979
+816,980
+855,980
+894,980
+930,979
+963,979
+994,978
+1022,976
+1047,975
+1071,974
+1094,972
+1114,971
+1134,970
+1151,968
+1166,967
+1178,966
+1188,965
+1194,964
+1197,964
+1199,964
+1200,965
+1207,972
+1219,984
+1231,996
+1238,1003
+1239,1004
+1236,1004
+1231,1004
+1220,1004
+1204,1004
+1181,1004
+1151,1004
+1114,1004
+1070,1004
+1020,1004
+966,1004
+907,1004
+847,1004
+788,1004
+729,1004
+675,1004
+625,1004
+581,1004
+544,1004
+514,1004
+491,1004
+475,1004
+464,1004
+459,1004
+456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line: box -->
+<rect x="378" y="1590" width="704" height="14" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="442,1473
+378,1590
+496,1590
+512,1551
+485,1551
+500,1512
+475,1512
+496,1473
+442,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1082,1590
+965,1590
+965,1550
+990,1551
+986,1512
+1004,1512
+1010,1512
+1002,1473
+1050,1473
+1082,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1317,1590
+1281,1590
+1239,1496
+1089,1496
+1082,1473
+1255,1473
+1317,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="1121" y="1590" width="196" height="13" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="1121,1590
+1121,1604
+1081,1484
+1082,1473
+1121,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polyline points="3645,1170
+3645,1260
+3738,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3640,1170
+3735,1170
+3735,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3645,4320
+3645,4410
+3738,4410
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3640,4320
+3735,4320
+3735,4409
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3649,1185
+3730,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,1222
+3730,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,4335
+3730,4336
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,4372
+3730,4372
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="4950,1125
+5400,1125
+5400,5100
+5910,5100
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5400 5100 - 6180 5100-->
+<polygon points="5908 5160
+6148 5100
+5908 5040
+5908 5160
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="6000,1800
+7500,3900
+" style="stroke:#ff0000;stroke-width:30;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7500,1800
+6000,3900
+" style="stroke:#ff0000;stroke-width:30;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="2025" y="2325" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">User One</text>
+<!-- Text -->
+<text xml:space="preserve" x="2175" y="5475" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">User Two</text>
+<!-- Line: box -->
+<rect x="3645" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="3645" y="4343" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/dual_nas_backup_server_redundancy.svg b/doc/antora/modules/tutorials/assets/images/dual_nas_backup_server_redundancy.svg
new file mode 100644 (file)
index 0000000..3c2f92d
--- /dev/null
@@ -0,0 +1,1508 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="5.2in" height="4.8in"
+       viewBox="288 288 6221 5799">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line: box -->
+<rect x="300" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line: box -->
+<rect x="300" y="4050" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1500,1350
+1950,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1500,4500
+1950,4500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="4125,375
+4160,368
+4190,361
+4211,353
+4223,347
+4230,341
+4231,335
+4231,330
+4231,325
+4233,319
+4240,314
+4254,309
+4277,305
+4310,301
+4350,300
+4384,301
+4416,303
+4444,306
+4468,310
+4487,314
+4502,318
+4514,323
+4523,327
+4531,331
+4540,336
+4549,340
+4561,345
+4577,350
+4597,355
+4622,360
+4653,365
+4688,370
+4725,375
+4766,379
+4802,381
+4831,381
+4853,380
+4869,377
+4880,373
+4888,368
+4894,363
+4899,357
+4906,353
+4916,350
+4929,349
+4947,350
+4970,355
+4996,363
+5025,375
+5051,390
+5073,406
+5089,421
+5100,434
+5106,445
+5108,454
+5108,462
+5106,469
+5105,476
+5104,485
+5106,495
+5111,509
+5120,526
+5134,547
+5153,572
+5175,600
+5199,628
+5221,652
+5241,671
+5259,686
+5273,695
+5286,701
+5296,704
+5306,706
+5316,708
+5326,712
+5337,718
+5348,729
+5362,744
+5375,766
+5389,793
+5400,825
+5407,854
+5410,882
+5412,906
+5412,926
+5412,942
+5411,955
+5410,966
+5408,974
+5406,981
+5404,989
+5401,997
+5397,1006
+5391,1019
+5383,1034
+5373,1053
+5360,1075
+5344,1100
+5325,1125
+5303,1149
+5282,1169
+5261,1185
+5244,1197
+5230,1205
+5218,1210
+5209,1212
+5201,1213
+5194,1212
+5186,1212
+5178,1212
+5167,1214
+5154,1217
+5136,1223
+5114,1232
+5088,1244
+5058,1259
+5025,1275
+4992,1291
+4962,1307
+4937,1320
+4917,1331
+4902,1340
+4891,1347
+4884,1353
+4879,1358
+4875,1363
+4871,1367
+4866,1371
+4859,1376
+4848,1382
+4833,1389
+4813,1397
+4788,1406
+4758,1416
+4725,1425
+4688,1433
+4656,1439
+4629,1443
+4609,1445
+4595,1446
+4586,1446
+4579,1445
+4575,1444
+4571,1442
+4564,1441
+4555,1439
+4541,1437
+4521,1435
+4494,1432
+4462,1429
+4425,1425
+4388,1420
+4356,1414
+4330,1409
+4310,1404
+4297,1399
+4289,1395
+4284,1391
+4281,1388
+4278,1384
+4273,1380
+4264,1376
+4250,1371
+4230,1366
+4201,1361
+4166,1355
+4125,1350
+4088,1346
+4053,1344
+4022,1343
+3997,1344
+3977,1346
+3961,1349
+3949,1353
+3940,1358
+3931,1363
+3923,1367
+3914,1371
+3902,1374
+3887,1376
+3868,1376
+3844,1374
+3816,1369
+3784,1361
+3750,1350
+3718,1336
+3690,1322
+3666,1308
+3647,1296
+3632,1285
+3620,1276
+3612,1268
+3605,1261
+3600,1255
+3595,1248
+3589,1241
+3583,1232
+3576,1221
+3567,1207
+3557,1190
+3546,1171
+3535,1149
+3525,1125
+3518,1095
+3516,1070
+3518,1051
+3524,1039
+3532,1032
+3542,1029
+3552,1028
+3562,1026
+3573,1023
+3582,1015
+3591,1002
+3598,981
+3602,952
+3604,918
+3603,886
+3600,856
+3596,831
+3590,809
+3583,792
+3576,779
+3568,768
+3561,759
+3553,749
+3546,738
+3540,726
+3534,710
+3529,691
+3527,669
+3526,644
+3529,618
+3536,593
+3545,573
+3554,561
+3562,555
+3570,553
+3576,554
+3583,558
+3590,561
+3598,563
+3607,563
+3620,560
+3635,552
+3654,540
+3675,525
+3696,509
+3713,494
+3726,482
+3734,472
+3738,464
+3740,458
+3739,453
+3740,448
+3742,442
+3747,435
+3758,426
+3775,416
+3799,404
+3829,393
+3858,385
+3885,379
+3908,375
+3927,373
+3942,373
+3954,374
+3963,377
+3971,379
+3979,382
+3989,384
+4001,386
+4017,387
+4037,386
+4063,384
+4093,380
+4125,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,900
+3600,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,5325
+3000,5325
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,3000
+3000,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="900,1950
+2325,1950
+2325,2850
+2685,2850
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2325 2850 - 2955 2850-->
+<polygon points="2683 2910
+2923 2850
+2683 2790
+2683 2910
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="1950,450
+1950,6075
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="900,5100
+1800,5100
+1800,5550
+2685,5550
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1800 5550 - 2955 5550-->
+<polygon points="2683 5610
+2923 5550
+2683 5490
+2683 5610
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="3900" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">One</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Two</text>
+<!-- Line -->
+<polyline points="300,999
+1510,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,990
+1510,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1007
+1510,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1652
+1510,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1642
+1510,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1659
+1510,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="601,995
+601,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="610,995
+610,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="593,995
+593,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="531,995
+531,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="540,995
+540,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="523,995
+523,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="829,995
+829,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="839,995
+839,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="822,995
+822,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="760,995
+760,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="769,995
+769,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="752,995
+752,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1051,995
+1051,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,995
+1061,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1043,995
+1043,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="981,995
+981,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,995
+990,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="974,995
+974,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1276,995
+1276,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1285,995
+1285,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1269,995
+1269,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1206,995
+1206,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1215,995
+1215,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1198,995
+1198,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1481,995
+1481,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1489,995
+1489,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1473,995
+1473,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1411,995
+1411,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1420,995
+1420,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1402,995
+1402,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="831,995
+831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4149
+1510,4149
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4140
+1510,4140
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4157
+1510,4157
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4802
+1510,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4792
+1510,4792
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4809
+1510,4809
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="601,4145
+601,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="610,4145
+610,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="593,4145
+593,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="531,4145
+531,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="540,4145
+540,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="523,4145
+523,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="829,4145
+829,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="839,4145
+839,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="822,4145
+822,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="760,4145
+760,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="769,4145
+769,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="752,4145
+752,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1051,4145
+1051,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,4145
+1061,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1043,4145
+1043,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="981,4145
+981,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,4145
+990,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="974,4145
+974,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1276,4145
+1276,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1285,4145
+1285,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1269,4145
+1269,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1206,4145
+1206,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1215,4145
+1215,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1198,4145
+1198,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1481,4145
+1481,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1489,4145
+1489,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1473,4145
+1473,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1411,4145
+1411,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1420,4145
+1420,4802
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1402,4145
+1402,4802
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="831,4145
+831,4802
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="4425" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="3000,2566
+3900,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5026" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4993" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5126" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5093" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5226" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5193" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5326" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5293" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5426" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5393" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5528" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5493" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5626" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5594" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5727" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5694" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4793" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4758" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4692" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4658" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4592" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4558" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="5861" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="3000,4891
+3900,4891
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="345,1170
+345,1260
+438,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="340,1170
+435,1170
+435,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="345,4320
+345,4410
+438,4410
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="340,4320
+435,4320
+435,4409
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="349,1185
+430,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,1222
+430,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,4335
+430,4336
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,4372
+430,4372
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="1650,1125
+2100,1125
+2100,5100
+2610,5100
+" style="stroke:#0000b0;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:60 60;"/>
+<!-- Arrowhead on XXXpoint 2100 5100 - 2880 5100-->
+<polygon points="2608 5160
+2848 5100
+2608 5040
+2608 5160
+
+" style="stroke:#0000b0;stroke-width:15;stroke-miterlimit:8;
+fill:#0000b0;"/>
+<!-- Line -->
+<polyline points="1650,4275
+1800,4275
+1800,3300
+2610,3300
+" style="stroke:#0000b0;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:60 60;"/>
+<!-- Arrowhead on XXXpoint 1800 3300 - 2880 3300-->
+<polygon points="2608 3360
+2848 3300
+2608 3240
+2608 3360
+
+" style="stroke:#0000b0;stroke-width:15;stroke-miterlimit:8;
+fill:#0000b0;"/>
+<!-- Line -->
+<polyline points="4125,5550
+4126,5550
+4129,5550
+4133,5550
+4140,5550
+4151,5550
+4165,5551
+4183,5551
+4205,5551
+4232,5551
+4262,5551
+4297,5551
+4336,5550
+4379,5549
+4425,5548
+4475,5547
+4527,5545
+4582,5543
+4640,5540
+4699,5536
+4759,5532
+4821,5527
+4884,5520
+4947,5513
+5010,5505
+5074,5496
+5138,5485
+5202,5473
+5266,5459
+5329,5444
+5392,5427
+5455,5407
+5518,5386
+5580,5362
+5642,5335
+5703,5306
+5764,5273
+5824,5237
+5883,5198
+5940,5156
+5997,5110
+6051,5060
+6102,5006
+6150,4950
+6190,4896
+6227,4840
+6261,4784
+6291,4728
+6318,4673
+6343,4618
+6364,4566
+6383,4515
+6400,4466
+6415,4419
+6427,4375
+6438,4333
+6448,4293
+6456,4256
+6463,4220
+6469,4187
+6473,4155
+6477,4124
+6481,4095
+6483,4067
+6485,4040
+6486,4014
+6487,3988
+6487,3962
+6487,3937
+6486,3911
+6485,3885
+6483,3858
+6481,3830
+6477,3802
+6473,3771
+6469,3740
+6463,3707
+6456,3672
+6448,3635
+6438,3595
+6427,3554
+6415,3511
+6400,3465
+6383,3418
+6364,3369
+6343,3317
+6318,3265
+6291,3212
+6261,3158
+6227,3104
+6190,3051
+6150,3000
+6102,2947
+6051,2898
+5997,2852
+5940,2810
+5883,2771
+5824,2737
+5764,2705
+5703,2677
+5642,2653
+5580,2631
+5518,2611
+5455,2594
+5392,2580
+5329,2567
+5266,2556
+5202,2547
+5138,2540
+5074,2534
+5010,2529
+4947,2526
+4884,2523
+4821,2522
+4759,2521
+4699,2521
+4640,2522
+4582,2523
+4527,2525
+4475,2527
+4425,2529
+4379,2532
+4336,2534
+4297,2537
+4262,2539
+4232,2541
+4205,2543
+4183,2545
+4165,2546
+4151,2548
+4140,2549
+4363,2534
+" style="stroke:#00d100;stroke-width:15;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4140 2549 - 4095 2551-->
+<polygon points="4364 2479
+4127 2550
+4369 2599
+4364 2479
+
+" style="stroke:#00d100;stroke-width:15;stroke-miterlimit:8;
+fill:#00d100;"/>
+<!-- Line -->
+<polyline points="4125,3000
+4126,3000
+4129,3000
+4133,3000
+4141,3000
+4151,2999
+4165,2999
+4183,2999
+4205,2999
+4230,2998
+4260,2998
+4293,2998
+4330,2998
+4370,2999
+4413,2999
+4459,3000
+4506,3002
+4556,3004
+4607,3006
+4659,3009
+4712,3013
+4766,3018
+4820,3023
+4874,3030
+4929,3037
+4983,3046
+5037,3056
+5091,3068
+5145,3081
+5199,3096
+5252,3112
+5305,3131
+5358,3152
+5411,3176
+5462,3202
+5513,3231
+5563,3263
+5611,3297
+5657,3335
+5700,3375
+5739,3417
+5775,3461
+5807,3504
+5836,3548
+5861,3590
+5883,3631
+5902,3669
+5919,3706
+5934,3741
+5947,3773
+5958,3803
+5967,3832
+5975,3858
+5982,3882
+5988,3905
+5993,3927
+5998,3948
+6001,3968
+6004,3987
+6006,4006
+6008,4025
+6009,4045
+6009,4065
+6009,4086
+6008,4107
+6006,4131
+6003,4155
+5999,4182
+5994,4210
+5987,4241
+5979,4274
+5968,4309
+5955,4347
+5939,4386
+5921,4428
+5899,4471
+5874,4516
+5845,4561
+5812,4606
+5775,4650
+5734,4692
+5689,4732
+5641,4768
+5592,4803
+5540,4834
+5488,4863
+5434,4889
+5380,4912
+5325,4934
+5269,4953
+5213,4970
+5157,4986
+5100,5000
+5043,5013
+4986,5024
+4928,5034
+4871,5043
+4813,5051
+4756,5058
+4699,5065
+4643,5070
+4589,5075
+4536,5080
+4484,5083
+4435,5087
+4389,5089
+4346,5092
+4306,5094
+4270,5095
+4238,5097
+4211,5098
+4187,5098
+4168,5099
+4153,5099
+4142,5100
+4364,5100
+" style="stroke:#00d100;stroke-width:15;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4142 5100 - 4095 5100-->
+<polygon points="4367 5040
+4127 5100
+4367 5160
+4367 5040
+
+" style="stroke:#00d100;stroke-width:15;stroke-miterlimit:8;
+fill:#00d100;"/>
+<!-- Text -->
+<text xml:space="preserve" x="5025" y="4050" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Copy</text>
+<!-- Line: box -->
+<rect x="345" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="345" y="4343" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/dual_nas_load_balance.svg b/doc/antora/modules/tutorials/assets/images/dual_nas_load_balance.svg
new file mode 100644 (file)
index 0000000..db3a07c
--- /dev/null
@@ -0,0 +1,2402 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="9.9in" height="7.0in"
+       viewBox="288 330 11884 8392">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="1650,1200
+2250,1200
+2250,2850
+1650,2850
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2250,2250
+2685,2250
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2250 2250 - 2955 2250-->
+<polygon points="2683 2310
+2923 2250
+2683 2190
+2683 2310
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="1650,4500
+2250,4500
+2250,6150
+1650,6150
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2250,5550
+2685,5550
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2250 5550 - 2955 5550-->
+<polygon points="2683 5610
+2923 5550
+2683 5490
+2683 5610
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line: box -->
+<rect x="300" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line: box -->
+<rect x="300" y="2550" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line: box -->
+<rect x="300" y="4200" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line: box -->
+<rect x="300" y="5850" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1500,1350
+1950,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1500,3000
+1950,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1500,4650
+1950,4650
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1500,6300
+1950,6300
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,450
+1950,6300
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4500,900
+6300,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,2475
+3000,2475
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4500,900
+4500,5775
+3900,5775
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,5775
+3000,5775
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="2400" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="4050" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="5700" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3075" y="1350" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">One</text>
+<!-- Text -->
+<text xml:space="preserve" x="3075" y="4575" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Two</text>
+<!-- Line -->
+<polyline points="300,999
+1510,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,990
+1510,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1007
+1510,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1652
+1510,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1642
+1510,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1659
+1510,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="601,995
+601,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="610,995
+610,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="593,995
+593,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="531,995
+531,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="540,995
+540,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="523,995
+523,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="829,995
+829,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="839,995
+839,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="822,995
+822,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="760,995
+760,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="769,995
+769,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="752,995
+752,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1051,995
+1051,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,995
+1061,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1043,995
+1043,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="981,995
+981,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,995
+990,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="974,995
+974,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1276,995
+1276,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1285,995
+1285,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1269,995
+1269,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1206,995
+1206,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1215,995
+1215,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1198,995
+1198,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1481,995
+1481,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1489,995
+1489,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1473,995
+1473,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1411,995
+1411,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1420,995
+1420,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1402,995
+1402,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="831,995
+831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,2649
+1510,2649
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,2640
+1510,2640
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,2657
+1510,2657
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,3302
+1510,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,3292
+1510,3292
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,3309
+1510,3309
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="601,2645
+601,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="610,2645
+610,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="593,2645
+593,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="531,2645
+531,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="540,2645
+540,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="523,2645
+523,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="829,2645
+829,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="839,2645
+839,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="822,2645
+822,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="760,2645
+760,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="769,2645
+769,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="752,2645
+752,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1051,2645
+1051,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,2645
+1061,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1043,2645
+1043,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="981,2645
+981,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,2645
+990,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="974,2645
+974,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1276,2645
+1276,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1285,2645
+1285,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1269,2645
+1269,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1206,2645
+1206,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1215,2645
+1215,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1198,2645
+1198,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1481,2645
+1481,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1489,2645
+1489,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1473,2645
+1473,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1411,2645
+1411,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1420,2645
+1420,3302
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1402,2645
+1402,3302
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="831,2645
+831,3302
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4299
+1510,4299
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4290
+1510,4290
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4307
+1510,4307
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4952
+1510,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4942
+1510,4942
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4959
+1510,4959
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="601,4295
+601,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="610,4295
+610,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="593,4295
+593,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="531,4295
+531,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="540,4295
+540,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="523,4295
+523,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="829,4295
+829,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="839,4295
+839,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="822,4295
+822,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="760,4295
+760,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="769,4295
+769,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="752,4295
+752,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1051,4295
+1051,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,4295
+1061,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1043,4295
+1043,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="981,4295
+981,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,4295
+990,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="974,4295
+974,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1276,4295
+1276,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1285,4295
+1285,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1269,4295
+1269,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1206,4295
+1206,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1215,4295
+1215,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1198,4295
+1198,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1481,4295
+1481,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1489,4295
+1489,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1473,4295
+1473,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1411,4295
+1411,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1420,4295
+1420,4952
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1402,4295
+1402,4952
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="831,4295
+831,4952
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,5949
+1510,5949
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,5940
+1510,5940
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,5957
+1510,5957
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,6602
+1510,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,6592
+1510,6592
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,6609
+1510,6609
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="601,5945
+601,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="610,5945
+610,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="593,5945
+593,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="531,5945
+531,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="540,5945
+540,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="523,5945
+523,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="829,5945
+829,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="839,5945
+839,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="822,5945
+822,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="760,5945
+760,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="769,5945
+769,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="752,5945
+752,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1051,5945
+1051,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,5945
+1061,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1043,5945
+1043,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="981,5945
+981,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,5945
+990,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="974,5945
+974,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1276,5945
+1276,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1285,5945
+1285,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1269,5945
+1269,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1206,5945
+1206,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1215,5945
+1215,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1198,5945
+1198,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1481,5945
+1481,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1489,5945
+1489,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1473,5945
+1473,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1411,5945
+1411,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1420,5945
+1420,6602
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1402,5945
+1402,6602
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="831,5945
+831,6602
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="1500" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="4725" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="900" width="600" height="1046" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="2100" width="600" height="1046" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="3300" width="600" height="1046" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="4500" width="600" height="1046" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="5700" width="600" height="1046" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2101" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2201" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2168" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2301" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2268" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2401" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2368" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2501" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2468" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2603" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2568" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2701" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2669" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2802" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="2769" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="1868" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="1833" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="1767" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="1733" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="1667" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="1633" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="2936" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="3000,1966
+3900,1966
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5326" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5293" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5426" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5393" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5526" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5493" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5626" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5593" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5726" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5693" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5828" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5793" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5926" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5894" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="6027" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5994" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5093" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="5058" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4992" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4958" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4892" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="3100" y="4858" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="6161" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="3000,5191
+3900,5191
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1301" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1279" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1367" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1345" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1434" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1412" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1501" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1479" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1567" width="466" height="24" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1545" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1635" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1612" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1701" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1679" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1768" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1746" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1145" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1122" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1078" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1055" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="1011" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="989" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="1857" width="600" height="89" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6900,1211
+7500,1211
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2501" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2479" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2567" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2545" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2634" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2612" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2701" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2679" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2767" width="466" height="24" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2745" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2835" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2812" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2901" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2879" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2968" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2946" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2345" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2322" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2278" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2255" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2211" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="2189" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="3057" width="600" height="89" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6900,2411
+7500,2411
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3701" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3679" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3767" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3745" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3834" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3812" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3901" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3879" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3967" width="466" height="24" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3945" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4035" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4012" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4101" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4079" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4168" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4146" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3545" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3522" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3478" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3455" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3411" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="3389" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="4257" width="600" height="89" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6900,3611
+7500,3611
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4901" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4879" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4967" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4945" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5034" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5012" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5101" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5079" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5167" width="466" height="24" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5145" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5235" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5212" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5301" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5279" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5368" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5346" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4745" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4722" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4678" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4655" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4611" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="4589" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="5457" width="600" height="89" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6900,4811
+7500,4811
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6101" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6079" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6167" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6145" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6234" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6212" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6301" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6279" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6367" width="466" height="24" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6345" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6435" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6412" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6501" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6479" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6568" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="6546" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5945" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5922" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5878" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5855" width="466" height="23" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5811" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6967" y="5789" width="466" height="22" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6900" y="6657" width="600" height="89" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6900,6011
+7500,6011
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="345,1170
+345,1260
+438,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="340,1170
+435,1170
+435,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="345,2820
+345,2910
+438,2910
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="340,2820
+435,2820
+435,2909
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="345,4470
+345,4560
+438,4560
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="340,4470
+435,4470
+435,4559
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="345,6120
+345,6210
+438,6210
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="340,6120
+435,6120
+435,6209
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="349,1185
+430,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,1222
+430,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,2835
+430,2836
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,2872
+430,2872
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,4485
+430,4486
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,4522
+430,4522
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,6135
+430,6136
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,6172
+430,6172
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="4950,1125
+5310,1125
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4950 1125 - 5580 1125-->
+<polygon points="5308 1185
+5548 1125
+5308 1065
+5308 1185
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="6300,750
+6300,6900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="12150,8700
+" style="stroke:#000000;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4050,2325
+4725,2325
+4725,1125
+6150,1125
+6150,6600
+" style="stroke:#0000d1;stroke-width:45;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4050,5550
+4725,5550
+4725,2325
+" style="stroke:#0000d1;stroke-width:45;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4725,4200
+4725,3539
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4725 4200 - 4725 3270-->
+<polygon points="4785 3542
+4725 3302
+4665 3542
+4785 3542
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="3900,2475
+4500,2475
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6300,1500
+6900,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6300,2700
+6900,2700
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6300,5100
+6900,5100
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6300,6300
+6900,6300
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6300,3900
+6900,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6150,3000
+6585,3000
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6150 3000 - 6855 3000-->
+<polygon points="6583 3060
+6823 3000
+6583 2940
+6583 3060
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="6150,4125
+6585,4125
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6150 4125 - 6855 4125-->
+<polygon points="6583 4185
+6823 4125
+6583 4065
+6583 4185
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="6150,1800
+6585,1800
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6150 1800 - 6855 1800-->
+<polygon points="6583 1860
+6823 1800
+6583 1740
+6583 1860
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="6150,6600
+6585,6600
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6150 6600 - 6855 6600-->
+<polygon points="6583 6660
+6823 6600
+6583 6540
+6583 6660
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="6150,5400
+6585,5400
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6150 5400 - 6855 5400-->
+<polygon points="6583 5460
+6823 5400
+6583 5340
+6583 5460
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Text -->
+<text xml:space="preserve" x="2850" y="750" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">Proxies</text>
+<!-- Text -->
+<text xml:space="preserve" x="6000" y="600" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">Server Pool</text>
+<!-- Line: box -->
+<rect x="345" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="345" y="2843" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="345" y="4493" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="345" y="6143" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/eap-md5.svg b/doc/antora/modules/tutorials/assets/images/eap-md5.svg
new file mode 100644 (file)
index 0000000..f3391af
--- /dev/null
@@ -0,0 +1,157 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="5.7in" height="4.1in"
+       viewBox="735 224 6841 4883">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="3075,1200
+4757,1480
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3075 1200 - 4889 1502-->
+<polygon points="4749 1508
+4873 1499
+4759 1449
+4749 1508
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4881,1761
+3198,2041
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4881 1761 - 3066 2063-->
+<polygon points="3195 2010
+3082 2060
+3205 2069
+3195 2010
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4883,2974
+3200,3254
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4883 2974 - 3068 3276-->
+<polygon points="3197 3223
+3084 3273
+3207 3282
+3197 3223
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="3073,2412
+4755,2692
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3073 2412 - 4887 2714-->
+<polygon points="4747 2720
+4871 2711
+4757 2661
+4747 2720
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4883,4174
+3200,4454
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4883 4174 - 3068 4476-->
+<polygon points="3197 4423
+3084 4473
+3207 4482
+3197 4423
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="3073,3612
+4755,3892
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3073 3612 - 4887 3914-->
+<polygon points="4747 3920
+4871 3911
+4757 3861
+4747 3920
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line: box -->
+<rect x="3825" y="675" width="150" height="4125" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:40 40;"/>
+<!-- Line -->
+<polyline points="3975,4950
+4155,4950
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3975 4950 - 4290 4950-->
+<polygon points="4154 4980
+4274 4950
+4154 4920
+4154 4980
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="3825,4950
+3644,4950
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3825 4950 - 3510 4950-->
+<polygon points="3646 4920
+3526 4950
+3646 4980
+3646 4920
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line: box -->
+<rect x="7500" y="225" width="75" height="150" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="4950" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">EAP-Success</text>
+<!-- Text -->
+<text xml:space="preserve" x="4950" y="2925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">EAP-MD5 challenge</text>
+<!-- Text -->
+<text xml:space="preserve" x="4950" y="1725" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">EAP-Identity request</text>
+<!-- Text -->
+<text xml:space="preserve" x="825" y="2325" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">EAP-Identity "bob"</text>
+<!-- Text -->
+<text xml:space="preserve" x="1725" y="1275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">EAP-Start</text>
+<!-- Text -->
+<text xml:space="preserve" x="750" y="3525" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">EAP-MD5 response</text>
+<!-- Text -->
+<text xml:space="preserve" x="2925" y="5025" fill="#000000"  font-family="Times" font-style="italic" font-weight="bold" font-size="192" text-anchor="start">EAP</text>
+<!-- Text -->
+<text xml:space="preserve" x="4350" y="5025" fill="#000000"  font-family="Times" font-style="italic" font-weight="bold" font-size="192" text-anchor="start">RADIUS + EAP-Message</text>
+<!-- Text -->
+<text xml:space="preserve" x="1050" y="600" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">EAP client</text>
+<!-- Text -->
+<text xml:space="preserve" x="5025" y="600" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">RADIUS server</text>
+<!-- Text -->
+<text xml:space="preserve" x="3750" y="600" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">AP</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/eap-ttls.svg b/doc/antora/modules/tutorials/assets/images/eap-ttls.svg
new file mode 100644 (file)
index 0000000..0dd3d25
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="4.0in" height="3.5in"
+       viewBox="1188 288 4824 4224">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="1200,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,2100
+6000,2100
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,2700
+6000,2700
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,3300
+6000,3300
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,3300
+3600,4500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,1500
+6000,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,3900
+6000,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1200" y="300" width="4800" height="4200" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="1800" y="3825" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">PAP, CHAP,</text>
+<!-- Text -->
+<text xml:space="preserve" x="1800" y="4050" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">MS-CHAP, etc.</text>
+<!-- Text -->
+<text xml:space="preserve" x="1575" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Carrier Protocol (PPP, EAPOL, RADIUS, Diameter, etc</text>
+<!-- Text -->
+<text xml:space="preserve" x="3300" y="1275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP</text>
+<!-- Text -->
+<text xml:space="preserve" x="3300" y="2400" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">TLS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3075" y="1875" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP-TTLS</text>
+<!-- Text -->
+<text xml:space="preserve" x="2700" y="3075" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Diameter-style attributes</text>
+<!-- Text -->
+<text xml:space="preserve" x="4575" y="3675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP</text>
+<!-- Text -->
+<text xml:space="preserve" x="4350" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP-MD5, etc.</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/login.svg b/doc/antora/modules/tutorials/assets/images/login.svg
new file mode 100644 (file)
index 0000000..f506604
--- /dev/null
@@ -0,0 +1,1656 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.3in" height="3.0in"
+       viewBox="288 288 7536 3624">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polygon points="1784,1215
+1515,1408
+1515,1561
+2283,1638
+2283,1484
+2437,1254
+1784,1215
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#aaaaaa;
+"/>
+<!-- Line: box -->
+<rect x="1899" y="1484" width="231" height="62" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1554" y="1488" width="38" height="23" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polygon points="2283,1484
+2283,1638
+2437,1369
+2437,1254
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2283,1599
+1515,1523
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1596
+2245,1519
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1784,1550
+1784,1473
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1557
+1784,1511
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1535" y="1448" width="77" height="46" rx="0" 
+style="stroke:#ff0000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#ff0000;
+"/>
+<!-- Line: box -->
+<rect x="2168" y="1511" width="58" height="25" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2206,1592
+2206,1553
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2168,1588
+2168,1550
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1515,1408
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1544,1410
+1808,1217
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1572,1413
+1833,1218
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1601,1416
+1857,1220
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1629,1419
+1881,1221
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1658,1422
+1905,1222
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1686,1425
+1929,1224
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1715,1427
+1953,1226
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1743,1430
+1977,1227
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1771,1433
+2002,1228
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1800,1436
+2026,1230
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1828,1439
+2050,1231
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1857,1442
+2074,1232
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1885,1444
+2098,1234
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1914,1447
+2122,1235
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1942,1450
+2147,1237
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1970,1453
+2171,1238
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1999,1456
+2195,1239
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2027,1459
+2219,1241
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2056,1461
+2243,1243
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2084,1464
+2267,1244
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2113,1467
+2292,1245
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2141,1470
+2316,1247
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2170,1473
+2340,1248
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2198,1476
+2365,1250
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2226,1478
+2388,1251
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2255,1482
+2412,1252
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1546,1526
+1546,1564
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1577,1529
+1577,1567
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1608,1531
+1608,1570
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1639,1535
+1639,1573
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1669,1538
+1669,1577
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1700,1541
+1700,1579
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1731,1544
+1731,1582
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1761,1547
+1761,1586
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1792,1550
+1792,1588
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1823,1553
+1823,1592
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1853,1556
+1853,1595
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1884,1560
+1884,1598
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1915,1562
+1915,1601
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1946,1565
+1946,1604
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1976,1569
+1976,1607
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2007,1572
+2007,1610
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2038,1575
+2038,1613
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2068,1578
+2068,1616
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2099,1581
+2099,1619
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2130,1584
+2130,1622
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2161,1587
+2161,1625
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2191,1590
+2191,1629
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2222,1593
+2222,1631
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2253,1596
+2253,1634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2283,1523
+1515,1446
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1200,1275
+1800,1275
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="6525,375
+6560,368
+6590,361
+6611,353
+6623,347
+6630,341
+6631,335
+6631,330
+6631,325
+6633,319
+6640,314
+6654,309
+6677,305
+6710,301
+6750,300
+6784,301
+6816,303
+6844,306
+6868,310
+6887,314
+6902,318
+6914,323
+6923,327
+6931,331
+6940,336
+6949,340
+6961,345
+6977,350
+6997,355
+7022,360
+7053,365
+7088,370
+7125,375
+7166,379
+7202,381
+7231,381
+7253,380
+7269,377
+7280,373
+7288,368
+7294,363
+7299,357
+7306,353
+7316,350
+7329,349
+7347,350
+7370,355
+7396,363
+7425,375
+7451,390
+7473,406
+7489,421
+7500,434
+7506,445
+7508,454
+7508,462
+7506,469
+7505,476
+7504,485
+7506,495
+7511,509
+7520,526
+7534,547
+7553,572
+7575,600
+7599,628
+7621,652
+7641,671
+7659,686
+7673,695
+7686,701
+7696,704
+7706,706
+7716,708
+7726,712
+7737,718
+7748,729
+7762,744
+7775,766
+7789,793
+7800,825
+7807,854
+7810,882
+7812,906
+7812,926
+7812,942
+7811,955
+7810,966
+7808,974
+7806,981
+7804,989
+7801,997
+7797,1006
+7791,1019
+7783,1034
+7773,1053
+7760,1075
+7744,1100
+7725,1125
+7703,1149
+7682,1169
+7661,1185
+7644,1197
+7630,1205
+7618,1210
+7609,1212
+7601,1213
+7594,1212
+7586,1212
+7578,1212
+7567,1214
+7554,1217
+7536,1223
+7514,1232
+7488,1244
+7458,1259
+7425,1275
+7392,1291
+7362,1307
+7337,1320
+7317,1331
+7302,1340
+7291,1347
+7284,1353
+7279,1358
+7275,1363
+7271,1367
+7266,1371
+7259,1376
+7248,1382
+7233,1389
+7213,1397
+7188,1406
+7158,1416
+7125,1425
+7088,1433
+7056,1439
+7029,1443
+7009,1445
+6995,1446
+6986,1446
+6979,1445
+6975,1444
+6971,1442
+6964,1441
+6955,1439
+6941,1437
+6921,1435
+6894,1432
+6862,1429
+6825,1425
+6788,1420
+6756,1414
+6730,1409
+6710,1404
+6697,1399
+6689,1395
+6684,1391
+6681,1388
+6678,1384
+6673,1380
+6664,1376
+6650,1371
+6630,1366
+6601,1361
+6566,1355
+6525,1350
+6488,1346
+6453,1344
+6422,1343
+6397,1344
+6377,1346
+6361,1349
+6349,1353
+6340,1358
+6331,1363
+6323,1367
+6314,1371
+6302,1374
+6287,1376
+6268,1376
+6244,1374
+6216,1369
+6184,1361
+6150,1350
+6118,1336
+6090,1322
+6066,1308
+6047,1296
+6032,1285
+6020,1276
+6012,1268
+6005,1261
+6000,1255
+5995,1248
+5989,1241
+5983,1232
+5976,1221
+5967,1207
+5957,1190
+5946,1171
+5935,1149
+5925,1125
+5918,1095
+5916,1070
+5918,1051
+5924,1039
+5932,1032
+5942,1029
+5952,1028
+5962,1026
+5973,1023
+5982,1015
+5991,1002
+5998,981
+6002,952
+6004,918
+6003,886
+6000,856
+5996,831
+5990,809
+5983,792
+5976,779
+5968,768
+5961,759
+5953,749
+5946,738
+5940,726
+5934,710
+5929,691
+5927,669
+5926,644
+5929,618
+5936,593
+5945,573
+5954,561
+5962,555
+5970,553
+5976,554
+5983,558
+5990,561
+5998,563
+6007,563
+6020,560
+6035,552
+6054,540
+6075,525
+6096,509
+6113,494
+6126,482
+6134,472
+6138,464
+6140,458
+6139,453
+6140,448
+6142,442
+6147,435
+6158,426
+6175,416
+6199,404
+6229,393
+6258,385
+6285,379
+6308,375
+6327,373
+6342,373
+6354,374
+6363,377
+6371,379
+6379,382
+6389,384
+6401,386
+6417,387
+6437,386
+6463,384
+6493,380
+6525,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4800,1350
+5250,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,375
+5250,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,3000
+5700,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4200,1950
+5025,1950
+5025,3300
+5385,3300
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5025 3300 - 5655 3300-->
+<polygon points="5383 3360
+5623 3300
+5383 3240
+5383 3360
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="750,1950
+3360,1950
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 750 1950 - 3630 1950-->
+<polygon points="3358 2010
+3598 1950
+3358 1890
+3358 2010
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="2325,1500
+2775,1500
+2850,1275
+3000,1725
+3075,1500
+3600,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="6225" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="5700" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Server</text>
+<!-- Text -->
+<text xml:space="preserve" x="3525" y="2475" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">RADIUS</text>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="2475" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">PPP</text>
+<!-- Text -->
+<text xml:space="preserve" x="1650" y="2925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Username "bob"</text>
+<!-- Text -->
+<text xml:space="preserve" x="1650" y="3225" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Password "bob"</text>
+<!-- Line: box -->
+<rect x="652" y="1082" width="391" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="613" y="1121" width="469" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="378" y="300" width="939" height="782" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polygon points="417,1433
+1278,1433
+1395,1629
+1395,1668
+300,1668
+300,1629
+417,1433
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="1180" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1160" width="899" height="216" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polyline points="3600,999
+4810,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,990
+4810,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1007
+4810,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1652
+4810,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1642
+4810,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1659
+4810,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3901,995
+3901,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3910,995
+3910,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3893,995
+3893,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3831,995
+3831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3840,995
+3840,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3823,995
+3823,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4129,995
+4129,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4139,995
+4139,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4122,995
+4122,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4060,995
+4060,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4069,995
+4069,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4052,995
+4052,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4351,995
+4351,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4361,995
+4361,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4343,995
+4343,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4281,995
+4281,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4290,995
+4290,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4274,995
+4274,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4576,995
+4576,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4585,995
+4585,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4569,995
+4569,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4506,995
+4506,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4515,995
+4515,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4498,995
+4498,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4781,995
+4781,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4789,995
+4789,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4773,995
+4773,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4711,995
+4711,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4720,995
+4720,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4702,995
+4702,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4131,995
+4131,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5700" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="300,1629
+300,1668
+1395,1668
+1395,1629
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1473
+378,1590
+1082,1590
+1043,1473
+456,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polygon points="1239,1473
+1082,1473
+1121,1590
+1317,1590
+1239,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+976,1220
+1061,1220
+1061,1201
+1166,1201
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1061,1240
+1166,1240
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1220
+1250,1220
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1201
+1166,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+1061,1240
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1166,1279
+1166,1240
+1250,1240
+1250,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1229,1279
+1229,1259
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1187,1259
+1229,1259
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5700" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="5700,2566
+6600,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+496,961
+496,955
+496,943
+496,925
+496,900
+496,869
+496,831
+496,787
+496,740
+496,690
+496,641
+496,594
+496,550
+496,512
+496,481
+496,456
+496,438
+496,426
+496,420
+496,417
+495,416
+488,409
+476,397
+464,386
+457,379
+456,378
+456,381
+456,386
+456,397
+456,413
+456,436
+456,465
+456,501
+456,543
+456,589
+456,639
+456,691
+456,743
+456,793
+456,839
+456,881
+456,917
+456,946
+456,969
+456,985
+456,996
+456,1001
+456,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1239,1004
+1238,1003
+1231,996
+1219,984
+1207,972
+1200,965
+1199,964
+1199,961
+1199,955
+1199,943
+1199,925
+1199,900
+1199,869
+1199,831
+1199,787
+1199,740
+1199,690
+1199,641
+1199,594
+1199,550
+1199,512
+1199,481
+1199,456
+1199,438
+1199,426
+1199,420
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1239,381
+1239,386
+1239,397
+1239,413
+1239,436
+1239,465
+1239,501
+1239,543
+1239,589
+1239,639
+1239,691
+1239,743
+1239,793
+1239,839
+1239,881
+1239,917
+1239,946
+1239,969
+1239,985
+1239,996
+1239,1001
+1239,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="496,417
+498,417
+502,417
+508,416
+518,415
+532,414
+548,413
+567,412
+587,410
+609,409
+633,408
+658,406
+685,405
+714,404
+745,403
+779,403
+816,402
+855,402
+894,402
+930,403
+963,403
+994,404
+1022,405
+1047,406
+1071,408
+1094,409
+1114,410
+1134,412
+1151,413
+1166,414
+1178,415
+1188,416
+1194,417
+1197,417
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1236,378
+1231,378
+1220,378
+1204,378
+1181,378
+1151,378
+1114,378
+1070,378
+1020,378
+966,378
+907,378
+847,378
+788,378
+729,378
+675,378
+625,378
+581,378
+544,378
+514,378
+491,378
+475,378
+464,378
+459,378
+456,378
+457,379
+464,386
+476,398
+488,409
+495,416
+496,417
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="496,964
+498,964
+502,964
+508,965
+518,966
+532,967
+548,968
+567,970
+587,971
+609,972
+633,974
+658,975
+685,976
+714,978
+745,979
+779,979
+816,980
+855,980
+894,980
+930,979
+963,979
+994,978
+1022,976
+1047,975
+1071,974
+1094,972
+1114,971
+1134,970
+1151,968
+1166,967
+1178,966
+1188,965
+1194,964
+1197,964
+1199,964
+1200,965
+1207,972
+1219,984
+1231,996
+1238,1003
+1239,1004
+1236,1004
+1231,1004
+1220,1004
+1204,1004
+1181,1004
+1151,1004
+1114,1004
+1070,1004
+1020,1004
+966,1004
+907,1004
+847,1004
+788,1004
+729,1004
+675,1004
+625,1004
+581,1004
+544,1004
+514,1004
+491,1004
+475,1004
+464,1004
+459,1004
+456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line: box -->
+<rect x="378" y="1590" width="704" height="14" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="442,1473
+378,1590
+496,1590
+512,1551
+485,1551
+500,1512
+475,1512
+496,1473
+442,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1082,1590
+965,1590
+965,1550
+990,1551
+986,1512
+1004,1512
+1010,1512
+1002,1473
+1050,1473
+1082,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1317,1590
+1281,1590
+1239,1496
+1089,1496
+1082,1473
+1255,1473
+1317,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="1121" y="1590" width="196" height="13" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="1121,1590
+1121,1604
+1081,1484
+1082,1473
+1121,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polyline points="3645,1170
+3645,1260
+3738,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3640,1170
+3735,1170
+3735,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3649,1185
+3730,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,1222
+3730,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="3645" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/login_net_access.svg b/doc/antora/modules/tutorials/assets/images/login_net_access.svg
new file mode 100644 (file)
index 0000000..f992581
--- /dev/null
@@ -0,0 +1,1650 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.3in" height="3.0in"
+       viewBox="288 288 7536 3624">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polygon points="1784,1215
+1515,1408
+1515,1561
+2283,1638
+2283,1484
+2437,1254
+1784,1215
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#aaaaaa;
+"/>
+<!-- Line: box -->
+<rect x="1899" y="1484" width="231" height="62" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1554" y="1488" width="38" height="23" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polygon points="2283,1484
+2283,1638
+2437,1369
+2437,1254
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2283,1599
+1515,1523
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1596
+2245,1519
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1784,1550
+1784,1473
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1557
+1784,1511
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1535" y="1448" width="77" height="46" rx="0" 
+style="stroke:#ff0000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#ff0000;
+"/>
+<!-- Line: box -->
+<rect x="2168" y="1511" width="58" height="25" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2206,1592
+2206,1553
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2168,1588
+2168,1550
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1515,1408
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1544,1410
+1808,1217
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1572,1413
+1833,1218
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1601,1416
+1857,1220
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1629,1419
+1881,1221
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1658,1422
+1905,1222
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1686,1425
+1929,1224
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1715,1427
+1953,1226
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1743,1430
+1977,1227
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1771,1433
+2002,1228
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1800,1436
+2026,1230
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1828,1439
+2050,1231
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1857,1442
+2074,1232
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1885,1444
+2098,1234
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1914,1447
+2122,1235
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1942,1450
+2147,1237
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1970,1453
+2171,1238
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1999,1456
+2195,1239
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2027,1459
+2219,1241
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2056,1461
+2243,1243
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2084,1464
+2267,1244
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2113,1467
+2292,1245
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2141,1470
+2316,1247
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2170,1473
+2340,1248
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2198,1476
+2365,1250
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2226,1478
+2388,1251
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2255,1482
+2412,1252
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1546,1526
+1546,1564
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1577,1529
+1577,1567
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1608,1531
+1608,1570
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1639,1535
+1639,1573
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1669,1538
+1669,1577
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1700,1541
+1700,1579
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1731,1544
+1731,1582
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1761,1547
+1761,1586
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1792,1550
+1792,1588
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1823,1553
+1823,1592
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1853,1556
+1853,1595
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1884,1560
+1884,1598
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1915,1562
+1915,1601
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1946,1565
+1946,1604
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1976,1569
+1976,1607
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2007,1572
+2007,1610
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2038,1575
+2038,1613
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2068,1578
+2068,1616
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2099,1581
+2099,1619
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2130,1584
+2130,1622
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2161,1587
+2161,1625
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2191,1590
+2191,1629
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2222,1593
+2222,1631
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2253,1596
+2253,1634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2283,1523
+1515,1446
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="1950" y="2475" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Accessing  the network</text>
+<!-- Line: box -->
+<rect x="3600" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1200,1275
+1800,1275
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="6525,375
+6560,368
+6590,361
+6611,353
+6623,347
+6630,341
+6631,335
+6631,330
+6631,325
+6633,319
+6640,314
+6654,309
+6677,305
+6710,301
+6750,300
+6784,301
+6816,303
+6844,306
+6868,310
+6887,314
+6902,318
+6914,323
+6923,327
+6931,331
+6940,336
+6949,340
+6961,345
+6977,350
+6997,355
+7022,360
+7053,365
+7088,370
+7125,375
+7166,379
+7202,381
+7231,381
+7253,380
+7269,377
+7280,373
+7288,368
+7294,363
+7299,357
+7306,353
+7316,350
+7329,349
+7347,350
+7370,355
+7396,363
+7425,375
+7451,390
+7473,406
+7489,421
+7500,434
+7506,445
+7508,454
+7508,462
+7506,469
+7505,476
+7504,485
+7506,495
+7511,509
+7520,526
+7534,547
+7553,572
+7575,600
+7599,628
+7621,652
+7641,671
+7659,686
+7673,695
+7686,701
+7696,704
+7706,706
+7716,708
+7726,712
+7737,718
+7748,729
+7762,744
+7775,766
+7789,793
+7800,825
+7807,854
+7810,882
+7812,906
+7812,926
+7812,942
+7811,955
+7810,966
+7808,974
+7806,981
+7804,989
+7801,997
+7797,1006
+7791,1019
+7783,1034
+7773,1053
+7760,1075
+7744,1100
+7725,1125
+7703,1149
+7682,1169
+7661,1185
+7644,1197
+7630,1205
+7618,1210
+7609,1212
+7601,1213
+7594,1212
+7586,1212
+7578,1212
+7567,1214
+7554,1217
+7536,1223
+7514,1232
+7488,1244
+7458,1259
+7425,1275
+7392,1291
+7362,1307
+7337,1320
+7317,1331
+7302,1340
+7291,1347
+7284,1353
+7279,1358
+7275,1363
+7271,1367
+7266,1371
+7259,1376
+7248,1382
+7233,1389
+7213,1397
+7188,1406
+7158,1416
+7125,1425
+7088,1433
+7056,1439
+7029,1443
+7009,1445
+6995,1446
+6986,1446
+6979,1445
+6975,1444
+6971,1442
+6964,1441
+6955,1439
+6941,1437
+6921,1435
+6894,1432
+6862,1429
+6825,1425
+6788,1420
+6756,1414
+6730,1409
+6710,1404
+6697,1399
+6689,1395
+6684,1391
+6681,1388
+6678,1384
+6673,1380
+6664,1376
+6650,1371
+6630,1366
+6601,1361
+6566,1355
+6525,1350
+6488,1346
+6453,1344
+6422,1343
+6397,1344
+6377,1346
+6361,1349
+6349,1353
+6340,1358
+6331,1363
+6323,1367
+6314,1371
+6302,1374
+6287,1376
+6268,1376
+6244,1374
+6216,1369
+6184,1361
+6150,1350
+6118,1336
+6090,1322
+6066,1308
+6047,1296
+6032,1285
+6020,1276
+6012,1268
+6005,1261
+6000,1255
+5995,1248
+5989,1241
+5983,1232
+5976,1221
+5967,1207
+5957,1190
+5946,1171
+5935,1149
+5925,1125
+5918,1095
+5916,1070
+5918,1051
+5924,1039
+5932,1032
+5942,1029
+5952,1028
+5962,1026
+5973,1023
+5982,1015
+5991,1002
+5998,981
+6002,952
+6004,918
+6003,886
+6000,856
+5996,831
+5990,809
+5983,792
+5976,779
+5968,768
+5961,759
+5953,749
+5946,738
+5940,726
+5934,710
+5929,691
+5927,669
+5926,644
+5929,618
+5936,593
+5945,573
+5954,561
+5962,555
+5970,553
+5976,554
+5983,558
+5990,561
+5998,563
+6007,563
+6020,560
+6035,552
+6054,540
+6075,525
+6096,509
+6113,494
+6126,482
+6134,472
+6138,464
+6140,458
+6139,453
+6140,448
+6142,442
+6147,435
+6158,426
+6175,416
+6199,404
+6229,393
+6258,385
+6285,379
+6308,375
+6327,373
+6342,373
+6354,374
+6363,377
+6371,379
+6379,382
+6389,384
+6401,386
+6417,387
+6437,386
+6463,384
+6493,380
+6525,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="750,1950
+3360,1950
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 750 1950 - 3630 1950-->
+<polygon points="3358 2010
+3598 1950
+3358 1890
+3358 2010
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="2325,1500
+2775,1500
+2850,1275
+3000,1725
+3075,1500
+3600,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4800,1350
+5250,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,375
+5250,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,3000
+5700,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3900,1950
+5025,1950
+5025,1050
+5610,1050
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5025 1050 - 5880 1050-->
+<polygon points="5608 1110
+5848 1050
+5608 990
+5608 1110
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Text -->
+<text xml:space="preserve" x="6225" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="5700" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Server</text>
+<!-- Line: box -->
+<rect x="652" y="1082" width="391" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="613" y="1121" width="469" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="378" y="300" width="939" height="782" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polygon points="417,1433
+1278,1433
+1395,1629
+1395,1668
+300,1668
+300,1629
+417,1433
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="1180" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1160" width="899" height="216" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polyline points="3600,999
+4810,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,990
+4810,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1007
+4810,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1652
+4810,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1642
+4810,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1659
+4810,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3901,995
+3901,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3910,995
+3910,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3893,995
+3893,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3831,995
+3831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3840,995
+3840,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3823,995
+3823,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4129,995
+4129,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4139,995
+4139,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4122,995
+4122,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4060,995
+4060,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4069,995
+4069,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4052,995
+4052,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4351,995
+4351,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4361,995
+4361,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4343,995
+4343,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4281,995
+4281,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4290,995
+4290,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4274,995
+4274,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4576,995
+4576,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4585,995
+4585,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4569,995
+4569,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4506,995
+4506,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4515,995
+4515,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4498,995
+4498,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4781,995
+4781,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4789,995
+4789,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4773,995
+4773,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4711,995
+4711,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4720,995
+4720,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4702,995
+4702,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4131,995
+4131,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5700" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="300,1629
+300,1668
+1395,1668
+1395,1629
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1473
+378,1590
+1082,1590
+1043,1473
+456,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polygon points="1239,1473
+1082,1473
+1121,1590
+1317,1590
+1239,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+976,1220
+1061,1220
+1061,1201
+1166,1201
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1061,1240
+1166,1240
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1220
+1250,1220
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1201
+1166,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+1061,1240
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1166,1279
+1166,1240
+1250,1240
+1250,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1229,1279
+1229,1259
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1187,1259
+1229,1259
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5700" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="5700,2566
+6600,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+496,961
+496,955
+496,943
+496,925
+496,900
+496,869
+496,831
+496,787
+496,740
+496,690
+496,641
+496,594
+496,550
+496,512
+496,481
+496,456
+496,438
+496,426
+496,420
+496,417
+495,416
+488,409
+476,397
+464,386
+457,379
+456,378
+456,381
+456,386
+456,397
+456,413
+456,436
+456,465
+456,501
+456,543
+456,589
+456,639
+456,691
+456,743
+456,793
+456,839
+456,881
+456,917
+456,946
+456,969
+456,985
+456,996
+456,1001
+456,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1239,1004
+1238,1003
+1231,996
+1219,984
+1207,972
+1200,965
+1199,964
+1199,961
+1199,955
+1199,943
+1199,925
+1199,900
+1199,869
+1199,831
+1199,787
+1199,740
+1199,690
+1199,641
+1199,594
+1199,550
+1199,512
+1199,481
+1199,456
+1199,438
+1199,426
+1199,420
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1239,381
+1239,386
+1239,397
+1239,413
+1239,436
+1239,465
+1239,501
+1239,543
+1239,589
+1239,639
+1239,691
+1239,743
+1239,793
+1239,839
+1239,881
+1239,917
+1239,946
+1239,969
+1239,985
+1239,996
+1239,1001
+1239,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="496,417
+498,417
+502,417
+508,416
+518,415
+532,414
+548,413
+567,412
+587,410
+609,409
+633,408
+658,406
+685,405
+714,404
+745,403
+779,403
+816,402
+855,402
+894,402
+930,403
+963,403
+994,404
+1022,405
+1047,406
+1071,408
+1094,409
+1114,410
+1134,412
+1151,413
+1166,414
+1178,415
+1188,416
+1194,417
+1197,417
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1236,378
+1231,378
+1220,378
+1204,378
+1181,378
+1151,378
+1114,378
+1070,378
+1020,378
+966,378
+907,378
+847,378
+788,378
+729,378
+675,378
+625,378
+581,378
+544,378
+514,378
+491,378
+475,378
+464,378
+459,378
+456,378
+457,379
+464,386
+476,398
+488,409
+495,416
+496,417
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="496,964
+498,964
+502,964
+508,965
+518,966
+532,967
+548,968
+567,970
+587,971
+609,972
+633,974
+658,975
+685,976
+714,978
+745,979
+779,979
+816,980
+855,980
+894,980
+930,979
+963,979
+994,978
+1022,976
+1047,975
+1071,974
+1094,972
+1114,971
+1134,970
+1151,968
+1166,967
+1178,966
+1188,965
+1194,964
+1197,964
+1199,964
+1200,965
+1207,972
+1219,984
+1231,996
+1238,1003
+1239,1004
+1236,1004
+1231,1004
+1220,1004
+1204,1004
+1181,1004
+1151,1004
+1114,1004
+1070,1004
+1020,1004
+966,1004
+907,1004
+847,1004
+788,1004
+729,1004
+675,1004
+625,1004
+581,1004
+544,1004
+514,1004
+491,1004
+475,1004
+464,1004
+459,1004
+456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line: box -->
+<rect x="378" y="1590" width="704" height="14" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="442,1473
+378,1590
+496,1590
+512,1551
+485,1551
+500,1512
+475,1512
+496,1473
+442,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1082,1590
+965,1590
+965,1550
+990,1551
+986,1512
+1004,1512
+1010,1512
+1002,1473
+1050,1473
+1082,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1317,1590
+1281,1590
+1239,1496
+1089,1496
+1082,1473
+1255,1473
+1317,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="1121" y="1590" width="196" height="13" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="1121,1590
+1121,1604
+1081,1484
+1082,1473
+1121,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polyline points="3645,1170
+3645,1260
+3738,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3640,1170
+3735,1170
+3735,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3649,1185
+3730,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,1222
+3730,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="3645" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/login_ok.svg b/doc/antora/modules/tutorials/assets/images/login_ok.svg
new file mode 100644 (file)
index 0000000..be641f0
--- /dev/null
@@ -0,0 +1,1656 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.3in" height="3.0in"
+       viewBox="288 288 7536 3624">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polygon points="1784,1215
+1515,1408
+1515,1561
+2283,1638
+2283,1484
+2437,1254
+1784,1215
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#aaaaaa;
+"/>
+<!-- Line: box -->
+<rect x="1899" y="1484" width="231" height="62" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1554" y="1488" width="38" height="23" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polygon points="2283,1484
+2283,1638
+2437,1369
+2437,1254
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2283,1599
+1515,1523
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1596
+2245,1519
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1784,1550
+1784,1473
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1557
+1784,1511
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1535" y="1448" width="77" height="46" rx="0" 
+style="stroke:#ff0000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#ff0000;
+"/>
+<!-- Line: box -->
+<rect x="2168" y="1511" width="58" height="25" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2206,1592
+2206,1553
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2168,1588
+2168,1550
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1515,1408
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1544,1410
+1808,1217
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1572,1413
+1833,1218
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1601,1416
+1857,1220
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1629,1419
+1881,1221
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1658,1422
+1905,1222
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1686,1425
+1929,1224
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1715,1427
+1953,1226
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1743,1430
+1977,1227
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1771,1433
+2002,1228
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1800,1436
+2026,1230
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1828,1439
+2050,1231
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1857,1442
+2074,1232
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1885,1444
+2098,1234
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1914,1447
+2122,1235
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1942,1450
+2147,1237
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1970,1453
+2171,1238
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1999,1456
+2195,1239
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2027,1459
+2219,1241
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2056,1461
+2243,1243
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2084,1464
+2267,1244
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2113,1467
+2292,1245
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2141,1470
+2316,1247
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2170,1473
+2340,1248
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2198,1476
+2365,1250
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2226,1478
+2388,1251
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2255,1482
+2412,1252
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1546,1526
+1546,1564
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1577,1529
+1577,1567
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1608,1531
+1608,1570
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1639,1535
+1639,1573
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1669,1538
+1669,1577
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1700,1541
+1700,1579
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1731,1544
+1731,1582
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1761,1547
+1761,1586
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1792,1550
+1792,1588
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1823,1553
+1823,1592
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1853,1556
+1853,1595
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1884,1560
+1884,1598
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1915,1562
+1915,1601
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1946,1565
+1946,1604
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1976,1569
+1976,1607
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2007,1572
+2007,1610
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2038,1575
+2038,1613
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2068,1578
+2068,1616
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2099,1581
+2099,1619
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2130,1584
+2130,1622
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2161,1587
+2161,1625
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2191,1590
+2191,1629
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2222,1593
+2222,1631
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2253,1596
+2253,1634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2283,1523
+1515,1446
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1200,1275
+1800,1275
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="6525,375
+6560,368
+6590,361
+6611,353
+6623,347
+6630,341
+6631,335
+6631,330
+6631,325
+6633,319
+6640,314
+6654,309
+6677,305
+6710,301
+6750,300
+6784,301
+6816,303
+6844,306
+6868,310
+6887,314
+6902,318
+6914,323
+6923,327
+6931,331
+6940,336
+6949,340
+6961,345
+6977,350
+6997,355
+7022,360
+7053,365
+7088,370
+7125,375
+7166,379
+7202,381
+7231,381
+7253,380
+7269,377
+7280,373
+7288,368
+7294,363
+7299,357
+7306,353
+7316,350
+7329,349
+7347,350
+7370,355
+7396,363
+7425,375
+7451,390
+7473,406
+7489,421
+7500,434
+7506,445
+7508,454
+7508,462
+7506,469
+7505,476
+7504,485
+7506,495
+7511,509
+7520,526
+7534,547
+7553,572
+7575,600
+7599,628
+7621,652
+7641,671
+7659,686
+7673,695
+7686,701
+7696,704
+7706,706
+7716,708
+7726,712
+7737,718
+7748,729
+7762,744
+7775,766
+7789,793
+7800,825
+7807,854
+7810,882
+7812,906
+7812,926
+7812,942
+7811,955
+7810,966
+7808,974
+7806,981
+7804,989
+7801,997
+7797,1006
+7791,1019
+7783,1034
+7773,1053
+7760,1075
+7744,1100
+7725,1125
+7703,1149
+7682,1169
+7661,1185
+7644,1197
+7630,1205
+7618,1210
+7609,1212
+7601,1213
+7594,1212
+7586,1212
+7578,1212
+7567,1214
+7554,1217
+7536,1223
+7514,1232
+7488,1244
+7458,1259
+7425,1275
+7392,1291
+7362,1307
+7337,1320
+7317,1331
+7302,1340
+7291,1347
+7284,1353
+7279,1358
+7275,1363
+7271,1367
+7266,1371
+7259,1376
+7248,1382
+7233,1389
+7213,1397
+7188,1406
+7158,1416
+7125,1425
+7088,1433
+7056,1439
+7029,1443
+7009,1445
+6995,1446
+6986,1446
+6979,1445
+6975,1444
+6971,1442
+6964,1441
+6955,1439
+6941,1437
+6921,1435
+6894,1432
+6862,1429
+6825,1425
+6788,1420
+6756,1414
+6730,1409
+6710,1404
+6697,1399
+6689,1395
+6684,1391
+6681,1388
+6678,1384
+6673,1380
+6664,1376
+6650,1371
+6630,1366
+6601,1361
+6566,1355
+6525,1350
+6488,1346
+6453,1344
+6422,1343
+6397,1344
+6377,1346
+6361,1349
+6349,1353
+6340,1358
+6331,1363
+6323,1367
+6314,1371
+6302,1374
+6287,1376
+6268,1376
+6244,1374
+6216,1369
+6184,1361
+6150,1350
+6118,1336
+6090,1322
+6066,1308
+6047,1296
+6032,1285
+6020,1276
+6012,1268
+6005,1261
+6000,1255
+5995,1248
+5989,1241
+5983,1232
+5976,1221
+5967,1207
+5957,1190
+5946,1171
+5935,1149
+5925,1125
+5918,1095
+5916,1070
+5918,1051
+5924,1039
+5932,1032
+5942,1029
+5952,1028
+5962,1026
+5973,1023
+5982,1015
+5991,1002
+5998,981
+6002,952
+6004,918
+6003,886
+6000,856
+5996,831
+5990,809
+5983,792
+5976,779
+5968,768
+5961,759
+5953,749
+5946,738
+5940,726
+5934,710
+5929,691
+5927,669
+5926,644
+5929,618
+5936,593
+5945,573
+5954,561
+5962,555
+5970,553
+5976,554
+5983,558
+5990,561
+5998,563
+6007,563
+6020,560
+6035,552
+6054,540
+6075,525
+6096,509
+6113,494
+6126,482
+6134,472
+6138,464
+6140,458
+6139,453
+6140,448
+6142,442
+6147,435
+6158,426
+6175,416
+6199,404
+6229,393
+6258,385
+6285,379
+6308,375
+6327,373
+6342,373
+6354,374
+6363,377
+6371,379
+6379,382
+6389,384
+6401,386
+6417,387
+6437,386
+6463,384
+6493,380
+6525,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,1950
+3600,1950
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3600 1950 - 720 1950-->
+<polygon points="992 1890
+752 1950
+992 2010
+992 1890
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="4800,1350
+5250,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,375
+5250,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,3000
+5700,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4440,1950
+5025,1950
+5025,3300
+5550,3300
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5025 1950 - 4170 1950-->
+<polygon points="4442 1890
+4202 1950
+4442 2010
+4442 1890
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="2325,1500
+2775,1500
+2850,1275
+3000,1725
+3075,1500
+3600,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="6225" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="2475" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">PPP</text>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="5700" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Server</text>
+<!-- Text -->
+<text xml:space="preserve" x="3525" y="2475" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">RADIUS</text>
+<!-- Text -->
+<text xml:space="preserve" x="2700" y="2925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Authentication OK</text>
+<!-- Text -->
+<text xml:space="preserve" x="2700" y="3225" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">IP 192.168.10.12</text>
+<!-- Line: box -->
+<rect x="652" y="1082" width="391" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="613" y="1121" width="469" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="378" y="300" width="939" height="782" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polygon points="417,1433
+1278,1433
+1395,1629
+1395,1668
+300,1668
+300,1629
+417,1433
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="1180" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1160" width="899" height="216" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polyline points="3600,999
+4810,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,990
+4810,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1007
+4810,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1652
+4810,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1642
+4810,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1659
+4810,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3901,995
+3901,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3910,995
+3910,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3893,995
+3893,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3831,995
+3831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3840,995
+3840,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3823,995
+3823,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4129,995
+4129,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4139,995
+4139,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4122,995
+4122,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4060,995
+4060,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4069,995
+4069,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4052,995
+4052,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4351,995
+4351,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4361,995
+4361,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4343,995
+4343,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4281,995
+4281,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4290,995
+4290,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4274,995
+4274,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4576,995
+4576,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4585,995
+4585,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4569,995
+4569,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4506,995
+4506,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4515,995
+4515,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4498,995
+4498,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4781,995
+4781,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4789,995
+4789,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4773,995
+4773,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4711,995
+4711,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4720,995
+4720,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4702,995
+4702,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4131,995
+4131,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5700" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="300,1629
+300,1668
+1395,1668
+1395,1629
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1473
+378,1590
+1082,1590
+1043,1473
+456,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polygon points="1239,1473
+1082,1473
+1121,1590
+1317,1590
+1239,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+976,1220
+1061,1220
+1061,1201
+1166,1201
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1061,1240
+1166,1240
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1220
+1250,1220
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1201
+1166,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+1061,1240
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1166,1279
+1166,1240
+1250,1240
+1250,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1229,1279
+1229,1259
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1187,1259
+1229,1259
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="5800" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="5700" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="5700,2566
+6600,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+496,961
+496,955
+496,943
+496,925
+496,900
+496,869
+496,831
+496,787
+496,740
+496,690
+496,641
+496,594
+496,550
+496,512
+496,481
+496,456
+496,438
+496,426
+496,420
+496,417
+495,416
+488,409
+476,397
+464,386
+457,379
+456,378
+456,381
+456,386
+456,397
+456,413
+456,436
+456,465
+456,501
+456,543
+456,589
+456,639
+456,691
+456,743
+456,793
+456,839
+456,881
+456,917
+456,946
+456,969
+456,985
+456,996
+456,1001
+456,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1239,1004
+1238,1003
+1231,996
+1219,984
+1207,972
+1200,965
+1199,964
+1199,961
+1199,955
+1199,943
+1199,925
+1199,900
+1199,869
+1199,831
+1199,787
+1199,740
+1199,690
+1199,641
+1199,594
+1199,550
+1199,512
+1199,481
+1199,456
+1199,438
+1199,426
+1199,420
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1239,381
+1239,386
+1239,397
+1239,413
+1239,436
+1239,465
+1239,501
+1239,543
+1239,589
+1239,639
+1239,691
+1239,743
+1239,793
+1239,839
+1239,881
+1239,917
+1239,946
+1239,969
+1239,985
+1239,996
+1239,1001
+1239,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="496,417
+498,417
+502,417
+508,416
+518,415
+532,414
+548,413
+567,412
+587,410
+609,409
+633,408
+658,406
+685,405
+714,404
+745,403
+779,403
+816,402
+855,402
+894,402
+930,403
+963,403
+994,404
+1022,405
+1047,406
+1071,408
+1094,409
+1114,410
+1134,412
+1151,413
+1166,414
+1178,415
+1188,416
+1194,417
+1197,417
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1236,378
+1231,378
+1220,378
+1204,378
+1181,378
+1151,378
+1114,378
+1070,378
+1020,378
+966,378
+907,378
+847,378
+788,378
+729,378
+675,378
+625,378
+581,378
+544,378
+514,378
+491,378
+475,378
+464,378
+459,378
+456,378
+457,379
+464,386
+476,398
+488,409
+495,416
+496,417
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="496,964
+498,964
+502,964
+508,965
+518,966
+532,967
+548,968
+567,970
+587,971
+609,972
+633,974
+658,975
+685,976
+714,978
+745,979
+779,979
+816,980
+855,980
+894,980
+930,979
+963,979
+994,978
+1022,976
+1047,975
+1071,974
+1094,972
+1114,971
+1134,970
+1151,968
+1166,967
+1178,966
+1188,965
+1194,964
+1197,964
+1199,964
+1200,965
+1207,972
+1219,984
+1231,996
+1238,1003
+1239,1004
+1236,1004
+1231,1004
+1220,1004
+1204,1004
+1181,1004
+1151,1004
+1114,1004
+1070,1004
+1020,1004
+966,1004
+907,1004
+847,1004
+788,1004
+729,1004
+675,1004
+625,1004
+581,1004
+544,1004
+514,1004
+491,1004
+475,1004
+464,1004
+459,1004
+456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line: box -->
+<rect x="378" y="1590" width="704" height="14" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="442,1473
+378,1590
+496,1590
+512,1551
+485,1551
+500,1512
+475,1512
+496,1473
+442,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1082,1590
+965,1590
+965,1550
+990,1551
+986,1512
+1004,1512
+1010,1512
+1002,1473
+1050,1473
+1082,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1317,1590
+1281,1590
+1239,1496
+1089,1496
+1082,1473
+1255,1473
+1317,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="1121" y="1590" width="196" height="13" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="1121,1590
+1121,1604
+1081,1484
+1082,1473
+1121,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polyline points="3645,1170
+3645,1260
+3738,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3640,1170
+3735,1170
+3735,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3649,1185
+3730,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,1222
+3730,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="3645" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/nas_backup_server.svg b/doc/antora/modules/tutorials/assets/images/nas_backup_server.svg
new file mode 100644 (file)
index 0000000..be2b6d4
--- /dev/null
@@ -0,0 +1,1822 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.3in" height="4.8in"
+       viewBox="288 288 7536 5799">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polygon points="1784,1215
+1515,1408
+1515,1561
+2283,1638
+2283,1484
+2437,1254
+1784,1215
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#aaaaaa;
+"/>
+<!-- Line: box -->
+<rect x="1899" y="1484" width="231" height="62" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1554" y="1488" width="38" height="23" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polygon points="2283,1484
+2283,1638
+2437,1369
+2437,1254
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2283,1599
+1515,1523
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1596
+2245,1519
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1784,1550
+1784,1473
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1557
+1784,1511
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1535" y="1448" width="77" height="46" rx="0" 
+style="stroke:#ff0000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#ff0000;
+"/>
+<!-- Line: box -->
+<rect x="2168" y="1511" width="58" height="25" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2206,1592
+2206,1553
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2168,1588
+2168,1550
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1515,1408
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1544,1410
+1808,1217
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1572,1413
+1833,1218
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1601,1416
+1857,1220
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1629,1419
+1881,1221
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1658,1422
+1905,1222
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1686,1425
+1929,1224
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1715,1427
+1953,1226
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1743,1430
+1977,1227
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1771,1433
+2002,1228
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1800,1436
+2026,1230
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1828,1439
+2050,1231
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1857,1442
+2074,1232
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1885,1444
+2098,1234
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1914,1447
+2122,1235
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1942,1450
+2147,1237
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1970,1453
+2171,1238
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1999,1456
+2195,1239
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2027,1459
+2219,1241
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2056,1461
+2243,1243
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2084,1464
+2267,1244
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2113,1467
+2292,1245
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2141,1470
+2316,1247
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2170,1473
+2340,1248
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2198,1476
+2365,1250
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2226,1478
+2388,1251
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2255,1482
+2412,1252
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1546,1526
+1546,1564
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1577,1529
+1577,1567
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1608,1531
+1608,1570
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1639,1535
+1639,1573
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1669,1538
+1669,1577
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1700,1541
+1700,1579
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1731,1544
+1731,1582
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1761,1547
+1761,1586
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1792,1550
+1792,1588
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1823,1553
+1823,1592
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1853,1556
+1853,1595
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1884,1560
+1884,1598
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1915,1562
+1915,1601
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1946,1565
+1946,1604
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1976,1569
+1976,1607
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2007,1572
+2007,1610
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2038,1575
+2038,1613
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2068,1578
+2068,1616
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2099,1581
+2099,1619
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2130,1584
+2130,1622
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2161,1587
+2161,1625
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2191,1590
+2191,1629
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2222,1593
+2222,1631
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2253,1596
+2253,1634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2283,1523
+1515,1446
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1200,1275
+1800,1275
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4800,1350
+5250,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="6525,375
+6560,368
+6590,361
+6611,353
+6623,347
+6630,341
+6631,335
+6631,330
+6631,325
+6633,319
+6640,314
+6654,309
+6677,305
+6710,301
+6750,300
+6784,301
+6816,303
+6844,306
+6868,310
+6887,314
+6902,318
+6914,323
+6923,327
+6931,331
+6940,336
+6949,340
+6961,345
+6977,350
+6997,355
+7022,360
+7053,365
+7088,370
+7125,375
+7166,379
+7202,381
+7231,381
+7253,380
+7269,377
+7280,373
+7288,368
+7294,363
+7299,357
+7306,353
+7316,350
+7329,349
+7347,350
+7370,355
+7396,363
+7425,375
+7451,390
+7473,406
+7489,421
+7500,434
+7506,445
+7508,454
+7508,462
+7506,469
+7505,476
+7504,485
+7506,495
+7511,509
+7520,526
+7534,547
+7553,572
+7575,600
+7599,628
+7621,652
+7641,671
+7659,686
+7673,695
+7686,701
+7696,704
+7706,706
+7716,708
+7726,712
+7737,718
+7748,729
+7762,744
+7775,766
+7789,793
+7800,825
+7807,854
+7810,882
+7812,906
+7812,926
+7812,942
+7811,955
+7810,966
+7808,974
+7806,981
+7804,989
+7801,997
+7797,1006
+7791,1019
+7783,1034
+7773,1053
+7760,1075
+7744,1100
+7725,1125
+7703,1149
+7682,1169
+7661,1185
+7644,1197
+7630,1205
+7618,1210
+7609,1212
+7601,1213
+7594,1212
+7586,1212
+7578,1212
+7567,1214
+7554,1217
+7536,1223
+7514,1232
+7488,1244
+7458,1259
+7425,1275
+7392,1291
+7362,1307
+7337,1320
+7317,1331
+7302,1340
+7291,1347
+7284,1353
+7279,1358
+7275,1363
+7271,1367
+7266,1371
+7259,1376
+7248,1382
+7233,1389
+7213,1397
+7188,1406
+7158,1416
+7125,1425
+7088,1433
+7056,1439
+7029,1443
+7009,1445
+6995,1446
+6986,1446
+6979,1445
+6975,1444
+6971,1442
+6964,1441
+6955,1439
+6941,1437
+6921,1435
+6894,1432
+6862,1429
+6825,1425
+6788,1420
+6756,1414
+6730,1409
+6710,1404
+6697,1399
+6689,1395
+6684,1391
+6681,1388
+6678,1384
+6673,1380
+6664,1376
+6650,1371
+6630,1366
+6601,1361
+6566,1355
+6525,1350
+6488,1346
+6453,1344
+6422,1343
+6397,1344
+6377,1346
+6361,1349
+6349,1353
+6340,1358
+6331,1363
+6323,1367
+6314,1371
+6302,1374
+6287,1376
+6268,1376
+6244,1374
+6216,1369
+6184,1361
+6150,1350
+6118,1336
+6090,1322
+6066,1308
+6047,1296
+6032,1285
+6020,1276
+6012,1268
+6005,1261
+6000,1255
+5995,1248
+5989,1241
+5983,1232
+5976,1221
+5967,1207
+5957,1190
+5946,1171
+5935,1149
+5925,1125
+5918,1095
+5916,1070
+5918,1051
+5924,1039
+5932,1032
+5942,1029
+5952,1028
+5962,1026
+5973,1023
+5982,1015
+5991,1002
+5998,981
+6002,952
+6004,918
+6003,886
+6000,856
+5996,831
+5990,809
+5983,792
+5976,779
+5968,768
+5961,759
+5953,749
+5946,738
+5940,726
+5934,710
+5929,691
+5927,669
+5926,644
+5929,618
+5936,593
+5945,573
+5954,561
+5962,555
+5970,553
+5976,554
+5983,558
+5990,561
+5998,563
+6007,563
+6020,560
+6035,552
+6054,540
+6075,525
+6096,509
+6113,494
+6126,482
+6134,472
+6138,464
+6140,458
+6139,453
+6140,448
+6142,442
+6147,435
+6158,426
+6175,416
+6199,404
+6229,393
+6258,385
+6285,379
+6308,375
+6327,373
+6342,373
+6354,374
+6363,377
+6371,379
+6379,382
+6389,384
+6401,386
+6417,387
+6437,386
+6463,384
+6493,380
+6525,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,5325
+6300,5325
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,3000
+6300,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4200,1950
+5625,1950
+5625,2850
+5985,2850
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5625 2850 - 6255 2850-->
+<polygon points="5983 2910
+6223 2850
+5983 2790
+5983 2910
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="5250,450
+5250,6075
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="750,1950
+3510,1950
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 750 1950 - 3780 1950-->
+<polygon points="3508 2010
+3748 1950
+3508 1890
+3508 2010
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="2325,1500
+2850,1500
+2925,1275
+3075,1725
+3150,1500
+3600,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="6225" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Text -->
+<text xml:space="preserve" x="6150" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Primary</text>
+<!-- Text -->
+<text xml:space="preserve" x="6225" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Backup</text>
+<!-- Line: box -->
+<rect x="652" y="1082" width="391" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="613" y="1121" width="469" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="378" y="300" width="939" height="782" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polygon points="417,1433
+1278,1433
+1395,1629
+1395,1668
+300,1668
+300,1629
+417,1433
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="1180" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1160" width="899" height="216" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polyline points="3600,999
+4810,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,990
+4810,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1007
+4810,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1652
+4810,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1642
+4810,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1659
+4810,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3901,995
+3901,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3910,995
+3910,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3893,995
+3893,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3831,995
+3831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3840,995
+3840,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3823,995
+3823,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4129,995
+4129,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4139,995
+4139,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4122,995
+4122,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4060,995
+4060,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4069,995
+4069,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4052,995
+4052,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4351,995
+4351,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4361,995
+4361,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4343,995
+4343,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4281,995
+4281,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4290,995
+4290,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4274,995
+4274,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4576,995
+4576,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4585,995
+4585,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4569,995
+4569,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4506,995
+4506,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4515,995
+4515,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4498,995
+4498,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4781,995
+4781,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4789,995
+4789,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4773,995
+4773,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4711,995
+4711,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4720,995
+4720,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4702,995
+4702,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4131,995
+4131,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="4425" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="300,1629
+300,1668
+1395,1668
+1395,1629
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1473
+378,1590
+1082,1590
+1043,1473
+456,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polygon points="1239,1473
+1082,1473
+1121,1590
+1317,1590
+1239,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+976,1220
+1061,1220
+1061,1201
+1166,1201
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1061,1240
+1166,1240
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1220
+1250,1220
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1201
+1166,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+1061,1240
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1166,1279
+1166,1240
+1250,1240
+1250,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1229,1279
+1229,1259
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1187,1259
+1229,1259
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6300,2566
+7200,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5026" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4993" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5126" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5093" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5226" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5193" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5326" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5293" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5426" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5393" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5528" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5493" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5626" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5594" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5727" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5694" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4793" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4758" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4692" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4658" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4592" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4558" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="5861" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6300,4891
+7200,4891
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+496,961
+496,955
+496,943
+496,925
+496,900
+496,869
+496,831
+496,787
+496,740
+496,690
+496,641
+496,594
+496,550
+496,512
+496,481
+496,456
+496,438
+496,426
+496,420
+496,417
+495,416
+488,409
+476,397
+464,386
+457,379
+456,378
+456,381
+456,386
+456,397
+456,413
+456,436
+456,465
+456,501
+456,543
+456,589
+456,639
+456,691
+456,743
+456,793
+456,839
+456,881
+456,917
+456,946
+456,969
+456,985
+456,996
+456,1001
+456,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1239,1004
+1238,1003
+1231,996
+1219,984
+1207,972
+1200,965
+1199,964
+1199,961
+1199,955
+1199,943
+1199,925
+1199,900
+1199,869
+1199,831
+1199,787
+1199,740
+1199,690
+1199,641
+1199,594
+1199,550
+1199,512
+1199,481
+1199,456
+1199,438
+1199,426
+1199,420
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1239,381
+1239,386
+1239,397
+1239,413
+1239,436
+1239,465
+1239,501
+1239,543
+1239,589
+1239,639
+1239,691
+1239,743
+1239,793
+1239,839
+1239,881
+1239,917
+1239,946
+1239,969
+1239,985
+1239,996
+1239,1001
+1239,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="496,417
+498,417
+502,417
+508,416
+518,415
+532,414
+548,413
+567,412
+587,410
+609,409
+633,408
+658,406
+685,405
+714,404
+745,403
+779,403
+816,402
+855,402
+894,402
+930,403
+963,403
+994,404
+1022,405
+1047,406
+1071,408
+1094,409
+1114,410
+1134,412
+1151,413
+1166,414
+1178,415
+1188,416
+1194,417
+1197,417
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1236,378
+1231,378
+1220,378
+1204,378
+1181,378
+1151,378
+1114,378
+1070,378
+1020,378
+966,378
+907,378
+847,378
+788,378
+729,378
+675,378
+625,378
+581,378
+544,378
+514,378
+491,378
+475,378
+464,378
+459,378
+456,378
+457,379
+464,386
+476,398
+488,409
+495,416
+496,417
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="496,964
+498,964
+502,964
+508,965
+518,966
+532,967
+548,968
+567,970
+587,971
+609,972
+633,974
+658,975
+685,976
+714,978
+745,979
+779,979
+816,980
+855,980
+894,980
+930,979
+963,979
+994,978
+1022,976
+1047,975
+1071,974
+1094,972
+1114,971
+1134,970
+1151,968
+1166,967
+1178,966
+1188,965
+1194,964
+1197,964
+1199,964
+1200,965
+1207,972
+1219,984
+1231,996
+1238,1003
+1239,1004
+1236,1004
+1231,1004
+1220,1004
+1204,1004
+1181,1004
+1151,1004
+1114,1004
+1070,1004
+1020,1004
+966,1004
+907,1004
+847,1004
+788,1004
+729,1004
+675,1004
+625,1004
+581,1004
+544,1004
+514,1004
+491,1004
+475,1004
+464,1004
+459,1004
+456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line: box -->
+<rect x="378" y="1590" width="704" height="14" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="442,1473
+378,1590
+496,1590
+512,1551
+485,1551
+500,1512
+475,1512
+496,1473
+442,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1082,1590
+965,1590
+965,1550
+990,1551
+986,1512
+1004,1512
+1010,1512
+1002,1473
+1050,1473
+1082,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1317,1590
+1281,1590
+1239,1496
+1089,1496
+1082,1473
+1255,1473
+1317,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="1121" y="1590" width="196" height="13" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="1121,1590
+1121,1604
+1081,1484
+1082,1473
+1121,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polyline points="3645,1170
+3645,1260
+3738,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3640,1170
+3735,1170
+3735,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3649,1185
+3730,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,1222
+3730,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="5100,1950
+5100,5100
+5910,5100
+" style="stroke:#0000b0;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:60 60;"/>
+<!-- Arrowhead on XXXpoint 5100 5100 - 6180 5100-->
+<polygon points="5908 5160
+6148 5100
+5908 5040
+5908 5160
+
+" style="stroke:#0000b0;stroke-width:15;stroke-miterlimit:8;
+fill:#0000b0;"/>
+<!-- Line: box -->
+<rect x="3645" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/nas_backup_server_failover.svg b/doc/antora/modules/tutorials/assets/images/nas_backup_server_failover.svg
new file mode 100644 (file)
index 0000000..1219d1b
--- /dev/null
@@ -0,0 +1,1819 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.3in" height="4.8in"
+       viewBox="288 288 7536 5799">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polygon points="1784,1215
+1515,1408
+1515,1561
+2283,1638
+2283,1484
+2437,1254
+1784,1215
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#aaaaaa;
+"/>
+<!-- Line: box -->
+<rect x="1899" y="1484" width="231" height="62" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="1554" y="1488" width="38" height="23" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polygon points="2283,1484
+2283,1638
+2437,1369
+2437,1254
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2283,1599
+1515,1523
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1596
+2245,1519
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1784,1550
+1784,1473
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2245,1557
+1784,1511
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1535" y="1448" width="77" height="46" rx="0" 
+style="stroke:#ff0000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#ff0000;
+"/>
+<!-- Line: box -->
+<rect x="2168" y="1511" width="58" height="25" rx="0" 
+style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#555555;
+"/>
+<!-- Line -->
+<polyline points="2206,1592
+2206,1553
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2168,1588
+2168,1550
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1515,1408
+2283,1484
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1544,1410
+1808,1217
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1572,1413
+1833,1218
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1601,1416
+1857,1220
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1629,1419
+1881,1221
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1658,1422
+1905,1222
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1686,1425
+1929,1224
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1715,1427
+1953,1226
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1743,1430
+1977,1227
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1771,1433
+2002,1228
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1800,1436
+2026,1230
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1828,1439
+2050,1231
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1857,1442
+2074,1232
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1885,1444
+2098,1234
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1914,1447
+2122,1235
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1942,1450
+2147,1237
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1970,1453
+2171,1238
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1999,1456
+2195,1239
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2027,1459
+2219,1241
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2056,1461
+2243,1243
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2084,1464
+2267,1244
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2113,1467
+2292,1245
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2141,1470
+2316,1247
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2170,1473
+2340,1248
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2198,1476
+2365,1250
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2226,1478
+2388,1251
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2255,1482
+2412,1252
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1546,1526
+1546,1564
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1577,1529
+1577,1567
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1608,1531
+1608,1570
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1639,1535
+1639,1573
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1669,1538
+1669,1577
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1700,1541
+1700,1579
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1731,1544
+1731,1582
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1761,1547
+1761,1586
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1792,1550
+1792,1588
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1823,1553
+1823,1592
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1853,1556
+1853,1595
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1884,1560
+1884,1598
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1915,1562
+1915,1601
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1946,1565
+1946,1604
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1976,1569
+1976,1607
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2007,1572
+2007,1610
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2038,1575
+2038,1613
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2068,1578
+2068,1616
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2099,1581
+2099,1619
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2130,1584
+2130,1622
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2161,1587
+2161,1625
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2191,1590
+2191,1629
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2222,1593
+2222,1631
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2253,1596
+2253,1634
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2283,1523
+1515,1446
+" style="stroke:#555555;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1200,1275
+1800,1275
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4800,1350
+5250,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="6525,375
+6560,368
+6590,361
+6611,353
+6623,347
+6630,341
+6631,335
+6631,330
+6631,325
+6633,319
+6640,314
+6654,309
+6677,305
+6710,301
+6750,300
+6784,301
+6816,303
+6844,306
+6868,310
+6887,314
+6902,318
+6914,323
+6923,327
+6931,331
+6940,336
+6949,340
+6961,345
+6977,350
+6997,355
+7022,360
+7053,365
+7088,370
+7125,375
+7166,379
+7202,381
+7231,381
+7253,380
+7269,377
+7280,373
+7288,368
+7294,363
+7299,357
+7306,353
+7316,350
+7329,349
+7347,350
+7370,355
+7396,363
+7425,375
+7451,390
+7473,406
+7489,421
+7500,434
+7506,445
+7508,454
+7508,462
+7506,469
+7505,476
+7504,485
+7506,495
+7511,509
+7520,526
+7534,547
+7553,572
+7575,600
+7599,628
+7621,652
+7641,671
+7659,686
+7673,695
+7686,701
+7696,704
+7706,706
+7716,708
+7726,712
+7737,718
+7748,729
+7762,744
+7775,766
+7789,793
+7800,825
+7807,854
+7810,882
+7812,906
+7812,926
+7812,942
+7811,955
+7810,966
+7808,974
+7806,981
+7804,989
+7801,997
+7797,1006
+7791,1019
+7783,1034
+7773,1053
+7760,1075
+7744,1100
+7725,1125
+7703,1149
+7682,1169
+7661,1185
+7644,1197
+7630,1205
+7618,1210
+7609,1212
+7601,1213
+7594,1212
+7586,1212
+7578,1212
+7567,1214
+7554,1217
+7536,1223
+7514,1232
+7488,1244
+7458,1259
+7425,1275
+7392,1291
+7362,1307
+7337,1320
+7317,1331
+7302,1340
+7291,1347
+7284,1353
+7279,1358
+7275,1363
+7271,1367
+7266,1371
+7259,1376
+7248,1382
+7233,1389
+7213,1397
+7188,1406
+7158,1416
+7125,1425
+7088,1433
+7056,1439
+7029,1443
+7009,1445
+6995,1446
+6986,1446
+6979,1445
+6975,1444
+6971,1442
+6964,1441
+6955,1439
+6941,1437
+6921,1435
+6894,1432
+6862,1429
+6825,1425
+6788,1420
+6756,1414
+6730,1409
+6710,1404
+6697,1399
+6689,1395
+6684,1391
+6681,1388
+6678,1384
+6673,1380
+6664,1376
+6650,1371
+6630,1366
+6601,1361
+6566,1355
+6525,1350
+6488,1346
+6453,1344
+6422,1343
+6397,1344
+6377,1346
+6361,1349
+6349,1353
+6340,1358
+6331,1363
+6323,1367
+6314,1371
+6302,1374
+6287,1376
+6268,1376
+6244,1374
+6216,1369
+6184,1361
+6150,1350
+6118,1336
+6090,1322
+6066,1308
+6047,1296
+6032,1285
+6020,1276
+6012,1268
+6005,1261
+6000,1255
+5995,1248
+5989,1241
+5983,1232
+5976,1221
+5967,1207
+5957,1190
+5946,1171
+5935,1149
+5925,1125
+5918,1095
+5916,1070
+5918,1051
+5924,1039
+5932,1032
+5942,1029
+5952,1028
+5962,1026
+5973,1023
+5982,1015
+5991,1002
+5998,981
+6002,952
+6004,918
+6003,886
+6000,856
+5996,831
+5990,809
+5983,792
+5976,779
+5968,768
+5961,759
+5953,749
+5946,738
+5940,726
+5934,710
+5929,691
+5927,669
+5926,644
+5929,618
+5936,593
+5945,573
+5954,561
+5962,555
+5970,553
+5976,554
+5983,558
+5990,561
+5998,563
+6007,563
+6020,560
+6035,552
+6054,540
+6075,525
+6096,509
+6113,494
+6126,482
+6134,472
+6138,464
+6140,458
+6139,453
+6140,448
+6142,442
+6147,435
+6158,426
+6175,416
+6199,404
+6229,393
+6258,385
+6285,379
+6308,375
+6327,373
+6342,373
+6354,374
+6363,377
+6371,379
+6379,382
+6389,384
+6401,386
+6417,387
+6437,386
+6463,384
+6493,380
+6525,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="750,1950
+3510,1950
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 750 1950 - 3780 1950-->
+<polygon points="3508 2010
+3748 1950
+3508 1890
+3508 2010
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Line -->
+<polyline points="5250,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,5325
+6300,5325
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,3000
+6300,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5250,450
+5250,6075
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2325,1500
+2850,1500
+2925,1275
+3075,1725
+3150,1500
+3600,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="3825" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="6225" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Text -->
+<text xml:space="preserve" x="6150" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Backup</text>
+<!-- Text -->
+<text xml:space="preserve" x="6150" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Primary</text>
+<!-- Line: box -->
+<rect x="652" y="1082" width="391" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="613" y="1121" width="469" height="39" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line: box -->
+<rect x="378" y="300" width="939" height="782" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polygon points="417,1433
+1278,1433
+1395,1629
+1395,1668
+300,1668
+300,1629
+417,1433
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="1180" y="1374" width="117" height="20" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="398" y="1160" width="899" height="216" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#e0e0e0;
+"/>
+<!-- Line -->
+<polyline points="3600,999
+4810,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,990
+4810,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1007
+4810,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1652
+4810,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1642
+4810,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,1659
+4810,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3901,995
+3901,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3910,995
+3910,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3893,995
+3893,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3831,995
+3831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3840,995
+3840,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3823,995
+3823,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4129,995
+4129,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4139,995
+4139,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4122,995
+4122,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4060,995
+4060,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4069,995
+4069,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4052,995
+4052,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4351,995
+4351,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4361,995
+4361,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4343,995
+4343,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4281,995
+4281,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4290,995
+4290,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4274,995
+4274,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4576,995
+4576,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4585,995
+4585,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4569,995
+4569,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4506,995
+4506,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4515,995
+4515,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4498,995
+4498,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4781,995
+4781,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4789,995
+4789,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4773,995
+4773,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4711,995
+4711,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4720,995
+4720,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4702,995
+4702,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4131,995
+4131,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="4425" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="300,1629
+300,1668
+1395,1668
+1395,1629
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1473
+378,1590
+1082,1590
+1043,1473
+456,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polygon points="1239,1473
+1082,1473
+1121,1590
+1317,1590
+1239,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+976,1220
+1061,1220
+1061,1201
+1166,1201
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1061,1240
+1166,1240
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1220
+1250,1220
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1166,1201
+1166,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="976,1240
+1061,1240
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,1279
+1166,1279
+1166,1240
+1250,1240
+1250,1220
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1229,1279
+1229,1259
+" style="stroke:#808080;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1187,1279
+1187,1259
+1229,1259
+" style="stroke:#ffffff;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6300,2566
+7200,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5026" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4993" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5126" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5093" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5226" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5193" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5326" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5293" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5426" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5393" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5528" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5493" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5626" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5594" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5727" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="5694" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4793" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4758" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4692" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4658" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4592" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="6400" y="4558" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="6300" y="5861" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="6300,4891
+7200,4891
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+496,961
+496,955
+496,943
+496,925
+496,900
+496,869
+496,831
+496,787
+496,740
+496,690
+496,641
+496,594
+496,550
+496,512
+496,481
+496,456
+496,438
+496,426
+496,420
+496,417
+495,416
+488,409
+476,397
+464,386
+457,379
+456,378
+456,381
+456,386
+456,397
+456,413
+456,436
+456,465
+456,501
+456,543
+456,589
+456,639
+456,691
+456,743
+456,793
+456,839
+456,881
+456,917
+456,946
+456,969
+456,985
+456,996
+456,1001
+456,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1239,1004
+1238,1003
+1231,996
+1219,984
+1207,972
+1200,965
+1199,964
+1199,961
+1199,955
+1199,943
+1199,925
+1199,900
+1199,869
+1199,831
+1199,787
+1199,740
+1199,690
+1199,641
+1199,594
+1199,550
+1199,512
+1199,481
+1199,456
+1199,438
+1199,426
+1199,420
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1239,381
+1239,386
+1239,397
+1239,413
+1239,436
+1239,465
+1239,501
+1239,543
+1239,589
+1239,639
+1239,691
+1239,743
+1239,793
+1239,839
+1239,881
+1239,917
+1239,946
+1239,969
+1239,985
+1239,996
+1239,1001
+1239,1004
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="496,417
+498,417
+502,417
+508,416
+518,415
+532,414
+548,413
+567,412
+587,410
+609,409
+633,408
+658,406
+685,405
+714,404
+745,403
+779,403
+816,402
+855,402
+894,402
+930,403
+963,403
+994,404
+1022,405
+1047,406
+1071,408
+1094,409
+1114,410
+1134,412
+1151,413
+1166,414
+1178,415
+1188,416
+1194,417
+1197,417
+1199,417
+1200,416
+1207,409
+1219,397
+1231,386
+1238,379
+1239,378
+1236,378
+1231,378
+1220,378
+1204,378
+1181,378
+1151,378
+1114,378
+1070,378
+1020,378
+966,378
+907,378
+847,378
+788,378
+729,378
+675,378
+625,378
+581,378
+544,378
+514,378
+491,378
+475,378
+464,378
+459,378
+456,378
+457,379
+464,386
+476,398
+488,409
+495,416
+496,417
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="496,964
+498,964
+502,964
+508,965
+518,966
+532,967
+548,968
+567,970
+587,971
+609,972
+633,974
+658,975
+685,976
+714,978
+745,979
+779,979
+816,980
+855,980
+894,980
+930,979
+963,979
+994,978
+1022,976
+1047,975
+1071,974
+1094,972
+1114,971
+1134,970
+1151,968
+1166,967
+1178,966
+1188,965
+1194,964
+1197,964
+1199,964
+1200,965
+1207,972
+1219,984
+1231,996
+1238,1003
+1239,1004
+1236,1004
+1231,1004
+1220,1004
+1204,1004
+1181,1004
+1151,1004
+1114,1004
+1070,1004
+1020,1004
+966,1004
+907,1004
+847,1004
+788,1004
+729,1004
+675,1004
+625,1004
+581,1004
+544,1004
+514,1004
+491,1004
+475,1004
+464,1004
+459,1004
+456,1004
+457,1003
+464,996
+476,984
+488,972
+495,965
+496,964
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Line: box -->
+<rect x="378" y="1590" width="704" height="14" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="442,1473
+378,1590
+496,1590
+512,1551
+485,1551
+500,1512
+475,1512
+496,1473
+442,1473
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1082,1590
+965,1590
+965,1550
+990,1551
+986,1512
+1004,1512
+1010,1512
+1002,1473
+1050,1473
+1082,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polygon points="1317,1590
+1281,1590
+1239,1496
+1089,1496
+1082,1473
+1255,1473
+1317,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="1121" y="1590" width="196" height="13" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polygon points="1121,1590
+1121,1604
+1081,1484
+1082,1473
+1121,1590
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#808080;
+"/>
+<!-- Line -->
+<polyline points="3645,1170
+3645,1260
+3738,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3640,1170
+3735,1170
+3735,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="3649,1185
+3730,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="3649,1222
+3730,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="4200,1950
+5100,1950
+5100,5100
+5910,5100
+" style="stroke:#0000b0;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5100 5100 - 6180 5100-->
+<polygon points="5908 5160
+6148 5100
+5908 5040
+5908 5160
+
+" style="stroke:#0000b0;stroke-width:15;stroke-miterlimit:8;
+fill:#0000b0;"/>
+<!-- Line -->
+<polyline points="6000,3750
+7500,1800
+" style="stroke:#ff0000;stroke-width:30;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6000,1800
+7500,3750
+" style="stroke:#ff0000;stroke-width:30;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3645" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/peap_packet.svg b/doc/antora/modules/tutorials/assets/images/peap_packet.svg
new file mode 100644 (file)
index 0000000..a95f5b2
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="4.0in" height="3.3in"
+       viewBox="1188 288 4824 3924">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="1200,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,2100
+6000,2100
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,2700
+6000,2700
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,3300
+6000,3300
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,1500
+6000,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,3300
+3600,4200
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1200" y="300" width="4800" height="3900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="4125" y="3675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP-MSCHAPv2</text>
+<!-- Text -->
+<text xml:space="preserve" x="4125" y="3900" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">(Microsoft)</text>
+<!-- Text -->
+<text xml:space="preserve" x="2025" y="3675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP-GTC</text>
+<!-- Text -->
+<text xml:space="preserve" x="2025" y="3900" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">(Cisco)</text>
+<!-- Text -->
+<text xml:space="preserve" x="1575" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Carrier Protocol (PPP, EAPOL, RADIUS, Diameter, etc</text>
+<!-- Text -->
+<text xml:space="preserve" x="3300" y="1275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP</text>
+<!-- Text -->
+<text xml:space="preserve" x="3075" y="1875" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP-PEAP</text>
+<!-- Text -->
+<text xml:space="preserve" x="2700" y="2475" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">TLS (with modifications)</text>
+<!-- Text -->
+<text xml:space="preserve" x="2700" y="3075" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP (with modifications)</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/proxy.svg b/doc/antora/modules/tutorials/assets/images/proxy.svg
new file mode 100644 (file)
index 0000000..8c57a49
--- /dev/null
@@ -0,0 +1,1231 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.4in" height="3.0in"
+       viewBox="288 288 7689 3624">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="675,1950
+1725,1950
+1725,3225
+2310,3225
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1725 3225 - 2580 3225-->
+<polygon points="2308 3285
+2548 3225
+2308 3165
+2308 3285
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="4800,900
+6300,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5550,3000
+6300,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6300,1350
+6750,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2550,2625
+2100,2625
+2100,1125
+6150,1125
+6150,2550
+5939,2550
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6150 2550 - 5670 2550-->
+<polygon points="5942 2490
+5702 2550
+5942 2610
+5942 2490
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line: box -->
+<rect x="300" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line: box -->
+<rect x="6750" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1500,1350
+1950,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,375
+1950,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,3000
+2625,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,900
+3300,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6300,300
+6300,3825
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="3825,375
+3860,368
+3890,361
+3911,353
+3923,347
+3930,341
+3931,335
+3931,330
+3931,325
+3933,319
+3940,314
+3954,309
+3977,305
+4010,301
+4050,300
+4084,301
+4116,303
+4144,306
+4168,310
+4187,314
+4202,318
+4214,323
+4223,327
+4231,331
+4240,336
+4249,340
+4261,345
+4277,350
+4297,355
+4322,360
+4353,365
+4388,370
+4425,375
+4466,379
+4502,381
+4531,381
+4553,380
+4569,377
+4580,373
+4588,368
+4594,363
+4599,357
+4606,353
+4616,350
+4629,349
+4647,350
+4670,355
+4696,363
+4725,375
+4751,390
+4773,406
+4789,421
+4800,434
+4806,445
+4808,454
+4808,462
+4806,469
+4805,476
+4804,485
+4806,495
+4811,509
+4820,526
+4834,547
+4853,572
+4875,600
+4899,628
+4921,652
+4941,671
+4959,686
+4973,695
+4986,701
+4996,704
+5006,706
+5016,708
+5026,712
+5037,718
+5048,729
+5062,744
+5075,766
+5089,793
+5100,825
+5107,854
+5110,882
+5112,906
+5112,926
+5112,942
+5111,955
+5110,966
+5108,974
+5106,981
+5104,989
+5101,997
+5097,1006
+5091,1019
+5083,1034
+5073,1053
+5060,1075
+5044,1100
+5025,1125
+5003,1149
+4982,1169
+4961,1185
+4944,1197
+4930,1205
+4918,1210
+4909,1212
+4901,1213
+4894,1212
+4886,1212
+4878,1212
+4867,1214
+4854,1217
+4836,1223
+4814,1232
+4788,1244
+4758,1259
+4725,1275
+4692,1291
+4662,1307
+4637,1320
+4617,1331
+4602,1340
+4591,1347
+4584,1353
+4579,1358
+4575,1363
+4571,1367
+4566,1371
+4559,1376
+4548,1382
+4533,1389
+4513,1397
+4488,1406
+4458,1416
+4425,1425
+4388,1433
+4356,1439
+4329,1443
+4309,1445
+4295,1446
+4286,1446
+4279,1445
+4275,1444
+4271,1442
+4264,1441
+4255,1439
+4241,1437
+4221,1435
+4194,1432
+4162,1429
+4125,1425
+4088,1420
+4056,1414
+4030,1409
+4010,1404
+3997,1399
+3989,1395
+3984,1391
+3981,1388
+3978,1384
+3973,1380
+3964,1376
+3950,1371
+3930,1366
+3901,1361
+3866,1355
+3825,1350
+3788,1346
+3753,1344
+3722,1343
+3697,1344
+3677,1346
+3661,1349
+3649,1353
+3640,1358
+3631,1363
+3623,1367
+3614,1371
+3602,1374
+3587,1376
+3568,1376
+3544,1374
+3516,1369
+3484,1361
+3450,1350
+3418,1336
+3390,1322
+3366,1308
+3347,1296
+3332,1285
+3320,1276
+3312,1268
+3305,1261
+3300,1255
+3295,1248
+3289,1241
+3283,1232
+3276,1221
+3267,1207
+3257,1190
+3246,1171
+3235,1149
+3225,1125
+3218,1095
+3216,1070
+3218,1051
+3224,1039
+3232,1032
+3242,1029
+3252,1028
+3262,1026
+3273,1023
+3282,1015
+3291,1002
+3298,981
+3302,952
+3304,918
+3303,886
+3300,856
+3296,831
+3290,809
+3283,792
+3276,779
+3268,768
+3261,759
+3253,749
+3246,738
+3240,726
+3234,710
+3229,691
+3227,669
+3226,644
+3229,618
+3236,593
+3245,573
+3254,561
+3262,555
+3270,553
+3276,554
+3283,558
+3290,561
+3298,563
+3307,563
+3320,560
+3335,552
+3354,540
+3375,525
+3396,509
+3413,494
+3426,482
+3434,472
+3438,464
+3440,458
+3439,453
+3440,448
+3442,442
+3447,435
+3458,426
+3475,416
+3499,404
+3529,393
+3558,385
+3585,379
+3608,375
+3627,373
+3642,373
+3654,374
+3663,377
+3671,379
+3679,382
+3689,384
+3701,386
+3717,387
+3737,386
+3763,384
+3793,380
+3825,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="6975" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="4725" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Home</text>
+<!-- Text -->
+<text xml:space="preserve" x="2625" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Proxy</text>
+<!-- Line -->
+<polyline points="300,999
+1510,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,990
+1510,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1007
+1510,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1652
+1510,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1642
+1510,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1659
+1510,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="601,995
+601,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="610,995
+610,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="593,995
+593,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="531,995
+531,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="540,995
+540,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="523,995
+523,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="829,995
+829,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="839,995
+839,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="822,995
+822,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="760,995
+760,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="769,995
+769,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="752,995
+752,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1051,995
+1051,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,995
+1061,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1043,995
+1043,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="981,995
+981,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,995
+990,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="974,995
+974,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1276,995
+1276,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1285,995
+1285,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1269,995
+1269,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1206,995
+1206,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1215,995
+1215,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1198,995
+1198,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1481,995
+1481,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1489,995
+1489,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1473,995
+1473,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1411,995
+1411,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1420,995
+1420,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1402,995
+1402,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="831,995
+831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="2625" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="6750,999
+7960,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6750,990
+7960,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6750,1007
+7960,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6750,1652
+7960,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6750,1642
+7960,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6750,1659
+7960,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7051,995
+7051,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7060,995
+7060,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7043,995
+7043,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6981,995
+6981,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6990,995
+6990,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6973,995
+6973,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7279,995
+7279,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7289,995
+7289,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7272,995
+7272,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7210,995
+7210,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7219,995
+7219,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7202,995
+7202,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7501,995
+7501,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7511,995
+7511,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7493,995
+7493,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7431,995
+7431,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7440,995
+7440,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7424,995
+7424,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7726,995
+7726,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7735,995
+7735,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7719,995
+7719,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7656,995
+7656,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7665,995
+7665,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7648,995
+7648,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7931,995
+7931,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7939,995
+7939,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7923,995
+7923,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7861,995
+7861,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7870,995
+7870,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7852,995
+7852,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7281,995
+7281,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="4725" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="3600" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Line: box -->
+<rect x="2725" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2625" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="2625,2566
+3525,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4825" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4725" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="4725,2566
+5625,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="345,1170
+345,1260
+438,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="340,1170
+435,1170
+435,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="6795,1170
+6795,1260
+6888,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="6790,1170
+6885,1170
+6885,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="349,1185
+430,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,1222
+430,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="6799,1185
+6880,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="6799,1222
+6880,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="2100,2625
+2100,2039
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2100 2625 - 2100 1770-->
+<polygon points="2160 2042
+2100 1802
+2040 2042
+2160 2042
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line: box -->
+<rect x="345" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line: box -->
+<rect x="6795" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/proxy_backup_server.svg b/doc/antora/modules/tutorials/assets/images/proxy_backup_server.svg
new file mode 100644 (file)
index 0000000..61f8cc8
--- /dev/null
@@ -0,0 +1,1135 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.5in" height="3.0in"
+       viewBox="288 288 7855 3624">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="675,1950
+1725,1950
+1725,3225
+2310,3225
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1725 3225 - 2580 3225-->
+<polygon points="2308 3285
+2548 3225
+2308 3165
+2308 3285
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="2550,2625
+2100,2625
+2100,1125
+6225,1125
+6225,2550
+6014,2550
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6225 2550 - 5745 2550-->
+<polygon points="6017 2490
+5777 2550
+6017 2610
+6017 2490
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="2100,2175
+2100,675
+6750,675
+6750,1125
+6960,1125
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:60 60;"/>
+<!-- Arrowhead on XXXpoint 6750 1125 - 7230 1125-->
+<polygon points="6958 1185
+7198 1125
+6958 1065
+6958 1185
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="4875,900
+6375,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5625,3000
+6375,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6375,1350
+7050,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="300" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1500,1350
+1950,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,375
+1950,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,3000
+2625,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,900
+3300,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6375,300
+6375,3825
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="3825,375
+3860,368
+3890,361
+3911,353
+3923,347
+3930,341
+3931,335
+3931,330
+3931,325
+3933,319
+3940,314
+3954,309
+3977,305
+4010,301
+4050,300
+4084,301
+4116,303
+4144,306
+4168,310
+4187,314
+4202,318
+4214,323
+4223,327
+4231,331
+4240,336
+4249,340
+4261,345
+4277,350
+4297,355
+4322,360
+4353,365
+4388,370
+4425,375
+4466,379
+4502,381
+4531,381
+4553,380
+4569,377
+4580,373
+4588,368
+4594,363
+4599,357
+4606,353
+4616,350
+4629,349
+4647,350
+4670,355
+4696,363
+4725,375
+4751,390
+4773,406
+4789,421
+4800,434
+4806,445
+4808,454
+4808,462
+4806,469
+4805,476
+4804,485
+4806,495
+4811,509
+4820,526
+4834,547
+4853,572
+4875,600
+4899,628
+4921,652
+4941,671
+4959,686
+4973,695
+4986,701
+4996,704
+5006,706
+5016,708
+5026,712
+5037,718
+5048,729
+5062,744
+5075,766
+5089,793
+5100,825
+5107,854
+5110,882
+5112,906
+5112,926
+5112,942
+5111,955
+5110,966
+5108,974
+5106,981
+5104,989
+5101,997
+5097,1006
+5091,1019
+5083,1034
+5073,1053
+5060,1075
+5044,1100
+5025,1125
+5003,1149
+4982,1169
+4961,1185
+4944,1197
+4930,1205
+4918,1210
+4909,1212
+4901,1213
+4894,1212
+4886,1212
+4878,1212
+4867,1214
+4854,1217
+4836,1223
+4814,1232
+4788,1244
+4758,1259
+4725,1275
+4692,1291
+4662,1307
+4637,1320
+4617,1331
+4602,1340
+4591,1347
+4584,1353
+4579,1358
+4575,1363
+4571,1367
+4566,1371
+4559,1376
+4548,1382
+4533,1389
+4513,1397
+4488,1406
+4458,1416
+4425,1425
+4388,1433
+4356,1439
+4329,1443
+4309,1445
+4295,1446
+4286,1446
+4279,1445
+4275,1444
+4271,1442
+4264,1441
+4255,1439
+4241,1437
+4221,1435
+4194,1432
+4162,1429
+4125,1425
+4088,1420
+4056,1414
+4030,1409
+4010,1404
+3997,1399
+3989,1395
+3984,1391
+3981,1388
+3978,1384
+3973,1380
+3964,1376
+3950,1371
+3930,1366
+3901,1361
+3866,1355
+3825,1350
+3788,1346
+3753,1344
+3722,1343
+3697,1344
+3677,1346
+3661,1349
+3649,1353
+3640,1358
+3631,1363
+3623,1367
+3614,1371
+3602,1374
+3587,1376
+3568,1376
+3544,1374
+3516,1369
+3484,1361
+3450,1350
+3418,1336
+3390,1322
+3366,1308
+3347,1296
+3332,1285
+3320,1276
+3312,1268
+3305,1261
+3300,1255
+3295,1248
+3289,1241
+3283,1232
+3276,1221
+3267,1207
+3257,1190
+3246,1171
+3235,1149
+3225,1125
+3218,1095
+3216,1070
+3218,1051
+3224,1039
+3232,1032
+3242,1029
+3252,1028
+3262,1026
+3273,1023
+3282,1015
+3291,1002
+3298,981
+3302,952
+3304,918
+3303,886
+3300,856
+3296,831
+3290,809
+3283,792
+3276,779
+3268,768
+3261,759
+3253,749
+3246,738
+3240,726
+3234,710
+3229,691
+3227,669
+3226,644
+3229,618
+3236,593
+3245,573
+3254,561
+3262,555
+3270,553
+3276,554
+3283,558
+3290,561
+3298,563
+3307,563
+3320,560
+3335,552
+3354,540
+3375,525
+3396,509
+3413,494
+3426,482
+3434,472
+3438,464
+3440,458
+3439,453
+3440,448
+3442,442
+3447,435
+3458,426
+3475,416
+3499,404
+3529,393
+3558,385
+3585,379
+3608,375
+3627,373
+3642,373
+3654,374
+3663,377
+3671,379
+3679,382
+3689,384
+3701,386
+3717,387
+3737,386
+3763,384
+3793,380
+3825,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="2625" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="4650" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Primary</text>
+<!-- Text -->
+<text xml:space="preserve" x="6975" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Backup</text>
+<!-- Line -->
+<polyline points="300,999
+1510,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,990
+1510,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1007
+1510,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1652
+1510,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1642
+1510,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1659
+1510,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="601,995
+601,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="610,995
+610,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="593,995
+593,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="531,995
+531,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="540,995
+540,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="523,995
+523,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="829,995
+829,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="839,995
+839,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="822,995
+822,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="760,995
+760,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="769,995
+769,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="752,995
+752,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1051,995
+1051,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,995
+1061,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1043,995
+1043,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="981,995
+981,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,995
+990,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="974,995
+974,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1276,995
+1276,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1285,995
+1285,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1269,995
+1269,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1206,995
+1206,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1215,995
+1215,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1198,995
+1198,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1481,995
+1481,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1489,995
+1489,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1473,995
+1473,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1411,995
+1411,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1420,995
+1420,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1402,995
+1402,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="831,995
+831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="2625" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="4800" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="7050" y="750" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="3600" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Line: box -->
+<rect x="2725" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2625" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="2625,2566
+3525,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4800" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="4800,2566
+5700,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1351" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1318" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1451" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1418" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1551" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1518" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1651" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1618" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1751" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1718" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1853" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1818" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1951" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1919" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="2052" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="2019" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1118" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1083" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="1017" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="983" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="917" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7150" y="883" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7050" y="2186" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="7050,1216
+7950,1216
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="345,1170
+345,1260
+438,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="340,1170
+435,1170
+435,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="349,1185
+430,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,1222
+430,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="2100,2625
+2100,2039
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2100 2625 - 2100 1770-->
+<polygon points="2160 2042
+2100 1802
+2040 2042
+2160 2042
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line: box -->
+<rect x="345" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/proxy_load_balance.svg b/doc/antora/modules/tutorials/assets/images/proxy_load_balance.svg
new file mode 100644 (file)
index 0000000..39f6b50
--- /dev/null
@@ -0,0 +1,1311 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.5in" height="3.7in"
+       viewBox="288 288 7759 4443">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="675,1950
+1725,1950
+1725,3225
+2310,3225
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1725 3225 - 2580 3225-->
+<polygon points="2308 3285
+2548 3225
+2308 3165
+2308 3285
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="2550,2625
+2100,2625
+2100,1125
+6300,1125
+6300,2550
+" style="stroke:#0000ff;stroke-width:30;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4875,900
+6450,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5625,3000
+6375,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6450,1350
+7125,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6450,3900
+7125,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="300" y="900" width="1215" height="900" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#e7e7e7;
+"/>
+<!-- Line -->
+<polyline points="1500,1350
+1950,1350
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,375
+1950,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,3000
+2625,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1950,900
+3300,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6450,300
+6450,4200
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polygon points="3825,375
+3860,368
+3890,361
+3911,353
+3923,347
+3930,341
+3931,335
+3931,330
+3931,325
+3933,319
+3940,314
+3954,309
+3977,305
+4010,301
+4050,300
+4084,301
+4116,303
+4144,306
+4168,310
+4187,314
+4202,318
+4214,323
+4223,327
+4231,331
+4240,336
+4249,340
+4261,345
+4277,350
+4297,355
+4322,360
+4353,365
+4388,370
+4425,375
+4466,379
+4502,381
+4531,381
+4553,380
+4569,377
+4580,373
+4588,368
+4594,363
+4599,357
+4606,353
+4616,350
+4629,349
+4647,350
+4670,355
+4696,363
+4725,375
+4751,390
+4773,406
+4789,421
+4800,434
+4806,445
+4808,454
+4808,462
+4806,469
+4805,476
+4804,485
+4806,495
+4811,509
+4820,526
+4834,547
+4853,572
+4875,600
+4899,628
+4921,652
+4941,671
+4959,686
+4973,695
+4986,701
+4996,704
+5006,706
+5016,708
+5026,712
+5037,718
+5048,729
+5062,744
+5075,766
+5089,793
+5100,825
+5107,854
+5110,882
+5112,906
+5112,926
+5112,942
+5111,955
+5110,966
+5108,974
+5106,981
+5104,989
+5101,997
+5097,1006
+5091,1019
+5083,1034
+5073,1053
+5060,1075
+5044,1100
+5025,1125
+5003,1149
+4982,1169
+4961,1185
+4944,1197
+4930,1205
+4918,1210
+4909,1212
+4901,1213
+4894,1212
+4886,1212
+4878,1212
+4867,1214
+4854,1217
+4836,1223
+4814,1232
+4788,1244
+4758,1259
+4725,1275
+4692,1291
+4662,1307
+4637,1320
+4617,1331
+4602,1340
+4591,1347
+4584,1353
+4579,1358
+4575,1363
+4571,1367
+4566,1371
+4559,1376
+4548,1382
+4533,1389
+4513,1397
+4488,1406
+4458,1416
+4425,1425
+4388,1433
+4356,1439
+4329,1443
+4309,1445
+4295,1446
+4286,1446
+4279,1445
+4275,1444
+4271,1442
+4264,1441
+4255,1439
+4241,1437
+4221,1435
+4194,1432
+4162,1429
+4125,1425
+4088,1420
+4056,1414
+4030,1409
+4010,1404
+3997,1399
+3989,1395
+3984,1391
+3981,1388
+3978,1384
+3973,1380
+3964,1376
+3950,1371
+3930,1366
+3901,1361
+3866,1355
+3825,1350
+3788,1346
+3753,1344
+3722,1343
+3697,1344
+3677,1346
+3661,1349
+3649,1353
+3640,1358
+3631,1363
+3623,1367
+3614,1371
+3602,1374
+3587,1376
+3568,1376
+3544,1374
+3516,1369
+3484,1361
+3450,1350
+3418,1336
+3390,1322
+3366,1308
+3347,1296
+3332,1285
+3320,1276
+3312,1268
+3305,1261
+3300,1255
+3295,1248
+3289,1241
+3283,1232
+3276,1221
+3267,1207
+3257,1190
+3246,1171
+3235,1149
+3225,1125
+3218,1095
+3216,1070
+3218,1051
+3224,1039
+3232,1032
+3242,1029
+3252,1028
+3262,1026
+3273,1023
+3282,1015
+3291,1002
+3298,981
+3302,952
+3304,918
+3303,886
+3300,856
+3296,831
+3290,809
+3283,792
+3276,779
+3268,768
+3261,759
+3253,749
+3246,738
+3240,726
+3234,710
+3229,691
+3227,669
+3226,644
+3229,618
+3236,593
+3245,573
+3254,561
+3262,555
+3270,553
+3276,554
+3283,558
+3290,561
+3298,563
+3307,563
+3320,560
+3335,552
+3354,540
+3375,525
+3396,509
+3413,494
+3426,482
+3434,472
+3438,464
+3440,458
+3439,453
+3440,448
+3442,442
+3447,435
+3458,426
+3475,416
+3499,404
+3529,393
+3558,385
+3585,379
+3608,375
+3627,373
+3642,373
+3654,374
+3663,377
+3671,379
+3679,382
+3689,384
+3701,386
+3717,387
+3737,386
+3763,384
+3793,380
+3825,375
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+fill:#ffffff;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="750" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="2625" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="4800" y="1950" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Two</text>
+<!-- Text -->
+<text xml:space="preserve" x="7125" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">One</text>
+<!-- Text -->
+<text xml:space="preserve" x="7125" y="3000" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Three</text>
+<!-- Line -->
+<polyline points="300,999
+1510,999
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,990
+1510,990
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1007
+1510,1007
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1652
+1510,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1642
+1510,1642
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1659
+1510,1659
+" style="stroke:#c7c7c7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="601,995
+601,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="610,995
+610,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="593,995
+593,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="531,995
+531,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="540,995
+540,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="523,995
+523,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="829,995
+829,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="839,995
+839,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="822,995
+822,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="760,995
+760,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="769,995
+769,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="752,995
+752,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1051,995
+1051,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1061,995
+1061,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1043,995
+1043,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="981,995
+981,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="990,995
+990,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="974,995
+974,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1276,995
+1276,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1285,995
+1285,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1269,995
+1269,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1206,995
+1206,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1215,995
+1215,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1198,995
+1198,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1481,995
+1481,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1489,995
+1489,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1473,995
+1473,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1411,995
+1411,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1420,995
+1420,1652
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1402,995
+1402,1652
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="831,995
+831,1652
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="2625" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="4800" y="2100" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="7125" y="750" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="7125" y="3150" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="3600" y="975" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Internet</text>
+<!-- Line: box -->
+<rect x="2725" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="2725" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="2625" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="2625,2566
+3525,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2701" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2668" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2801" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2768" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2901" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2868" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3001" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2968" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3101" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3068" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3203" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3168" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3301" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3269" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3402" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="3369" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2468" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2433" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2367" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2333" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2267" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="4900" y="2233" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="4800" y="3536" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="4800,2566
+5700,2566
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1351" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1318" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1451" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1418" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1551" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1518" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1651" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1618" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1751" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1718" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1853" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1818" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1951" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1919" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="2052" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="2019" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1118" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1083" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="1017" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="983" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="917" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="883" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7125" y="2186" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="7125,1216
+8025,1216
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3751" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3718" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3851" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3818" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3951" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3918" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4051" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4018" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4151" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4118" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4253" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4218" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4351" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4319" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4452" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="4419" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3518" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3483" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3417" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3383" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3317" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#e0e0e0;
+"/>
+<!-- Line: box -->
+<rect x="7225" y="3283" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line: box -->
+<rect x="7125" y="4586" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#404040;
+"/>
+<!-- Line -->
+<polyline points="7125,3616
+8025,3616
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#c0c0c0;
+"/>
+<!-- Line -->
+<polyline points="345,1170
+345,1260
+438,1260
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="340,1170
+435,1170
+435,1259
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#c7c7c7;
+"/>
+<!-- Line -->
+<polyline points="349,1185
+430,1186
+" style="stroke:#f7f7f7;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="349,1222
+430,1222
+" style="stroke:#868686;stroke-width:7;
+stroke-linejoin:round; stroke-linecap:butt;
+fill:#000000;
+"/>
+<!-- Line -->
+<polyline points="2100,2625
+2100,2039
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2100 2625 - 2100 1770-->
+<polygon points="2160 2042
+2100 1802
+2040 2042
+2160 2042
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="5700,1125
+6810,1125
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5700 1125 - 7080 1125-->
+<polygon points="6808 1185
+7048 1125
+6808 1065
+6808 1185
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="6300,2550
+6300,3750
+6735,3750
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6300 3750 - 7005 3750-->
+<polygon points="6733 3810
+6973 3750
+6733 3690
+6733 3810
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="6300,2550
+6014,2550
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6300 2550 - 5745 2550-->
+<polygon points="6017 2490
+5777 2550
+6017 2610
+6017 2490
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line: box -->
+<rect x="345" y="1193" width="81" height="21" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+fill:#000000;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/radius_packet.svg b/doc/antora/modules/tutorials/assets/images/radius_packet.svg
new file mode 100644 (file)
index 0000000..24ef36e
--- /dev/null
@@ -0,0 +1,438 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="5.3in" height="4.1in"
+       viewBox="288 149 6313 4963">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="3300,1500
+3300,1501
+3300,1506
+3301,1518
+3301,1538
+3303,1564
+3304,1593
+3306,1622
+3309,1649
+3312,1674
+3316,1695
+3320,1712
+3325,1727
+3331,1739
+3338,1750
+3347,1761
+3358,1769
+3372,1776
+3389,1782
+3410,1787
+3433,1791
+3459,1795
+3484,1797
+3505,1799
+3518,1800
+3524,1800
+3525,1800
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3525,1800
+3524,1800
+3518,1800
+3505,1801
+3484,1803
+3459,1805
+3433,1809
+3410,1813
+3389,1818
+3372,1824
+3358,1831
+3347,1839
+3338,1850
+3331,1861
+3325,1873
+3320,1888
+3316,1905
+3312,1926
+3309,1951
+3306,1978
+3304,2007
+3303,2036
+3301,2062
+3301,2082
+3300,2094
+3300,2099
+3300,2100
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3300,3900
+3300,3901
+3300,3906
+3301,3918
+3301,3938
+3303,3964
+3304,3993
+3306,4022
+3309,4049
+3312,4074
+3316,4095
+3320,4112
+3325,4127
+3331,4139
+3338,4150
+3347,4161
+3358,4169
+3372,4176
+3389,4182
+3410,4187
+3433,4191
+3459,4195
+3484,4197
+3505,4199
+3518,4200
+3524,4200
+3525,4200
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3525,4200
+3524,4200
+3518,4200
+3505,4201
+3484,4203
+3459,4205
+3433,4209
+3410,4213
+3389,4218
+3372,4224
+3358,4231
+3347,4239
+3338,4250
+3331,4261
+3325,4273
+3320,4288
+3316,4305
+3312,4326
+3309,4351
+3306,4378
+3304,4407
+3303,4436
+3301,4462
+3301,4482
+3300,4494
+3300,4499
+3300,4500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1500,300
+1500,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="900,300
+900,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,900
+2700,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,1500
+2700,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:40 40;"/>
+<!-- Line -->
+<polyline points="300,2100
+2700,2100
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:40 40;"/>
+<!-- Line -->
+<polyline points="300,2700
+2700,2700
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:40 40;"/>
+<!-- Line -->
+<polyline points="900,3300
+900,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1500,3300
+1500,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,3900
+1500,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1500,3900
+1500,4500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2100,3900
+2100,4500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1500,1950
+1500,2880
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1500 1950 - 1500 3015-->
+<polygon points="1470 2879
+1500 2999
+1530 2879
+1470 2879
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="1500,3900
+2700,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,4500
+300,5100
+2100,5100
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="2100,5100
+2700,5100
+2700,4500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+stroke-dasharray:40 40;"/>
+<!-- Line: box -->
+<rect x="300" y="300" width="2400" height="4200" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3300,600
+3300,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3300,2100
+3300,3000
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3300,3600
+3300,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3300,4500
+3300,4800
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="300,3300
+2700,3300
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="6600,150
+6600,225
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3000,300
+3001,300
+3006,300
+3018,301
+3038,302
+3064,303
+3093,306
+3122,309
+3149,312
+3174,316
+3195,321
+3212,326
+3227,333
+3239,341
+3250,350
+3259,361
+3267,373
+3274,388
+3279,405
+3284,426
+3288,451
+3291,478
+3294,507
+3297,536
+3298,562
+3299,582
+3300,594
+3300,599
+3300,600
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3000,3300
+3001,3300
+3006,3300
+3018,3301
+3038,3302
+3064,3303
+3093,3306
+3122,3309
+3149,3312
+3174,3316
+3195,3321
+3212,3326
+3227,3333
+3239,3341
+3250,3350
+3259,3361
+3267,3373
+3274,3388
+3279,3405
+3284,3426
+3288,3451
+3291,3478
+3294,3507
+3297,3536
+3298,3562
+3299,3582
+3300,3594
+3300,3599
+3300,3600
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3300,3000
+3300,3001
+3300,3006
+3299,3018
+3298,3038
+3297,3064
+3294,3093
+3291,3122
+3288,3149
+3284,3174
+3279,3195
+3274,3212
+3267,3227
+3259,3239
+3250,3250
+3239,3259
+3227,3267
+3212,3274
+3195,3279
+3174,3284
+3149,3288
+3122,3291
+3093,3294
+3064,3297
+3038,3298
+3018,3299
+3006,3300
+3001,3300
+3000,3300
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3300,4800
+3300,4801
+3300,4806
+3299,4818
+3298,4838
+3297,4864
+3294,4893
+3291,4922
+3288,4949
+3284,4974
+3279,4995
+3274,5012
+3267,5027
+3259,5039
+3250,5050
+3239,5059
+3227,5067
+3212,5074
+3195,5079
+3174,5084
+3149,5088
+3122,5091
+3093,5094
+3064,5097
+3038,5098
+3018,5099
+3006,5100
+3001,5100
+3000,5100
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="3675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">attr</text>
+<!-- Text -->
+<text xml:space="preserve" x="450" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Code</text>
+<!-- Text -->
+<text xml:space="preserve" x="1200" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Id</text>
+<!-- Text -->
+<text xml:space="preserve" x="1875" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Length</text>
+<!-- Text -->
+<text xml:space="preserve" x="975" y="1275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">authentication</text>
+<!-- Text -->
+<text xml:space="preserve" x="1200" y="1875" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">vector</text>
+<!-- Text -->
+<text xml:space="preserve" x="1875" y="3675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">data...</text>
+<!-- Text -->
+<text xml:space="preserve" x="1125" y="3675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">len</text>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">more data...</text>
+<!-- Text -->
+<text xml:space="preserve" x="1650" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">attr</text>
+<!-- Text -->
+<text xml:space="preserve" x="2325" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">len</text>
+<!-- Text -->
+<text xml:space="preserve" x="1050" y="4875" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">data...</text>
+<!-- Text -->
+<text xml:space="preserve" x="3675" y="1875" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">RADIUS packet header</text>
+<!-- Text -->
+<text xml:space="preserve" x="3675" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">List of attributes</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/request_files.svg b/doc/antora/modules/tutorials/assets/images/request_files.svg
new file mode 100644 (file)
index 0000000..4a4736e
--- /dev/null
@@ -0,0 +1,131 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.1in" height="3.5in"
+       viewBox="285 149 7345 4142">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="1350,675
+1350,780
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1350 675 - 1350 915-->
+<polygon points="1320 779
+1350 899
+1380 779
+1320 779
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="1350,1275
+1350,1380
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1350 1275 - 1350 1515-->
+<polygon points="1320 1379
+1350 1499
+1380 1379
+1320 1379
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="1350,1875
+1350,1980
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1350 1875 - 1350 2115-->
+<polygon points="1320 1979
+1350 2099
+1380 1979
+1320 1979
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="1350,2475
+1350,2580
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1350 2475 - 1350 2715-->
+<polygon points="1320 2579
+1350 2699
+1380 2579
+1320 2579
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="1350,3675
+1350,3780
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1350 3675 - 1350 3915-->
+<polygon points="1320 3779
+1350 3899
+1380 3779
+1320 3779
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="1350,3075
+1350,3180
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1350 3075 - 1350 3315-->
+<polygon points="1320 3179
+1350 3299
+1380 3179
+1320 3179
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="7500,150
+7500,300
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="300" y="1200" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">clients (clients.conf)</text>
+<!-- Text -->
+<text xml:space="preserve" x="1050" y="1800" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">hints</text>
+<!-- Text -->
+<text xml:space="preserve" x="825" y="2400" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">huntgroups</text>
+<!-- Text -->
+<text xml:space="preserve" x="450" y="3000" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">realms (proxy.conf)</text>
+<!-- Text -->
+<text xml:space="preserve" x="1125" y="3600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">users</text>
+<!-- Text -->
+<text xml:space="preserve" x="600" y="4200" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Accept</text>
+<!-- Text -->
+<text xml:space="preserve" x="525" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Access-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="4200" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">accept or reject the user, and respond with policy attributes</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="3000" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">check if the user is associated with an organization </text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="2400" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">group users by NAS and NAS-Port</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="1800" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">check if the user has requested a specific protocol</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="1200" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">match request to a known client</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">contains user, password, and requested policy</text>
+<!-- Text -->
+<text xml:space="preserve" x="3000" y="3600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">match requests to server policy, and configure the reply</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/request_handoff.svg b/doc/antora/modules/tutorials/assets/images/request_handoff.svg
new file mode 100644 (file)
index 0000000..b1cf33b
--- /dev/null
@@ -0,0 +1,480 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.2in" height="2.7in"
+       viewBox="396 315 7440 3222">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="5700,75
+6075,75
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5700 75 - 6075 75-->
+<polygon points="-2147483648 -2147483648
+-2147483648 -2147483648
+-2147483648 -2147483648
+-2147483648 -2147483648
+
+" style="stroke:#000000;stroke-width:0;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line: box -->
+<rect x="6075" y="2925" width="975" height="600" rx="0" 
+style="stroke:#0000d1;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3525" y="2925" width="975" height="600" rx="0" 
+style="stroke:#0000d1;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="4800" y="2925" width="975" height="600" rx="0" 
+style="stroke:#0000d1;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5400,2475
+5399,2475
+5397,2476
+5393,2478
+5387,2480
+5379,2483
+5368,2487
+5354,2492
+5338,2497
+5319,2503
+5298,2509
+5275,2516
+5250,2522
+5224,2528
+5196,2534
+5168,2538
+5139,2542
+5110,2544
+5081,2544
+5052,2543
+5022,2539
+4993,2533
+4964,2524
+4936,2511
+4907,2495
+4879,2475
+4851,2451
+4824,2422
+4797,2387
+4772,2347
+4747,2301
+4725,2250
+4708,2203
+4693,2154
+4680,2104
+4669,2053
+4659,2003
+4650,1954
+4643,1907
+4637,1862
+4632,1819
+4628,1778
+4625,1739
+4623,1702
+4621,1667
+4620,1633
+4619,1601
+4618,1570
+4618,1540
+4618,1510
+4619,1481
+4619,1452
+4620,1423
+4622,1393
+4623,1362
+4625,1331
+4627,1298
+4630,1263
+4633,1227
+4636,1190
+4640,1150
+4645,1108
+4651,1065
+4658,1021
+4666,975
+4675,928
+4685,881
+4697,836
+4710,791
+4725,750
+4745,706
+4766,668
+4789,637
+4813,611
+4837,591
+4862,576
+4887,565
+4912,559
+4938,556
+4964,557
+4989,560
+5015,566
+5041,574
+5067,585
+5093,596
+5119,609
+5144,623
+5168,638
+5192,653
+5214,667
+5234,682
+5253,695
+5270,707
+5284,718
+5296,727
+5306,735
+5314,741
+5139,598
+" style="stroke:#000000;stroke-width:15;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5314 741 - 5348 768-->
+<polygon points="5097 645
+5323 748
+5172 551
+5097 645
+
+" style="stroke:#000000;stroke-width:15;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="1200,2475
+1199,2475
+1197,2476
+1193,2478
+1187,2480
+1179,2483
+1168,2487
+1154,2492
+1138,2497
+1119,2503
+1098,2509
+1075,2516
+1050,2522
+1024,2528
+996,2534
+968,2538
+939,2542
+910,2544
+881,2544
+852,2543
+822,2539
+793,2533
+764,2524
+736,2511
+707,2495
+679,2475
+651,2451
+624,2422
+597,2387
+572,2347
+547,2301
+525,2250
+508,2203
+493,2154
+480,2104
+469,2053
+459,2003
+450,1954
+443,1907
+437,1862
+432,1819
+428,1778
+425,1739
+423,1702
+421,1667
+420,1633
+419,1601
+418,1570
+418,1540
+418,1510
+419,1481
+419,1452
+420,1423
+422,1393
+423,1362
+425,1331
+427,1298
+430,1263
+433,1227
+436,1190
+440,1150
+445,1108
+451,1065
+458,1021
+466,975
+475,928
+485,881
+497,836
+510,791
+525,750
+545,706
+566,668
+589,637
+613,611
+637,591
+662,576
+687,565
+712,559
+738,556
+764,557
+789,560
+815,566
+841,574
+867,585
+893,596
+919,609
+944,623
+968,638
+992,653
+1014,667
+1034,682
+1053,695
+1070,707
+1084,718
+1096,727
+1106,735
+1114,741
+939,598
+" style="stroke:#000000;stroke-width:15;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1114 741 - 1148 768-->
+<polygon points="897 645
+1123 748
+972 551
+897 645
+
+" style="stroke:#000000;stroke-width:15;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="7314,3245
+7315,3244
+7318,3243
+7323,3240
+7330,3236
+7340,3230
+7353,3223
+7369,3214
+7387,3202
+7407,3190
+7429,3175
+7452,3159
+7476,3142
+7500,3123
+7525,3103
+7549,3081
+7574,3057
+7598,3032
+7621,3004
+7645,2973
+7667,2940
+7689,2903
+7710,2863
+7730,2819
+7748,2771
+7764,2720
+7776,2671
+7786,2623
+7793,2577
+7799,2534
+7804,2495
+7807,2459
+7810,2428
+7812,2400
+7813,2376
+7814,2355
+7814,2336
+7814,2319
+7814,2304
+7814,2289
+7813,2274
+7812,2259
+7810,2242
+7807,2224
+7804,2204
+7799,2181
+7793,2155
+7785,2126
+7775,2093
+7763,2058
+7749,2019
+7732,1978
+7712,1936
+7689,1895
+7662,1853
+7632,1816
+7602,1782
+7571,1753
+7539,1728
+7508,1706
+7476,1687
+7445,1671
+7413,1658
+7382,1646
+7350,1636
+7319,1628
+7288,1621
+7258,1615
+7230,1610
+7203,1606
+7178,1603
+7156,1600
+7136,1599
+7121,1597
+7108,1596
+7328,1607
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 7108 1596 - 7059 1593-->
+<polygon points="7334 1549
+7091 1595
+7326 1669
+7334 1549
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Line -->
+<polyline points="3360,1620
+3361,1621
+3364,1622
+3370,1624
+3378,1628
+3389,1633
+3404,1640
+3421,1648
+3442,1658
+3464,1670
+3489,1683
+3514,1697
+3540,1712
+3567,1729
+3592,1746
+3617,1765
+3640,1784
+3662,1805
+3681,1826
+3697,1849
+3710,1874
+3720,1900
+3726,1928
+3727,1958
+3723,1991
+3714,2025
+3698,2062
+3675,2100
+3651,2132
+3624,2163
+3593,2193
+3561,2221
+3527,2247
+3492,2271
+3457,2292
+3421,2310
+3386,2327
+3352,2340
+3317,2352
+3284,2362
+3250,2371
+3217,2378
+3185,2385
+3152,2391
+3120,2396
+3088,2402
+3056,2408
+3024,2414
+2991,2422
+2959,2430
+2926,2441
+2894,2453
+2861,2467
+2829,2483
+2797,2502
+2765,2524
+2735,2548
+2707,2575
+2681,2604
+2658,2635
+2639,2667
+2625,2700
+2616,2737
+2615,2773
+2619,2808
+2630,2840
+2645,2871
+2665,2900
+2689,2927
+2716,2953
+2746,2977
+2779,3000
+2814,3022
+2851,3043
+2889,3063
+2929,3082
+2970,3101
+3010,3118
+3050,3135
+3089,3150
+3126,3164
+3161,3177
+3192,3188
+3220,3198
+3243,3206
+3262,3213
+3277,3218
+3070,3155
+" style="stroke:#0000ff;stroke-width:15;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3277 3218 - 3328 3233-->
+<polygon points="3049 3213
+3297 3224
+3083 3098
+3049 3213
+
+" style="stroke:#0000ff;stroke-width:15;stroke-miterlimit:8;
+fill:#0000ff;"/>
+<!-- Text -->
+<text xml:space="preserve" x="6150" y="3300" fill="#0000d1"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="3600" y="3300" fill="#0000d1"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="4875" y="3300" fill="#0000d1"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="5100" y="1365" fill="#008f8f"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">lock request queue</text>
+<!-- Text -->
+<text xml:space="preserve" x="5100" y="1680" fill="#0000ff"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">pop a request</text>
+<!-- Text -->
+<text xml:space="preserve" x="5100" y="1995" fill="#008f8f"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">unlock request queue</text>
+<!-- Text -->
+<text xml:space="preserve" x="5100" y="2310" fill="#0000ff"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">process request</text>
+<!-- Text -->
+<text xml:space="preserve" x="5100" y="1050" fill="#00d100"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Wait for semaphore</text>
+<!-- Text -->
+<text xml:space="preserve" x="5325" y="525" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">Thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="2310" fill="#00d100"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">signal semaphore</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="1050" fill="#0000ff"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">Receive a request</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="1680" fill="#0000ff"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">push request onto queue</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="1350" fill="#008f8f"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">lock request queue</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="2025" fill="#008f8f"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">unlock request queue</text>
+<!-- Text -->
+<text xml:space="preserve" x="1200" y="525" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">Server core</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/request_processing.svg b/doc/antora/modules/tutorials/assets/images/request_processing.svg
new file mode 100644 (file)
index 0000000..c9f6bbf
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="4.2in" height="2.8in"
+       viewBox="360 299 5041 3383">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="2550,750
+1294,1726
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2550 750 - 1188 1809-->
+<polygon points="1277 1701
+1201 1799
+1314 1749
+1277 1701
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2550,750
+3805,1726
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2550 750 - 3911 1809-->
+<polygon points="3784 1748
+3898 1799
+3821 1701
+3784 1748
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="5400,300
+5400,450
+" style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="1575" y="525" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="240" text-anchor="start">Processing a request</text>
+<!-- Text -->
+<text xml:space="preserve" x="3525" y="1275" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="144" text-anchor="start">Accounting-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="375" y="1275" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="144" text-anchor="start">Access-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="750" y="2100" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authorize</text>
+<!-- Text -->
+<text xml:space="preserve" x="750" y="2400" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">authenticate</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="2700" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">pre-proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="3000" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">post-proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="3300" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">session</text>
+<!-- Text -->
+<text xml:space="preserve" x="3600" y="2100" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">preacct</text>
+<!-- Text -->
+<text xml:space="preserve" x="3600" y="2400" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">accounting</text>
+<!-- Text -->
+<text xml:space="preserve" x="3900" y="2700" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">pre-proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="3900" y="3000" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">post-proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="750" y="3600" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="192" text-anchor="start">post-auth</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/request_receive.svg b/doc/antora/modules/tutorials/assets/images/request_receive.svg
new file mode 100644 (file)
index 0000000..371f3c4
--- /dev/null
@@ -0,0 +1,289 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="5.9in" height="3.1in"
+       viewBox="285 366 7066 3661">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line: box -->
+<rect x="7200" y="1275" width="150" height="150" rx="0" 
+style="stroke:#ffffff;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1425,975
+1426,975
+1428,976
+1432,977
+1438,978
+1446,980
+1457,983
+1471,986
+1488,990
+1507,994
+1528,999
+1552,1003
+1578,1008
+1606,1013
+1636,1017
+1667,1021
+1700,1025
+1734,1028
+1770,1031
+1807,1032
+1847,1033
+1889,1033
+1933,1031
+1979,1029
+2029,1024
+2082,1018
+2139,1011
+2198,1001
+2261,989
+2325,975
+2386,960
+2446,944
+2503,927
+2556,909
+2606,891
+2650,873
+2690,855
+2726,838
+2757,820
+2784,803
+2808,786
+2829,770
+2847,754
+2864,738
+2879,722
+2894,706
+2908,691
+2923,676
+2939,660
+2956,645
+2975,630
+2997,616
+3021,601
+3049,588
+3080,574
+3115,562
+3153,551
+3194,541
+3237,533
+3283,527
+3329,524
+3375,525
+3424,530
+3469,539
+3509,553
+3544,569
+3575,588
+3602,609
+3626,632
+3646,656
+3663,682
+3678,710
+3691,738
+3702,768
+3712,797
+3720,827
+3726,857
+3732,886
+3736,914
+3740,941
+3743,965
+3745,986
+3747,1005
+3748,1020
+3749,1032
+3737,810
+" style="stroke:#0000d1;stroke-width:15;
+stroke-linejoin:bevel; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3749 1032 - 3751 1079-->
+<polygon points="3679 809
+3750 1047
+3799 804
+3679 809
+
+" style="stroke:#0000d1;stroke-width:15;stroke-miterlimit:8;
+fill:#0000d1;"/>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="1425" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Is the request a valid RADIUS packet?</text>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="1740" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Is the request from a known client?</text>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="2055" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Is the request a duplicate?</text>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="2370" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">    Do we already have a reply for that request?</text>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="2685" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">    Should we re-send a proxied request?</text>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="3000" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">    Are we currently processing the original?</text>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="3630" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Add the request to the internal cache</text>
+<!-- Text -->
+<text xml:space="preserve" x="2100" y="3945" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Give the request to a child to process</text>
+<!-- Text -->
+<text xml:space="preserve" x="3900" y="750" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="144" text-anchor="start">Accounting-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="3750" y="525" fill="#000000"  font-family="Times" font-style="italic" font-weight="normal" font-size="144" text-anchor="start">Access-Request</text>
+<!-- Text -->
+<text xml:space="preserve" x="300" y="600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="240" text-anchor="start">Server</text>
+<!-- Line: box -->
+<rect x="300" y="750" width="900" height="1569" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#bdbebd;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1351" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1318" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1451" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1418" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1551" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1518" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1651" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1618" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1751" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1718" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1853" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1818" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1951" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1919" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="2052" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="2019" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1118" width="700" height="32" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1083" width="700" height="35" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="1017" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="983" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="400" y="917" width="700" height="33" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#dedfde;
+"/>
+<!-- Line: box -->
+<rect x="400" y="883" width="700" height="34" rx="0" 
+style="stroke:#000000;stroke-width:0;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line: box -->
+<rect x="300" y="2186" width="900" height="133" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#424142;
+"/>
+<!-- Line -->
+<polyline points="300,1216
+1200,1216
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:round;
+fill:#bdbebd;
+"/>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/server_schematic.svg b/doc/antora/modules/tutorials/assets/images/server_schematic.svg
new file mode 100644 (file)
index 0000000..9ce7b1e
--- /dev/null
@@ -0,0 +1,508 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="6.0in" height="6.5in"
+       viewBox="578 288 7244 7824">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line: box -->
+<rect x="600" y="300" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1800" y="300" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3000" y="300" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6825" y="300" width="975" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5475" y="300" width="975" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="2100" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="3600" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="4200" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="4575" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="4950" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="5325" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="5700" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="600" y="6075" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="4200" y="300" width="900" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1050,975
+1050,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1050 975 - 1050 1740-->
+<polygon points="1020 1604
+1050 1724
+1080 1604
+1020 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2250,975
+2250,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2250 975 - 2250 1740-->
+<polygon points="2220 1604
+2250 1724
+2280 1604
+2220 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="3450,975
+3450,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 3450 975 - 3450 1740-->
+<polygon points="3420 1604
+3450 1724
+3480 1604
+3420 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="6000,975
+6000,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 6000 975 - 6000 1740-->
+<polygon points="5970 1604
+6000 1724
+6030 1604
+5970 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="7350,975
+7350,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 7350 975 - 7350 1740-->
+<polygon points="7320 1604
+7350 1724
+7380 1604
+7320 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+4200,2880
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 4200 3015-->
+<polygon points="4170 2879
+4200 2999
+4230 2879
+4170 2879
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+1918,2985
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 1785 3001-->
+<polygon points="1916 2954
+1801 2999
+1923 3013
+1916 2954
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+3413,2962
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 3285 3004-->
+<polygon points="3404 2932
+3300 2999
+3423 2989
+3404 2932
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+4986,2962
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 5114 3004-->
+<polygon points="4975 2989
+5099 2999
+4994 2932
+4975 2989
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,2700
+6481,2985
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 2700 - 6614 3001-->
+<polygon points="6475 3013
+6598 2999
+6482 2954
+6475 3013
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line: box -->
+<rect x="600" y="1800" width="7200" height="900" rx="0" 
+style="stroke:#000000;stroke-width:15;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,3675
+1200,3780
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 1200 3675 - 1200 3915-->
+<polygon points="1170 3779
+1200 3899
+1230 3779
+1170 3779
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="2700,3675
+2700,3780
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 2700 3675 - 2700 3915-->
+<polygon points="2670 3779
+2700 3899
+2730 3779
+2670 3779
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="4200,3675
+4200,3780
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4200 3675 - 4200 3915-->
+<polygon points="4170 3779
+4200 3899
+4230 3779
+4170 3779
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="5700,3675
+5700,3780
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5700 3675 - 5700 3915-->
+<polygon points="5670 3779
+5700 3899
+5730 3779
+5670 3779
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line -->
+<polyline points="7200,3675
+7200,3780
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 7200 3675 - 7200 3915-->
+<polygon points="7170 3779
+7200 3899
+7230 3779
+7170 3779
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line: box -->
+<rect x="3600" y="4200" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="4200" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="4575" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="4950" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="5325" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="5700" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="5100" y="6075" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="5700,6750
+5700,7305
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 5700 6750 - 5700 7440-->
+<polygon points="5670 7304
+5700 7424
+5730 7304
+5670 7304
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line: box -->
+<rect x="600" y="3000" width="1200" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="4200" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="4575" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="4950" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="5700" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="6075" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="6600" y="6450" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="7200,5250
+7200,5355
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 7200 5250 - 7200 5490-->
+<polygon points="7170 5354
+7200 5474
+7230 5354
+7170 5354
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Line: box -->
+<rect x="6600" y="6825" width="1200" height="300" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="4875" y="7500" width="1650" height="600" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="4650,975
+4650,1605
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Arrowhead on XXXpoint 4650 975 - 4650 1740-->
+<polygon points="4620 1604
+4650 1724
+4680 1604
+4620 1604
+
+" style="stroke:#000000;stroke-width:7;stroke-miterlimit:8;
+fill:#000000;"/>
+<!-- Text -->
+<text xml:space="preserve" x="825" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="2025" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3225" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">NAS</text>
+<!-- Text -->
+<text xml:space="preserve" x="7050" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="5700" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Proxy</text>
+<!-- Text -->
+<text xml:space="preserve" x="2400" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="3900" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="5400" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="6900" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="4425" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">preprocess</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="4800" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">chap</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="5175" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">suffix</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="5550" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">files</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="5925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">eap</text>
+<!-- Text -->
+<text xml:space="preserve" x="675" y="6300" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">sql</text>
+<!-- Text -->
+<text xml:space="preserve" x="750" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">authorize</text>
+<!-- Text -->
+<text xml:space="preserve" x="4425" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">AP</text>
+<!-- Text -->
+<text xml:space="preserve" x="2625" y="2325" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">FreeRADIUS Server core</text>
+<!-- Text -->
+<text xml:space="preserve" x="2400" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">waiting</text>
+<!-- Text -->
+<text xml:space="preserve" x="3750" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">authenticate</text>
+<!-- Text -->
+<text xml:space="preserve" x="3675" y="4425" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">unix</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="4425" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">preprocess</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="4800" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">chap</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="5175" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">suffix</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="5550" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">files</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="5925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">eap</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="6300" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">sql</text>
+<!-- Text -->
+<text xml:space="preserve" x="5175" y="6600" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">proxy to realm</text>
+<!-- Text -->
+<text xml:space="preserve" x="900" y="3375" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">thread</text>
+<!-- Text -->
+<text xml:space="preserve" x="6675" y="4425" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">preprocess</text>
+<!-- Text -->
+<text xml:space="preserve" x="6675" y="4800" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">suffix</text>
+<!-- Text -->
+<text xml:space="preserve" x="6675" y="5175" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">files</text>
+<!-- Text -->
+<text xml:space="preserve" x="6900" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">preacct</text>
+<!-- Text -->
+<text xml:space="preserve" x="6750" y="5625" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">accounting</text>
+<!-- Text -->
+<text xml:space="preserve" x="6675" y="5925" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">act_unique</text>
+<!-- Text -->
+<text xml:space="preserve" x="6675" y="6300" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">detail</text>
+<!-- Text -->
+<text xml:space="preserve" x="6675" y="6675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">unix</text>
+<!-- Text -->
+<text xml:space="preserve" x="5025" y="7875" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="192" text-anchor="start">Home server</text>
+<!-- Text -->
+<text xml:space="preserve" x="5250" y="4125" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">authorize</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/assets/images/ttls_packet.svg b/doc/antora/modules/tutorials/assets/images/ttls_packet.svg
new file mode 100644 (file)
index 0000000..f8d9652
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: fig2dev Version 3.2 Patchlevel 5e -->
+<!-- CreationDate: Mon Aug 11 20:51:55 2014 -->
+<!-- Magnification: 1.000 -->
+<svg   xmlns="http://www.w3.org/2000/svg"
+       xmlns:xlink="http://www.w3.org/1999/xlink"
+       width="4.0in" height="3.5in"
+       viewBox="1188 288 4824 4224">
+<g style="stroke-width:.025in; fill:none">
+<!-- Line -->
+<polyline points="1200,900
+6000,900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,2100
+6000,2100
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,2700
+6000,2700
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,3300
+6000,3300
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,3900
+6000,3900
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="3600,3300
+3600,4500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line: box -->
+<rect x="1200" y="300" width="4800" height="4200" rx="0" 
+style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Line -->
+<polyline points="1200,1500
+6000,1500
+" style="stroke:#000000;stroke-width:7;
+stroke-linejoin:miter; stroke-linecap:butt;
+"/>
+<!-- Text -->
+<text xml:space="preserve" x="1875" y="3825" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">PAP, CHAP,</text>
+<!-- Text -->
+<text xml:space="preserve" x="1875" y="4050" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">MS-CHAP, etc.</text>
+<!-- Text -->
+<text xml:space="preserve" x="1575" y="675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Carrier Protocol (PPP, EAPOL, RADIUS, Diameter, etc</text>
+<!-- Text -->
+<text xml:space="preserve" x="3300" y="1275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP</text>
+<!-- Text -->
+<text xml:space="preserve" x="3300" y="2400" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">TLS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3075" y="1875" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP-TTLS</text>
+<!-- Text -->
+<text xml:space="preserve" x="3150" y="3075" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">Diameter</text>
+<!-- Text -->
+<text xml:space="preserve" x="4650" y="3675" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP</text>
+<!-- Text -->
+<text xml:space="preserve" x="4350" y="4275" fill="#000000"  font-family="Times" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">EAP-MD5, etc.</text>
+</g>
+</svg>
diff --git a/doc/antora/modules/tutorials/nav.adoc b/doc/antora/modules/tutorials/nav.adoc
new file mode 100644 (file)
index 0000000..5efbc52
--- /dev/null
@@ -0,0 +1,40 @@
+* Tutorials
+** xref:new_user.adoc[New User]
+** xref:matching_users.adoc[Matching Users]
+** xref:new_client.adoc[New Client]
+
+** xref:accounting.adoc[Accounting]
+*** xref:simultaneous_use.adoc[Simultaneous Use]
+
+** Unlang
+*** xref:unlang_update_blocks_and_conditions.adoc[Update blocks and conditions]
+*** xref:unlang_splitting_strings.adoc[Splitting strings]
+*** xref:unlang_policies.adoc[Policies]
+
+** xref:proxy.adoc[Proxying]
+*** xref:proxy_receive.adoc[Proxy Receive]
+*** xref:proxy_failover.adoc[Proxy Fail-Over]
+*** xref:proxy_load_balance.adoc[Proxy Load-Balance]
+
+** EAP
+*** xref:eap-md5.adoc[EAP-MD5]
+*** xref:eap-ttls.adoc[EAP-TTLS]
+*** xref:eap-peap.adoc[EAP-PEAP]
+*** xref:eap-tls.adoc[EAP-TLS]
+
+** xref:sql.adoc[SQL]
+*** xref:sql_user.adoc[SQL Users]
+
+** xref:variables.adoc[Variables]
+** xref:dynamic-translation.adoc[Dynamic-Translation]
+** xref:multiple_modules.adoc[Module instances]
+** xref:autz-type.adoc[Autz-Type]
+** xref:module_fail_over.adoc[Module-Fail-Over]
+** xref:prepaid.adoc[Prepaid]
+** xref:dictionary.adoc[Dictionary]
+** xref:virtual.adoc[Virtual]
+** xref:radmin.adoc[Radmin]
+
+
+// Copyright (C) 2025 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/accounting.adoc b/doc/antora/modules/tutorials/pages/accounting.adoc
new file mode 100644 (file)
index 0000000..3a45167
--- /dev/null
@@ -0,0 +1,124 @@
+= Accounting Requests
+
+*Goal*: To send the server accounting requests and to have the server
+log the accounting requests.
+
+*Time:* 20-30 minutes
+
+*Files:*
+
+- `/var/radacct/127.0.0.1/detail*`
+
+*Modules:* detail
+
+In addition to authorization and authentication, one of the primary roles of a
+RADIUS server is to record accounting information supplied by an NAS. In this
+exercise, you should create accounting requests to send to the server and see what
+the server does with those requests. This process simulates the actions taken by
+an NAS when a user logs in.
+
+Use the entry in the file from the exercise in
+xref:new_user.adoc[New User] for user "bob".
+
+You may create accounting packets by hand for this exercise, but we suggest that
+the follow test packets from the `exercises/packets` directory be used in this
+exercise:
+
+[source, bash]
+-----------------
+bob-login-one.sh
+bob-acct-start.sh
+bob-acct-stop.sh
+-----------------
+
+If you do create accounting packets by hand, then the attributes listed in the
+above scripts should be used as a guide.
+
+First, run the `bob-login-one.sh` script.
+
+Observe that the server has replied with an authentication accept to an
+authentication request for user "bob", who has logged in on a particular NAS
+port.
+
+If the server does not reply with an authentication accept, then check the
+attributes in the test packet and the file entry.
+
+You should now read the `man` pages for the `radwho` and `radlast` programs. Run
+each program in turn:
+
+[source, bash]
+---------
+$ radwho
+$ radlast
+---------
+
+Observe that both programs do not report user "bob" as being logged in.
+
+Now run the `bob-acct-start.sh` script, and observe the response of the server.
+You should see output containing lines similar to the following:
+
+-----------------------------------------------------------------------------------
+(0) Received Accounting-Request packet from host 127.0.0.1 port 57470, id=35, length=53
+(0)    User-Name = 'bob'
+(0)    Acct-Status-Type = Start
+(0)    Acct-Session-Id = '01020304'
+(0)    NAS-IP-Address = 127.0.0.1
+(0)    NAS-Port = 501
+(0) # Executing section preacct from file /etc/raddb/sites-enabled/default
+(0)   preacct {
+(0)   [preprocess] = ok
+-----------------------------------------------------------------------------------
+
+Other modules that should be referenced for "accounting" are the
+"preprocess", "suffix", "detail", and "sql" modules. We
+will work through the operation of these modules in a moment.
+
+Now, run the `radwho` and `radlast` programs again:
+
+[source, bash]
+---------
+$ radwho
+$ radlast
+---------
+
+Observe that both programs now see "bob" as being logged in.
+
+To tell the server that user "bob" has logged out, run the `bob-acct-stop.sh`
+script. Observe the server output, and then run `radwho` and `radlast` again.
+
+The `radwho` program should not display any logged-in users. The `radlast`
+program should now display both the last login time and the last logout time for
+user "bob".
+
+Now run the `bob-acct-stop.sh` program again. Observe how the server's output
+differs from the previous accounting stop packet.
+
+You should now read the `man` pages for the rlm_unix, rlm_radutmp, and
+rlm_unix modules, along with their configuration entries in
+`raddb/mods-available/radutmp` and `raddb/mods-available/unix`.
+
+In short, the "unix" module manages the database used by the `radlast`
+command. The "radutmp" module manages a separate database, which is used by
+the `radwho` command.
+
+The "detail" module simply logs every accounting request to a file in a simple
+textual format.
+
+== Questions
+
+1.  Why do accounting messages require less configuration of the server
+than authentication methods?
+2.  Why is the "detail" module useful?
+3.  Where is the "detail" file located? Why is the "detail" file in this location? Where is it configured?
+4.  What parts of the servers manage user session information?
+5.  What module other than "radutmp" can manage user session
+information?
+6.  Why is it useful to record which users are currently logged in?
+7.  What attributes that are found in the accounting request are not found in the
+authentication request? Why?
+8.  Which attributes are required to be in an accounting request?
+9.  What error message is produced on the second accounting stop, and
+why is it produced?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/autz-type.adoc b/doc/antora/modules/tutorials/pages/autz-type.adoc
new file mode 100644 (file)
index 0000000..33f7ee8
--- /dev/null
@@ -0,0 +1,66 @@
+= Using the Autz-Type attribute
+
+*Goal:* To control which authorization modules are executed for an
+`Access-Request`
+
+*Time:* 10-20 minutes
+
+*Files:*
+
+- `etc/raddb/sites-available/default`
+- `etc/raddb/users`
+
+This exercise is a follow-up to the previous one in
+xref:multiple_modules.adoc[Multiple Modules], and it uses the `byname` and `bydate` modules
+configured there.
+
+Start off by deleting the old log files:
+
+[source, bash]
+-------------------------------------------------
+$ rm -f /var/log/radius/radacct/byname/*
+$ rm -f !/var/log/radius/radacct/bydate/*
+-------------------------------------------------
+
+Edit the file, and add the following text at the top:
+
+----------------------------
+DEFAULT  Autz-Type := byname
+         Fall-Through = 1
+----------------------------
+
+In the `raddb/sites-available/default` file, edit the `authorize` section entries for
+the `byname` and `bydate` modules to be as follows:
+
+----------------------
+Autz-Type byname {
+       byname
+}
+
+Autz-Type bydate {
+       bydate
+}
+----------------------
+
+Start the server, and send it a test packet (e.g., `bob.sh`).
+
+Use the debug messages from the server to verify that only one of the modules is
+called.
+
+Look in the log directory, and verify the existence of the files and their contents, as follows:
+
+[source, bash]
+--------------------------------------------------
+$ ls /var/log/radius/radacct/byname/
+$ more /var/log/radius/radacct/byname/bob
+
+$ ls /var/log/radius/radacct/bydate/
+--------------------------------------------------
+
+[[autz-type-questions]]
+== Questions
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
+1.  Why is it useful to _not_ call certain modules for a request?
+2.  Why is it useful to control which modules get called for a request?
diff --git a/doc/antora/modules/tutorials/pages/dictionary.adoc b/doc/antora/modules/tutorials/pages/dictionary.adoc
new file mode 100644 (file)
index 0000000..0420a02
--- /dev/null
@@ -0,0 +1,70 @@
+= Custom Dictionaries and Attributes
+
+*Goal:* To understand how the dictionaries affect the server and to create
+a new vendor-specific dictionary with a number of custom attributes; also, to test those attributes in the server.
+
+*Time:* 20-30 minutes
+
+*File:*
+
+- usr/share/freeradius/dictionary.*
+
+*`man` page:* dictionary
+
+The dictionary files used by FreeRADIUS form the basis for mapping protocol
+numbers to humanly readable text. These dictionary files are ASCII and may be
+edited to add, delete, or update entries. For this exercise, you will create a
+custom dictionary and will send the attributes to the server using a RADIUS test
+client.
+
+You should first familiarize yourself with the `man` page for the "dictionary"
+file.
+
+You should create a file called `dictionary.test` in the appropriate directory
+and populate it with a "test" vendor, using a vendor ID of 123456. This
+dictionary file should be referenced from the main dictionary file. You should
+verify that the server starts successfully with the new dictionary file, even
+when the new dictionary is empty.
+
+You should now stop the server and add a number of vendor specific attributes to
+the "test" dictionary, as follows:
+
+.Vendor Specific Attributes to add
+|============================================
+| Name               | Number | Type
+| Lunch time         | 1      | date
+| People to eat with | 2      | text string
+| Where to eat       | 3      | IP address
+| What to eat        | 4      | integer
+|============================================
+
+.Enumerated values for "What to eat" to add
+|======================
+| Name      | Number
+| Salad     | 1
+| Bread     | 2
+| Dessert   | 3
+| Beans     | 4
+|======================
+
+Once the attributes and values are added to the `dictionary.test` file, re-start
+the server. Using a RADIUS client, send the server an authentication request for
+user "bob", containing one of each attribute. Verify that the attributes are
+printed as names, not numbers.
+
+Edit the file, and update the entry for user "bob" to reply with the
+attributes and with four names for "people to eat with". Re-send the
+authentication request for user "bob", and verify that the access accept
+contains the expected attributes.
+
+[[dictionary-questions]]
+== Questions
+
+1.  What happens when the same attribute has multiple names, i.e.,
+multiple names for one number?
+2.  Why are many of the attributes in other vendor specific dictionaries
+prefixed with the vendor name?
+3.  Why are vendor specific attributes useful?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/dynamic-translation.adoc b/doc/antora/modules/tutorials/pages/dynamic-translation.adoc
new file mode 100644 (file)
index 0000000..09dd787
--- /dev/null
@@ -0,0 +1,127 @@
+= Further dynamic translation
+
+*Goal:* To use dynamic translation of strings to perform inter-module
+references.
+
+*Time:* 20-35 minutes.
+
+*Files:*
+
+- `etc/raddb/radiusd.conf`
+- `etc/raddb/users`
+
+Run-time variables in the server may include more than simple references to
+attributes in packets. The server supports the ability to perform complex
+inter-module queries, which significantly extends its usefulness. In this
+exercise, we will work through a number of different examples of configuring
+inter-module calls.
+
+To start, open `raddb/mods-available/exec` and read the sample configuration for
+the `exec` module. Then, edit the users file to add the following entry at the
+top:
+
+-------------------------------------------------------------------------------
+bob Password.Cleartext := "hello"
+    Callback-Id = "%exec('/bin/echo', "Hello, there")
+-------------------------------------------------------------------------------
+
+The `echo` program may be in `/usr/bin/echo`, depending on your local system. On
+many systems you can use the following command:
+
+[source, bash]
+------------
+$ which echo
+------------
+
+This will tell you the full pathname of the `echo` command. Use that pathname in
+the file entry.
+
+Start the server and send it a test packet for user `bob`. The debug output of
+the server should print messages similar to the following.
+
+-------------------------------------------------------------------------------
+(0)  files : users: Matched entry bob at line 1
+Executing: /bin/echo Hello, there:
+Program returned code (0) and output 'Hello, there'
+(0)  files : EXPAND %exec('/bin/echo', "Hello, there")
+(0)  files :    --> Hello, there
+(0)   [files] = ok
+-------------------------------------------------------------------------------
+
+These message indicate that the first entry in the file (at line 1) was used to
+match the incoming request.
+
+The `exec` xlat function was then used to perform the dynamic translation of the
+string, which resulted in a call to the `rlm_exec` module.
+
+That module called the `Exec-Program` function of the server to execute a
+program, and finally, the `exec` xlat function returned the string "Hello
+there".
+
+That text was then sent back to the RADIUS client in the `Callback-Id`
+attribute, which was not quoted above.
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
+Another dynamic translation string function is the `expr` module. It performs
+some simple mathematical operations. The following sample file entry
+demonstrates how to use the `expr` module.
+
+-------------------------------------------------------------------------------
+bob    Password.Cleartext := "hello"
+       Session-Timeout = "%{60 * 60}"
+-------------------------------------------------------------------------------
+
+Dynamically translated strings may also be used as "check items" to match
+requests coming in to the server. The following examples show how those strings
+(or run-time variables) may be used to both match a request and to configure
+dynamic responses.
+
+You should use the `bob-login-one.sh` script to send a request to match the
+first entry and should send another request with a different NAS-Port.
+
+-------------------------------------------------------------------------------
+bob    Password.Cleartext := "hello", NAS-Port == "%exec('/usr/bin/id', '-u')"
+       Reply-Message = "Your port is very nice.",
+       Session-Timeout = "%{60 * 60}"
+
+bob    Password.Cleartext := "hello", NAS-Port != "%exec('/usr/bin/id', '-u')"
+        Reply-Message = "Your port is less nice.",
+        Session-Timeout = "%{60 * 2}"
+-------------------------------------------------------------------------------
+
+The run-time variables may be nested, too. The following file entry
+demonstrates this nesting.
+
+-------------------------------------------------------------------------------
+bob    Password.Cleartext := "hello"
+       Session-Timeout = "%{60 * %exec(/usr/bin/id -u})"
+-------------------------------------------------------------------------------
+
+In this case, the user "bob" is given one minute of access time,
+multiplied by the value of the "UID" of the RADIUS server.
+
+== Further considerations
+
+Run-time variables allow inter-module calling. The administrator may perform LDAP
+queries and SQL queries to use database information in other modules.
+
+Unfortunately, the format of the string is module-dependent. This limitation
+comes from the fact that each module has its own syntax for database queries.
+The syntax for querying LDAP databases is different than the syntax for querying
+SQL database. The administrator should consult the `man` pages for the relevant
+module for more information on the syntax for run-time dynamic translation of
+strings.
+
+Another limitation is that the query string can be only approximately 250
+characters long in the current version of the server. This limitation may be
+removed in a later version.
+
+== Questions
+
+1.  How would you perform an SQL query in a run-time variable, instead of
+executing a program?
+2.  Why is it useful for modules to be able to query information from other
+modules?
+3.  What is an example of conditional syntax for a run-time variable?
+
diff --git a/doc/antora/modules/tutorials/pages/eap-md5.adoc b/doc/antora/modules/tutorials/pages/eap-md5.adoc
new file mode 100644 (file)
index 0000000..3d66769
--- /dev/null
@@ -0,0 +1,66 @@
+= Other protocols within RADIUS: EAP-MD5
+
+*Goal:* To configure the server to use the EAP-MD5 authentication
+protocol and to send and receive test packets.
+
+*Time:* 10-15 minutes.
+
+*File:*
+
+- `etc/raddb/mods-available/eap`
+
+*Diagram:*
+
+image::eap-md5.svg[Fig. EAP-MD5]
+
+*Programs*: radtest
+
+For this exercise, your are assumed to have previously worked
+through and be familiar with the exercise in xref:new_user.adoc[New User] for
+user "bob".
+
+While RADIUS is an authentication protocol in its own right, other
+authentication protocols are also used in the network. One such protocol
+is the Extensible Authentication Protocol (EAP). It originally was
+designed to be used in PPP, but has been more widely used in recent
+deployments.
+
+EAP is a protocol that is intended to carry other authentication
+protocols. It does not carry authorization information like RADIUS, so it
+therefore has a more limited application. One of the most common uses for
+EAP is for wireless authentication. In this exercise, we will configure
+and test the EAP-MD5 sub-type of EAP.
+
+`raddb/mods-available/eap` has a configuration section for the `eap`
+module. The EAP sub-types are configured inside of that section. By
+default, the server ships with the EAP-MD5 module enabled, and with the
+EAP module initiating EAP-MD5 for all RADIUS requests containing EAP.
+
+You should now read the appropriate section of the `raddb/mods-available/eap`
+file, to verify that the `eap` module is configured and that the `md5`
+sub-module of the `eap` module is configured.
+
+The sample packet `eap-md5.sh` may now be used to test EAP-MD5
+authentication. The server output should be examined to follow the
+EAP-MD5 authentication process, and that output should be compared to the
+schematic diagram
+
+image::eap-md5.svg[Fig. EAP-MD5]
+
+== Questions
+
+1.  In which of the following sections is the `eap` module used?
+authorize, authenticate, and accounting.
+2.  Which of those sections do not reference the `eap`
+module? Why?
+3.  What is the difference (if any) between the server output for this
+test and the diagram below? Why is there a difference?
+image::eap_md5.svg[Fig. EAP-MD5]
+4.  Why do we test EAP-MD5 before testing other EAP types?
+5.  How is the EAP protocol carried within a RADIUS packet?
+6.  Why is the Message-Authenticator attribute required when using EAP?
+7.  What security issues exist with EAP-MD5?
+8.  Why is EAP-MD5 disabled in newer operating systems?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/eap-peap.adoc b/doc/antora/modules/tutorials/pages/eap-peap.adoc
new file mode 100644 (file)
index 0000000..37b999e
--- /dev/null
@@ -0,0 +1,82 @@
+= EAP-PEAP: Tunneled authentication
+
+*Goal:* To configure the server to use the EAP-PEAP authentication
+protocol and to send and receive test packets.
+
+*Time:* 20-35 minutes.
+
+*File:*
+
+- `etc/raddb/mods-available/eap`
+
+*Diagram:*
+
+image::peap_packet.svg[Fig. PEAP Packet]
+
+When started with the `radiusd -X` command, the server automatically creates
+certificates for use with PEAP. In a normal installation, there should
+be little or no action required to enable PEAP.
+
+Start the server, and verify that the `peap` module was loaded and that
+the server is `Ready to process requests`.
+
+This exercise does not cover how to configure EAP-PEAP on the wireless
+client nor how to set up a wireless access point to perform EAP-PEAP.
+We suggest that you consults the documentation for your
+wireless client software for details on this process.
+
+For the initial testing of EAP-PEAP, we recommend using
+`EAP-MSCHAPv2` on the wireless client as the tunneled authentication
+protocol. You should check that the `mschap` module is configured in the
+`raddb/modules` directory. The `mschapv2` module performs EAP-MSCHAPv2
+authentication and is contained in the `eap` section of the
+`raddb/eap.conf`. While these authentication methods are similar, they
+are not identical. Both modules need to be configured for EAP-PEAP to
+work.
+
+Test PEAP ``inner tunnel'' authentication via the following command:
+
+[source, bash]
+--------------------------------------------------------------
+$ radtest -t mschap 127.0.0.1:18120 USER PASSWORD 0 testing123
+--------------------------------------------------------------
+
+Once the wireless client has been configured to enable EAP-PEAP,
+you should perform a test authentication to the server. If all goes well,
+the server, AP, and wireless client should exchange multiple RADIUS
+`Access-Request` and `Access-Challenge` packets. This process should take
+a few seconds, and you should wait until it is done. If all goes well,
+the final packet from the server should be an `Access-Accept` and should
+contain the `MS-MPPE-Recv-Key` and `MS-MPPE-Send-Key` attributes.
+
+Verify that the authentication succeeded by using the `ping` command to
+see if the wireless client now has network access.
+
+== Further Considerations
+
+Different wireless clients may implement different tunneled
+authentication protocols inside of EAP-PEAP. These clients may not be
+compatible with all RADIUS servers. FreeRADIUS has only been tested
+using EAP-MSCHAPv2 as the tunneled authentication protocol. Other
+protocols may require source code changes to work.
+
+If there are issues getting EAP-PEAP to work on Windows, the following
+registry setting may be useful
+
+------------------------------------------------------------------
+HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Tracing\RASTLS\EnableTracing
+------------------------------------------------------------------
+
+Set the above key to value ``1''. A file `RASTLS.LOG` will be created
+and will contain the requested tracing information.
+
+== Questions
+
+1.  How does EAP-PEAP compare with EAP-TTLS?
+2.  What authentication protocols may be carried inside of the TLS
+tunnel for EAP-PEAP?
+3.  Would you use EAP-PEAP in a large deployment? If so, why? If not,
+why not?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/eap-tls.adoc b/doc/antora/modules/tutorials/pages/eap-tls.adoc
new file mode 100644 (file)
index 0000000..b121e54
--- /dev/null
@@ -0,0 +1,110 @@
+= EAP-TLS: Certificate-based authentication
+
+*Goal:* To configure the server to use the EAP-TLS authentication
+protocol and to send and receive test packets.
+
+*Time:* 20-35 minutes.
+
+*Files:*
+
+- `etc/raddb/mods-available/eap`
+- `scripts/certs.sh`
+- `etc/raddb/certs/`
+
+EAP-TLS is an authentication protocol that uses a TLS session, along
+with client and server certificates, to authenticate a user. You
+should now verify that the `rlm_eap_tls` module was built and installed
+by executing:
+
+[source, bash]
+--------------------------------------
+$ ls -l usr/lib64/freeradius/rlm_eap*
+--------------------------------------
+
+Use the directory where the FreeRADIUS libraries were installed.
+
+You should see not only files like `rlm_eap.so`, but also
+`rlm_eap_md5.so` and `rlm_eap_tls.so`. If you do not see those files,
+you will have to install them now. If necessary, you may have to
+re-build the server, as follows:
+
+[source, bash]
+---------------------------------------------------------------
+$ ./configure --prefix=$HOME/freeradius/ \
+              --with-openssl-include-dir=/usr/local/ssl/include \
+              --with-openssl-lib-dir=/usr/local/ssl/lib
+$ make
+$ make install
+---------------------------------------------------------------
+
+This exercise has insufficient room to describe how to debug any
+configuration, build, or installation problems with the `rlm_eap_tls`
+module. For the remainder of this exercise, we will assume that the
+driver is installed in the appropriate library directory.
+
+By default, the server creates a set of test certificates inside of the
+`raddb` directory, called `certs`. This directory contains sample server
+and client certificates, along with a demonstration certificate
+authority. These certificates may be used for this exercise, but should
+not be used in any live deployment of the server.
+
+You now edit the `etc/raddb/mods-available/eap` file to enable
+the `tls`. You should also set the configuration entry `default_eap_type`
+to `tls`.
+
+Start the server and verify that the `tls` module was loaded and that
+the server is `Ready to process requests`.
+
+This exercise does not cover how to configure EAP-TLS on the wireless
+client, nor how to set up a wireless access point to perform EAP-TLS. We
+suggest that the you consult the documentation for your wireless
+client software for details on this process.
+
+The wireless client will require the client certificate from the
+`raddb/certs` directory.
+
+Once the wireless client has been configured to enable EAP-TLS,
+you should perform a test authentication to the server. If all goes well,
+the server, AP, and wireless client should exchange multiple RADIUS
+`Access-Request` and `Access-Challenge` packets. This process should take
+a few seconds, and you should wait until it is done. If all goes
+well, the final packet from the server should be an `Access-Accept` and
+should contain the `MS-MPPE-Recv-Key` and `MS-MPPE-Send-Key` attributes.
+
+Verify that the authentication succeeded by using the `ping` command to
+see if the wireless client now has network access.
+
+== Further considerations
+
+EAP-TLS is an authentication protocol and nothing more. As such, the
+wireless client will still need to obtain an IP address. This address
+may be configured statically, or it may be obtained through DHCP.
+
+A benefit of EAP-TLS over EAP-MD5 is that it supports the creation of
+dynamic WEP keys. These keys are more secure than statically configured
+WEP keys and do not require administrator interaction to configure
+them. However, they are not perfectly secure, and we recommend that the
+server be configured to send a `Session-Timeout` attribute in the RADIUS
+`Access-Accept` packet in order to force the user to re-authenticate
+periodically, which will create new dynamic WEP keys.
+
+An issue with EAP-TLS is that it requires a client certificate. For
+secure authentication that does not require client certificates, see
+the EAP-TTLS and EAP-PEAP protocols.
+
+       Configuring the wireless client (usually a laptop or notebook
+computer) to perform EAP-TLS may be difficult. Windows (since Windows XP)
+ships with an EAP-PEAP client, which may influence any decision about
+which wireless authentication protocol to use.
+
+== Questions
+
+1.  What other benefits does EAP-TLS have over EAP-MD5?
+2.  What happens to the user's password when they use EAP-TLS?
+3.  Would you use EAP-TLS in a large deployment? If so, why? If not, why
+not?
+4.  What is the purpose of the `MS-MPPE-Recv-Key` and `MS-MPPE-Send-Key`
+attributes in the final `Access-Accept` packet?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/eap-ttls.adoc b/doc/antora/modules/tutorials/pages/eap-ttls.adoc
new file mode 100644 (file)
index 0000000..e854ea3
--- /dev/null
@@ -0,0 +1,50 @@
+= EAP-TTLS: Tunneled authentication
+
+
+
+*Goal:* To configure the server to use the EAP-TTLS authentication
+protocol and to send and receive test packets.
+
+*Time:* 20-35 minutes.
+
+*File:*
+
+- `etc/raddb/sites-available/default`
+
+*Diagram:*
+
+image::eap-ttls.svg[Fig. TTLS Packet]
+
+During installation the build system automatically creates
+certificates for use with TTLS. In a normal installation, there should
+be little or no action required to enable TTLS.
+
+This exercise does not cover how to configure EAP-TTLS on the wireless
+client nor how to set up a wireless access point to perform EAP-TTLS.
+We suggest that you consult the documentation for your wireless
+client software for details on this process.
+
+For the initial testing of EAP-TTLS, we recommend using `PAP` on the
+wireless client as the tunneled authentication protocol.
+
+Once the wireless client has been configured to enable EAP-TTLS,
+you should perform a test authentication to the server. If all goes well,
+the server, AP, and wireless client should exchange multiple RADIUS
+`Access-Request` and `Access-Challenge` packets. This process should take
+a few seconds, and you should wait until it is done. If all goes well,
+the final packet from the server should be an `Access-Accept` and should
+contain the `MS-MPPE-Recv-Key` and `MS-MPPE-Send-Key` attributes.
+
+Verify that the authentication succeeded by using the `ping` command to
+see if the wireless client now has network access.
+
+== Questions
+
+1.  How is EAP-TTLS easier to use than EAP-TLS?
+2.  What authentication protocols may be carried inside of the TLS
+tunnel for EAP-TTLS?
+3.  Would you use EAP-TTLS in a large deployment? If so, why? If not,
+why not?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/failover.adoc b/doc/antora/modules/tutorials/pages/failover.adoc
new file mode 100644 (file)
index 0000000..a8934ea
--- /dev/null
@@ -0,0 +1,331 @@
+= Configurable Module Fail Over
+
+Before configurable module failover, we had this kind of entry in "radiusd.conf"::
+----
+authorize {
+  preprocess
+  files
+}
+----
+
+This entry instructed the "authorize" section to first process the request through the "preprocess" module, and if that returned success, to process it through "files" module.  If that sequence returned success, then the "authorize" stage itself would then return success.  Processing was strictly linear and if one module failed, the whole section would fail immediately.
+
+Configurable failover provides more flexibility. It takes advantage of the tree structure of radiusd.conf to support a configuration
+language that allows you to "group" modules that should work together in ways other than simple lists.  You can control the flow of any stage (e.g. "authorize") to fit your needs, without touching C code, just by altering radiusd.conf.
+
+This configurable fail-over has a convenient short-hand, too.  Administrators commonly want to say things like "try SQL1, if it's
+down, try SQL2, otherwise drop the request."
+
+For example::
+----
+modules {
+    sql sql1 {
+        # configuration to connect to SQL database one
+    }
+    sql sql2 {
+        # configuration to connect to SQL database two
+    }
+    always handled {
+        rcode = handled
+    }
+}
+  
+#  Handle accounting packets
+accounting {
+    # always log to detail, stopping if it fails
+    detail
+    redundant {
+    # try module sql1
+          sql1
+          # if that's down, try module sql2
+          sql2
+          # otherwise drop the request as
+          # it's been "handled" by the "always"
+          # module (see doc/rlm_always)
+          handled
+    }
+}
+----
+
+The "redundant" section is a configuration directive which tells the server to process the second module if the first one fails.  Any
+number of modules can be listed in a "redundant" section.  The server will process each in turn, until one of the modules succeeds.  It will then stop processing the "redundant" list.
+
+== Rewriting results for single modules
+
+Normally, when a module fails, the entire section ("authorize", "accounting", etc.) stops being processed.  In some cases, we may want to permit "soft failures".  That is, we may want to tell the server that it is "ok" for a module to fail, and that the failure should not be treated as a fatal error.
+
+In this case, the module is treated as a "section", rather than just as a single line in "radiusd.conf".  The configuration entries for
+that section are taken from the "configurable fail-over" code, and not from the configuration information for that module.
+
+For example, the "detail" module normally returns "fail" if it is unable to write its information to the "detail" file.  As a test, we
+can configure the server so that it continues processing the request, even if the "detail" module fails.  The following example shows how::
+----
+#  Handle accounting packets
+accounting {
+    detail {
+    fail = 1
+}
+redundant {
+    sql1
+    sql2
+    handled
+    }
+}
+----
+
+The "fail = 1" entry tells the server to remember the "fail" code, with priority "1".  The normal configuration is "fail = return", which
+means "if the detail module fails, stop processing the accounting section".
+
+== Fail-over configuration entries
+
+Modules normally return on of the following codes as their result:
+
+[options="header"]
+[cols="30%,70%"]
+|=====
+| Code         | Meaning
+| notfound     | the user was not found
+| noop         | the module did nothing
+| ok           | the module succeeded
+| updated      | the module updated information in the request
+| fail         | the module failed
+| reject       | the module rejected the user
+| userlock     | the user was locked out
+| invalid      | the user's configuration entry was invalid
+| handled      | the module has done everything to handle the request
+|=====
+
+In a configurable fail-over section, each of these codes may be listed, with a value.  If the code is not listed, or a configurable fail-over section is not defined, then values that make sense for the requested "group" (group, redundant, load-balance, etc) are used.
+
+The special code "default" can be used to set all return codes to the specified value.  This value will be used with a lower priority than ones that are explicitly set.
+
+The values for each code may be one of the following:
+
+[options="header"]
+[cols="30%,70%"]
+|=====
+| Value        | Meaning
+| <number>     | Priority for this return code.
+| return       | Stop processing this configurable fail-over list.
+| reject       | Stop processing this configurable fail-over list and immediately return a reject.
+|=====
+
+The <number> used for a value may be any decimal number between 1 and 99999.  The number is used when processing a list of modules, to determine which code is returned from the list.  For example, if "module1" returns "fail" with priority "1", and a later "module2" returns "ok" with priority "3", the return code from the list of modules will be "ok", because it has higher priority than "fail".
+
+This configurability allows the administrator to permit some modules to fail, so long as a later module succeeds.
+
+== More Complex Configurations
+
+The "authorize" section is normally a list of module names.  We can create sub-lists by using the section name "group".  The "redundant" section above is just a short-hand for "group", with a set of default return codes, which are different than the normal "stop processing the list on failure".
+
+For example, we can configure two detail modules, and allow either to fail, so long as one of them succeeds.
+----
+#  Handle accounting packets
+accounting {
+    group {
+      detail1 {
+        fail = 1               # remember "fail" with priority 1
+       ok = return             # if we succeed, don't do "detail2"
+      }
+detail2 {
+       fail = 1                # remember "fail" with priority 1
+       ok = return             # if we succeed, return "ok"
+                       # if "detail1" returned "fail"
+}
+    }                  # returns "fail" only if BOTH modules returned "fail"
+    redundant {
+      sql1
+      sql2
+handled
+    }
+}
+----
+
+This configuration says:
+
+- Log to "detail1", and stop processing the "group" list if "detail1" returned OK.
+
+- If "detail1" returned "fail", then continue, but remember the "fail" code, with priority 1.
+
+- If "detail2" fails, then remember "fail" with priority 1.
+
+- If "detail2" returned "ok", return "ok" from the "group".
+
+The return code from the "group" is the return code which was either forced to return (e.g. "ok" for "detail1"), or the highest priority
+return code found by processing the list.
+
+This process can be extended to any number of modules listed in a "group" section.
+
+== More Complex Configuration using "if" and "else"
+
+As of version 2.0, the server allows "if"-style checking in the configuration sections.  The section is still processed as a list, so there is no looping or "goto" support.  But by using "if", the administrator can have branching paths of execution, where none was possible before.
+
+The "if" syntax added in 2.0.0-pre0 has been completely re-written in 2.0.0-pre2, to add major new functionality.  Documentation will be updated later...
+
+== Virtual Modules
+
+Some configurations may require using the same list of modules, in the same order, in multiple sections.  For those systems, the configuration can be simplified through the use of "virtual" modules.  These modules are configured as named sub-sections of the "instantiate" section, as follows::
+----
+instantiate {
+    ...
+  
+    redundant sql1_or_2 {
+        sql1
+        sql2
+    }
+}
+----
+
+The name "sql1_or_2" can then be used in any other section, such as "authorize" or "accounting".  The result will be exactly as if that section was placed at the location of the "sql1_or_2" reference.
+
+These virtual modules are full-fledged objects in and of themselves.  One virtual module can refer to another virtual module, and they can contain "if" conditions, or any other configuration permitted in a section.
+
+== Redundancy and Load-Balancing
+
+See load balancing for information on simple redundancy (fail-over) and load balancing.
+
+== The Gory Details
+
+The fundamental object is called a MODCALLABLE, because it is something that can be passed a specific radius request and returns one of the RLM_MODULE_* results. It is a function - if you can accept the fact that pieces of radiusd.conf are functions. There are two kinds of MODCALLABLEs: GROUPs and SINGLEs.
+
+A SINGLE is a reference to a module instance that was set up in the modules{} section of radiusd.conf, like "preprocess" or "sql1". When a SINGLE is called, the corresponding function in the rlm is invoked, and whichever RLM_MODULE_* it returns becomes the RESULT of the SINGLE.
+
+A GROUP is a section of radiusd.conf that includes some MODCALLABLEs.  Examples of GROUPs above include "authorize{...}", which implements the C function module_authorize, and "redundant{...}", which contains two SINGLEs that refer to a couple of redundant databases. Note that a GROUP can contain other GROUPs - "Auth-Type SQL{...}" is also a GROUP, which implements the C function module_authenticate when Auth-Type is set to SQL.
+
+Now here's the fun part - what happens when a GROUP is called? It simply runs through all of its children in order, and calls each one, whether it is another GROUP or a SINGLE. It then looks at the RESULT of that child, and takes some ACTION, which is basically either "return that RESULT immediately" or "Keep going". In the first example, any "bad" RESULT from the preprocess module causes an immediate return, and any "good" RESULT causes the authorize{...} GROUP to proceed to the files module.
+
+We can see the exact rules by writing them out the long way::
+----
+authorize {
+    preprocess {
+        notfound = 1
+        noop     = 2
+        ok       = 3
+        updated  = 4
+        fail     = return
+        reject   = return
+        userlock = return
+        invalid  = return
+        handled  = return
+    }
+    files {
+        notfound = 1
+        noop     = 2
+        ok       = 3
+        updated  = 4
+        fail     = return
+        reject   = return
+        userlock = return
+        invalid  = return
+        handled  = return
+    }
+  }
+----
+
+This is the same as the first example, with the behavior explicitly spelled out. Each SINGLE becomes its own section, containing a list of RESULTs that it may return and what ACTION should follow from them. So preprocess is called, and if it returns for example RLM_MODULE_REJECT, then the reject=return rule is applied, and the authorize{...} GROUP itself immediately returns RLM_MODULE_REJECT.
+
+If preprocess returns RLM_MODULE_NOOP, the corresponding ACTION is "2". An integer ACTION serves two purposes - first, it tells the parent GROUP to go on to the next module. Second, it is a hint as to how desirable this RESULT is as a candidate for the GROUP's own RESULT. So files is called... suppose it returns RLM_MODULE_NOTFOUND. The ACTION for notfound inside the files{...} block is "1". We have now reached the end of the authorize{...} GROUP and we look at the RESULTs we accumulated along the way - there is a noop with preference level 2, and a notfound with preference level 1, so the authorize{...} GROUP as a whole returns RLM_MODULE_NOOP, which makes sense because to say the user was not found at all would be a lie, since preprocess apparently found him, or else it would have returned RLM_MODULE_NOTFOUND too.
+
+We could use the "default" code to simplify the above example a little.  The following two configurations are identical::
+----
+files {
+    notfound = 1
+    noop     = 2
+    ok       = 3
+    updated  = 4
+    default  = return
+}
+----
+
+When putting the "default" first, later definitions over-ride it's return code::
+----
+  files {
+    default  = return
+    notfound = 1
+    noop     = 2
+    ok       = 3
+    updated  = 4
+}
+----
+
+[Take a deep breath - the worst is over]
+
+That RESULT preference/desirability stuff is pretty complex, but my hope is that it will be complex enough to handle the needs of everyone's real-world imperfect systems, while staying out of sight most of the time since the defaults will be right for the most common configurations.
+
+So where does redundant{...} fit in with all that? Well, redundant{...} is simply a group that changes the default ACTIONs to something like::
+----
+fail = 1
+everythingelse = return
+----
+
+so that when one module fails, we keep trying until we find one that doesn't fail, then return whatever it returned. And at the end, if they all failed, the redundant GROUP as a whole returns RLM_MODULE_FAIL, just as you'd want it to (I hope).
+
+There are two other kinds of grouping: group{...} which does not have any specialized default ACTIONs, and append{...}, which should be used when you have separate but similarly structured databases that are guaranteed not to overlap.
+
+That's all that really needs to be said. But now a few random notes:
+
+* GROUPs may have RESULT=ACTION specifiers too! It would look like this:
+----
+  authorize {
+      preprocess
+      redundant {
+          sql1
+          sql2
+          notfound = return
+      }
+      files
+  }
+----
+
+which would prevent rlm_files from being called if neither of the SQL instances could find the user.
+
+* redundant{...} and append{...} are just shortcuts. You could write:
+----
+group {
+    sql1 {
+        fail     = 1
+        notfound = 2
+        noop     = return
+        ok       = return
+        updated  = return
+        reject   = return
+        userlock = return
+        invalid  = return
+        handled  = return
+    }
+    sql2 {
+        fail     = 1
+        notfound = 2
+        noop     = return
+        ok       = return
+        updated  = return
+        reject   = return
+        userlock = return
+        invalid  = return
+        handled  = return
+    }
+}
+----
+
+instead of
+----
+redundant {
+    sql1
+    sql2
+}
+----
+
+but the latter is just a whole lot easier to read.
+
+* "authenticate{...}" itself is not a GROUP, even though it contains a list of Auth-Type GROUPs, because its semantics are totally different - it uses Auth-Type to decide which of its members to call, and their order is irrelevant.
+
+* The default rules are context-sensitive - for authorize, the defaults are what you saw above - notfound, noop, ok, and updated are considered success, and anything else has an ACTION of "return". For authenticate, the default is to return on success *or* reject, and only try the second and following items if the first one fails. You can read all the default ACTIONs in modcall.c (int defaultactions[][][]), or just trust me. They do the right thing.
+
+* There are some rules that can't be implemented in this language - things like "notfound = 1-reject", "noop = 2-ok", "ok = 3-ok", etc. But I don't feel justified adding that complexity in the first draft.  There are already enough things here that may never see real-world usage. Like append{...}
+
+== See Also
+
+* load balancing
+
+// Copyright (C) 2025 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/final_group_project.adoc b/doc/antora/modules/tutorials/pages/final_group_project.adoc
new file mode 100644 (file)
index 0000000..647bfa1
--- /dev/null
@@ -0,0 +1,233 @@
+= Group Project - Simulating a production service
+
+*Goal:* To create a simulated, federated, production service
+
+*Time:* 2-3 hours
+
+This task is split into multiple sections.  If working with an instructor
+you should ask for your configuration file to be validated by the instructor
+after each section is complete.
+
+For this task you will need at least two participants.
+
+== Preparation
+
+Each participant should decide on the following:
+
+* A realm e.g. `example.com`, that their RADIUS server will respond to request for
+  the realm must be unique within the group.  This will be referred to as
+  `your_realm` in the rest of the text.
+* A shared secret for the realm `your_secret`.
+* A backend module (`your_module`) to use to authenticate their users. Again,
+  this should be unique within the group.
+  Options are:
++
+--
+** `files`
+** `ldap`
+** `redis`
+** `rest`
+** `sql`
+--
++
+For everything except `files` it's recommended to pick a module where you're
+familiar with the backend protocol.
+* A set of credentials (`your_user`, `your_password`). These should not be
+  sensitive credentials as they will be seen by the rest of the group.
+
+Each user should send the following information to the instructor or place it in
+a shared document:
+
+- `your_realm`
+- `your_secret`
+- `your_ip` (the public IP address of your test machine)
+- `your_module`
+- `your_user`
+- `your_password`
+
+For local preparation, you should ensure that the following sections have no
+content:
+
+- The `recv Access-Request { ... }` or `authorize { ... }` section of
+  `/etc/raddb/sites-available/default`.
+- The `send Access-Accept { ... }` or `post-auth { ... }` section of
+  `/etc/raddb/sites-available/default`.
+  _Clear the `post-auth-type reject { ...}` section if present but do not remove_.
+- The `send Access-Reject { ... }` section of `/etc/raddb/sites-available/default`.
+
+After completing each of the sections below, you should check that the
+configuration you've produced is valid (radiusd -XC), and if possible, test the
+functionality you've configured using `radtest` or `radclient`/
+
+== Proxying
+
+*Goal:* To simulate federated access, by configuring proxy destinations for
+multiple upstream home servers.
+
+*Files:*
+
+- xref:reference:raddb/mods-available/radius.adoc[`etc/raddb/mods-available/radius`]
+- xref:reference:raddb/sites-available/default.adoc[`etc/raddb/sites-available/default`] (optionally)
+- xref:reference:raddb/mods-available/linelog.adoc[`etc/raddb/mods-available/linelog`] (optionally)
+
+*Time:* 20-30 minutes
+
+For each participant in the group, create a realm with a single home server.
+
+The information for the realm should come from the shared document, and should use
+the realm name, the secret, and the ip address supplied by the participant.
+
+For `your_realm`, you should create a realm which authenticates users locally on
+your server.
+
+Liveliness checks should be performed with 'status-server'.
+
+All remote realms should be configured with "nostrip", so the full username is
+proxied.
+
+The local realm should not have "nostrip" set.
+
+=== Bonus tasks
+
+* When proxied requests fail, create a linelog message containing the date, the
+  username and the destination realm.
+* Log all outbound packets to the proxy.
+* Log all inbound packets from the proxy.
+* For each home server.
+** Set the check interval to three seconds.
+** Set the check timeout to three seconds.
+** Set the "number of answers until alive" to three answers.
+
+== Clients
+
+*Goal:* Allow incoming requests from other servers.
+
+*Files:*
+
+- xref:reference:raddb/clients.conf.adoc[`etc/raddb/clients.conf`]
+
+*Time*: 15-20 minutes
+
+Add client entries for each of the other participants server's, using
+the participant's name as the client name, the ip of their server as `ipaddr` and
+`your_secret` as the secret.
+
+[WARNING]
+====
+The secret used for the client _must_ be _your_ secret, not the other participants
+secret.  The other participant will be configuring your secret in the home
+server definition to send requests to your home server.  The client and home server
+definitions must match.
+====
+
+== Loading credentials
+
+*Goal:* Setup the backend, and populate it with credentials.
+
+*Time:* 10-60 minutes
+
+For your chosen backend:
+
+- Install any necessary packages
+- Load any FreeRADIUS specific schemas
+
+After the backend has bee setup insert your own credentials, and those for every
+other participant in the group, into your backend datastore.
+
+If the datastore provides no authentication method (`sql`, `redis`), you should
+use the value of `Stripped-User-Name` as the key, and when the user attempts to
+login, retrieve the user's password and store it in
+`control.Password.Cleartext`.
+
+== Authorization
+
+*Goal:* Retrieve user information from a backend datastore.
+
+*Files:*
+
+//- xref:reference:raddb/mods-available/suffix.adoc[`etc/raddb/mods-available/suffix`]
+- xref:reference:raddb/mods-available/files.adoc[`etc/raddb/mods-available/files`]
+- `etc/raddb/mods-config/files/authorize`
+- xref:reference:raddb/mods-available/ldap.adoc[`etc/raddb/mods-available/ldap`]
+- xref:reference:raddb/mods-available/redis.adoc[`etc/raddb/mods-available/redis`]
+- xref:reference:raddb/mods-available/rest.adoc[`etc/raddb/mods-available/rest`]
+- xref:reference:raddb/mods-available/sql.adoc[`etc/raddb/mods-available/sql`]
+
+*Time:* 20-60 minutes
+
+First, in the `recv Access-Request { ... }` or `authorize { ... }` section of
+of an appropriate virtual server,  call the suffix module.
+
+If, after the suffix module has returned, the `control.Proxy-To-Realm` attribute
+is set, use the `return` keyword to exit from the section.  This prevents local
+modules being called, when we know the request will be handled by a remote proxy.
+
+[source,unlang]
+----
+suffix
+if (control.Proxy-To-Realm) {
+       return
+}
+----
+
+The following backend modules have an built in authorization method:
+
+- `files`
+- `ldap`
+- `rest`
+- `sql`
+
+The redis module has a string expansion %redis(<command>) which can be used
+to retrieve a single value from the datastore.
+
+Call the backend module's authorize method (or run an appropriate expansion) to
+determine if the authenticating user exists in the datastore.
+
+If the user does exist, and your module has an authenticate method (`ldap`,
+`rest`), set `control.Auth-Type` to an appropriate value.
+
+If the backend module does not have an authenticate method (`redis`, `files`,
+`sql`), you should ensure the "known good" copy of the user's password is set in
+`control.Password.Cleartext` and then call the pap module.
+
+=== Bonus tasks
+
+- If the user was `notfound`, i.e. the user is local, log the fact the user was
+not found, along with the username, date and client IP address.
+
+== Authentication
+
+*Goal:* Authenticate a user.
+
+*Time:* 20-30 minutes
+
+For `ldap` and `rest` add or uncomment an appropriate `Auth-Type` section.
+
+For other backend modules, ensure the PAP module's `Auth-Type` section is
+uncommented.
+
+Run `radtest` or `radclient`, with credentials:
+`<your_user>@<your_realm>` and `your_password`. You should receive an Access-Accept.
+
+=== Bonus tasks
+
+- If the user was accepted, log the date, username, and client ip address.
+- If the user was rejected, log the date, username, and client ip address.
+
+== Remote-Authentication
+
+*Goal:* Verify all participants have configured their RADIUS services correctly.
+
+*Time:* 20+ minutes
+
+Check with the other participants to see how much of the exercise they have
+completed.  If a participant has a working RADIUS server, send request
+with `<your_user>@<their_realm>` and `your_password`, and verify that
+their server responds with an Access-Accept.
+
+If their server does not respond with an Access-Accept, work with the other
+participant to debug the issue.
+
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/matching_users.adoc b/doc/antora/modules/tutorials/pages/matching_users.adoc
new file mode 100644 (file)
index 0000000..6cb18eb
--- /dev/null
@@ -0,0 +1,64 @@
+= Matching entries in the users file
+
+*Goal:* To configure multiple entries for a user in the "users" file
+and to validate the server's configuration by sending test packets to
+exercise the new entries.
+
+*Time:* 30-45 minutes.
+
+Now that we have verified that we can add a simple entry to the file, we
+will try more complex configurations.
+
+In this exercise, we will add three configuration entries for a user
+named "bob" with clear-text password "hello". The three entries are
+related as follows:
+
+* The first will configure user "bob" with password "hello". It will
+configure a reply message in an appropriate attribute. This
+configuration entry will cause the server to continue processing the
+file.
+* The second entry will configure user "bob" and will match only when
+"bob" is asking to use PPP. The configuration entry should add the
+appropriate attributes to the reply, to allow "bob" to use PPP and to
+assign him the IP address 192.168.10.12. This entry should also cause
+the server to continue processing the file.
+* The last entry will configure any user asking for "framed" service,
+and will assign them a default route of 192.168.10.1 with netmask of
+255.255.255.0.
+
+We suggest that you approach the problem by configuring each of the
+three entries in isolation. That is, add one entry, then create and send test
+packets until the server responds with the attributes you expect. Then,
+comment out the first entry and repeat the process for the second
+entry. Do the same for the third entry. Once all entries work in
+isolation, uncomment the first two and verify that the combination of
+entries behaves as expected.
+
+Test the server with username "bob" and password "hello". Use the
+debug output of the server to see which entries in the file were
+matched. You may use `radclient` or the `bob.sh` script to send the
+packets. In that case, save the packets into a file, and use the "-f"
+parameter to radclient to tell it which file to read.
+
+Perform other authentication tests, adding the appropriate attributes to
+the request sent by the RADIUS client. Continue until you have packets
+that will match:
+
+* entries 1 and 2, but not 3.
+* entries 1 and 3, but not 2.
+* entries 1, 2, and 3.
+
+Save copies of the packets.
+
+== Questions
+
+1.  What is the difference between the Framed-Route and Framed-Routing
+Attributes?
+2.  What is the Framed-IP-Netmask attribute used for?
+3.  What are potential pitfalls with the entry 2? That is, the entry
+meets the requirements, but do the requirements fit the needs of the
+network?
+4.  How does this kind of simple configuration scale to many users?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/module_fail_over.adoc b/doc/antora/modules/tutorials/pages/module_fail_over.adoc
new file mode 100644 (file)
index 0000000..93631e5
--- /dev/null
@@ -0,0 +1,114 @@
+= Module Fail-Over
+
+
+
+*Goal:* To configure the server to use a "backup" module if a
+"primary" module fails.
+
+*Time:* 15-25 minutes
+
+*Files:*
+
+- `etc/raddb/mods-available/detail`
+- `usr/share/doc/freeradius*/configurable_failover`
+- `/var/log/radius/radacct/detail1`
+- `/var/log/radius/radacct/detail2`
+
+When the server uses an external database to find user authentication
+information or to log accounting requests, that database may sometimes
+fail temporarily. This situation is similar to the situation seen in the exercise
+in xref:proxy_failover.adoc[Proxy Failover], where proxied
+requests "fail-over" to a backup RADIUS server when the primary
+RADIUS server does not respond.
+
+In this exercise, we will configure the server to use two "databases"
+(here, detail files) for recording accounting data. We will simulate the
+failure of one database by changing the file permissions on the first
+detail file, and we will verify that accounting requests are logged to the
+second detail file.
+
+The first step is to configure the server to have two instances of the
+`detail` module. The following information should be added to the
+`etc/raddb/mods-available/detail` file:
+
+--------------------------------------------------
+detail detail1 {
+       filename = ${radacctdir}/detail1
+       permissions = 0600
+}
+
+detail detail2 {
+       filename = ${radacctdir}/detail2
+       permissions = 0600
+}
+--------------------------------------------------
+
+In the file `configurable_failover` in the documentation directory,
+there is a section titled "More Complex Configurations". This section contains a
+sample entry for the "accounting" section of `etc/raddb/sites-available/default`.
+The sample entry is a "group" with configurable fail-over between two modules named
+`detail1` and `detail2`. Copy the "group" section to the start of the
+`accounting` section in your `etc/raddb/sites-available/default` file.
+
+Now start the server and verify that it is `Ready to process requests.`
+
+Send the server a sample accounting packet (`bob-acct-start.sh`). Verify
+that the client receives an accounting response packet and that the
+server is using the `detail1` module to log the request.
+
+Verify that the `detail1` file contains the accounting request by
+examining it:
+
+[source, bash]
+-----------------------------------------------
+$ more /var/log/radius/radacct/detail1
+-----------------------------------------------
+
+Also, verify that the `detail2` module is not referenced in the
+debugging messages of the server when the request is processed. Check
+that the `detail2` file does not exist:
+
+[source, bash]
+---------------------------------------------
+$ ls /var/log/radius/radacct/detail2
+---------------------------------------------
+
+The command should fail with an error like "file not found."
+
+Now, simulate a database failure by changing the permissions on the
+file so that the server may not access it:
+
+[source, bash]
+----------------------------------------------------
+$ chmod a-w /var/log/radius/radacct/detail1
+----------------------------------------------------
+
+Send the server another accounting packet ( `bob-acct-stop.sh`).
+
+Verify that the client receives an accounting response packet, that
+the `detail1` module fails, and that the server is using the `detail2`
+module to log the request.
+
+Verify that the `detail1` file does not contain the accounting request
+by examining it:
+
+[source, bash]
+-----------------------------------------------
+$ more /var/log/radius/radacct/detail1
+-----------------------------------------------
+
+Verify that the `detail2` file exists, and that it contains the accounting
+request:
+
+[source, bash]
+-----------------------------------------------
+$ more /var/log/radius/radacct/detail2
+-----------------------------------------------
+
+== Questions
+
+1.  Could the configuration for the "group" section containing the
+"detail1" and "detail2" modules be simplified? If so, how?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/multiple_modules.adoc b/doc/antora/modules/tutorials/pages/multiple_modules.adoc
new file mode 100644 (file)
index 0000000..cfded87
--- /dev/null
@@ -0,0 +1,71 @@
+= Multiple instances of a module
+
+
+
+*Goal:* To configure the server to have multiple instances of a module.
+
+*Time:* 10-20 minutes
+
+*File:*
+
+- `/etc/raddb/mods-available/detail`
+
+In this exercise, we will configure the server to use two independent
+``databases'' (here, detail files) for recording accounting data. These
+databases will use the same `detail` module, but with two different
+configurations. The `detail` module logs plain-text information about
+the request to a local file and is therefore an easy module to use for
+demonstration purposes.
+
+The first step is to configure the server to have two instances of the
+`detail` module. The first instance should log requests to a different
+file for each user name. The second should log requests to a different file
+for each date. The following information should be added to the
+`/etc/raddb/mods-available/detail` file.
+
+--------------------------------------------------------------------
+detail byname {
+       filename = ${radacctdir}/byname/%{User-Name || 'none'}
+       permissions = 0600
+}
+
+detail bydate {
+       filename = ${radacctdir}/bydate/%Y-%m-%d
+       permissions = 0600
+}
+--------------------------------------------------------------------
+
+In the module configurations contained within `/etc/raddb/mods-available/*`,
+each module may have two names. The first name is the name of the dynamically
+loadable module that implements that functionality. The second (optional) name
+is the name of an additional instance of the module. In this case, the `detail`
+module has two additional instances, `byname` and `bydate`. These instance names
+can be used in the `authorize`, `accounting`, etc. sections, just like a
+normal module name.
+
+You should now add the two modules to the list of modules in the
+`authorize` section. Start the server and verify that it is
+`Ready to process requests.`
+
+Send the server a test `Access-Request` packet (`bob.sh`). Verify that
+the client receives a response packet and that the server is using the
+two modules to log the request.
+
+Verify that the request was logged to two different files by examining
+them:
+
+[source, bash]
+------------------------------------------------
+$ more /var/log/radius/radacct/byname/*
+$ more /var/log/radius/radacct/bydate/*
+------------------------------------------------
+
+Once you have verified that the files exist and that the correct
+information is logged in them, you may stop the server.
+
+== Questions
+
+1.  Why is it useful to have multiple versions of a module?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/new_client.adoc b/doc/antora/modules/tutorials/pages/new_client.adoc
new file mode 100644 (file)
index 0000000..166a252
--- /dev/null
@@ -0,0 +1,62 @@
+= Adding a new client to the server
+
+*Goal:* To permit an additional RADIUS client to communicate with the
+server.
+
+*Time:* 5-10 minutes.
+
+*File:*
+
+- `etc/raddb/clients.conf`
+
+The RADIUS server will only communicate with known clients. This
+restriction is for security, so that unknown machines on the Internet
+cannot probe the RADIUS server with test packets.
+
+In FreeRADIUS, the `clients.conf` file lists the clients that are
+permitted to send requests to the server. Take some time to read this file and
+the included comments.
+
+Configure the server with the the IP address of the new client and a
+shared secret. If the server is already running, stop it.
+
+Start the server
+
+[source, bash]
+------------
+$ radiusd -X
+------------
+
+Send a Status-Server packet from the new client to the server, using the
+correct IP address, port, and shared secret.
+
+Verify that the server saw the packet. Also verify that the client saw
+the response.
+
+Some common problems are:
+
+* not using the correct port in the client software
+* not using the the correct shared secret in the client software
+* the server responds to the client from an address that is different from the one to which the client sent the request.
+
+The first two problems can be solved by configuring the client with the
+correct information. The last problem is seen when the client does not
+see the response from the server, or when the server gives an error message about an
+invalid response.
+
+If the server responds to the packet and the client accepts the
+response, then the test was successful, and the server may be halted.
+
+== Questions
+
+1.  What happens when the server receives a packet from a machine not
+listed in "clients.conf"?
+2.  Why does the client not accept the response from the server when
+that response originates from another IP address?
+3.  Why does the server have to be re-started when the "clients.conf"
+file is edited?
+4.  What are the other fields in a client entry, and what are they used
+for?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/new_user.adoc b/doc/antora/modules/tutorials/pages/new_user.adoc
new file mode 100644 (file)
index 0000000..d315f35
--- /dev/null
@@ -0,0 +1,90 @@
+= Adding a new user to the server
+
+*Goal:* To configure the server with a new user, to send test packets as
+that new user, and to receive a reply.
+
+*Time:* 15-25 minutes.
+
+*File:*
+
+- `etc/raddb/users`
+
+*`man` page:* users
+
+The file is the usual place where new users may be added. The file is located
+in `etc/raddb/users`. It has a manual page; `man users`, or `man 5
+users` will display this page. The manual page describes how the entries in the file are
+formatted and also contains some example entries.
+
+The comments at the top of the file should also be read.
+
+For testing purposes, add an entry at the top of the file, which will add
+a new user "bob" with password "hello", as suggested in the `man`
+page for the file.
+
+Start the server:
+
+[source, bash]
+------------
+$ radiusd -X
+------------
+
+Test the server with a radius test client (radclient, NTRadPing), and
+verify that the server responds with an Access-Accept packet. For this
+test, use a PAP password.
+
+If the server was successful, look for a message similar to:
+
+---------------------------------------------------------------------
+(0)  files : users: Matched entry bob at line 1
+(0)   [files] = ok
+---------------------------------------------------------------------
+
+These messages indicate which entries in the file were used to match the
+incoming request.
+
+If the server does not see the packet, then double-check the IP address
+and port to which the client is sending the request.
+
+If the server does not send an Access-Accept, then stop the server and
+re-start it, while recording its output to a log file:
+
+[source, bash]
+----------------
+$ script log.txt
+$ radiusd -X
+----------------
+
+Send the test packet again, and after the Access-Reject is received by
+the client, "exit" the shell to close the "log.txt" file. Open the
+"log.txt" file in a text editor, and read the output. The cause of the
+error can generally be determined from those messages.
+
+The error will usually be one of the following problems:
+
+* the shared secret was incorrect
+* the user was not found, or no entry matched the request.
+
+Test the server again with a PAP password, but this time, deliberately
+use the wrong shared secret. Observe what happens and what error
+messages are produced.
+
+Test the server again with a test packet, this time using a CHAP
+password. Verify that authentication also succeeds.
+
+Test the server again with a CHAP password, but this time, deliberately
+use the wrong shared secret. Observe what happens and what error
+messages are produced. Also observe how the error messages are different
+from the previous test with a PAP password and incorrect shared secret.
+
+Stop the server.
+
+== Questions
+
+1.  What happens when using a PAP password with an incorrect shared secret, and why do we get this result?
+2.  What is different when using a CHAP password with an incorrect shared secret?
+3.  Why does the server need access to a clear-text password to perform
+CHAP authentication?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/prepaid.adoc b/doc/antora/modules/tutorials/pages/prepaid.adoc
new file mode 100644 (file)
index 0000000..158d41f
--- /dev/null
@@ -0,0 +1,46 @@
+= A simple pre-paid example
+
+
+
+
+*Goal:* To implement a simple "prepaid" functionality in the server.
+
+*Time:* 15-25 minutes
+
+*Files:*
+
+- `etc/raddb/mods-available/counter`
+
+Many system administrators wish to implement "prepaid" billing for
+their systems. In this exercise, we will configure the server to use a
+simple "prepaid" scheme, wherein all users will be permitted to log in
+for only one hour a day.
+
+Read `etc/raddb/mods-available/counter` and look for the `counter daily` instance
+The documentation for the module consists solely of the comments in
+`etc/raddb/mods-available/counter`, so those comments should be read carefully.
+Search the rest of the configuration file for references to the `daily` module
+and un-comment any references you find.
+
+Add an entry that sets the `Max-Daily-Session`
+to have the value 3600 to the top of the file. Start the server, and test it with the `bob.sh`
+script. Note that unlike previous responses from the server, this one
+contains a `Session-Timeout` attribute with value 3600.
+
+Wait five to ten seconds, and then use the `bob-acct-stop.sh` script to
+tell the server that user "bob" has logged off. Observe that the `counter`
+module is called and that this module updates the user's login time. Now send the
+server another login request (`bob.sh`), and observe that the
+"Session-Timeout" attribute has a value less than 3600. The value
+should be near 3600. This value depends on the length of time passed
+between when the server is started and when the `bob-acct-stop.sh` script is run.
+
+== Questions
+
+1.  How would you configure the server to obtain the daily access limits
+from an SQL database?
+2.  Why is it useful to enforce time-based restrictions on users, in
+addition to enforcing `Simultaneous-Use`?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/proxy.adoc b/doc/antora/modules/tutorials/pages/proxy.adoc
new file mode 100644 (file)
index 0000000..e4c60dc
--- /dev/null
@@ -0,0 +1,61 @@
+= Configuring a server to proxy requests
+
+
+
+*Goal:* To configure the server to proxy packets to a remote (home)
+RADIUS server and to perform test authentications against both the
+proxy server and the home server.
+
+*Time:* 15-25 minutes
+
+*File:*
+
+- `etc/raddb/proxy.conf`
+
+*Diagram:*
+
+image::access-request-proxy.svg[Fig. Proxy]
+
+For this exercise, you will configure a RADIUS server to proxy
+requests to a home RADIUS server that is run by another user
+(the uber user)).
+
+You will configure a realm, called "realm1" in the
+`raddb/proxy.conf` file. This realm will be proxied to the RADIUS server
+administered by the uber user, who will supply the IP address, port,
+and shared secret used by their RADIUS server. The entry for the home
+server in `proxy.conf` will be configured to "strip" the realm name
+from the incoming request.
+
+The entry from the exercise in
+xref:new_user.adoc[New User] for user "bob", in the
+"users" file will be used in this exercise.
+
+The example packets `bob.sh` and `bob@realm1.sh` may be used in this
+exercise.
+
+You should verify that authentication requests for user "bob"
+to their RADIUS server result in authentication accept replies and that
+the request was not forwarded to the home RADIUS server. You
+should then use the `bob@realm1.sh` script to attempt an authentication
+request to their RADIUS server, which will then be proxied to the home
+server.
+
+Once you have verified that authentication requests are proxied
+to the home server and that you have received an authentication accept, the
+uber user will halt the home server. The users should then
+re-attempt the `bob@realm1.sh` authentication request to their server.
+They should then observe the resulting behavior of their server, as it
+attempts to proxy to a home server that does not respond.
+
+== Questions
+
+1.  How would you configure "proxy.conf" so that "realm1" was not
+proxied, but was instead handled by the local RADIUS server?
+2.  Will it make any difference for the home server if the request sent
+to the proxy contains CHAP-Password instead of User-Password?
+3.  Since the User-Password is encrypted with the RADIUS shared secret,
+what happens to it when a request is proxied?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/proxy_failover.adoc b/doc/antora/modules/tutorials/pages/proxy_failover.adoc
new file mode 100644 (file)
index 0000000..35ce88f
--- /dev/null
@@ -0,0 +1,69 @@
+= Proxy Fail-over
+
+
+
+*Goal:* To configure a "backup" home server that is used when the
+"primary" home server fails.
+
+*Time:* 15-25 minutes
+
+*Files:*
+
+- `etc/raddb/proxy.conf`
+- `etc/raddb/clients.conf`
+
+*Diagram:*
+
+image::proxy_backup_server.svg[Fig. Proxy Backup Server]
+
+For this exercise, you should find a group of other willing
+FreeRADIUS users!
+
+Divide yourselves into groups of three. One person (user 1) will
+operate the RADIUS server for "realm1" and the others will be operate
+the RADIUS server for "realm2".
+
+Each user will configure their realm in the `proxy.conf` file to
+be a "local" realm. user 1 will also configure two entries in the
+`proxy.conf` file for "realm2", one entry for each of the other
+partner's RADIUS servers. user 1 will configure the realms to "strip"
+the realm name from the incoming request.
+
+The two group for "realm2" should also configure their
+`clients.conf` file to permit user 1’s RADIUS server to act as a client,
+as given in the exercise in xref:new_client.adoc[New Clients].
+Each user operating "realm2" should pick a different shared
+secret to use with user 1.
+
+Once the servers have been configured, the group should collectively
+observe user 1 sending the following requests to their server:
+- bob@realm1.sh
+- bob@realm2.sh
+
+The group should verify that the expected authentication requests
+sent to the server for "realm1" are handled locally, as in the
+exercise in xref:proxy.adoc[Proxy].
+
+The group should then verify that the expected requests sent to
+the server for "realm1" are proxied to a server for "realm2". The
+group should send multiple requests to the server for "realm1" that are
+proxied to a server for "realm2", and they should verify that all of
+the requests are proxied to the same home server for "realm2".
+
+The group should then stop the "realm2" server that responded
+to that request, and they should repeat the request to "realm1". The
+group should observe the resulting behavior of the server for "realm1".
+
+If time permits, the group may switch roles, so that users have the
+opportunity to set up a proxy and a home server.
+
+== Questions
+
+1.  Which server for "realm2" is picked by "realm1"? Why?
+2.  Would the server for "realm1" ever again try to send packets to
+the "realm2" server that has been stopped? If so, when? If not,
+why not?
+3.  What would happen if both servers for "realm2" failed?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/proxy_load_balance.adoc b/doc/antora/modules/tutorials/pages/proxy_load_balance.adoc
new file mode 100644 (file)
index 0000000..84498e6
--- /dev/null
@@ -0,0 +1,40 @@
+= Proxy Load Balancing
+
+
+
+*Goal:* To configure a server to load-balanceproxied requests across
+multiple home servers.
+
+*Time:* 10-15 minutes
+
+*File:*
+
+- `etc/raddb/proxy.conf`
+
+*Diagram:*
+
+image::proxy_load_balance.svg[Fig. Proxy Loadbalance]
+
+For this exercise, the users will be divided into the same groups as
+the previous exercise in xref:proxy_failover.adoc[Proxy Failover].
+
+User 1 will edit his `proxy.conf` file, so that the entries for
+"realm2" are marked as load balancing. The users will send multiple
+requests to the server for "realm1", and observe how the proxied
+requests are distributed among the servers for "realm2".
+
+== Questions
+
+1.  Why is load balancing useful?
+2.  How is load balancing different than fail-over?
+3.  What happens to the load balancing when one of the "realm2"
+servers is stopped, and the server for "realm1" tries to proxy
+requests to it?
+4.  How would this exercise be different if there were more than two
+home server to load balance to?
+5.  If the load balancing home server which has "failed" is started
+again, will the proxying server ever send requests to it again? If so,
+when? If not, why not?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/proxy_receive.adoc b/doc/antora/modules/tutorials/pages/proxy_receive.adoc
new file mode 100644 (file)
index 0000000..efd9b02
--- /dev/null
@@ -0,0 +1,78 @@
+= Configuring a server to send and receive proxy requests
+
+
+
+*Goal:* To configure the server to proxy packets to a remote (home)
+RADIUS server and to receive packets from another proxy server.
+
+*Time:* 15-25 minutes
+
+*Files:*
+
+- `etc/raddb/proxy.conf`
+- `etc/raddb/clients.conf`
+
+For this exercise, the users will be divided into groups of two. One
+user will be named "realm1" and the other will be named
+"realm2".
+
+Each user will configure two realms in the `proxy.conf` file. One of the
+user's assigned realms will be authenticated by the local RADIUS
+server. The other realm will be proxied to the RADIUS server
+administered by the other user. Both realms will be configured to
+"strip" the realm name from the incoming request.
+
+User 1:
+
+realm1 is local
+
+realm2 gets proxied to the server running as "realm2".
+
+User 2:
+
+realm1 gets proxied to the server running as "realm1".
+
+realm2 is local
+
+The users should also configure each other's server as a RADIUS
+client, as given in the exercise in xref:new_client.adoc[New Clients].
+
+The entry from the exercise in xref:new_user.adoc[New User] for user "bob" in
+the file, will be used in this exercise.
+
+The example packets `bob.sh`, `bob@realm1.sh`, and `bob@realm2.sh` may
+be used in this exercise.
+
+Each user should test that authentication requests from "bob" to
+their RADIUS server should result in authentication accept replies and
+that the request was not forwarded to the other RADIUS server.
+
+Each user should test that authentication requests for their own
+realm (User 1: "bob@realm1", User 2: "bob@realm2") to their
+RADIUS server should result in authentication accept replies and that
+the request was not forwarded to the other RADIUS server.
+
+Each user in turn should then attempt authentication using the other
+user's realm (User 1: "bob@realm2", User 2: "bob@realm1"),
+to their local RADIUS server.
+
+Each in turn should verify that authentication requests for their
+realm sent to the other user's RADIUS server results in an
+authentication reject.
+
+User 2 should then stop his server. User 1 should then attempt an
+authentication request to his server where the request would normally
+be proxied. Both users should examine the debug logs of User 1’s
+RADIUS client and server in order to observe what the server's resulting behavior
+will be.
+
+== Questions
+
+1.  Why is it necessary for each server to mark some realms as local?
+2.  What would happen if each user did not configure the other RADIUS
+server in the "raddb/clients.conf" file?
+3.  What would happen if each user did not configure the realms to
+"strip" the realm from the proxied requests?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/radmin.adoc b/doc/antora/modules/tutorials/pages/radmin.adoc
new file mode 100644 (file)
index 0000000..8bf775a
--- /dev/null
@@ -0,0 +1,34 @@
+= The Administration CLI
+
+*Goal:* To understand how to use the `radmin` command.
+
+*Time:* 20-30 minutes
+
+*File:*
+
+- `etc/raddb/sites-enabled/control-socket`
+
+*`man` page:* radmin, raddebug
+
+The `radmin` command is an interactive command-line interface (CLI) to
+the internals of the server. It can be used to monitor statistics, to
+show the current configuration, and to change the configuration.
+
+Check that the control socket is enabled, and start the server in
+debugging mode. Connect to the control socket via `radmin`. Type `help`,
+and read the output. Use `radtest` to send the server packets, and see
+how the statistics change.
+
+== Questions
+
+1.  How can you modify the `control-socket` file so that you can change
+the server configuration?
+2.  What happens when you disable a module and try to authenticate a
+user?
+3.  How can you run a command from the shell without starting the
+`radmin` command?
+4.  Can you start the server in non-debugging mode (`radiusd -f`), and
+still see the debugging output? How?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/simultaneous_use.adoc b/doc/antora/modules/tutorials/pages/simultaneous_use.adoc
new file mode 100644 (file)
index 0000000..859a619
--- /dev/null
@@ -0,0 +1,61 @@
+[[simultaneous-use]]
+= Configuring users for limited simultaneous access
+
+*Goal:* To prevent a user from having more than one login session at a
+time.
+
+*Time:* 20-35 minutes
+
+*Files:*
+
+- `etc/raddb/users`
+
+For this exercise, you are assumed to have previously worked
+through, and be familiar with, the accounting exercise from
+xref:accounting.adoc[Accounting], and to have an entry in the file, as given the
+exercise in xref:new_user.adoc[New User], for user "bob".
+
+In this exercise, youwill work through an example of a user
+logging into the server, and then attempting a simultaneous login for a
+second session, while still logged in for the first session.
+
+You should run the `bob-login-one.sh` and `bob-acct-start.sh`
+scripts, to simulate a successful user login. You should check the database
+to verify that the server knows that the user is logged
+in.
+
+You should then run the `bob-login-two.sh`, and observe that the
+second authentication request succeeds. The login record should be
+removed through running the `bob-acct-stop.sh` script, and check the database
+to verify that no one is currently
+logged in.
+
+you should now read the `Simultaneous-Use` file in the
+documentation directory, to determine how to limit a user to only one
+login at a time. The "bob" entry in the file should then be edited, to
+add the limitation that "bob" may only have one login session at a
+time.
+
+The scripts `bob-login-one.sh` and `bob-acct-start.sh` should be run
+again, to simulate a successful user login. The `bob-login-two.sh`
+script should then be run, to verify that the second simultaneous
+authentication attempt fails.
+
+After running the `bob-acct-stop.sh` script, you should run the
+`bob-login-two.sh` script again, to verify that the other login attempt
+is now permitted to succeed.
+
+== Questions
+
+1.  Why is it useful to prevent a user from having more than one
+simultaneous login session?
+2.  How would you configure `Simultaneous-Use` with an SQL database?
+3.  What are the benefits of using an SQL database for
+`Simultaneous-Use`, over the `radumtp` file?
+4.  How does `Simultaneous-Use` affect users with multiple "bonded"
+lines, like MPP, or ISDN?
+5.  What would happen if the user tried to log in a second time, before
+the accounting start packet was received?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/sql.adoc b/doc/antora/modules/tutorials/pages/sql.adoc
new file mode 100644 (file)
index 0000000..6996c6b
--- /dev/null
@@ -0,0 +1,176 @@
+= Communicating with an SQL database
+
+
+
+*Goal:* To configure the server to communicate with an SQL database.
+
+*Time:* 25-40 minutes.
+
+*File:*
+
+- `etc/raddb/mods-available/sql`
+- `etc/raddb/mods-config/sql/main/*`
+
+In addition to the file, the server may obtain user configuration
+information from an SQL database. In this exercise, you will
+configure the server to communicate with an SQL database. you
+will configure the schema for the SQL server, and will populate that
+schema with a sample entry similar to that for the exercise in
+xref:new_user.adoc[New User].
+
+There are a number of reasons why user information may be stored in an
+SQL database, rather than the file. While the file is adequate for a
+small number of users, it does not scale well to millions of users, and
+it may not be updated by general non-RADIUS tools. In contrast, SQL
+databases are designed to store millions of records, to have fast
+queries and retrievals, and there are many third-party tools for
+maintaining and updating the databases.
+
+The SQL schema used by FreeRADIUS is designed to mirror the users file.
+Each SQL dialect has its own set of schema and configuration files.
+They are located in the `raddb/mods-config/sql/main/<dialect>` directory.
+
+The schema is defined by the "schema.sql" file, and the queries are
+defined by the `queries.conf` file.
+
+The main configuration for the SQL module is `raddb/mods-available/sql`
+it will `$INCLUDE` the appropriate "queries.conf" file for the dialect
+chosen.
+
+You should now read the configuration file for the SQL database which you
+use.
+
+[TIP]
+========================================================================
+Unless there is a pre-configured database available we recommend the
+sqlite driver be used. If the sqlite specific stanzas are uncommented
+in `raddb/mods-available/sql` it will automatically bootstrap a new
+database using the bundled schema.
+========================================================================
+
+The first step is to configure the server to use the SQL module, and to
+communicate with the SQL database. Edit the `radiusd.conf` file, and
+look for the `instantiate` section. Inside of that section, add one line
+containing the word `sql`, as follows:
+
+------------------------------------------
+instantiate {
+        sql     # start up the SQL module.
+}
+------------------------------------------
+
+This tells the server to look for, and use, the `sql` module when the
+server starts. Note that since the `sql` module is not listed in any of
+the "authorize", "authenticate", etc. sections, it will not be used
+in to process any authentication requests, or accounting requests. For
+now, we are interested solely in making the FreeRADIUS server
+communicate with the SQL server.
+
+Open `raddb/mods-available/sql` verify that the first few configuration
+entries are correct. That is, the "server", "login", and "password"
+entries should be set up correctly for your local SQL database.
+
+If using sqlite, these entries can be left commented out as they're not
+required, but you should uncomment the `sqlite {}` section and the
+configuration items within that section.
+
+FreeRADIUS uses the `rlm_sql` module to interface with the SQL
+databases. You should check that this module is installed by doing:
+
+[source, bash]
+--------------------------------------
+$ ls -l usr/lib64/freeradius/rlm_sql*
+--------------------------------------
+
+(Or, the directory wherever the FreeRADIUS libraries were installed.)
+
+You should see not only files like "rlm_sql.so", but also
+"rlm_sql_mysql.so", or "rlm_sql_sqlite.so". If you do not see
+"rlm_sql.so", or you do not see the sub-module which interfaces with
+your SQL server, you will have to install it now. You may do this by
+going to the rlm_sql subdirectory, and building the module:
+
+[source, bash]
+------------------------
+$ cd freeradius-server/src/modules/rlm_sql
+$ ./configure
+$ make
+$ make install
+------------------------
+
+This exercise has insufficient room to describe how to debug any
+configuration, build, or installation problems with the SQL drivers. For
+the remainder of this exercise, we will assume that the driver is
+installed in the appropriate library directory.
+
+Once you have verified that the SQL driver exists, have enabled the module
+by creating a symlink from `raddb/mods-available/sql` to
+`raddb/mods-enabled/sql` and you have configured the appropriate sql dialect,
+you should start the server as usual:
+
+------------
+$ radiusd -X
+------------
+
+If all has gone well, the server should print out the normal "Ready to
+process requests" message. Scroll up in your terminal window, and there
+should be messages from the `sql` module, such as:
+
+--------------
+rlm_sql_sqlite: Database doesn't exist, creating it and loading schema
+rlm_sql_sqlite: Executing SQL statements from file "/etc/raddb/mods-config/sql/main/sqlite/schema.sql"
+rlm_sql (sql): Driver rlm_sql_sqlite (module rlm_sql_sqlite) loaded and linked
+rlm_sql (sql): Attempting to connect to database "radius"
+rlm_sql (sql): Initialising connection pool
+   pool {
+       start = 5
+       min = 4
+       max = 100
+       spare = 3
+       uses = 0
+       lifetime = 0
+       cleanup_interval = 30
+       idle_timeout = 60
+       retry_delay = 1
+       spread = no
+   }
+rlm_sql (sql): Opening additional connection (0)
+rlm_sql_sqlite: Opening SQLite database "/tmp/freeradius.db"
+rlm_sql (sql): Opening additional connection (1)
+rlm_sql_sqlite: Opening SQLite database "/tmp/freeradius.db"
+rlm_sql (sql): Opening additional connection (2)
+rlm_sql_sqlite: Opening SQLite database "/tmp/freeradius.db"
+rlm_sql (sql): Opening additional connection (3)
+rlm_sql_sqlite: Opening SQLite database "/tmp/freeradius.db"
+rlm_sql (sql): Opening additional connection (4)
+rlm_sql_sqlite: Opening SQLite database "/tmp/freeradius.db"
+--------------
+
+These messages indicate that the server was able to load the `sql`
+module, and that the `sql` module was able to communicate with the SQL
+server.
+
+If there is a problem with shared libraries, or with access permissions
+to the SQL database, then an error message will be printed, and the
+server will not start properly. The FreeRADIUS FAQ and the
+`radiusd.conf` file, entry "libdir", contain information as to how to
+fix shared library issues.
+
+If there are issues connecting to the database you should verify manually
+that you can connect to the SQL database using the given "server",
+"login", and "password". The SQL database should come with a test
+client which may be used to perform this test.
+
+Now stop the server. The next exercise will be to add the schema to the
+database, and to populate it with a test entry.
+
+== Questions
+
+1.  Why is it important to test SQL connectivity, independently of
+testing the ability to obtain user configuration from an SQL database?
+2.  Why are there different configuration files for each SQL server?
+3.  What additional benefits, not mentioned here, do SQL databases have
+over the files module?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/sql_user.adoc b/doc/antora/modules/tutorials/pages/sql_user.adoc
new file mode 100644 (file)
index 0000000..ec55b22
--- /dev/null
@@ -0,0 +1,93 @@
+= Configuring a user in an SQL database
+
+*Goal:* To configure the server to have a new user in an SQL database,
+to send test packets as that user, and to receive a reply.
+
+*Time:* 25-40 minutes.
+
+*File:*
+
+- `etc/raddb/mods-available/sql`
+- `etc/raddb/mods-config/sql/main/*`
+
+Now that we have verified in the previous exercise,
+xref:sql.adoc[SQL] that the server can communicate with
+an SQL server, we proceed to adding user configuration entries into the
+SQL database.
+
+Before adding any user configuration to an SQL database, we first need
+to create the schema used to store that information. In the source
+archive, the file `RADIUS-SQL.schema` in the documentatin directory,
+describes where the schemas are located, and how to install them. In
+general, you will need to be familiar with the tools for the SQL
+database your are using, as they are too complicated and variable to
+describe here.
+
+Once the schema has been created, use an SQL client utility to execute
+the following SQL commands:
+
+[source, sql]
+---------------------------------------------------------
+INSERT INTO radcheck (UserName, Attribute, op, Value)
+  values("bob", "Password.Cleartext", ":=", "hello");
+INSERT INTO radreply (UserName, Attribute, op, Value)
+  values("bob", "Reply-Message", ":=", "Hello from SQL");
+---------------------------------------------------------
+
+These commands may need to be modified slightly, depending on the syntax
+required by your SQL database.
+
+These commands mirror the "check" and "reply" entries listed in the
+file for the user "bob". Use the SQL client to verify that the entries
+are now in the database.
+
+As the previous exercise in xref:sql.adoc[SQL]
+did not tell the server to query the database, but only to connect to it,
+we must now configure FreeRADIUS to query the database. This may be done
+by editing `etc/raddb/sites-available/default`, and listing the `sql`
+module in the "authorize" section.
+
+There should already be a commented-out entry for `sql` in the
+"authorize" section or there will be `-sql` entry.
+If the entry is commented it should be un-commented, to make it live.
+If the entry has a '-' prefix, it may be left as is, the '-' prefix is used
+to mark modules as optional, so that the server can start even if they
+are not enabled.
+
+The file should now be edited to delete the existing entry or entries
+for user "bob". This may be done by commenting out the entries, rather
+than deleting them. Add a `#` character to the start of every line
+for the relevant entries, and save the updated file.
+
+The server should now be started. Send a test packet for user "bob",
+and verify that an authentication accept packet is received. Observe the
+debugging output of the server, and verify that the `sql` module is
+called, and that it successfully returns data for user "bob".
+
+If the server rejects the access request, then there are a number of
+steps to take, to correct the problem. Verify that FreeRADIUS is
+connecting to the SQL server, and that FreeRADIUS is "Ready to process
+requests." Verify that the file entry for "bob" has not matched the
+request. Verify that the SQL module returns "ok", rather than
+"notfound".
+
+If necessary, edit the `etc/raddb/mods-enabled/sql` file, and enable
+additional debugging of SQL statements via the `sqltrace` and `sqltracefile`
+configuration options. If the SQL queries are performed by the server and
+logged to the file, but the request for user "bob" is still rejected, then
+perform those queries by hand, using an SQL test client. Once you have
+verified that the SQL test client returns the correct information for
+the queries, then send the access request again.
+
+== Questions
+
+1.  Why do we not use an SQL database to "authenticate" users?
+2.  How do we have a DEFAULT entry in an SQL database?
+3.  Why is there no "Fall-Through" entry in an SQL database?
+4.  Does that DEFAULT entry differ from its use in the file? If so, why,
+and how? If not, why not?
+5.  What other configuration entries in `etc/raddb/sites-available/default`
+    exist for the `sql` module, and why?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/trouble_shooting.adoc b/doc/antora/modules/tutorials/pages/trouble_shooting.adoc
new file mode 100644 (file)
index 0000000..35f86f9
--- /dev/null
@@ -0,0 +1,44 @@
+If you encounter a problem with server configuration, observe the following set of procedures to troubleshoot or debug the server:
+
+* Make small, discrete changes to the configuration files.
+
+* Start the server in debugging mode: `radiusd -X`
+
+* Verify that the results are what you expect
+** The debug output shows any configuration changes you have made.
+** Databases (if used) are connected and operating.
+** Test packets are accepted by the server.
+** The debug output shows that the packets are being processed as you expect.
+** The response packets are contain the attributes you expect to see.
+
+* If everything is OK, save a copy of the configuration, go back and make another change.
+
+* If anything goes wrong,
+** double-check the configuration
+** read the entire debug output, looking for words like error or warning. These messages usually contain descriptions of what went wrong, and suggestions for how it can be fixed.
+
+* If you can't make any progress, try to replace your configuration with a saved copy of a "known working" configuration, and start again. This process can clean up errors caused by temporary edits, or edits that you have forgotten.
+
+* If you get stuck, ask for help on the freeradius-users [[project/Mailing list|mailing list]]. Include a description of what you are trying to do, and the entire debugging output, especially output showing the server receiving and processing test packets.
+** You may want to scrub "secret" information from the output before posting it - shared secrets, passwords, etc
+** Please do *not* scrub all the exact addresses and similar data, because often the process of obfuscating can introduce more errors
+
+== Reminder - run the server in debugging mode!
+
+Run the server in debugging mode as suggested in the FAQ, README, INSTALL, man page, and daily on the mailing list.
+
+We cannot emphasize that strongly enough. There is no way for anyone to help you unless you post the debugging output along with your question. If you do not post the debugging output, your question will either be ignored, or you will receive a number of responses saying
+Post the debug output as suggested in the FAQ, README, INSTALL, man page, and daily on the mailing list.
+
+A large number of problems can be trivially solved by having an expert read the debug output. If you do not post it to the list, you are making it impossible for anyone to help you.
+
+== Parsing debug mode
+
+You can usually interpret the debug messages, but if you need help, there is a debug form available at:
+
+* http://networkradius.com/freeradius.html
+
+Paste the output into the debug form, and a colorized HTML version will be produced. Look for red or yellow text, and read the messages.
+
+// Copyright (C) 2025 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/unlang_policies.adoc b/doc/antora/modules/tutorials/pages/unlang_policies.adoc
new file mode 100644 (file)
index 0000000..d5f5602
--- /dev/null
@@ -0,0 +1,62 @@
+= Unlang Policies
+
+*Goal:* Create and use policies for abstracting business logic
+
+*Time:* 10-20 minutes
+
+*File:*
+
+- `etc/raddb/policy.d/*`
+
+*`man` page:* unlang
+
+include::partial$unlang_start.adoc[]
+
+Look through the existing files in `etc/raddb/policy.d/*` and the rest
+of the documentation to get a feel for the unlang syntax and the tasks
+that policies can be used for.
+
+The basic structure of a policy is the policy name then a set of curly
+braces containing the body of the policy
+
+------------------------------------------------
+a_policy {
+       if (User-Name =~ /@([\w.+])/) {
+               reply.Reply-Message := "Hello remote %{User-Name}"
+       }
+}
+------------------------------------------------
+
+Policies defined within `etc/raddb/policy.d/*` can be called from
+anywhere in the server where modules can be called.
+
+------------------------------------------------
+authorize {
+       ...
+       a_policy
+       ...
+}
+------------------------------------------------
+
+Create a policy `proxy_to_realm` that forwards the incoming request
+to to a remote realm if the `User-Name` attribute ends in `@<remote realm>`.
+
+The contents of this policy should be identical to the the 'unlang'
+code written for the xref:unlang_splitting_strings.adoc[Splitting Strings]
+tutorial.
+
+Call this policy at the start of the `authorize {}` section of the
+`etc/raddb/sites-available/default` virtual server.
+
+All the information you need to create this policy is contained within
+documentation pages and the examples in this exercise.
+
+== Questions
+
+1.  What are the advantages of using the policy language over interpreted
+    language modules?
+2.  What are the main differences between a policy and a function in other
+    languages?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/unlang_return_codes.adoc b/doc/antora/modules/tutorials/pages/unlang_return_codes.adoc
new file mode 100644 (file)
index 0000000..315402a
--- /dev/null
@@ -0,0 +1,68 @@
+= Module return codes
+
+*Goal:* Explore uses of return codes and return code overrides
+
+*Time:* 10-15 minutes
+
+*File:*
+
+- `etc/raddb/policy.d/*`
+
+*`man` page:* unlang
+
+- xref:unlang:index.adoc[Conditional Expressions]
+- xref:unlang:return_codes.adoc[Return Codes]
+- xref:unlang:return_codes.adoc[The Return Code Operator]
+- https://github.com/FreeRADIUS/freeradius-server/blob/v3.2.x/src/modules/rlm_always/README.md[The Always Module]
+- https://github.com/FreeRADIUS/freeradius-server/blob/695a87f98c02568d5aa2f07ae1b9212101c4dcf9/src/modules/rlm_sometimes/README.md[The Sometimes Module]
+
+include::partial$unlang_start.adoc[]
+
+The server includes a number of instances of the
+xref:reference:raddb/mods-available/always.adoc[always] module.  These are used to set
+return codes during policy evaluation.
+
+For example, if the `ok` always module instance is called, the `ok` return code
+will be returned, and subject too priority comparisons, will be set as the
+return code for the request.
+
+One of the most common reasons for overriding return codes is to implement
+special behaviour on failure.
+
+To minimize external dependencies, for this exercise we will use the
+xref:reference:raddb/mods-available/sometimes.adoc[sometimes] module to simulate an
+unreliable external database.
+
+This module will return a specified xref:unlang:return_codes.adoc[return code] 50%
+of the time.
+
+Create an instance of the sometimes module called `bad_ldap`.
+
+Add unlang statements such that if the module returns `noop`, then a
+`control.Password.Cleartext = 'hello'` attribute pair is added to the request,
+and the return code is set to `updated`.
+
+Run three test requests using `bob.sh`, you should see that at least one request
+fails (though it may not as sometimes is truly random).
+
+Now add a policy to handle the `fail` return code of the sometimes module by
+executing the `files` module to provide an alternative source of credentials.
+
+[TIP]
+====
+You may need to modify the return code priorities of the
+xref:reference:raddb/mods-available/sometimes.adoc[sometimes] module.
+====
+
+If the policies are correct you will see that FreeRADIUS returns an
+`Access-Accept` 100% of the time.
+
+1.  Why might you need to override the return code priorities of the
+    sometimes module?
+2.  Looking through the unlang keyword list, do you see any of keywords
+    that might produce similar fail-over behaviour as the behaviour
+    configured above xref:unlang:keywords.adoc[Keywords].
+
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/unlang_splitting_strings.adoc b/doc/antora/modules/tutorials/pages/unlang_splitting_strings.adoc
new file mode 100644 (file)
index 0000000..797044c
--- /dev/null
@@ -0,0 +1,60 @@
+= Splitting strings
+
+
+
+*Goal:* Explore uses of regular expressions and subcapture groups
+
+*Time:* 10-20 minutes
+
+*File:*  
+
+- `etc/raddb/policy.d/*`
+
+*`man` page:* unlang
+
+*documentation page(s):*
+
+- xref:unlang:condition/index.adoc[Conditions]
+- xref:unlang:condition/regex.adoc[Regular expressions]
+- xref:unlang:update.adoc[The Update Statement]
+
+include::partial$unlang_start.adoc[]
+
+include::partial$common_control_attrs_sidebar.adoc[]
+
+Regular expressions are an extremely powerful tool in the 'unlang' policy
+language.  They provide both validation capabilities, allowing users
+to check the format of incoming attributes, and substring extraction
+(via capture groups).
+
+If you've completed the xref:proxy.adoc[Proxy] exercise you'll have
+used the `suffix` module to split an incoming `User-Name` value into
+its components and setup the request for proxying.
+
+Create an unlang version of "suffix" that splits an incoming `User-Name` into
+two components on the "@" separator.
+
+The first component should be written to the `request.Stripped-User-Name`
+attribute and the second component should be written to the
+`control.Stripped-User-Domain` attribute.
+
+Use `bob@realm1.sh` and `bob@realm2.sh` to test your new policy to ensure
+it works as expected.
+
+If you've completed the xref:proxy.adoc[Proxy] tutorial and have test
+realms setup, modify the policy code you have just written to proxy
+the request to the realm specified in the `User-Name` attribute.
+
+== Questions
+
+1.  Regular expressions can contain attribute expansions.  Given that
+    all supported regular expression libraries support pre-compilation
+    of expressions, why would regular expressions containing expansions
+    be avoided when the server being deployed will be under heavy load?
+2.  Why might you want to re-implement functionality offered by modules
+    in unlang?
+3.  What is an advantage of using expression based string splitting
+    over the suffix module?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/unlang_update_blocks_and_conditions.adoc b/doc/antora/modules/tutorials/pages/unlang_update_blocks_and_conditions.adoc
new file mode 100644 (file)
index 0000000..1f35659
--- /dev/null
@@ -0,0 +1,79 @@
+= Update blocks and simple conditions
+
+*Goal:* Explore uses of update blocks in the policy language
+
+*Time:* 10-25 minutes
+
+*File:*
+
+- `sites-available/default`
+
+*`man` page:* unlang
+
+*documentation page(s):*
+
+- xref:unlang:condition/index.adoc[Conditional Expressions]
+- xref:unlang:update.adoc[The Update Statement]
+
+include::partial$unlang_start.adoc[]
+include::partial$common_control_attrs_sidebar.adoc[]
+
+Unlang `update` blocks are used to update one or attributes in one
+of the server's xref:unlang:list.adoc[attribute lists].
+
+
+In previous tutorials we've used the `files` modules, and the authorize
+methods of authentication modules such as `pap` and `chap` to alter how
+the server processes requests by setting a `Auth-Type` value.
+Here, we will emulate that behaviour using the policy language.
+
+* Create a condition (_condition 1_) to execute policy code if
+the `User-Name` in the request is 'bob'.
+* Within that condition block, set the control attribute `Password.Cleartext`
+to be 'hello', and instruct the server to run the the `authenticate { ... }`
+subsection for `pap`.
+* Use the `bob.sh` script to verify that you see an `Access-Accept` returned
+despite the `files` module not being called.
+
+Using additional conditions and update blocks, emulate the logic implemented
+using the files module in the xref:matching_users.adoc[Matching Users]
+exercise.
+
+To recap:
+
+* If an incoming request contains a `User-Name` attribute with the value
+  'bob', and contains an attribute `Framed-Protocol` with value `PPP`
+  (_condition 2_), reply with a `Framed-IP-Address` attribute with the value
+  `192.168.10.12`.
+* If an incoming request contains a `Service-Type` attribute with a value
+  of `Framed-User` (_condition 3_), reply with a `Framed-Route` attribute
+  assigning a default route of `192.168.10.1` (`0.0.0.0/0 192.168.10.1 1`) and
+  a `Framed-IP-Netmask` attribute with a value of `255.255.255.0`.
+
+Again test the server with username "bob" and password "hello". Use the
+debug output of the server to see which unlang conditions evaluated to
+true.  You may use `radclient` or the `bob.sh` script to send the packets.
+
+Perform other authentication tests, adding the appropriate attributes to
+the test requests to exercise the different conditions. If you already have
+test packets from the xref:matching_users.adoc[Matching Users] exercises,
+you may use those, otherwise continue until you have packets that will match:
+
+* conditions 1 and 2, but not 3.
+* conditions 1 and 3, but not 2.
+* conditions 1, 2, and 3.
+
+== Questions
+
+1.  What are the advantages of unlang over the files module when creating
+    policies?
+2.  What are the advantages of the files modules over unlang?  Are there
+    any situations where you think the files module might be better suited
+    to a task than unlang?
+3.  Can you think of any efficiencies the users module might have over
+    multiple conditions, where policies are being assigned to many different
+    users?
+
+
+// Copyright (C) 2025 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/variables.adoc b/doc/antora/modules/tutorials/pages/variables.adoc
new file mode 100644 (file)
index 0000000..fd61f8c
--- /dev/null
@@ -0,0 +1,95 @@
+= Using configuration and run-time variables
+
+*Goal:* To use run-time variable expansion.
+
+*Time:* 15-30 minutes.
+
+*Files:*
+
+- `etc/raddb/radiusd.conf`
+- `etc/raddb/users`
+- `etc/raddb/mods-available/detail`
+
+*`man` page:* `radiusd.conf`
+
+*documentation page:* xref:unlang:xlat/index.adoc[Dynamic expansions]
+
+There are two kinds of variables within the server. The first is within
+`radiusd.conf` and related files. These variables are referenced via the
+`$` character, which is used to define common terms (e.g. `${logdir}` so that
+those terms do not have to be repeated multiple times in the
+configuration files. These variables are used only when the server reads
+the configuration files, and they cannot be updated or edited once the files
+have been read.
+
+The second kind of variable is a run-time variable, which is dynamically
+expanded for each request received by the server. These variables are
+referenced by the `%` character, and they may be used to pull the values of
+attributes from the request to be used by a module. These variables may
+also be used by one module to obtain information from another module.
+
+In this exercise, we cover configuration variables and some simple
+properties of the run-time variables. Later exercises cover additional
+properties of the run-time variables.
+
+The main configuration file `radiusd.conf` and the module configuration
+files contains a number of examples of the use of variables. For example,
+the `detail` module (configured in `etc/raddb/mods-enabled/detail`)
+has a configuration entry named "filename", which by default has the
+following value:
+
+----------------------------------------------------------------
+filename = ${radacctdir}/%{Net.Src.IP}/detail-%Y%m%d
+----------------------------------------------------------------
+
+The configuration entry is composed of two kinds of variable expansion.
+One references the `${radacctdir}` configuration variable, which was
+previously defined in `radiusd.conf`. The following variables are
+expanded at run time and depend on information in the request packet
+and other dynamically calculated data.
+
+Start the server in debugging mode (`radiusd -X`).
+In the server output, look for the `detail` module and the `filename`
+configuration entry for that module. Verify that the string printed
+for the `filename` does not print the reference to the `${radacctdir}`
+variable, but instead has substituted the value of that variable.
+Verify also that the values of the run-time variables have _not_
+been substituted and that they are still printed as variables.
+
+If you don't see any configuration printed for the `detail` file module
+ensure it is uncommented in the `accounting {}` section of the
+`raddb/sites-available/default` virtual server.
+
+Now read the
+https://github.com/FreeRADIUS/freeradius-server/blob/v3.2.x/doc/configuration/variables.rst[variables]
+documentation file to determine the meaning of the variables used in the `filename` configuration entry.
+Once you are done, send the server an accounting packet (e.g.,
+`bob-acct-stop.sh`), and go look for the detail file, which will be
+dynamically created. Verify that the contents of the file are the
+accounting packet you just sent.
+
+In addition to being used in the configuration files, run-time variables
+may also be used to create values for reply attributes. Stop the server,
+and edit the users file to add the following entry at the top:
+
+-----------------------------------------------------------------------------
+bob Password.Cleartext := "hello"
+        Reply-Message = "Hello %{User-Name}, your NAS port is %{NAS-Port}",
+        Reply-Message += "at time %T"
+-----------------------------------------------------------------------------
+
+Start the server, and run the `bob-login-one.sh` script. Verify that the
+`Reply-Message` attributes contain the user name, NAS port, time, and a
+copy of the `Class` attribute from the reply.
+
+== Questions
+
+1.  Why are run-time variables useful?
+2.  How would you configure that entry in the file to reply with the
+directory name where the `radiusd.conf` file is stored? Why is this a
+bad idea?
+3.  How would you create an entry in the users file that matched users when
+their `Class` was the same as their `NAS-Port`?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/pages/virtual.adoc b/doc/antora/modules/tutorials/pages/virtual.adoc
new file mode 100644 (file)
index 0000000..3cf1d6f
--- /dev/null
@@ -0,0 +1,59 @@
+= Virtual Servers
+
+
+
+*Goal:* To understand how to create and use a new virtual server.
+
+*Time:* 20-30 minutes
+
+*File:*
+
+- `etc/raddb/sites-enabled/virtual`
+
+*documentation page:* raddb/sites-available/README
+
+A "virtual server" is a configuration file that contains the
+following sections:
+
+- *listen* Defines a new socket.
+- *authorize* The authorization section
+- *authenticate* The authentication section
+- *post-auth* The post-authentication section
+- *pre-proxy* The pre-proxy section
+- *post-proxy* The post-proxy section
+- *preacct* The pre-accounting section
+- *accounting* The accounting section
+
+Create a new file `raddb/sites-enabled/virtual`. Put the following text
+into it:
+
+-----------------------------------------------
+listen {
+    ipaddr = 127.0.0.1
+    port = 18273   # some random 5 digit number
+    type = auth
+}
+
+authorize {
+    control.Clearext-Password := "hello"
+    pap
+}
+
+authenticate {
+    pap
+}
+-----------------------------------------------
+
+Start the server in debugging mode, and use `radtest` to send a PAP
+authentication request to the server at the port defined above.
+
+== Questions
+
+1.  What happens when you try to use CHAP or MS-CHAP? Why does this result occur?
+2.  How can you make that virtual server use CHAP or MS-CHAP?
+3.  What happens when you try different User-Names? Why does this result occur?
+4.  How can you make the above configuration authenticate different
+users via different passwords?
+
+// Copyright (C) 2021 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/partials/common_control_attrs_sidebar.adoc b/doc/antora/modules/tutorials/partials/common_control_attrs_sidebar.adoc
new file mode 100644 (file)
index 0000000..632fda9
--- /dev/null
@@ -0,0 +1,10 @@
+.Common control attributes
+****
+Attributes in the `control` list can control the behaviour of the server.
+Commonly used control attributes are:
+
+- `control.Auth-Type` specifies the `authenticate <name> {}` section to run
+****
+
+// Copyright (C) 2025 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.
diff --git a/doc/antora/modules/tutorials/partials/unlang_start.adoc b/doc/antora/modules/tutorials/partials/unlang_start.adoc
new file mode 100644 (file)
index 0000000..2e52747
--- /dev/null
@@ -0,0 +1,9 @@
+[TIP]
+====
+For this tutorial you should start with an empty authorization section
+(`recv Access-Request { ... }` or in ≤ v3.2.x `authorize { ... }`)
+in the virtual server you're using to process requests.
+====
+
+// Copyright (C) 2025 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
+// This documentation was developed by Network RADIUS SAS.