summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/book-enea-nfv-access-guide-intel/doc/getting_started.xml188
-rwxr-xr-xdoc/book-enea-nfv-access-guide-intel/doc/images/edit_boot_params.pngbin0 -> 7833 bytes
-rwxr-xr-xdoc/book-enea-nfv-access-guide-intel/doc/images/edit_boot_params.svg213
3 files changed, 313 insertions, 88 deletions
diff --git a/doc/book-enea-nfv-access-guide-intel/doc/getting_started.xml b/doc/book-enea-nfv-access-guide-intel/doc/getting_started.xml
index dac3015..6e57f4f 100644
--- a/doc/book-enea-nfv-access-guide-intel/doc/getting_started.xml
+++ b/doc/book-enea-nfv-access-guide-intel/doc/getting_started.xml
@@ -14,8 +14,8 @@
14 <section id="sysshell_config"> 14 <section id="sysshell_config">
15 <title>Default Shell Configuration</title> 15 <title>Default Shell Configuration</title>
16 16
17 <para>Before installing Enea NFV Access, make sure that bash is the 17 <para>Before installing Enea NFV Access, make sure that <emphasis
18 default shell.</para> 18 role="bold">bash</emphasis> is the default shell.</para>
19 19
20 <para><emphasis role="bold">To verify the default system 20 <para><emphasis role="bold">To verify the default system
21 shell</emphasis></para> 21 shell</emphasis></para>
@@ -23,8 +23,8 @@
23 <itemizedlist> 23 <itemizedlist>
24 <listitem> 24 <listitem>
25 <para>If your system runs Ubuntu, use list to verify if 25 <para>If your system runs Ubuntu, use list to verify if
26 <filename>/usr/bin</filename> is a symbolic link to <emphasis 26 <filename>/usr/bin</filename> is a symbolic link to
27 role="bold">bash</emphasis>:</para> 27 <literal>bash</literal>:</para>
28 28
29 <programlisting># ls -l /bin/sh 29 <programlisting># ls -l /bin/sh
30lrwxrwxrwx 1 root root 4 2012-03-02 11:53 /bin/sh -&gt; bash</programlisting> 30lrwxrwxrwx 1 root root 4 2012-03-02 11:53 /bin/sh -&gt; bash</programlisting>
@@ -58,32 +58,34 @@ Use dash as the default system shell (/bin/sh)? No</programlisting>
58 58
59 <itemizedlist> 59 <itemizedlist>
60 <listitem> 60 <listitem>
61 <para>A GRUB.efi binary - available from the <ulink url="???">GNU 61 <para>A GRUB.efi binary. Available from the <ulink
62 GRUB download page</ulink>.</para> 62 url="https://www.gnu.org/software/grub/grub-download.html">GNU GRUB
63 download page</ulink>.</para>
63 </listitem> 64 </listitem>
64 65
65 <listitem> 66 <listitem>
66 <para>For booting from an SSD/HDD: a rootfs that needs to be 67 <para>A rootfs to be installed on the board. The following is
67 installed on the board (e.g. 68 applicable for booting from an SSD/HDD:<programlisting>&lt;path_to_EneaNFV_Access_folder&gt;/&lt;architecture&gt;/inteld1521/images/ \
68 <filename>[path_to_EneaNFV_Access_folder]/[architecture]/inteld1521/images/enea-nfv-access/enea-nfv-access.tar.gz</filename>).</para> 69enea-nfv-access/enea-nfv-access.tar.gz</programlisting></para>
69 </listitem> 70 </listitem>
70 71
71 <listitem> 72 <listitem>
72 <para>For USB booting: a development based rootfs (e.g. 73 <para>A development based rootfs. The following is applicable for
73 <filename>[path_to_EneaNFV_Access_folder]/[architecture]/inteld1521/images/enea-nfv-access-dev/enea-nfv-access-dev-inteld1521.tar.gz</filename>).</para> 74 USB booting:<programlisting><filename>&lt;path_to_EneaNFV_Access_folder&gt;/&lt;architecture&gt;/inteld1521/images/ \
75enea-nfv-access-dev/enea-nfv-access-dev-inteld1521.tar.gz</filename></programlisting></para>
74 </listitem> 76 </listitem>
75 </itemizedlist> 77 </itemizedlist>
76 78
77 <para>Using the installer on the development host requires the 79 <para>Using the installer on the development host requires the
78 following:</para> 80 following:</para>
79 81
80 <itemizedlist> 82 <itemizedlist spacing="compact">
81 <listitem> 83 <listitem>
82 <para>A physical drive of 16GB or larger</para> 84 <para>A physical drive of 16GB or larger.</para>
83 </listitem> 85 </listitem>
84 86
85 <listitem> 87 <listitem>
86 <para>Root permissions</para> 88 <para>Root permissions.</para>
87 </listitem> 89 </listitem>
88 </itemizedlist> 90 </itemizedlist>
89 </section> 91 </section>
@@ -96,13 +98,12 @@ Use dash as the default system shell (/bin/sh)? No</programlisting>
96 98
97 <orderedlist> 99 <orderedlist>
98 <listitem> 100 <listitem>
99 <para>Go to the installer location: <programlisting># cd [path_to_EneaNFV_Access_folder]/[architecture]/ 101 <para>Go to the installer location: <programlisting># cd &lt;path_to_EneaNFV_Access_folder&gt;/&lt;architecture&gt;/
100install/nfv-installer/script-installer</programlisting></para> 102install/nfv-installer/script-installer</programlisting></para>
101 </listitem> 103 </listitem>
102 104
103 <listitem> 105 <listitem>
104 <para>Execute the script file, this will bring you to the installer 106 <para>Execute the installer script: <programlisting># sudo ./nfv_installer.sh</programlisting></para>
105 prompt: <programlisting># sudo ./nfv_installer.sh</programlisting></para>
106 </listitem> 107 </listitem>
107 108
108 <listitem> 109 <listitem>
@@ -125,52 +126,53 @@ q or quit - exits the script</programlisting></para>
125 <note> 126 <note>
126 <para>When using the installer for the first time, make sure to 127 <para>When using the installer for the first time, make sure to
127 set ALL parameters in order to be able to run all steps. See <xref 128 set ALL parameters in order to be able to run all steps. See <xref
128 linkend="example_two"> 129 linkend="examples">
129 "Example 2" 130 Example 2
130 </xref> for details.</para> 131 </xref> for details.</para>
131 </note> 132 </note>
132 133
133 <para><programlisting># set &lt;parameter_name&gt;=&lt;parameter_value&gt;</programlisting></para> 134 <para><programlisting># set &lt;parameter_name&gt;=&lt;parameter_value&gt;</programlisting></para>
134 135
135 <orderedlist> 136 <itemizedlist spacing="compact">
136 <listitem> 137 <listitem>
137 <para><parameter>drive=&lt;/dev/sdaX&gt;</parameter> - the drive 138 <para><parameter>drive=&lt;/dev/sdaX&gt;</parameter> - sets the
138 to partition</para> 139 drive which will be partitioned.</para>
139 </listitem> 140 </listitem>
140 141
141 <listitem> 142 <listitem>
142 <para><parameter>grub_binary=&lt;file&gt;</parameter> - points 143 <para><parameter>grub_binary=&lt;file&gt;</parameter> - points
143 to the <filename>GRUB</filename> executable to be installed 144 to the <filename>GRUB</filename> executable, which will be
144 where <filename>grub_destination</filename> is set.</para> 145 installed where <filename>grub_destination</filename> is
146 set.</para>
145 </listitem> 147 </listitem>
146 148
147 <listitem> 149 <listitem>
148 <para><parameter>grub_destination=&lt;drive&gt;</parameter> - 150 <para><parameter>grub_destination=&lt;drive&gt;</parameter> -
149 specifies the partition where <filename>GRUB</filename> will be 151 specifies the partition where <filename>GRUB</filename> will be
150 installed</para> 152 installed.</para>
151 </listitem> 153 </listitem>
152 154
153 <listitem> 155 <listitem>
154 <para><parameter>rootfs_destination=&lt;drive&gt;</parameter> - 156 <para><parameter>rootfs_destination=&lt;drive&gt;</parameter> -
155 specifies the partition where the <filename>rootfs</filename> 157 specifies the partition where the <filename>rootfs</filename>
156 will be deployed, used by <filename>GRUB</filename> to boot off 158 will be deployed, used by <filename>GRUB</filename> to boot
157 of.</para> 159 from.</para>
158 </listitem> 160 </listitem>
159 161
160 <listitem> 162 <listitem>
161 <para><parameter>rootfs_targz=&lt;rootfs.tar.gz 163 <para><parameter>rootfs_targz=&lt;rootfs.tar.gz
162 file&gt;</parameter> - the archive of the Enea NFV Access 164 file&gt;</parameter> - sets the archive of the Enea NFV Access
163 <filename>rootfs</filename> you wish to unpack to where 165 <filename>rootfs</filename> you wish to unpack. The archive will
164 <filename>rootfs_destination</filename> is set. Which file you 166 be unpacked where <filename>rootfs_destination</filename> is
165 unpack depends on whether you booting from an SSD/HDD or from a 167 set. Which type of archive file you unpack depends on whether
166 USB drive.</para> 168 you are booting from an SSD/HDD or from a USB drive.</para>
167 </listitem> 169 </listitem>
168 </orderedlist> 170 </itemizedlist>
169 </listitem> 171 </listitem>
170 172
171 <listitem> 173 <listitem>
172 <para>Optionally, perform a test run before affecting the actual 174 <para>Optionally, perform a test run before affecting the actual
173 layout of the physical media with the command: <programlisting>dry</programlisting></para> 175 layout of the physical media, with the command: <programlisting>dry</programlisting></para>
174 </listitem> 176 </listitem>
175 177
176 <listitem> 178 <listitem>
@@ -183,38 +185,37 @@ q or quit - exits the script</programlisting></para>
183 </orderedlist> 185 </orderedlist>
184 186
185 <para>The Enea NFV Access installer creates a bootable media by 187 <para>The Enea NFV Access installer creates a bootable media by
186 performing three steps. Each step is executed or not depending on 188 performing three steps. Each of the following 3 steps is executed or not
187 whether certain parameters are set:</para> 189 depending on whether certain parameters are set:</para>
188 190
189 <orderedlist> 191 <itemizedlist>
190 <listitem> 192 <listitem>
191 <para><command>Format drive</command> - creates a 512MB partition 193 <para>Format drive. Creates a 512MB partition to be used by
192 which will be used by <filename>GRUB</filename>, and another to be 194 <filename>GRUB</filename>, and another for use by the
193 used for the <filename>rootfs</filename> (it should occupy the rest 195 <filename>rootfs</filename>. The second partition should occupy the
194 of the physical media minus the first partition). This step depends 196 rest of the physical media, minus the first partition. This step
195 on the following parameter(s): <programlisting>drive=</programlisting></para> 197 depends on setting these parameter(s): <programlisting>drive=</programlisting></para>
196 </listitem> 198 </listitem>
197 199
198 <listitem> 200 <listitem>
199 <para><emphasis role="bold">GRUB install</emphasis> - Installs the 201 <para>GRUB install. Installs the <literal>grub_binary</literal> on
200 <literal>grub_binary</literal> on the drive set for 202 the drive set for <literal>grub_destination</literal>. A
201 <literal>grub_destination</literal>. A <filename>grub.cfg</filename> 203 <filename>grub.cfg</filename> file is created. This file is
202 file will be created that will be configured to boot off of 204 configured by the user, to boot from the
203 <literal>rootfs_destination</literal>. This step depends on the 205 <literal>rootfs_destination</literal>. This step depends on setting
204 following parameters:<programlisting>grub_destination= 206 these parameter(s):<programlisting>grub_destination=
205grub_binary= 207grub_binary=
206rootfs_destination=</programlisting></para> 208rootfs_destination=</programlisting></para>
207 </listitem> 209 </listitem>
208 210
209 <listitem> 211 <listitem>
210 <para><emphasis role="bold">Root Filesystem install</emphasis> - 212 <para>Root Filesystem install. Copies and unpacks the files found in
211 Copies and unpacks the files found in
212 <literal>rootfs_targz</literal> to the 213 <literal>rootfs_targz</literal> to the
213 <literal>rootfs_destination</literal>. This step depends on the 214 <literal>rootfs_destination</literal>. This step depends on setting
214 following parameters:<programlisting>rootfs_targz= 215 these parameter(s):<programlisting>rootfs_targz=
215rootfs_destination=</programlisting></para> 216rootfs_destination=</programlisting></para>
216 </listitem> 217 </listitem>
217 </orderedlist> 218 </itemizedlist>
218 219
219 <para>After using the installer and setting up the bootable media, 220 <para>After using the installer and setting up the bootable media,
220 connect it to the target machine and configure the target machine to use 221 connect it to the target machine and configure the target machine to use
@@ -222,37 +223,39 @@ rootfs_destination=</programlisting></para>
222 </section> 223 </section>
223 224
224 <section id="examples"> 225 <section id="examples">
225 <title>Examples of Execution</title> 226 <title>Examples</title>
226 227
227 <para>Below are a few examples of setups that the Enea NFV Access 228 <para>Below are a few examples of setups that the Enea NFV Access
228 installer can be used for:</para> 229 installer can be used for:</para>
229 230
230 <example id="example_one"> 231 <itemizedlist>
231 <title>Partitioning a drive</title> 232 <listitem xreflabel="example_one">
233 <para>Partitioning a drive:</para>
232 234
233 <programlisting>set drive=/dev/sda 235 <programlisting>set drive=/dev/sda
234run</programlisting> 236run</programlisting>
235 </example> 237 </listitem>
236 238
237 <example id="example_two"> 239 <listitem xreflabel="example_two">
238 <title>Partitioning a drive, installing GRUB and a Root 240 <para>Partitioning a drive, installing GRUB, and a Root
239 Filesystem:</title> 241 Filesystem:</para>
240 242
241 <programlisting>set drive=/dev/sda 243 <programlisting>set drive=/dev/sda
242set grub_destination=/dev/sda1 244set grub_destination=/dev/sda1
243set grub_binary=/home/user/grub-binary.efi 245set grub_binary=/home/user/grub-binary.efi
244set rootfs_destination=/dev/sda2 246set rootfs_destination=/dev/sda2
245set rootfs_targz=/home/user/rootfs.tar.gz 247set rootfs_targz=/home/user/rootfs.tar.gz
246run</programlisting> 248run</programlisting>
247 </example> 249 </listitem>
248 250
249 <example id="example_three"> 251 <listitem xreflabel="example_three">
250 <title>Deploying ONLY a root filesystem:</title> 252 <para>Deploying ONLY a root filesystem:</para>
251 253
252 <programlisting>set rootfs_destination=/dev/sda2 254 <programlisting>set rootfs_destination=/dev/sda2
253set rootfs_targz=/home/user/rootfs.tar.gz 255set rootfs_targz=/home/user/rootfs.tar.gz
254run</programlisting> 256run</programlisting>
255 </example> 257 </listitem>
258 </itemizedlist>
256 </section> 259 </section>
257 260
258 <section id="troubleshooting"> 261 <section id="troubleshooting">
@@ -262,7 +265,7 @@ run</programlisting>
262 configuration is set to use <filename>hd0</filename> as the primary 265 configuration is set to use <filename>hd0</filename> as the primary
263 drive for booting:</para> 266 drive for booting:</para>
264 267
265 <itemizedlist> 268 <itemizedlist spacing="compact">
266 <listitem> 269 <listitem>
267 <para><literal>error: no such partition</literal></para> 270 <para><literal>error: no such partition</literal></para>
268 </listitem> 271 </listitem>
@@ -274,7 +277,7 @@ run</programlisting>
274 277
275 <para>These errors have two possible causes:</para> 278 <para>These errors have two possible causes:</para>
276 279
277 <itemizedlist> 280 <itemizedlist spacing="compact">
278 <listitem> 281 <listitem>
279 <para>The drive where Enea NFV Access was installed is not 282 <para>The drive where Enea NFV Access was installed is not
280 identified as <literal>hd0</literal> by BIOS.</para> 283 identified as <literal>hd0</literal> by BIOS.</para>
@@ -296,41 +299,50 @@ run</programlisting>
296 <orderedlist> 299 <orderedlist>
297 <listitem> 300 <listitem>
298 <para>Restart the host and in the <filename>GRUB</filename> 301 <para>Restart the host and in the <filename>GRUB</filename>
299 selection screen, enter the command line by pressing 302 selection screen that appears automatically, enter the command line
300 <command>C</command>:</para> 303 by pressing <command>c</command>:</para>
301
302 <mediaobject>
303 <imageobject>
304 <imagedata align="center" contentwidth="600"
305 fileref="images/select-linux-kernel-in-grub2-boot-loader-on-ubuntu-14.04.svg" />
306 </imageobject>
307 </mediaobject>
308 </listitem> 304 </listitem>
309 305
310 <listitem> 306 <listitem>
311 <para>List all of the available partitions with 307 <para>Inside the command line, list all of the available partitions:
312 <command>ls</command>: <programlisting>partition list example</programlisting></para> 308 <programlisting>grub&gt; ls
309(hd0) (hd0,gpt2) (hd0,gpt1) (hd1) (hd2) (cd0)</programlisting></para>
313 </listitem> 310 </listitem>
314 311
315 <listitem> 312 <listitem>
316 <para>In order to identify where Enea NFV Access was installed, for 313 <para>Identify where Enea NFV Access was installed from the list of
317 each available partition run <emphasis role="bold">ls 314 partitions above, by using the same list command for each
318 &lt;partition&gt;</emphasis>: <programlisting>ls hd0</programlisting></para> 315 partition.</para>
316
317 <para>The root filesystem partition has been identified when a
318 folder structure is listed as in the sample output
319 below:<programlisting>grub&gt; ls (hd0,gpt2)/
320./ ../ bin/ boot/ dev/ etc/ home/ lib/ lost+found/ media/ mnt/ proc/ run/ sbin/
321sys/ tmp/ usr/ var/</programlisting></para>
319 </listitem> 322 </listitem>
320 323
321 <listitem> 324 <listitem>
322 <para>After identifying the partition, return to the GRUB selection 325 <para>After identifying the partition, return to the GRUB selection
323 screen by pressing <command>esc</command></para> 326 screen by pressing <command>ESC</command>.</para>
324 </listitem> 327 </listitem>
325 328
326 <listitem> 329 <listitem>
327 <para>Press <command>e</command> to edit and set the boot partition 330 <para>Press <command>e</command> to launch the GRUB editor. Edit and
328 to the one identified previously: <programlisting>edit and set partition example</programlisting></para> 331 set the boot partition to the one identified previously, by changing
332 the <literal>linux</literal> parameter pictured, to the correct
333 partition:</para>
334
335 <mediaobject>
336 <imageobject>
337 <imagedata align="center" contentwidth="600"
338 fileref="images/edit_boot_params.svg" />
339 </imageobject>
340 </mediaobject>
329 </listitem> 341 </listitem>
330 342
331 <listitem> 343 <listitem>
332 <para>To reboot to see if the change worked, press: 344 <para>Reboot to see if the change worked, by pressing
333 <command>F10</command></para> 345 <command>F10</command>.</para>
334 </listitem> 346 </listitem>
335 </orderedlist> 347 </orderedlist>
336 </section> 348 </section>
diff --git a/doc/book-enea-nfv-access-guide-intel/doc/images/edit_boot_params.png b/doc/book-enea-nfv-access-guide-intel/doc/images/edit_boot_params.png
new file mode 100755
index 0000000..5e1d009
--- /dev/null
+++ b/doc/book-enea-nfv-access-guide-intel/doc/images/edit_boot_params.png
Binary files differ
diff --git a/doc/book-enea-nfv-access-guide-intel/doc/images/edit_boot_params.svg b/doc/book-enea-nfv-access-guide-intel/doc/images/edit_boot_params.svg
new file mode 100755
index 0000000..f43ce97
--- /dev/null
+++ b/doc/book-enea-nfv-access-guide-intel/doc/images/edit_boot_params.svg
@@ -0,0 +1,213 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 xmlns:dc="http://purl.org/dc/elements/1.1/"
6 xmlns:cc="http://creativecommons.org/ns#"
7 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8 xmlns:svg="http://www.w3.org/2000/svg"
9 xmlns="http://www.w3.org/2000/svg"
10 xmlns:xlink="http://www.w3.org/1999/xlink"
11 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13 id="svg2985"
14 version="1.1"
15 inkscape:version="0.48.4 r9939"
16 width="802"
17 height="602"
18 sodipodi:docname="edit_boot_params.png">
19 <metadata
20 id="metadata2991">
21 <rdf:RDF>
22 <cc:Work
23 rdf:about="">
24 <dc:format>image/svg+xml</dc:format>
25 <dc:type
26 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
27 <dc:title></dc:title>
28 </cc:Work>
29 </rdf:RDF>
30 </metadata>
31 <defs
32 id="defs2989" />
33 <sodipodi:namedview
34 pagecolor="#ffffff"
35 bordercolor="#666666"
36 borderopacity="1"
37 objecttolerance="10"
38 gridtolerance="10"
39 guidetolerance="10"
40 inkscape:pageopacity="0"
41 inkscape:pageshadow="2"
42 inkscape:window-width="640"
43 inkscape:window-height="480"
44 id="namedview2987"
45 showgrid="false"
46 inkscape:zoom="0.37780549"
47 inkscape:cx="401"
48 inkscape:cy="301"
49 inkscape:window-x="0"
50 inkscape:window-y="0"
51 inkscape:window-maximized="0"
52 inkscape:current-layer="svg2985" />
53 <image
54 width="802"
55 height="602"
56 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyIAAAJaCAYAAADTS/NGAAAABHNCSVQICAgIfAhkiAAAIABJREFU
57eJzt3V3Sq7jBLlD7VI8otxnmHlPG5XORcn80QUgg9PDjtapS6f1ihBAC6zHIfv/58+fz73//+wUA
58AJDwn//85/XX6/V6/etf/zq7LgAAwI/48+fP6/+dXQkAAOD3CCIAAECcIAIAAMQJIgAAQJwgAgAA
59xAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJ
60IgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIA
61AECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABA
62nCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwg
63AgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIA
64AMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADE
65CSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAki
66AABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxP11dgUAEj6fzz/+/X6///H377/nf6stP2r7
67c1vrV1qffkttvLV9p2UsrVtbDvBE7ogAjzcduJcCQGlAP3r700HnWv1Kete/k8/nE9+v+bHb077z
68Y13qe08+dgBLBBHg0UoD/rXXnrV9rmcaPvaYH/952KgtB3gyj2YBP+nsMHD29u9ImwE8iyACQFHp
69saGlOStTS68vzYNomYOxNoeid/sAnMOjWQCvazwSM50DsWeg3Lv+HrU5FNN/Ly1vnYNRe5xu7/Z7
709nfvunuXAzyNOyLAz6gNbte+hSqx/drfa6aD7O/A+4pq9bpqvdMhD+DpBBHgZ5x916PlK3uvHiJK
719rbpdJ/nf7+SI0LIXQMYwCiCCMDE6LsiT3XkAP1qYcydEIAxzBEBuJCz79rwT1tCyBm/cwJwZ4II
728GhnD+zP3n6v+byT6d9KtgzI7zp43/qDk62/G+LuC/BLPJoFPN7SPITWgd4RcxjWtl8b0Na2P/37
73qK+nnT6uVprg31q/retP110qJzXHpCV4rH35wFqQqy0HeCpBBPgJW76hammgeNXtpwate+vQUr/e
7412ydBL41RB7BRHWA/+XRLAAAIE4QAQAA4gQRAAAgThABAADiBBEAACBOEAEAAOIEEQAAIE4QAQAA
754gQRAAAgThABAADiBBEAACBOEAEAAOIEEQAAIE4QAQAA4gQRAAAgThABAADiBBEAACBOEAEAAOIE
76EQAAIE4QAQAA4gQRAAAgThABAADiBBEAACBOEAEAAOIEEQAAIE4QAQAA4gQRAAAgThABAADiBBEA
77ACBOEAEAAOIEEQAAIO6vsyvwaz6fz9lVAAB4pPf7fXYV2EAQOYkTBQDgGD7ovSePZgEAAHGCCAAA
78ECeIAAAAcYIIAAAQJ4gAAABxgggAABAniAAAAHGCCAAAECeIAAAAcYIIAAAQJ4jwUz6fz+vz+Zxd
79DYA41z/gav46uwJkfT6f1/v9Prsal/J9Y562y/Rva2/c0+Wl9bfW5ReOT619Ssunx2JkO/Ucv68t
806y71se/6e+vya45o+9Ft/CvnN0Ard0R+iE/C1pXaZzpweL/fwwYS3+0//Tj1DKyvPojbU79pe0z7
8117ydnt4veu3tG6k+1XL83LEAfo0gws9oGQC3DgKOHrwYdP6fs+8ApLc/MtzC19nnFcASQYSfcfSA
8276iy5gOEJ4cRg6F9ntwn+D8jQ6nAC1yROSI3sfYMeW35fFnp0/f5fIi18lvmU2xdf15G6/6dIf2s
83d8/xTyw/ylpQWRuEb5lj0bKNtbkp8/L31O9OA8I95/d0eW39Pef/6Mcja9vfsrx2/W3ddmv7l9oQ
844IrcEbmB2jPkLc+Yr81zmL5+af21so9Yv7bftf07Sku5ZzzD3Xv8Ry9PaA0PI+rXUn5t4Lelblcb
85RNbO7y1zXLYcn97rxx4jzo/a9Xf691KdvuW1bP9q/QdgjTsiN3X1N5m99Ttrjsa03LU6jBwIbSmz
86tv+97TO6/CW1T4pH9/kt2yl9Yp2sw55y5866jpS269EzgN8iiNzAd3Bcezxh5Jt4b9kt63/3c+kR
87hJb9Txqx7dqjHr3WBqNr7XvF9l8y8lPy3v3fcgdwdN+6qtL5/3oJKABPJYjcxFLomM9TGDXYKD1j
88n1p/uu60zFHzNGp3Re5qra1q7Tu6/Y8YhPes2/Jo1fz1rfvf0v89TlN2xPUDgGsyRwQ6rT2zzT8Z
89TP6vlv6iTwHwRILIDeyZIF1b54xJ13vdoa6lCbqj9B7f6fKz+8qINpvWeXpslrZV2/5Z/e/qfZ79
907nBNA0gQRG5gPpCaD5xqy5fKWVo+LWOt/NIdgPl/l+q/9VPx1v0bpbZ/X6XHmHr1Hv/Ry3v2Z+vr
91l45FS/16HmHc2j61+pX2f1r+WjlXU2uf1vOntfy19uvZznQb0+2mrr9761/qfwB3YI7ITRz1LUZ7
92yym9qbZuu3X90mB+5CBsqey9A9c99axtv6Xcs5dv1dt/ti5fe01i+z3nzxUCSK0/bpl/tLa89fxv
93OWe2SJ0fe9tpS3sII8CduCMCADflTghwZ4IIhzzSAEBebQ4UwJV5NAtvWgA35hoO3JU7IgAAQJwg
94AgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIA
95AMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADE
96/XV2BbiPz+fz93+/3+8Ta9Lvuy/v93vTfq299grt8/l8Frc9rdvX93XTttiyne86yf0u7d/S6771
976a3fUtvtLevpWo9PSzmv13nn2J5zYrre1nXXzs8rWdq/K1z37iDRTrXzb+/52dI/e/u+vvO73BGh
98WesAsDRwu4r5hW/LBbD02nmZZ7RBaZvTun3/N//72vo1qTeQs+o3bbOlf/NfiT5/9XbvGeSVzs+t
99ZY08Dkv7d/VjchWJD2l6ltfWW+ufV3j/474EEehUCjZXuRgfPXC++idYV68f684+funtC7bcWe/7
10039XeL8kTRDjU1d9Uzx7kXJU3A7i/q19/AebMEeEwpWdEa8/rl27rrs1hGBUoWueAHG2+3aU2q7Xf
101vKwRA5Ja2bU+MNW6fMv+7anf2nHdMh/l+/q1/loqt1ZGzxyClvkyqeOzpa6lZWvrrdWvZU5Uy9yU
102efl76jfy3JyXf9R8qZbr357+dUT9jui/o86PFkec3/N/t56ftffXb7tM55cc3X+XtsHvcEeEw5Qu
103INML3p5noOevH31Xo+UZ2JK9z3V/y14ahNbab+schpHtt1S/2jPGLXNYjpqjUep/020f1S6l8ufL
104ase/dw5Brf+MPj7fAcbS/1q1hoc97bNl2y3HcMmWuu09P/def1uOz5Y67ek/a/WrOaL/1tqnp/wj
1056r92fGrn3xHXz2mdtn4gADXuiHAL009Mvv8etZ250dtMGvVp9RUcNYA7oo2uLnkMW7dVuxsxus57
106Bttb1zuyDkdp/XBla7sc8bq97l7+WdtaMw8jR9dr+h5/lX0mQxCBA135Anr1IHEFPW30fSOd3tWY
107l3tE3Vg2qn3mH4JM/96qpW7Oz2s64vi3uMv5vRYY9F32EES4hemb9J0/NTlrsNG73asPko6o36h9
108LD1qtdVV275mbX9Lj8nsMfLYL92lab0GtRz/M8+vluPz63qO/95tTLe1dZ2rajnP7vz+zj6CCD/l
109Fy90LYOcqweN0X59/0fSpuvO7nuOz7WdfXzO7p88n8nqXN78Qnj0ZNRea5MXz9IyGXjPZMqrmO7f
1100+/2LNk62TttS/1GtP/SfLLSHLPa9s9q6ysf316j2/TI8s84/r3bbJlUftQ+Hf3+d7X3d8ZzR4Rm
1110wvD0h2F2vKSpYnoI+9azMuvXfBKzwhP69cymb60rFT+kulrauWsHZ+Weu2xVL/aM9atz2Af8YUF
112a+231D5r8z2O6t+149/7jHrtvLzS8VlSO/9a6jc9jlvrtbd9SvUrXd96B14t19+1/l9S27+918/R
1139dvaf0eXXzo+R81BqZ1/peVHXH963v9AEKFZ7QKytnzpotj676Vyey9mW8tv2d5R7bP2xr5nGz31
114alme2kbpdb31O7Lu87t2pTLW/l0KRHsljt/W121dZ2QfPaN/164/exyxH3vWO+r6ueV1W9frOT5H
115lF97TaoPtJ4De0LRUdeQra/l/gQRHq/lE7sz+aTotzn+wFW4HpFmjgic7HvBrz3DPv9vnqF2/KHH
1161a8fV6/f032vO64/nMUdEbiAxG17rssxZpSr962r1+/ptD9nE0R4PBdaAIDr8WgWAAAQJ4gAAABx
117Hs26mdpkstpk57npRNnSsqVyjvoO+KSr169F7fdbever9tste3/b5Yj+tWU7zg8AuD53RG6k9o0i
118LV9TO//fdL3S3+evWdpWbfkVXGHwt/bDUS3rLjlqv3r7V229nv61ZTt7l//6+QEAaYLITYwaJL5e
119r38MrtbKnv9Y2/fvteWw5oj+4/wAgPvxaNZN1AYvBjf3kLor82vfB+/8AID7EUS4hNoz+PPlS8ve
1207/eu5/DX5g1MyyyV37r90rLW8tfqu2V56fWl9VuXl/bpu1/T+SW/EpAAgDKPZv2QpV9QLb3u9apP
121uF1bd2u9vtsrPYNfW/b9W+k1PWrlt26/NPhuKX+67tqjQqVQUPpfS/lbtl8y3aeWvneGq54fAPBU
1227oj8gNKAae0bmO7+ifXZ9T9z+/Ntn90WX/MwcrV6TT39/ACAKxBE+FvLIKs2AOsZoF31k/K7udIg
123f8nSo1rTZVd19vkBAE8jiPB6va7xSW/r40ZCSdnSIL/ldzLu4qx+eoXzAwCeRhDBIOvhzj6ud+9f
124d68/AFyVyeo/YO+P6JXuRGz93YRknX/FWvscceeoZcL2iC8DmP5/8quO73Z+AMATuCNyEz1fsTp9
125XGdq7etl5+ZlLD3bv7Z8Ta1+S2VPHz+arrc2P6L0utL2a2Ustf2e7bcqtfGRgWDPMa61X0v/a+k/
126W76t6knnBwA8lSByE72TYHsm2B5VhyPLng9ie7fROuhcKmPE9mtf9XtUnbau11qv1q8uPmLbvev2
127ln1UHQDg13g0C2Z8at1H+wEALdwR4ect3f2YDqJ7H6l6ulr7AQAsEUT4eR6p6aN9AIA9PJoFAADE
128CSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAki
129AABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAA
130QJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECc
131IAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCAC
132AADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAA
133xAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJ
134IgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIA
135AECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABA
136nCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwg
137AgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIA
138AMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADE
139CSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAki
140AABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAA
141QJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECc
142IAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCAC
143AADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAA
144xAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJ
145IgAAQJwgAgAAxAkiAABA3F9nV+BXfT6fs6sAAACnEUTC3u/32VUAAIDTeTQLAACIE0QAAIA4QQQA
146AIgTRAAAgDhBBAAAiBNEAACAOEEEAACIE0QAAIA4QQQAAIgTRAAAgDhBBAAAiBNEAACAOEEEAACI
147E0QAAIA4QQQAAIgTRAAAgDhBBAAAiBNEAACAOEEEAACIE0QAAIA4QQQAAIgTRAAAgDhBBAAAiBNE
148AACAOEEEAACIE0QAAIA4QQQAAIgTRAAAgDhBBAAAiBNEAACAuL/OrgDn+3w+r9fr9Xq/36t/e6rv
149vi650/5P92NLvfeux3a9bf35fByjG+s9fiPO1dL1b6n8pfpvWb+1HqP6uPMHrscdEf72fSNYG5h/
150Pp/V5S3b6Fl/hOkb0/v9vu0bVUu9l9r/rvt7R7W2Xjs/Ws6bs8+vs7d/ZUe0y5nnaun9oXT93Lq/
151e69frfRLuCZBBBYYnAO/Yh4m5uZ3yA3qgaN4NIt/qL3B9A7Q7zTAv1NdW7Xu0y89mncldz+/zt4+
1522y0ds7XHdN/v9993JtLHW/+C5xFEaFZ6hnf6RrX2nG9t/XkZ80/fav8urb/V/A22pfza405LAW9t
153/aUyerU+g92yf7Uy1ra9tP7a8pb+Nbr8mpb2qYX81n0r9e+e8/OIc6j13C+9prXs+fpbrhdLdezt
154X63lz8vaen79+l2Ivf3rqPYHxvBoFn+bfuK1trz09+8AvvQG0DN5cY89629ZZ/7GWNr36Rvf0mtq
155y4/S+gz2/LW99evd/1r/Gl1+7/4tbWvJ2vnVMo9p7/k5r//eIF96/ej+01qv0v739q+W8teO31H9
1565wqmcziOruve/nVE+wPjuCPCP5z9RndG+Jiaf6p5dPnT7WxZXtruiOOV6ANb93/r8iu5yyAyqbct
157rt6WR9bvKv2n5do3HcSf8ejWvB5nrQ+0E0S4jG8IqIWBUetPy9lafu/2pp8kLtUj+cZYGkDs3ceW
158/TvClkefRvAJ6rLe45/qP2e7ev9ZuotwBfoX3JsgAp1Kz6RvsXQH5IxPFKdvyvNt99QlsX9n30Ux
159cCnrPf5XOT9GetK+pOlfcF/miEDBlT71A6hZ+mQf4MoEEViQeIxnOhn2SoOHljs7W+q8Z/9626S2
160/ug2v3v5Rxp9LO/o7P75JL3XF20N5xJEaLb0LS6J9UsTII9685jXa2u5tfrNl8//Xlu+dz9al9f2
161t7d+vftfq2uqfY/av9K+bNnPpfofdX7tVdp+uv+sXR9q2x/RP5f2Y0v5rf3n+9o9/brn2l66fqau
162X639a2/7A2OZI8LiBbf1b6VlW9ZfmpRdK680kbu0/potcwv21G/rNvbau42WYzX6W2i29K2jy19a
163vnV/jzi+va/pOT+PmIjcewz3lr20fEtf713viGvNlec31a4PRwf6Pcv3zgXZuj5wPHdEAH6YR1MA
164OIsgAvDDlh79edInxHsf+QFgPI9mAfy4JwWPubMfewKgzB0RAAAgThABAADiBBEAACDOHBEuY+m7
1654feU8bRnvksTaO+2n/P9KP2OQ8+xXyv7rlp+m2L+2lLbltbbUpej2zZ53EZeH/Tvfbb89srSsp5t
166Pakd4a7cEeEyet8UWr7x5o5fVTr/zv61N+ermg6QS/Xv3Z+nDipKx39urf3WfoSv1aj+ljpuI88X
167/Xu/Wv+et+3ePtxyjIA8QQQYaulT+qcOqlJKg7Ula78kTT/9+3it4bt3G44TnM+jWfwUbzzX4Vj0
168WRr4ChfXoX/30X7wGwQRXq9X/RncteXzZ5dLj4FMl83L76lf6RGItU+NWz5R3lL/o55h3uOI+vUu
16971E7fkf0n5btL+1v6zZ6+89WyblQLefXiGf4j+qfrdeHUc7u30t12Fr+k/v3d3tzyeMDv8yjWVSf
170wd37jO7SG+6e53Nr25/fYi/dcq89W79W/lr9j3qGea/e+o06/lvqv3b8evtPy/an5e0NIXv7zxa9
171c5z2rFs7Pkf2jxH9s/X6MMrZ/bv3+Fytf+8JktMy14Lh6P0D/pc7Iiza+0bt4vxfowY6rZ/I9W6/
172tv7ZnwZu3X6pX37L+X7amfq0fG/5BkG/4ej+3Vv+VqP6997zc3o344h9P/v6B08iiHCY78V+fgv7
173KFcdfM0HsdO/j9jWXmuDlbX6J/dvlDvVtUXvQI9nedpxXdqf9CN1QIYgwm1c+Q1oXrfvwP1Kdd5y
174B2Ve/zvsX4/5c+BP2jfaGexek+MCz2WOCAT1PuP/JNqBJ9O/jyGEwLMJIiy6+oC5Vr9k/a/eVkum
175dR7dlkvPfbdMSE0ev9fr9T93f+52TEt6J+MvuWOfnzqy/lfv31fc/hHuXn/gvzyaRXSOwNpk6/kb
176+dbt1yYc95ZfsmX93jZbemSotrz3+B5x/JfKaD1+tf2bLmt53dFq7dNbr5b1174JaKmOe9qmVMbo
17768NR/bP1+nBE22zZ/uj+Pfr6lujf89dttbaN0fsHrBNEeL1efd+SNL+or71+7zc9bXnTHFH+0qBi
178y/o9eo7NUWWkvmmmJ7wdOYF7z7fy7FnWW/bRr9lbxuh9PKp/XvE4je7fvevW1j/72I/ehuABY3k0
179CwAAiBNEGG7Ls9MAAPwGj2YxnFvbAADMuSMCAADECSIAAECcIAIAAMSZIwITa78DMHLdO1v7AoK1
180Hwdc+z2UpeWtdRnZ9nc/xqPr31v+1X+n4ezjf4f2GX3+rV03Uuf+dFul6998+bRu07/V1oenc0cE
181JkZ/V/8TftF4bv47Mms/FDddvvRtaqXlLRLtWjvGVz++owc3Pe1z5Xb7OnNwePX2GV2/Mwfsa9en
1820vWvtT1614e7E0SAw20ZHJTe0AHO5voEY3k0C4J+6Q0s8UvVV3PHOidpH55CX4ZjCCK8Xq/+5/Nr
183cwDWls+f8Z1/AlVbXqt/6Xnc2hyFo5W23VK/ljkWrduer9/aPlu2Nf/08PtIzvfvR76Jz/etpX/s
184qUOtf2ztW1vqd3b/3jPHZ62MtX0bcfzObL/e87vWPlv+vbT93vN/9PFrKX/ptUef/1e15/1xunxL
185/1j6N/TyaBav12v9+f2a2hyAljkCa+W2LF8re/q3ljkKo5TKrtVvb/t91dZvaZ9WLRM3jw5883kp
18683/3tt+8jLV61Nbde3zP7N9b5/iUrPX/0cfvzPbrPb9r7dO7/d7zf/Tx27r/R18/t5he3/aea0e9
187F23pX99/j24fWOKOCEPsvYj2hpOeba7VuTbAfpq9+zX/VG2pzPndkasbEVJrZfVuqzQQHOGMT0iT
1882zrj+I929vZHGb1fa3fWjqhH7zVSeOCOBBFer9c1LmDfQWxpMLu2fHT9r/DGfYVj1KJlkH23MNJj
189ur/zv7e6wrE/qw5Pab+aO9Txzo5o39rdgjOvbbX3T/2LqxJEKD4Dehd3r3+rXxi0P9X82G0ZrFyl
190f5/Z/57QfjXO77F+vX1/ff+5LnNEgCGmzygfOd8E4KquHnhHGjEHkOcTRBjCBWmsq7fv1onE83V6
1919+1K7bOnLleq/5LR9ZuWf/W2GKG2z1dvk2T/GL3+E4PF1fsPv0UQoThBbs+FeulbP2rLr1b/rz2D
192x7V195bd23619XsDwHz90rP8a/VfOgZb+0fp22CObr+vtXlK0//uPT9q/bt2/Hr799b6lcrfUs+1
1938nuPX/r6sPX4lPavtX229o+jjDp+tfJr+3TE9teuT73bL10/R70/jjx/pt+6Ba3MEeH1epXf9Pau
194v2X50oB06W+l5SP+vcdRbdDy7622bPvIso9+zd4yzt7Hnr6xtLx0fuwtv3f90X3g6Ponrw9HHp/W
1959untH3v3d9TxWyun5W/pa8uW7R/Zt1vfH2t1SLxfwpc7IgAAQJwgAgAAxAkiAABAnCACAADECSIA
196AECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABA
197nCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwg
198AgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIA
199AMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADE
200CSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIALPwcpVAAABlElEQVQAAMQJ
201IgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIA
202AECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABA
203nCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwg
204AgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIA
205AMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADE
206CSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAki
207AABAnCACAADECSIAAECcIAIAAMQJIgAAQJwgAgAAxAkiAABA3F+v1+v158+fs+sBAAD8kP8PqJM5
208YoCUyU4AAAAASUVORK5CYII=
209"
210 id="image2993"
211 x="0"
212 y="0" />
213</svg>