diff --git a/60hz_Divider/docs/22.aux b/60hz_Divider/docs/22.aux index 1e15dc1..154dadc 100644 --- a/60hz_Divider/docs/22.aux +++ b/60hz_Divider/docs/22.aux @@ -1,17 +1,18 @@ \relax -\@writefile{toc}{\contentsline {section}{\numberline {1}60Hz Divider}{1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Overview}{1}} -\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces 60 Hz Logic Divider to 1Hz\relax }}{2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Initial Notes: Counting the Hz}{2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}MAX7219 8 digit 7 LED segment Display Driver}{2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}CPLD Programming}{3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.4.1}6KHz clock}{3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.4.2}UART output}{3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Divide by N Counters}{4}} -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces This divide by 6 counter, appears to not line up with what the TTL Cookbook has for a similar 7490 one.\relax }}{4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Attiny 6KHz Clock}{5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Parsing of CPLD UART Stream}{5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.8}Max7219 8 digit 7-Segment Display via Uno}{6}} -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Rev A. 60Hz to 4 digits, is updated once per second.\relax }}{8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.9}Project Rev A Complete}{8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.10}Related:}{9}} +\@writefile{toc}{\contentsline {section}{\numberline {1}60Hz Divider}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Overview}{1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces 60 Hz Logic Divider to 1Hz\relax }}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Initial Notes: Counting the Hz}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}MAX7219 8 digit 7 LED segment Display Driver}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}CPLDs}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}CPLD Programming}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.5.1}6KHz clock}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.5.2}UART output}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Divide by N Counters}{4}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces This divide by 6 counter, appears to not line up with what the TTL Cookbook has for a similar 7490 one.\relax }}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Attiny 6KHz Clock}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.8}Parsing of CPLD UART Stream}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.9}Max7219 8 digit 7-Segment Display via Uno}{6}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Rev A. 60Hz to 4 digits, is updated once per second.\relax }}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.10}Project Rev A Complete}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.11}Related:}{9}\protected@file@percent } diff --git a/60hz_Divider/docs/22.log b/60hz_Divider/docs/22.log index 6f8ef03..263abfb 100644 --- a/60hz_Divider/docs/22.log +++ b/60hz_Divider/docs/22.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2019.8.17) 27 AUG 2020 15:37 +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 14 OCT 2020 02:08 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -7,34 +7,33 @@ entering extended mode (/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/6 0hz_Divider/docs/22.tex -LaTeX2e <2017/01/01> patch level 3 -Babel <3.9r> and hyphenation patterns for 3 language(s) loaded. +LaTeX2e <2018-12-01> (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls -Document Class: article 2014/09/29 v1.4h Standard LaTeX document class +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo -File: size11.clo 2014/09/29 v1.4h Standard LaTeX file (size option) +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) ) -\c@part=\count79 -\c@section=\count80 -\c@subsection=\count81 -\c@subsubsection=\count82 -\c@paragraph=\count83 -\c@subparagraph=\count84 -\c@figure=\count85 -\c@table=\count86 +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 ) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty -Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty Package: keyval 2014/10/28 v1.15 key=value parser (DPC) \KV@toks@=\toks14 ) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2016/10/09 v1.0u Standard LaTeX Graphics (DPC,SPQR) +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty Package: trig 2016/01/03 v1.10 sin cos tan (DPC) @@ -45,25 +44,17 @@ File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration Package graphics Info: Driver file: pdftex.def on input line 99. (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def -File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty -Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty -Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) -) -\Gread@gobject=\count87 +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex )) \Gin@req@height=\dimen103 \Gin@req@width=\dimen104 ) (/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty -Package: caption 2016/02/21 v3.3-144 Customizing captions (AR) +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) (/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty -Package: caption3 2016/05/22 v1.7-166 caption3 kernel (AR) -Package caption3 Info: TeX engine: e-TeX on input line 67. +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. \captionmargin=\dimen105 \captionmargin@=\dimen106 \captionwidth=\dimen107 @@ -72,7 +63,8 @@ Package caption3 Info: TeX engine: e-TeX on input line 67. \caption@parindent=\dimen110 \caption@hangindent=\dimen111 ) -\c@ContinuedFloat=\count88 +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 ) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) @@ -92,10 +84,10 @@ Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. ) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty -Package: geometry 2010/09/12 v5.6 Page Geometry +Package: geometry 2018/04/16 v5.8 Page Geometry (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty -Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch ) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) @@ -104,9 +96,9 @@ Package ifvtex Info: VTeX not detected. (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional ) -\Gm@cnth=\count89 -\Gm@cntv=\count90 -\c@Gm@tempcnt=\count91 +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 \Gm@bindingoffset=\dimen112 \Gm@wd@mp=\dimen113 \Gm@odd@mp=\dimen114 @@ -134,39 +126,32 @@ LaTeX Font Info: ... okay on input line 12. (/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count92 +\scratchcounter=\count93 \scratchdimen=\dimen120 -\scratchbox=\box26 -\nofMPsegments=\count93 -\nofMParguments=\count94 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 \everyMPshowfont=\toks16 -\MPscratchCnt=\count95 +\MPscratchCnt=\count96 \MPscratchDim=\dimen121 -\MPnumerator=\count96 -\makeMPintoPDFobject=\count97 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 \everyMPtoPDFconversion=\toks17 -) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty -Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO -) - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty -Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) -Package ifluatex Info: LuaTeX not detected. -) -Package pdftexcmds Info: LuaTeX not detected. -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) -)) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) @@ -175,15 +160,23 @@ Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) -Package etexcmds Info: Could not find \expanded. -(etexcmds) That can mean that you are not using pdfTeX 1.50 or -(etexcmds) that some package has redefined \expanded. -(etexcmds) In the latter case, load this package earlier. -))) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 38. Package grfext Info: Graphics extension search list: -(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE G,.JBIG2,.JB2,.eps] (grfext) \AppendGraphicsExtensions on input line 456. @@ -228,89 +221,105 @@ Package caption Info: End \AtBeginDocument code. * \@reversemarginfalse * (1in=72.27pt=25.4mm, 1cm=28.453pt) -(./22.toc -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <10.95> on input line 2. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <8> on input line 2. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <6> on input line 2. -) +(./22.toc) \tf@toc=\write3 \openout3 = `22.toc'. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 24. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 24. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 24. LaTeX Font Info: External font `cmex10' loaded for size (Font) <9> on input line 24. LaTeX Font Info: External font `cmex10' loaded for size (Font) <5> on input line 24. - <../pics/DSCN2964.JPG, id=1, 1003.75pt x 752.8125pt> +<../pics/DSCN2964.JPG, id=1, 1003.75pt x 752.8125pt> File: ../pics/DSCN2964.JPG Graphic file (type jpg) - -Package pdftex.def Info: ../pics/DSCN2964.JPG used on input line 26. +Package pdftex.def Info: ../pics/DSCN2964.JPG used on input line 26. (pdftex.def) Requested size: 150.556pt x 112.91699pt. [1 Non-PDF special ignored! + papersize=433.62pt,650.43pt -{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <../pics/DSCN2964.JPG>] Overfull \hbox (88.69052pt too wide) in paragraph at lines 65--65 [] \OT1/cmtt/m/n/10.95 ***** These pin numbers will probably not work with your hardware *****[] [] -[2 <../pics/DSCN2964.JPG>] [3] -<../pics/DSCN2958.JPG, id=20, 1003.75pt x 752.8125pt> -File: ../pics/DSCN2958.JPG Graphic file (type jpg) +Overfull \hbox (94.43921pt too wide) in paragraph at lines 77--77 +[]\OT1/cmtt/m/n/10.95 http://dangerousprototypes.com/docs/Xilinx_CPLDs:_XC9500_ +vs_CoolRunner-II[] + [] + + +Overfull \hbox (353.13016pt too wide) in paragraph at lines 77--77 +[]\OT1/cmtt/m/n/10.95 https://www.eevblog.com/forum/fpga/what-are-cplds-do-they +-still-play-a-role-how-to-program-them/msg3084581/#msg3084581[] + [] + + +Overfull \hbox (100.1879pt too wide) in paragraph at lines 77--77 +[]\OT1/cmtt/m/n/10.95 https://www.seeedstudio.com/XC9572XL-CPLD-development-boa +rd-v1b-p-799.html[] + [] + +[2] +<../pics/DSCN2958.JPG, id=16, 1003.75pt x 752.8125pt> +File: ../pics/DSCN2958.JPG Graphic file (type jpg) -Package pdftex.def Info: ../pics/DSCN2958.JPG used on input line 88. +Package pdftex.def Info: ../pics/DSCN2958.JPG used on input line 105. (pdftex.def) Requested size: 200.74644pt x 150.55983pt. - [4 <../pics/DSCN2958.JPG>] [5] -Overfull \hbox (13.65749pt too wide) in paragraph at lines 129--130 + [3] [4 <../pics/DSCN2958.JPG>] [5] +Overfull \hbox (13.65749pt too wide) in paragraph at lines 146--147 \OT1/cmr/m/n/10.95 Reference: http://maxembedded.com/2011/06/port-operations-in -avr/ [] -Overfull \hbox (19.70627pt too wide) in paragraph at lines 172--172 +Overfull \hbox (19.70627pt too wide) in paragraph at lines 189--189 []\OT1/cmtt/m/n/10.95 //https://playground.arduino.cc/Main/LedControl/#Seg7Cont rol[] [] -[6] <../pics/DSCN0170.JPG, id=30, 1003.75pt x 752.8125pt> +[6] +<../pics/DSCN0170.JPG, id=30, 1003.75pt x 752.8125pt> File: ../pics/DSCN0170.JPG Graphic file (type jpg) - -Package pdftex.def Info: ../pics/DSCN0170.JPG used on input line 175. +Package pdftex.def Info: ../pics/DSCN0170.JPG used on input line 192. (pdftex.def) Requested size: 301.12732pt x 225.84549pt. Package caption Warning: \captionsetup{type*=...} or \captionof -(caption) outside box or environment on input line 176. +(caption) outside box or environment on input line 193. See the caption package documentation for explanation. [7] -LaTeX Font Info: Try loading font information for OMS+cmr on input line 183. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 200. (/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions ) LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 183. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 200. -Underfull \hbox (badness 10000) in paragraph at lines 197--198 +Underfull \hbox (badness 10000) in paragraph at lines 214--215 []\OT1/cmr/m/n/10.95 https://shepherdingelectrons.blogspot.com/2020/07/uart- [] [8 <../pics/DSCN0170.JPG>] [9] (./22.aux) ) Here is how much of TeX's memory you used: - 3550 strings out of 494945 - 53966 string characters out of 6181032 - 119035 words of memory out of 5000000 - 6819 multiletter control sequences out of 15000+600000 + 3545 strings out of 494561 + 53978 string characters out of 6177454 + 123288 words of memory out of 5000000 + 7181 multiletter control sequences out of 15000+600000 8977 words of font info for 32 fonts, out of 8000000 for 9000 14 hyphenation exceptions out of 8191 - 39i,8n,39p,694b,291s stack positions out of 5000i,500n,10000p,200000b,80000s + 41i,8n,39p,694b,271s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on 22.pdf (9 pages, 755432 bytes). +Output written on 22.pdf (9 pages, 755018 bytes). PDF statistics: 69 PDF objects out of 1000 (max. 8388607) 46 compressed objects within 1 object stream diff --git a/60hz_Divider/docs/22.pdf b/60hz_Divider/docs/22.pdf index 0bbc43d..606c7dc 100644 Binary files a/60hz_Divider/docs/22.pdf and b/60hz_Divider/docs/22.pdf differ diff --git a/60hz_Divider/docs/22.tex b/60hz_Divider/docs/22.tex index c73febc..f256250 100644 --- a/60hz_Divider/docs/22.tex +++ b/60hz_Divider/docs/22.tex @@ -67,8 +67,25 @@ Some of the lines have to be edited to allow for all digits to be read, and also to lower intensity of display. I think also a component package (dark grey clear plastic bag) in front of the leds with intensity 1 is about right. +\subsection{CPLDs} +\begin{verbatim} +http://dangerousprototypes.com/docs/Xilinx_CPLDs:_XC9500_vs_CoolRunner-II +https://www.eevblog.com/forum/fpga/what-are-cplds-do-they-still-play-a-role-how-to-program-them/msg3084581/#msg3084581 + +https://www.seeedstudio.com/XC9572XL-CPLD-development-board-v1b-p-799.html + +\end{verbatim} + +dangerous prototypes has a few +including the xc2, the xc95, and the coolrunner. + +i wanted xc95, so they have one for \$12. not bad. + +looks like bus pirate can program... But I ended up using a Xilinx USB Platform Cable. \subsection{CPLD Programming} + + Using the XC9500XL series. This chip has some limitations - which are good. As you get faster clocks, you need bigger registers to handle parsing the clocks. Bigger registers, use more power. Maybe this is one reason why high clock speeds mean more power. diff --git a/60hz_Divider/docs/22.toc b/60hz_Divider/docs/22.toc index b7d51ea..12c6ab1 100644 --- a/60hz_Divider/docs/22.toc +++ b/60hz_Divider/docs/22.toc @@ -1,13 +1,14 @@ -\contentsline {section}{\numberline {1}60Hz Divider}{1} -\contentsline {subsection}{\numberline {1.1}Overview}{1} -\contentsline {subsection}{\numberline {1.2}Initial Notes: Counting the Hz}{2} -\contentsline {subsection}{\numberline {1.3}MAX7219 8 digit 7 LED segment Display Driver}{2} -\contentsline {subsection}{\numberline {1.4}CPLD Programming}{3} -\contentsline {subsubsection}{\numberline {1.4.1}6KHz clock}{3} -\contentsline {subsubsection}{\numberline {1.4.2}UART output}{3} -\contentsline {subsection}{\numberline {1.5}Divide by N Counters}{4} -\contentsline {subsection}{\numberline {1.6}Attiny 6KHz Clock}{5} -\contentsline {subsection}{\numberline {1.7}Parsing of CPLD UART Stream}{5} -\contentsline {subsection}{\numberline {1.8}Max7219 8 digit 7-Segment Display via Uno}{6} -\contentsline {subsection}{\numberline {1.9}Project Rev A Complete}{8} -\contentsline {subsection}{\numberline {1.10}Related:}{9} +\contentsline {section}{\numberline {1}60Hz Divider}{1}% +\contentsline {subsection}{\numberline {1.1}Overview}{1}% +\contentsline {subsection}{\numberline {1.2}Initial Notes: Counting the Hz}{1}% +\contentsline {subsection}{\numberline {1.3}MAX7219 8 digit 7 LED segment Display Driver}{2}% +\contentsline {subsection}{\numberline {1.4}CPLDs}{2}% +\contentsline {subsection}{\numberline {1.5}CPLD Programming}{3}% +\contentsline {subsubsection}{\numberline {1.5.1}6KHz clock}{3}% +\contentsline {subsubsection}{\numberline {1.5.2}UART output}{3}% +\contentsline {subsection}{\numberline {1.6}Divide by N Counters}{4}% +\contentsline {subsection}{\numberline {1.7}Attiny 6KHz Clock}{4}% +\contentsline {subsection}{\numberline {1.8}Parsing of CPLD UART Stream}{5}% +\contentsline {subsection}{\numberline {1.9}Max7219 8 digit 7-Segment Display via Uno}{6}% +\contentsline {subsection}{\numberline {1.10}Project Rev A Complete}{8}% +\contentsline {subsection}{\numberline {1.11}Related:}{9}% diff --git a/60hz_Divider/docs/23.aux b/60hz_Divider/docs/23.aux new file mode 100644 index 0000000..cf9c988 --- /dev/null +++ b/60hz_Divider/docs/23.aux @@ -0,0 +1,18 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}60Hz Divider}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Overview}{1}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces 60 Hz Logic Divider to 1Hz\relax }}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Initial Notes: Counting the Hz}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}MAX7219 8 digit 7 LED segment Display Driver}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}CPLDs}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.4.1}Programming}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.4.2}6KHz clock}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.4.3}UART output}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Divide by N Counters}{4}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces This divide by 6 counter, appears to not line up with what the TTL Cookbook has for a similar 7490 one.\relax }}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Attiny 6KHz Clock}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Parsing of CPLD UART Stream}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.8}Max7219 8 digit 7-Segment Display via Uno}{7}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Rev A. 60Hz to 4 digits, is updated once per second.\relax }}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.9}Project Rev A Complete}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.10}Related:}{9}\protected@file@percent } diff --git a/60hz_Divider/docs/23.log b/60hz_Divider/docs/23.log new file mode 100644 index 0000000..47cb62a --- /dev/null +++ b/60hz_Divider/docs/23.log @@ -0,0 +1,337 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 14 OCT 2020 02:09 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +60hz_Divider/docs/23.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/6 +0hz_Divider/docs/23.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./23.aux) +\openout1 = `23.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +(./23.toc +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 2. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 2. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 2. +) +\tf@toc=\write3 +\openout3 = `23.toc'. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 24. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 24. +<../pics/DSCN2964.JPG, id=1, 1003.75pt x 752.8125pt> +File: ../pics/DSCN2964.JPG Graphic file (type jpg) + +Package pdftex.def Info: ../pics/DSCN2964.JPG used on input line 26. +(pdftex.def) Requested size: 150.556pt x 112.91699pt. + [1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] +Overfull \hbox (88.69052pt too wide) in paragraph at lines 65--65 +[] \OT1/cmtt/m/n/10.95 ***** These pin numbers will probably not work with your + hardware *****[] + [] + +[2 <../pics/DSCN2964.JPG>] +Overfull \hbox (94.43921pt too wide) in paragraph at lines 77--77 +[]\OT1/cmtt/m/n/10.95 http://dangerousprototypes.com/docs/Xilinx_CPLDs:_XC9500_ +vs_CoolRunner-II[] + [] + + +Overfull \hbox (353.13016pt too wide) in paragraph at lines 77--77 +[]\OT1/cmtt/m/n/10.95 https://www.eevblog.com/forum/fpga/what-are-cplds-do-they +-still-play-a-role-how-to-program-them/msg3084581/#msg3084581[] + [] + + +Overfull \hbox (100.1879pt too wide) in paragraph at lines 77--77 +[]\OT1/cmtt/m/n/10.95 https://www.seeedstudio.com/XC9572XL-CPLD-development-boa +rd-v1b-p-799.html[] + [] + +[3] +<../pics/DSCN2958.JPG, id=20, 1003.75pt x 752.8125pt> +File: ../pics/DSCN2958.JPG Graphic file (type jpg) + +Package pdftex.def Info: ../pics/DSCN2958.JPG used on input line 105. +(pdftex.def) Requested size: 200.74644pt x 150.55983pt. + [4 <../pics/DSCN2958.JPG>] [5] +Overfull \hbox (13.65749pt too wide) in paragraph at lines 146--147 +\OT1/cmr/m/n/10.95 Reference: http://maxembedded.com/2011/06/port-operations-in +-avr/ + [] + +[6] +Overfull \hbox (19.70627pt too wide) in paragraph at lines 189--189 +[]\OT1/cmtt/m/n/10.95 //https://playground.arduino.cc/Main/LedControl/#Seg7Cont +rol[] + [] + +[7] +<../pics/DSCN0170.JPG, id=34, 1003.75pt x 752.8125pt> +File: ../pics/DSCN0170.JPG Graphic file (type jpg) + +Package pdftex.def Info: ../pics/DSCN0170.JPG used on input line 192. +(pdftex.def) Requested size: 301.12732pt x 225.84549pt. + + +Package caption Warning: \captionsetup{type*=...} or \captionof +(caption) outside box or environment on input line 193. +See the caption package documentation for explanation. + +LaTeX Font Info: Try loading font information for OMS+cmr on input line 200. + +(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 200. + [8 <../pics/DSCN0170.JPG>] +Underfull \hbox (badness 10000) in paragraph at lines 214--215 +[]\OT1/cmr/m/n/10.95 https://shepherdingelectrons.blogspot.com/2020/07/uart- + [] + +[9] (./23.aux) ) +Here is how much of TeX's memory you used: + 3545 strings out of 494561 + 53978 string characters out of 6177454 + 123288 words of memory out of 5000000 + 7181 multiletter control sequences out of 15000+600000 + 8977 words of font info for 32 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,39p,694b,291s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on 23.pdf (9 pages, 756682 bytes). +PDF statistics: + 69 PDF objects out of 1000 (max. 8388607) + 46 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 16 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/60hz_Divider/docs/23.pdf b/60hz_Divider/docs/23.pdf new file mode 100644 index 0000000..039892b Binary files /dev/null and b/60hz_Divider/docs/23.pdf differ diff --git a/60hz_Divider/docs/23.tex b/60hz_Divider/docs/23.tex new file mode 100644 index 0000000..a628444 --- /dev/null +++ b/60hz_Divider/docs/23.tex @@ -0,0 +1,221 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +%\maketitle + +\tableofcontents +\textcolor{green!60!blue!70}{ + \section{60Hz Divider}} + + +\subsection{Overview} +Let's count. There is a schematic in Practical Electronics For Beginners 4th edition. I've built that up, and will add some CPLD counter logic, along with a micro to output the SPI to a 7seg counter module. + +The goal is relative accuracy. Not absolute. No GPS here. I'm going from 60 to 6,000 cycles.\footnote{Due to limitations of CPLD} This is just meant to be fun. +\begin{center} +\includegraphics[scale=0.15]{../pics/DSCN2964.JPG} +\captionof{figure}{60 Hz Logic Divider to 1Hz} +\end{center} + + +\subsection{Initial Notes: Counting the Hz} +pseudo code goal: +\begin{verbatim} +Using 1Hz signal +Start counting 1MHz every 1Hz +when next cycle is received, + display count + start counting again +\end{verbatim} +That's all the objective is here. Easy with a micro, but goal is to complete using cmos or 74 logic. + + 4553 x 5 + 74hct132 + 1MHz clock (or 6MHz clock), or some variation thereof + jk flip flop + 74376 - quad jk flip flop + 7476 - jk flip flop +1mhz clk will be main counter, +6 hz or 1 hz will be latch / reset + +I ended up skipping the 74 CMOS, in favor of a CPLD. Practical Electronics also mentions this approach as favored. Even a micro alone could be used. Schematic entry in the CPLD could also be used. + +\subsection{MAX7219 8 digit 7 LED segment Display Driver} +Basic code tested with this was the LedControl arduino library. + +\begin{verbatim} +/* + Now we need a LedControl to work with. + ***** These pin numbers will probably not work with your hardware ***** + pin 12 is connected to the DataIn + pin 11 is connected to the CLK + pin 10 is connected to LOAD + We have only a single MAX72XX. + */ +\end{verbatim} +Some of the lines have to be edited to allow for all digits to be read, and +also to lower intensity of display. I think also a component package (dark +grey clear plastic bag) in front of the leds with intensity 1 is about right. + +\subsection{CPLDs} +\begin{verbatim} +http://dangerousprototypes.com/docs/Xilinx_CPLDs:_XC9500_vs_CoolRunner-II +https://www.eevblog.com/forum/fpga/what-are-cplds-do-they-still-play-a-role-how-to-program-them/msg3084581/#msg3084581 + +https://www.seeedstudio.com/XC9572XL-CPLD-development-board-v1b-p-799.html + +\end{verbatim} + +Dangerous prototypes has a few + +Including the xc2, the xc95, and the coolrunner. + +I wanted xc95, so they have one for \$12. not bad. + +Looks like bus pirate can program... But I ended up using a Xilinx USB Platform Cable. +\subsubsection{Programming} + + +Using the XC9500XL series. This chip has some limitations - which are good. + +As you get faster clocks, you need bigger registers to handle parsing the clocks. Bigger registers, use more power. Maybe this is one reason why high clock speeds mean more power. + +\subsubsection{6KHz clock} +Due to limitations on the XC9500XL FPGA logic blocks, I ended up limiting the counter registers to 12+1 bits\footnote{Possibly I could use multiple smaller registers in a type of cascade, but let's not bother with that for now. I had 600KHz resolution, until I added the UART out/}, so I have around 6,000 (assuming 60Hz), resolution. With this, I need a 6KHz clock. I could do this with the uno, but let's throw an attiny in there because it's a good tool for this kind of purpose and resolution. It should be able to function as a rough 6KHz timer, easily. + +\subsubsection{UART output} +I set the CPLD to use the rising edge of the 6KHz clock and to shift the counter value out... Unsuprisingly, the baud rate is 6000. I found this by using my Open Bench Logic Sniffer\footnote{Phantom 3 in Repairs 2019}. It's fairly quick to configure and get working. Auto detected the UART speed easy. + +However, my uart value is 12 - 14 bits, and with uart being an 8 bit protocol, it makes this unconventional. May need to bit bang something. But before that... + + +\subsection{Divide by N Counters} + +\begin{center} +\includegraphics[scale=0.2]{../pics/DSCN2958.JPG} +\captionof{figure}{This divide by 6 counter, appears to not line up with what the TTL Cookbook has for a similar 7490 one.} +\end{center} + +The schematics appear to be incorrect for the divide by 6 counter in the Practical Electronics for Beginners book. Having looked at my built up circuit carefully, I see a 20Hz output from the 60Hz. I managed to get my hands on a copy of the TTL Cookbook by Don Lancaster recently, and that details correct divide by 6 and 10 counters (which are different from what's on my proto board), and while I could fix the divide by 6 counter, instead, I'm going to build another divide by 2 counter, and leave the original incorrect one there as a warning (it's also easier to just build a new one). + +As it is, I'm getting 2Hz output on the pulse pin... Oops. Practical Untested Electronics for Beginners. Hax. Everything in life is hax. The earlier you realize that, the better you will feel about your own work.\footnote{It's possible they put the error in on purpose. It's really hard to tell...} + + +\subsection{Attiny 6KHz Clock} +A small victory here: I setup an Attiny10 with an external oscillator (programmable CMOS, not Quartz) of 1.536MHz. I then set prescaler at 256 to get +6000. Set micro fuse to enable CKOUT pin, and now I have a 6KHz clock from the 20 cent micro plus. Neat usage of the attiny10 here, thanks +to my other project using it. The CPLD works with it, no problem. + +\subsection{Parsing of CPLD UART Stream} +Back to the 14 bit stream... + +I have the UART stream feeding into the Atmega328/Uno. For the code, I was unsure how to handle it at first, but then I realized a simple shift in would fit. + +\textbf{Situation:} I have a serial UART stream at 6000 baud from the CPLD. However, it's not exactly UART. In fact, it has values of 6000, which are over 8 bit. So I have a 14 bit serial stream. There is no stop bit after the 8 bits, and no two 8 bit bytes. So hardware serial will not work. \footnote{I didn't want to deal with coding the UART into the CPLD. There are also size limitations.} + +\textbf{Solution:} I have a serial 14 bit stream at 6000 baud. The answer is to tie the 6000 Hz CLK to a pin on the Uno, and implement a shift in, so that every clock up, the value is read on the Serial / 14 bit pin. I do have a start bit, and I am not outputting all the time, so this will be one 14 bit value every second. + +\textbf{Problems:} The Uno's digitalRead timing is not 100\% As a result, some values are being read incorrectly. 5996 shows up as 5048 or similar. I need to go back and access the Input direct via register reads to speed things up. A Pin register access similar to: + +\begin{verbatim} +Example Code Snippet + +Let's demonstrate the use of the DDRx, +PORTx and PINx registers from the + following code snippet: + +DDRC = 0x0F; +PORTC = 0x0C; + +// lets assume a 4V supply comes to PORTC.6 and Vcc = 5V +if (PINC == 0b01000000) + PORTC = 0x0B; +else + PORTC = 0x00; +\end{verbatim} +Reference: http://maxembedded.com/2011/06/port-operations-in-avr/ + + +may fix these issues. In the meantime, because the errors are consistent, I setup some LUTs\footnote{Lookup tables, i.e. hard coded fixes. e.g. 5048 now converts to 5996.}. +\subsection{Max7219 8 digit 7-Segment Display via Uno} +I didn't have any trouble getting the 7 segment to display with the Uno and the Max7219. Note that I avoided outputting the values via the CPLD. The Uno is just quicker to code this output. I used the LedControl library. I had to adopt a quick function to break down the values. The Max7219 does not take in variables, so instead, you feed it single digits. Therefore I needed to extract a single digit from the tens, hundreds, and thousands. See below: + +\begin{verbatim} +//https://playground.arduino.cc/Main/LedControl/#Seg7Control +void printNumber(int v) { + int ones; + int tens; + int hundreds; + int thousands; + boolean negative; + + if(v < -9999 || v > 9999) + return; + if(v<0) { + negative=true; + v=v*-1; + } + ones=v%10; + v=v/10; + tens=v%10; + v=v/10; + hundreds=v%10; + v=v/10; + thousands=v; + /*if(negative) { + //print character '-' in the leftmost column + lc.setChar(0,4,'-',false); + } + else { + //print a blank in the sign column + lc.setChar(0,4,' ',false); + }*/ + //Now print the number digit by digit + lc.setDigit(0,3,(byte)thousands,false); + lc.setDigit(0,2,(byte)hundreds,false); + lc.setDigit(0,1,(byte)tens,false); + lc.setDigit(0,0,(byte)ones,false); +} +\end{verbatim} +Note that I commented out the negative sign on this. My values are always positive. + +\includegraphics[scale=0.30]{../pics/DSCN0170.JPG} +\captionof{figure}{Rev A. 60Hz to 4 digits, is updated once per second.} + + +\subsection{Project Rev A Complete} +With the above complete, I have an initial prototype. The issues with this are the following: + +\begin{itemize} +\item Uno reads 14 bit serial stream wrong (timing issues) +\item 7 segment display slightly bright + \item Should add readout of 120 Volts (can get from transformer) + \item Plywood should be replaced with fiberglass +\end{itemize} + +It turns out that 4 digits on the display is the minimum for a project like this to be viable. 3 digits wouldn't be enough resolution, and 5 digits is not necessary (although nice). The values differ here from about 5996 to 6003 cycles per second. + +Other than that, it is working, and will be setup and watched for a bit to enjoy the readout. + + +\subsection{Related:} + +\begin{itemize} +\item https://shepherdingelectrons.blogspot.com/2020/07/uart-transceiver-for-breadboard-computer.html +\end{itemize} +This guide shows a UART created in TTL 74 logic. What's relevant to this project, is how he managed syncing the clocks. + +%todo insert picture + +\end{document} + diff --git a/60hz_Divider/docs/23.tex~ b/60hz_Divider/docs/23.tex~ new file mode 100644 index 0000000..f256250 --- /dev/null +++ b/60hz_Divider/docs/23.tex~ @@ -0,0 +1,221 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +%\maketitle + +\tableofcontents +\textcolor{green!60!blue!70}{ + \section{60Hz Divider}} + + +\subsection{Overview} +Let's count. There is a schematic in Practical Electronics For Beginners 4th edition. I've built that up, and will add some CPLD counter logic, along with a micro to output the SPI to a 7seg counter module. + +The goal is relative accuracy. Not absolute. No GPS here. I'm going from 60 to 6,000 cycles.\footnote{Due to limitations of CPLD} This is just meant to be fun. +\begin{center} +\includegraphics[scale=0.15]{../pics/DSCN2964.JPG} +\captionof{figure}{60 Hz Logic Divider to 1Hz} +\end{center} + + +\subsection{Initial Notes: Counting the Hz} +pseudo code goal: +\begin{verbatim} +Using 1Hz signal +Start counting 1MHz every 1Hz +when next cycle is received, + display count + start counting again +\end{verbatim} +That's all the objective is here. Easy with a micro, but goal is to complete using cmos or 74 logic. + + 4553 x 5 + 74hct132 + 1MHz clock (or 6MHz clock), or some variation thereof + jk flip flop + 74376 - quad jk flip flop + 7476 - jk flip flop +1mhz clk will be main counter, +6 hz or 1 hz will be latch / reset + +I ended up skipping the 74 CMOS, in favor of a CPLD. Practical Electronics also mentions this approach as favored. Even a micro alone could be used. Schematic entry in the CPLD could also be used. + +\subsection{MAX7219 8 digit 7 LED segment Display Driver} +Basic code tested with this was the LedControl arduino library. + +\begin{verbatim} +/* + Now we need a LedControl to work with. + ***** These pin numbers will probably not work with your hardware ***** + pin 12 is connected to the DataIn + pin 11 is connected to the CLK + pin 10 is connected to LOAD + We have only a single MAX72XX. + */ +\end{verbatim} +Some of the lines have to be edited to allow for all digits to be read, and +also to lower intensity of display. I think also a component package (dark +grey clear plastic bag) in front of the leds with intensity 1 is about right. + +\subsection{CPLDs} +\begin{verbatim} +http://dangerousprototypes.com/docs/Xilinx_CPLDs:_XC9500_vs_CoolRunner-II +https://www.eevblog.com/forum/fpga/what-are-cplds-do-they-still-play-a-role-how-to-program-them/msg3084581/#msg3084581 + +https://www.seeedstudio.com/XC9572XL-CPLD-development-board-v1b-p-799.html + +\end{verbatim} + +dangerous prototypes has a few + +including the xc2, the xc95, and the coolrunner. + +i wanted xc95, so they have one for \$12. not bad. + +looks like bus pirate can program... But I ended up using a Xilinx USB Platform Cable. +\subsection{CPLD Programming} + + +Using the XC9500XL series. This chip has some limitations - which are good. + +As you get faster clocks, you need bigger registers to handle parsing the clocks. Bigger registers, use more power. Maybe this is one reason why high clock speeds mean more power. + +\subsubsection{6KHz clock} +Due to limitations on the XC9500XL FPGA logic blocks, I ended up limiting the counter registers to 12+1 bits\footnote{Possibly I could use multiple smaller registers in a type of cascade, but let's not bother with that for now. I had 600KHz resolution, until I added the UART out/}, so I have around 6,000 (assuming 60Hz), resolution. With this, I need a 6KHz clock. I could do this with the uno, but let's throw an attiny in there because it's a good tool for this kind of purpose and resolution. It should be able to function as a rough 6KHz timer, easily. + +\subsubsection{UART output} +I set the CPLD to use the rising edge of the 6KHz clock and to shift the counter value out... Unsuprisingly, the baud rate is 6000. I found this by using my Open Bench Logic Sniffer\footnote{Phantom 3 in Repairs 2019}. It's fairly quick to configure and get working. Auto detected the UART speed easy. + +However, my uart value is 12 - 14 bits, and with uart being an 8 bit protocol, it makes this unconventional. May need to bit bang something. But before that... + + +\subsection{Divide by N Counters} + +\begin{center} +\includegraphics[scale=0.2]{../pics/DSCN2958.JPG} +\captionof{figure}{This divide by 6 counter, appears to not line up with what the TTL Cookbook has for a similar 7490 one.} +\end{center} + +The schematics appear to be incorrect for the divide by 6 counter in the Practical Electronics for Beginners book. Having looked at my built up circuit carefully, I see a 20Hz output from the 60Hz. I managed to get my hands on a copy of the TTL Cookbook by Don Lancaster recently, and that details correct divide by 6 and 10 counters (which are different from what's on my proto board), and while I could fix the divide by 6 counter, instead, I'm going to build another divide by 2 counter, and leave the original incorrect one there as a warning (it's also easier to just build a new one). + +As it is, I'm getting 2Hz output on the pulse pin... Oops. Practical Untested Electronics for Beginners. Hax. Everything in life is hax. The earlier you realize that, the better you will feel about your own work.\footnote{It's possible they put the error in on purpose. It's really hard to tell...} + + +\subsection{Attiny 6KHz Clock} +A small victory here: I setup an Attiny10 with an external oscillator (programmable CMOS, not Quartz) of 1.536MHz. I then set prescaler at 256 to get +6000. Set micro fuse to enable CKOUT pin, and now I have a 6KHz clock from the 20 cent micro plus. Neat usage of the attiny10 here, thanks +to my other project using it. The CPLD works with it, no problem. + +\subsection{Parsing of CPLD UART Stream} +Back to the 14 bit stream... + +I have the UART stream feeding into the Atmega328/Uno. For the code, I was unsure how to handle it at first, but then I realized a simple shift in would fit. + +\textbf{Situation:} I have a serial UART stream at 6000 baud from the CPLD. However, it's not exactly UART. In fact, it has values of 6000, which are over 8 bit. So I have a 14 bit serial stream. There is no stop bit after the 8 bits, and no two 8 bit bytes. So hardware serial will not work. \footnote{I didn't want to deal with coding the UART into the CPLD. There are also size limitations.} + +\textbf{Solution:} I have a serial 14 bit stream at 6000 baud. The answer is to tie the 6000 Hz CLK to a pin on the Uno, and implement a shift in, so that every clock up, the value is read on the Serial / 14 bit pin. I do have a start bit, and I am not outputting all the time, so this will be one 14 bit value every second. + +\textbf{Problems:} The Uno's digitalRead timing is not 100\% As a result, some values are being read incorrectly. 5996 shows up as 5048 or similar. I need to go back and access the Input direct via register reads to speed things up. A Pin register access similar to: + +\begin{verbatim} +Example Code Snippet + +Let's demonstrate the use of the DDRx, +PORTx and PINx registers from the + following code snippet: + +DDRC = 0x0F; +PORTC = 0x0C; + +// lets assume a 4V supply comes to PORTC.6 and Vcc = 5V +if (PINC == 0b01000000) + PORTC = 0x0B; +else + PORTC = 0x00; +\end{verbatim} +Reference: http://maxembedded.com/2011/06/port-operations-in-avr/ + + +may fix these issues. In the meantime, because the errors are consistent, I setup some LUTs\footnote{Lookup tables, i.e. hard coded fixes. e.g. 5048 now converts to 5996.}. +\subsection{Max7219 8 digit 7-Segment Display via Uno} +I didn't have any trouble getting the 7 segment to display with the Uno and the Max7219. Note that I avoided outputting the values via the CPLD. The Uno is just quicker to code this output. I used the LedControl library. I had to adopt a quick function to break down the values. The Max7219 does not take in variables, so instead, you feed it single digits. Therefore I needed to extract a single digit from the tens, hundreds, and thousands. See below: + +\begin{verbatim} +//https://playground.arduino.cc/Main/LedControl/#Seg7Control +void printNumber(int v) { + int ones; + int tens; + int hundreds; + int thousands; + boolean negative; + + if(v < -9999 || v > 9999) + return; + if(v<0) { + negative=true; + v=v*-1; + } + ones=v%10; + v=v/10; + tens=v%10; + v=v/10; + hundreds=v%10; + v=v/10; + thousands=v; + /*if(negative) { + //print character '-' in the leftmost column + lc.setChar(0,4,'-',false); + } + else { + //print a blank in the sign column + lc.setChar(0,4,' ',false); + }*/ + //Now print the number digit by digit + lc.setDigit(0,3,(byte)thousands,false); + lc.setDigit(0,2,(byte)hundreds,false); + lc.setDigit(0,1,(byte)tens,false); + lc.setDigit(0,0,(byte)ones,false); +} +\end{verbatim} +Note that I commented out the negative sign on this. My values are always positive. + +\includegraphics[scale=0.30]{../pics/DSCN0170.JPG} +\captionof{figure}{Rev A. 60Hz to 4 digits, is updated once per second.} + + +\subsection{Project Rev A Complete} +With the above complete, I have an initial prototype. The issues with this are the following: + +\begin{itemize} +\item Uno reads 14 bit serial stream wrong (timing issues) +\item 7 segment display slightly bright + \item Should add readout of 120 Volts (can get from transformer) + \item Plywood should be replaced with fiberglass +\end{itemize} + +It turns out that 4 digits on the display is the minimum for a project like this to be viable. 3 digits wouldn't be enough resolution, and 5 digits is not necessary (although nice). The values differ here from about 5996 to 6003 cycles per second. + +Other than that, it is working, and will be setup and watched for a bit to enjoy the readout. + + +\subsection{Related:} + +\begin{itemize} +\item https://shepherdingelectrons.blogspot.com/2020/07/uart-transceiver-for-breadboard-computer.html +\end{itemize} +This guide shows a UART created in TTL 74 logic. What's relevant to this project, is how he managed syncing the clocks. + +%todo insert picture + +\end{document} + diff --git a/60hz_Divider/docs/23.toc b/60hz_Divider/docs/23.toc new file mode 100644 index 0000000..6d6aca5 --- /dev/null +++ b/60hz_Divider/docs/23.toc @@ -0,0 +1,14 @@ +\contentsline {section}{\numberline {1}60Hz Divider}{1}% +\contentsline {subsection}{\numberline {1.1}Overview}{1}% +\contentsline {subsection}{\numberline {1.2}Initial Notes: Counting the Hz}{2}% +\contentsline {subsection}{\numberline {1.3}MAX7219 8 digit 7 LED segment Display Driver}{2}% +\contentsline {subsection}{\numberline {1.4}CPLDs}{3}% +\contentsline {subsubsection}{\numberline {1.4.1}Programming}{3}% +\contentsline {subsubsection}{\numberline {1.4.2}6KHz clock}{4}% +\contentsline {subsubsection}{\numberline {1.4.3}UART output}{4}% +\contentsline {subsection}{\numberline {1.5}Divide by N Counters}{4}% +\contentsline {subsection}{\numberline {1.6}Attiny 6KHz Clock}{5}% +\contentsline {subsection}{\numberline {1.7}Parsing of CPLD UART Stream}{5}% +\contentsline {subsection}{\numberline {1.8}Max7219 8 digit 7-Segment Display via Uno}{7}% +\contentsline {subsection}{\numberline {1.9}Project Rev A Complete}{8}% +\contentsline {subsection}{\numberline {1.10}Related:}{9}% diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ds054.pdf b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ds054.pdf new file mode 100644 index 0000000..896ea5b --- /dev/null +++ b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ds054.pdf @@ -0,0 +1,4536 @@ +%PDF-1.4 %âãÏÓ +775 0 obj +<> +endobj +847 0 obj +<>stream + + + + + application/pdf + + + Xilinx DS054 XC9500XL High-Performance CPLD Family Data Sheet + XC9500XL, XC9500, CPLD, DS054, Macrocell, Programmable Logic, Xilinx, ISP + + + + + Xilinx DS054 XC9500XL High-Performance CPLD Family Data Sheet + + + 2013-03-12T04:24:38.294-07:00 + + + Xilinx, Inc. + + + + + Xilinx DS054 XC9500XL High-Performance CPLD Family Data Sheet, Data Sheet + + + + + 2009-05-22T05:05:02-07:00 + 1996-05-01T03:51:52-07:00 + FrameMaker 7.2 + + + /content/dam/xilinx/support/documentation/data_sheets/ds054.pdf/_jcr_content/renditions/original + + + products:device/cpld/xc9500 + support:document-class/document-type/data-sheets + products:device/cpld + products:device/cpld/xc9500xl + support:product-type/silicon-devices + + + + + 2013-03-05T23:42:34.58-08:00 + c92465195e7c21993702152cb7ee51c87686dcfb + Acrobat Distiller 7.0.5 (Windows) + Xilinx, Inc. + + + "XC9500XL, XC9500, CPLD, DS054, Macrocell, Programmable Logic, Xilinx, ISP" + Acrobat Distiller 7.0.5 (Windows) + + + uuid:daaad63e-a64f-49bf-982b-27ccdf75ef84 + uuid:791657e3-1640-4d2c-b47c-c1d31c460a89 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream +endobj +778 0 obj +<> +endobj +821 0 obj +<> +endobj +764 0 obj +<> +endobj +766 0 obj +<> +endobj +776 0 obj +[777 0 R] +endobj +777 0 obj +<>>> +endobj +781 0 obj +<> +endobj +782 0 obj +<> +endobj +779 0 obj +<> +endobj +783 0 obj +<> +endobj +171 0 obj +<> +endobj +784 0 obj +<> +endobj +157 0 obj +<> +endobj +785 0 obj +<> +endobj +148 0 obj +<> +endobj +786 0 obj +<> +endobj +137 0 obj +<> +endobj +787 0 obj +<> +endobj +120 0 obj +<> +endobj +788 0 obj +<> +endobj +109 0 obj +<> +endobj +789 0 obj +<> +endobj +98 0 obj +<> +endobj +790 0 obj +<> +endobj +89 0 obj +<> +endobj +791 0 obj +<> +endobj +80 0 obj +<> +endobj +792 0 obj +<> +endobj +71 0 obj +<> +endobj +793 0 obj +<> +endobj +62 0 obj +<> +endobj +794 0 obj +<> +endobj +50 0 obj +<> +endobj +795 0 obj +<> +endobj +40 0 obj +<> +endobj +796 0 obj +<> +endobj +31 0 obj +<> +endobj +797 0 obj +<> +endobj +17 0 obj +<> +endobj +798 0 obj +<> +endobj +7 0 obj +<> +endobj +12 0 obj +<>stream +H‰¬W]sÛÆ}ç¯ØG²ÑÜrÉÇÄvÒd’©{­éõLÓ™¢%¶ÔGEÉŠÿT~ã=–2e7w¦“qȱX ]|¸ÕjÑGï¦ÑÅ{£´š>DUZ*Ã?~±ºJ‹Rù¤¶PÓU”©E”¥YæÔ´Ž&üV©é1ú=¾»¬’<-ã<Ëøy÷YýÜ&.­âÅr‰okR7 ö™x÷ é&)Ò"Þ­fëš÷5êòæ3Ë®’‰Ávõ>1Ë™ì[µ6ÆO²RW3Þµ—‡J&E|»äíM³Oþ˜~Š®§ð87–£Ú-"›§pßçp­T¢Ì2ÄN‹]=Dˆ3|Ë}}B²èsA{4}V¦L±™?ruH¢dPAØ2Ç ÓåŽÞ(¥”º«Û,wÉ$‡Ó +®ûøkühÒük¢¾Ìë³'eŒ(¼Q æ׊ã“4Åe´ÁbzÛ=IØãô[ÛµkÚ•ÇßÒz³c´õlßnÖ|ö)Uy•:Wø“ßµ8Ûdúç®ÎÙÞœ|úÑÅù¼R¹W:éÅõ꾙ϛùÕ¦>¬šõ^]|¹´êÝÕ%‡vñáÖPw¸4+µjUTPjŒò^#[¥ZE(“·é š²T]”ÛÔ™r,¨R‹” [º—6:¸‘ç©+œˆ*³ƒÎ³•2Í‘¢×ç„-ÝKdÊ"¥MV;$£¨ +ä¶M%ñUj¬9ià`—jíO‚î$xvMf« ´7$Œ¾ F"JÉ‹‘kÞdå™kóuyG×5‘ûúïOjyBY2±: È!$º‹¼C®ÜXP¥º -HæG‚S %€„{)8åÛ—©5z,@Qx2Z¦þ\pÒ8÷”¶€Ça¥+Ĉª.×.BÙšœ®¬HsMÔ»1°®IL ®2Ö@Á® ²Ôç’ÿ̱=“lPÍ +E¥åÐr0qrª{é%9þ+îÚ¾ò™áVDi8Tò¢&$ø€¿OXü‰¾Ì|©ŽÊ©/ê÷?25ŒNDî¸TzŠ¢HË’jÄá‹ñŒ»9­s´.%†vdì£O6"ЕDunâÝ¿àežãLJpbENYrg;>3§”V¢Á•D^Y/‚*äºtzÊ9o!¯J„ºl”†. ÔÛY©”*sã‚<7Aw#•)F¨1茭d¦z}Ì #^˜èïMêµóœ3“–¦´ªÊRÍÕÊ("@üŸÏ?jÔÿë*4À`|•äR9˜´È(¶Ê `–¥£‚²©ED§¥K-n®ŽN‚mëÕiw4C8ƒuYBP¥Ëçï@%kŸwË“õANvßÎ}¯£>ºþr‰2ø•Ê+º¥e–QŠøʪ(QF4bÇÓÉCyµ€Lµ G4ãgàZÄŽÀƒtÜ%š¸ÕËÔ/Í.™ œãǶI´ç3øçƒ 1Žéž œE›Àö¦Ë„xIrFÈÈ&LÜï±Æ‘Ÿeùöög^˜³n–Ý}ææç™ÐÑ +|î‰h¼n{5S–¥)q¿<–ÅoIF(©p‚X«é§œ‰ÿ‚ãPZ4üÂ4bN—"#¬ç—?Qé‰RNÀâÌÑp£Pp°!¸"œ`Ÿpº1æ ·nP;Ƹ#¥£ø,ÅÀgÿ•pFkÙÕ%TÄ›¾Á89R!{†ï—\€då[ýïèôT©,*Ú’Ðu44¦tüù>¥<Ôýív&[p³õ÷ÉÝgB*ù»K—ÑÀSïo>¼U§¥8©JiÛô4¡-ªŽ E‡Bçš#<<ë8™¾Ô F‡" *Êá¡Ì?$ÛÆRq.T& jŒä½å(óÝž6¹âìµ{.Aì¥8ºÍ¢­•¶¢Ô¯àô“º0þ|L< ùÀ–Î~¿'Q»> A\=Ú‡Ê/ñóq(Ë=3¡ÞÌ×í®>pG¡²Áy¤s´ ~ÌùѬû ÌŒ#^i“4Ò/ÐÁz§¶‡ &¨@óó +õ¥8/)Ûa3oûªÚ‚D³×ýrÀ®*L“uÂØÁpVNˆc‰‰@´ÈCÃà/™er ƒ9åMö³ˆ¬ ß [‰¯±;nÀê7 ±‡4‹é†ç2ÞCrJJ0ÿAôD´¤¤X¾SÏmžgüšIÅÓ¦žÂ$j$_^ãÈ—p²í Ùô‹øˆAÅN1K¸“hœ0;ë— !ÿ™PS“?¯;ƒ¦º×ú´WM“Û6½ëWà(Ued⃠™›íØ)g+»ÙòTöìA¦8Ť8¥xýï÷u7B’“umÕÌEƒ&ÐhݯßËkC¡8l,#Åábi”Kó¥áC.®%åYÛ  ¢t©¢t©‚tiɪYwP?rUyÃ>"„™Ê†{k†sD6©Í1è©A‚Ö§=€tà®eÑÓ†™-€ƒ0éð”ÒšZØ73"m‚Q¾|Ú "îÚT·™>‡›óÚ² +÷0 ƒèB Ñ$ +h‚Ö«M+ŽâjšÔ °y°É!Ç3û›IåÂøý±í0qÌ!Æ,þ £÷ÌÉQ„£l•Í—}b_Xb¸W\ü +y=–Yö0íAŽ§ÐâJ¡Ú°89!š„e•Y,ìÊ…ætOhå è:ÐhIÉ'Jùß>î´ò{0Ð'µQºŸ¬ÈJòœ•Ò\·j³¥RLé&júäć!å÷ó>|"owó¡òtÕ>Ê71ºÃ‰eXÞø€ú¼›>ËTð° Æ3âÿ䀓 ›R˸ãÚÙŒîsQ@3‘4[5ÄM×+Ãbèð¸9´ }OبÛ•nø!‰m—R þ®c¢Qý‰'Gý'/`èÊþX1ÿ÷Û)°ÍvœN‰z~7Ç-Ïǵñ‚OÂ+W9ïä¹kõŽ®#¸¡›àT¤ÛÐôBµ0h0ÛË–/Ù”>–À÷·£>ã—ür%µ\GþvÞñÏãxæßÓ夎„ô Îßʪa¤ã¶Rp›ÅÇ_Hh~-v'•ãP»à¼Vþ‘ôÜä§rAg5&°p/L®%BÃZ’Ø]Žf¦+¡rô’‘Ù/¸oÇ«Û3ÿr iÚmàûf)ÓÔå÷gøžuÊA¶Oûʶ@®ì·ü¥ƒJhÖB0°ÑGÇŠç?DµDØÖu_êéPdeä0©²Úñð mû/ϱªCë¥V ¸e +ñü€ƒzÈšs×S-«3Ѻ¯dî˜0ØHÞü'cîÖw:´mâL[FŽÍ3P7> dšÁÉt +¬X~÷£$…šÎO’:#1bhSÀ·ÁpØÅì"‡ÄÄi¸Uƒäã1dRøí÷Àc¹mî¸áFÊÑÃ_¦ëEYI#:< I©~ÿ@O%¢¯áœøi„s¥iÓÈâ—[&_%o‰Ô#X"Þ‚;¶ 2J;¹¼:Ì>±š9eæ$ˆ(ª§íÏ[¶21ÃïYÊ’§³üª ]Ý@$ÑP†D„5NïRëˆPŒGõ_FxSÆ[Òe€IR«ç©;Þ rÜÑöÍrÃnèuÅ>w”'wEÜujÇmà¸"66ž|mtt¤Q=vý^{nÃ[ß.uC€öàÿZ4Ä|u6€ËAÒi?ut-Žk—ôFÒ£}L0µD 9*Iu”;¤&£öÂ=Úq<Û„¤gµ@Ç®YÉ +.ÓLÑ^Uþ¼ÒàÄnù²²¿M–ŒÉÄ +02«òJ¬R/H9K”’%?´‰P³[aþOü+‰tµD‰˜å€Æ×°äýÐɺVæ3P!%wgçVÂØA¾$¹+‘Y˜Â‚¨ÄußÑ­Ëàçrp<Ê•ó)}<å‹·V®?,î굯\¥€°¶©|JŸ¹dCÕ½l›9Sb4rÿ4Pú[¥‚_#~q£ºÖs>Š¼d‘– cÙ*ö©]sár¢ DÃ8±ÜâY'@¶pLÙH‡àJ‹€³ÔüeùwQƒòñ[ðÛ¿eïçC+D‚C3æÆ<ŒY³¹åG5žeÞ;=çÒ4(YõërU?‡í¾Ý\ì¼i„î硇äi®k¿$ºé×Õ*d¨,#nCmS$' ‘´òoÂÒ®fiŽws Z÷qR[0Í2ÕµÒµTÞ7÷Pw»…‡æ3Ê\ +£\ uÊÖv퀋‡Å‹7PHÛm·ýnlÏDBÕ‹_;õê»×‹‚µ¡VÃ?à¿ßzú¤œúQýòïBm/¾oÔnZ}¯®˜!K<à¥2µ¦‚–EíEK9(0Xl…¾ežg|²ôÉOiÁÂ}î'ZúÅûÞÇ4ß•À8 ­ÌÇôhèqЯ˜}ðiôœÇÅyô/xÁMQO¦FR7•Üú$®cakÈ[§©ÃW,¾]3å²åš”/ÀÙ úêÈ…·É€ÆCŒÁ¬ÐÒ˜Ô$ÔE»˜-È&WªäD—A*Ä=˜V UŠ|š)föÇóÁ’¢R”—çhéÒšf]¢®KÜ‘sœàP'ƒ)P¥•Å¸Z[­³qÍ·Ø.f Ä¥â DKr¤¸ŞhµÉfTˆ['ó8n1[$ˆä!y}Š‹“ᦩÎ' †7žÆ@øÍcl‹nœÌ"0S¥“9î|SfçŠßCÐaõ<Žþg‹D„¯pq,hÍ|¬`HA—L-Ú–&?ú£Óe:–EØU¾«Œ³ƒ¥!îà`Ç-f‹‘<„ ¯Oqq20§]v²`Hqè pc[§ó“iV¸t2ƒ¸½Ïv•qv²4#ÄÌã¸Ål‘ ’‡äõ)èd‚I;ÍŠÑú†¯qXhtífK?[€†(² ›°óÜR14Û +õ][¶\zîðÔ¬«¦ÊwÃ:_VùnÑ2ûƪ­)· ;zλ]y–Ý@uj` Ú†·5ïÔu³¥Ÿ-h{Þ5ì «}a¤)_Cã˜7ÕT¸s_ƒqã-^F -ýlÁûXHW¹È +/–[À4úac×µ©âœ:÷3- šú +­ Í p©i€«-²!GqŠ¨;18‰úfJðÒsZà„È‹gÚ‘£É–x^_W>–<㤠òœÎ§ñÛ³¥Ð>Íé³9n]ó”+7û³¹–ûnh¾»À{ |X6àQpæ>›‚â³bÁ®L_š#n8êçr=-,0º N¢K¦†Ù?,%g ‰qiNŸÍoz´k7õï5V “éhãñF+æ_êð|€QRšRóõ€Ì^Çþ­‰h1 %H©,ŠëvÍ#ÞÜÁq™Ù (Neg?P\×™›Û%Ó⟨Ÿ’ XhéäL·F¯ÃøÐäžÀÜ7nMF°ÉS +"›¯î!{œÈ\…s– `ø×V'œ©ÅõîPDR±¤·–ïwï?O§nP?ÇÝq3 ûÃN½§ãØ÷Ýquÿ›Hª÷ªÀÁ@±=|6\ð†î¼J$eiˆÎ¹6†øvÍDßj@òG´ +5h(Ðå÷/¿§ MêºnHÎiŽ9·¼ ’Y(xÙÐÅ€?8µÉâ)‰1¬5ºmxçË%::fŸkñ@á½{ñ]/yt¯ú±ý8ÑW$ª1Hèµ²Bg¥¯oIeîÇ}'nRß®U:¸®\ãési,ëØå›ö8¶]ßO²¼öaµ|Öê4*]ÇÀð‘¸Lù?Ö6µ¶úצ_¿Yˆ"Ò:È‹o +üVë]ƒJ­°21ýo_ ¸ã›†Ú!Þ¿†!æ’úi<žÂ.–²µäÀ¸ó[KÉ€ýðÖ†“€Â¦}6£\— £Î¥“¼=>ÿ)Á±u£ù“E¹ ©Ö¢…¥¨\¥³pƒâá€Òp¢Ád ÿó«Ôèt¸sâ®$ñm¸Crôd1LjXq­YüÕ%·Î +È i*3úyĪgä>.Æ3xŸ’å¿´W»Žd¹ Íç+*^`ÊzP¯Ô^ØîÉ7x`õ;À¶ýÿ>”D‘÷–zÜAߨûž¢HêH"êoñÕøMw)ÇT#÷@VÌÉʽ‰Ìa ;Î¥sþëR™^^>Et?l˜ª˜8–šÇ2‚êmšà°Ô'DͳÉôrhl×xíWÀœÀDðÝ3KêÐg˜çªaR¡;¸-í,†“þø®q¬½˜÷Ṟ`Ž%aȈÅÚ’gQG†“e³xKÌ×Íæd®‹ñڱ䓙Ayx4¦ÚÈÊñ{ƒÞØè|{ïuDüS¿‘rD˜#¢G }—eæLôáš$L4-÷â&6§Íôá%ol¦{D×Åx톀Ämس`âežnÕ!ÍeÝݼ ÊðbÜ™ /½ \ãX»~ñG訾˜HêlcÒM/‘(uõ½7´,›E]ò¥g´±ÙÏu1ô&⧌G¥›]?7jLUä.Ñêïnð1ô‘Ô›b¬à‹A@ôbÅ6ÉCv¶vHLl4y´È\ëÎfGÐe1” ÈïºY‚Y½ óÌ€í3„]í¢•@I… ƒüL]á‰I¢û…¬H  +ž-¦“ÃôqM€µÍþSáÅéÞ‰\¤ë’€î.¥‚GÔÝÌŒç3†I„ˆE°5ÖWh˱Ô{(?šñݳ‹î µµÆ1ã©zÁî ùb²Lu̇‡*õ´€ÇÈAïuåç1¥6$cTvÄŠ8øTsG~Ÿþ G Ͼ˜P<¦¦bBMÀ8ÆšêÂAÎÁ†:úµ§! + ¶Í7«Ð&²£nÈ¥ºÇ.íT£ÝÔZ|?”Ü :ܾÿ~£=ÛÄÃn»1|£FÕ–,ß|jŠ†á[ý(á&š¬ÑQßB¹Aå&ÚÉó†s6.]ü ç‚ Î|Ä€›_,1|ÀvžÅ‡A&±tøxò|àC£Éî5š ê[ø0ÈäC£<ïø€q¡dù˜ÈŽÔž³åc"†ÈÑQ™|@W•â-ËáC£Éî5š ê[ø0ÈäC£<ïø€ÀC²|LdÇChÁò1ÃGEÓqÑòaÉtKiÅò±ü>4šì^£ ¢¾…ƒL>4ÚÉóŽêï>Z:°c£qÞ²1e#¹Œîj«µEÉ…»O¶Z«ÆF“½k´‰ß“ ‹ 6L´“ç lLÕVlAޮ˜f´^¯1•^…=àÏЛ.” +ñèóåçÕ Ý-@¿¢­ìËO?h” Cf#Û)1äPžš%ß “üœïx†|õ£ä›hBµFD} ù™äk´“çù0.µXò'²¹Œ©F\{[º1|4H¼Cé¶Èä*²úhùX~ Mv¯ÑQ߇A&íäyÇ$¯§lù˜È†ìP¢-U‚(‚/’-U|dŒ²¬ÚOž-&Úܽ‰&ˆúž|Xdða¢0.øCéV?†&»×h‚¨oáà “vò¼ãÆÉ–î lÄ%y4M—¸d•Uã;t|e-Y?ËÚgžf1sõWÙsEôäŠãtý€1u¢OµèÂâW™_¿ÿc³äµª.b œVéÃk¾sµ¤‹!žý"f-¤©ßþ^Ps¿~R$B§³Åôéš1æ7¯@&ÎZ„;ÎÁxo!ˆd1=¬,ûøŠÙОpÍP “Ç\Usç‰ d\HN{žqÓãàé¼ä•îáü—'0ïP["“ü8ß_\¢_œÿÅQpίcë÷…°ãR¸J»{|·ÀÜÝ{îÓ¿}a¸«Vâƒkcöçÿþöõ?ÿúþ[ïyÐmõö7œ0ò¥ùããû×ßÂÌ!â†x”ËD¸ò%ZDML+ÕžÖãOI‰œ6cCw*ü˜Î~ ÇB¼Áëbà²Bwñ™g¼œÂ¦øg—CB ®Ã²y›Œ[Ï®On8û«<¯’B¨ +ÔÆjødZ¸/Õ¸>÷ˆ»€7aòˆ¸×ž‰YyD¼.×›¹QÉãìçp@—ÅX›(­e³Ùá’*m7Ûë–·‰¨)}ºDÄæal*~±‰¨Íóf?>ÆÓfù'î9ºYA›ubùˆãjRl"ÓÆ$‚.»ª9ûÙnöÃc6+u‰ÊGJî1ù(ˆˆCJ,s¼ù† 'oä#ÆXø¿©TO̱b|«zT‹¡ —ùÔ‚Hâ@r<î‚Åc€ ¯õ­u± }wž@{hßàOU¿ã” Šp‹d ñ€ScŒo^óJÖ¿dãA¾5† ’…x,ûè{ãâRÃUW!ª‚Ã+ñ ŽµIÃ7£Ýé7žP⨠ÈwœÀZŽIƒ˜úß_?ùƯsõ(AlÏåú9Ý+0â¯å’Þ1ÿ.ö{¯Æé{ÂSâ9 ¯›Pê'àž÷)œ‰ËÕ|Cì·Úƒ +ŠéKð0™oa|cEEá d,^Y5ä{ÅXÈÌbyI7ñ4ÄPD5(f†™€aÈŽ0kÁë3Ïž¥¶¡ëxæå™"Ñ~héQ]3C 5îþùCË\ëß=´È¼Ë\Dǃ1õJ…^’¶‹ç»^}+¸ìŽ…\ª4‡Ý‰ghxt1ž3¦LWéžYùÞM€0Áž}=y&ÈݼñÌ3CmížsÀ]àö´õÌãui-žÑP©ë;<JAm9=ËÀE˜C£7s›Óh˜sn›&:¶nOÅŒmËäy2üàk,¤ÊƒÌð†×ŒzëÍð&6cƒ«Ñ…ÖÉ ?ÜóÓXÈ?*f,Äêi¼#”‡f´.á¢æâŽ%îôÁ­»³~vzúãc¨žFÑÃ#7²— .R +FÓB[dçì}6™^¬žþ`ÇOzš JµUÔ(ù%ÐAQê¦ÚUZÔF¨µ»³y>žëb<)jÝìBX·RQÍÒªÕ¢¢š_#Q3¢ZÕ&ù)xMbËf%?ïÎfCÐe1žDµ!HEˆdâ¿9]-È›ºZ—¨®fUW|5ºZQͬKËæŠÑÕ±@dõsèŠFõÊ· +kµºY=È·ÆD²’åqOŠ&f߯˜JA¬¦‰VÓè’·D4:îž+î¡ÑE㑈¬¨„ý2ü_QÓ×âŸgQãq󆨩FÔüíÔlùµðÕfØs¦jš¡Øh7Œµô;úxò³ë·C[.fQ—l_t‰e¤í‹ÃÄ´EÅç‚i‹bñí·ÏÍ÷£õau5Û‰H5/(`hb¸fqVÚŠW1>J³ŠþüjÇ+†}N¡ $D}ë… °SÄ0b—Þ…“Ü>3Ôçɻϥ+—$ôáPÔÓÖˆ>tcÚˆJÛ[Óιdó¹ãŠÍ%"uÙ-l.ÿG˜)ÕQºw<•¤µ>|ʲ¾`ðwÂß<ð3á†O(Ce}®™ø@ÆZŒ;kvrøaw\þ’ÃáïùÂDÉÆ9íÚCÕ—µ¨à 9-Ô¥) ÏÚÊÚ¶-'çwã̳Až£¦¿< "Bç …9Ì0eÚm ²À ³DÝb{h±H=êȲ ß’ëæ LP¨$Å„ˆ)MÈQ †Í3VO;cÝ#zo„PK˜iCYL$Ê0ÔÃéJ‡õ=V[õðd”hFj¨lAf‰—´ž8í#êð2X&ˆ­?ªÇ[§ð*2OmNc+…6uZÑØ>wðkD½7‡¨ ‚&U›c#““ëhjlÏâä:íÿÏ,6š-éš/™W]!Rõ’ÆÉbJ©ÊÎ3üúThOŠ6ÚÜ|:mF}qWí‘è‚0 9Hhl<Õ°æÈõ˜ÿ-K;ë°¢ûsÃê²ÃvŸ¥ï°É£ÆÜ7±í†H$¬ÒR;Ö–qÌ +>·AK݆5$¯©'ÔŒÌ%ªñ®Ÿé{ãœGÛË¥¶ŸªÓi+†>Jô˜¨ðØ ›d;›´|´ý 3~ľÙ\V9ÅN×éu€~BÆ™7t€:r[ÐiÙ?ÌyÁpôÆöá[G•¶ÝÇoÝ«;fО e±ùçË +ËcDªnÂRá+Ë­Í^`=챘ó‚áèŒí3· /<öë|kX´‚VB€ÒGè@ýx:~ÜßßÌí­ùùçé|ümîÏ/Oûãßܾü`õƒ + +endstream +endobj +767 0 obj +<> +endobj +11 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +14 0 obj +<> +endobj +16 0 obj +<> +endobj +15 0 obj +<>stream +H‰œ’ÁNã0†ï<…%ic'eY)Q„@h÷ЂJÛríi±âØÆv•ÐWÛÃ>Ò¾Â:IÛÄqûg<óù·õO/:Ëx -a-u‰ÿþþƒ‘%þu>Kgö +å÷­ƒûíÏ9ßÖ<ø¢švE×ØC]£´/º3a–PDÝ·)FÃH¨K¼˜Ý¢`Œªe@’'ù´r¬Ö¸e䮎¦N¬Š»ë›-V%~ Á”¶mKÚ3bÜšfyžÓtB'“$N$þYÖ%ÚãÝž\Ö´'ƒ!ÂMCå‚f$¥û‹®Ás'mF£¾fK³ %ÞSì‹Û_aâAäœEΔ¾á|ŒÜ1û>9ŒQTÅ•Œ›Ç?+ñe?„~(µñÁõí“»S”“ôÓ&?x°§†Ÿœ‚‚tðÑGÖ¿Pð‚>ªzO£P²š›Ý>+ð£…ØÅ0C_nFdP0®^ª°gôf +ÅôºÄ]"`Å6*àJøôüëCš°oÙÃ.ýÏ{çñt—¢^‹CÂAÇX»˜ß ¸k + +endstream +endobj +13 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +800 0 obj +<> +endobj +801 0 obj +<> +endobj +811 0 obj +<> +endobj +178 0 obj +<> +endobj +179 0 obj +<> +endobj +180 0 obj +<>stream +H‰DU TgžI˜@’8hÍDts¡Š¼DDAH¤€­O֢͢I¢nW»®ŠêÙs*­V)­¬e¥â“ªø@»Åº¨PQ0jj¤¦FdyôN¼qÏNl·=3çž9wî½ÿ÷}ÿýïO>"‚$ÉàÔô·æ¦h&¥éW[ôfC¾ÖëTó +’éÃÁ8,y¹ée4µw AÙ&ò 8Ü8Z: %D$YûϹƢ²bê÷̪ ùU‘±1Q“½6úµõÚ؈×6Z•T`ÔéU9e&³~I¥Y›o,.2kÍú‚p•*iõjU¶·ŽI•­7é‹-‚÷7P*ƒI¥U™‹µú5ÚâB•q¥*Ý°Öh.+ÒO‚V«’RUÚµSÅ*ƒPÀT¢3 + ÚbƒÞô{‚ …‡ð„’ BG³ bŽ/‘N9 ‘"èAø ‘H”uÄ¿ˆû„‹dÈ ²˜l¥ŠÖ‹®‰gˆ ÄO}2}Œ>Ǩª€ª¡Z©§ô"z ½¾Nÿ— a ÌçÌ€o„o­Ÿ¿ßV¿Oý¬þ¾þ‹ý?ôÿÚ¿sØ»ÃΈòN¸už ì•øHò$Kz‚‚,AÖáÃÓ‡— ¿ìœë‰”/¾ÄLËËÙ¥ä-§¶¸×±H`x&†b²ÜÂàŒP~CÇCd6H V[/>{Ó•¿çA¢Sü óY ü„B²¤Bð8ˆPfÑ÷1òk”`¬·.š4½yWÜ:!)¦U|‚ï’ iS› mζ)Í i?ÑPz%TOhŠ˜Ð㔀°bˆ|< ~r™^¶y±v»r9s¨êûý0Zþ|# €MOÈ&(Ãi¸Ëby$”Ó¿%AÎ;nì€×Qiqï(%7@›λKX ;_í nÒ’õVþš•ltÂ9§˜O€§,&/«V/‚dH>;Ô×wv,&+! .€BÌü,D5ªO`!äAÞ (µRRcá·w€\ ö‰ #ºsØy´™e›‘þ«o +Äx¶;I…?n•î맬Fñï²ÍU{a8¼¡è?–œ3uáÚÙ+¸ð…”ì§)¹š„m¨öåKl)½»®æʳË'G ^µ]©FN´¢D)ëNÄx3–q ø¤,Viƒ#ɇiNÙS0C7[ýÑ®jEëÀfôKÏädý8rã7vpôÞ¸š¸{:ß²†¦÷/) õˆq.9Ÿú)WÉÈ\Ç÷]:óDþsÜ=Z”WÚéæÝÿ+?Ÿ§¦)JÝ´q×®MœÀ»øeóG=bþ$²]ãùes¼ëɦ¢ { ‘‰ä9¶o£E¼ :¬0ÑNò1‚T)|/ í‚~Çص:sôìgÛsÕÓ²çDÌÌ<öð,Fÿ•?* èKH¸@¿ûH§¯°˜×¼æþ­’­äq\tˆù +¾š…q Ó§À•‹±çî‹:­á.t›Z½§ëN5rç/¼t[3Q~%jÒ’¥úey%uçd‚²«ayƇJ<‚—YÛ¹G£2&/ÔDÏ{p÷õF÷ÚÉF~ƒ¸Q@ΤQ‘8÷˜p¡¯‹¾7a&˜;:}»=/¶Ú.Xk•w¦8`—cžSÖ/sñ›ùƒìÃÌ^ŒÀ™y0GóåÒV³RÖŸ´&/7Jn¨H¼­üãÕ;[N( î6@].½7ù$'sÕïÿ¦¾O.lb!æ²÷oh'£h–y>JŒß_m;ÛÖ+DììbçgºùUm›³ÿ+æ/Y’((Ô +\·’§Pß/†ýð¶­ã‹–Ã\e9…o•,Š›¤˜«mún7Nmˆ…mÕpç.Ð%ðšqBRE•c:„(«­lVôP8[þý°ïTJmZ¶1œÃ¹t˜çM¾¥…ÿÓ¹„A1G—äd¼µñÀsòçól(Wb;íòÈXȬ?”ªã-Rs˜OKê×Ûùv²é…Ø=ƒßÉBÀŸ'ƒ +Ô£§à:<ÓÇBt íƒÏNrShŒÿ’kÒ8o„@¼=ø BÚÍ(­ã$õ‘o¶‘\¼ê…øAœ¤as@ä#¡¸€Ã&Ú††Q¶Ô &vJ9Ì«°ÃV;ÙI»KÌ{ì¬'¶òcìž1PÄϲ{½Òñu´$^ÐÕúÿ0˜Ví8(ÄŒ·{þöJç¢%×ÛVX Å‡ìÒó/x½CÖÌ¿-,˜éYç§/Vjßy{û*æ,…0PCÖP?°ÖÁu\Ï9iˆ²àÄ.”+ðý±¸ç&VaˆÆq«[ó HñüIÓ­fN¶©6œºÎÀ[‚‚ ;\(%»]ü0úY>–õ ƒ aèá‡aË­ óå‹÷.p¸³Ü:6ì5XÌYos‡–’`r‰ÀF6™IkDˆwè+˜©äkÂï2Â,¶»~Mùei^ëB­q¤…ŒÐ¨ÿ£»Z ¢8¯°›ef¢†Î6ÝÕ™`UŠ@A!ˆ‚â c| å•(ai”`|Áq© +"‡"õ}P â•Dsb#V4A¥QÜ¥ÁîQkïwµ½³˜4ÉiÏÙsþ™ÙîÜûÿßw¿ïoîa[zÄwûòõ}&”±ß³?árxL`O8Tž›zX/~¸/§ûº!Ÿ‡ÅöpßÒÀl„Ú™9~fƒ=D €Œͬ d +iéa: +)–³z% +…¬CBQ Ö–/0½MŸÉGÝ9OÚؤ(áDBÃφÚ&öÐà~=ôp¢lÓƒïxHÅ}¸o<¦¢/úÞÆTØûnC*øÊ~Þ ù„¸o#¸¨Šå¿¾ºÂotIJòAN`æÁï2p6pîÂ_*hy‰¢®Yæ¾±]:G6b ‚_K­ó¹ÌåK7&ÿgB¾+Cbb¿›œ˜åh’<-œ¥í0p݆ç)‹u/Sµ\Ýsô¼LÓ_ äháÊ ®¶tꬽðïÞ±6¢ô\h`½Jyçâ« +PS¯ÀÏÊøååY¥[k7ƒþ5ñŸÙ6ÓS¹ó¹CŸ|jot9….2ÞUËèâYü…Ž? Ö}rÆt×ÓÒ;Ù½N]=É& 3ëeÛ¥öìÛŒ8u*¾‚Nèö4ùü<>àÀeå‰ÔɆè’&‹|Ýk@O5³x^ÃyEÕÅD’sZ„±çaðaŸÿ¦RÛ0á<—Pø^Eƒ4Ë:î'¡v»¬’·ÏµK…½Ú’>W ²Ÿ»öö¹Bv—ýkG+êSÒ4í½L %˜Úãôó0 ð>CîŠÅŒ¶§ +hèÄWa!ÄÞ'á!³%ćܧ*#t}‚¸J¬ëSÉYÆáJ©É>¦Aí¹BüŽ\0 gf÷aá³ìÙ1FLbËØ}‰ d¿Ï=âa>M~w£ÁÞ¡âÿ ÖÁ¹ÓÐg »á<Ì£Àøï踷o –½Îœ$Ø 9tæqÆYp˜ÃÁyÑEU Õ ºvM—U ¥,JjöoN—ì­)*ÙºµHnòÖ®Ë[g|#viˆ2fÚÔ[ö(+‹"œ¬j†×hÉ®Ín×ÕvÃ1«Ø¿øÿÙ“Es‚ÝR/vLªÖ˜®üt%šÎU> ¬æÐáÆÛi,Š—ñ…n MõM-­•qÓdì¶Â <ÜDNHZ/Î\~ÙÇè³8|eº’Ëõ-AÂàÄ-°RKý¾ö1q4M¦iu-ATÔtR?Õup‘ŸŒ­TÿZ aÑ$/wkO@©„F ºe‚-àF0†‚;cp(º£QîÖ7$ã¥ÝAÔ‡…­F=5ÝjÐ7ÑY3Ü ^n{?;è€ú‘ÔO¨~6ý—fò8{„d…Ò|~ÉÏ%7ý„§Þ‰ËÍjy½jyøŒ +ŒèÉL«JÓµYŲ̗%ËÅk·åcÔ%»±!SVÞã[‹LáIê[Gî©Õ +ýÔiÑÔß…,‚D$s‘®#0o„w4 +Ó.,iÎ¥p­éGÖ&æ¿2_]ýÔ9ŸSPJÖ<Ñ.ß4€›ï×¢æâ_ɽY¾ªðŒ¡±m×!Ð/HÎSi²ÉÂÜš5t ƒB•#ã`”?Žš>õ&>æì»·ëÀ¶‚*ù«…Œ¤ÜS +< Æi o`¤_Z!‡§˜ÎÖêY…?žĺÐdOÔ¾¤K›¿ÝU@·KÚîÔU5TËt~ÓCÕªr{CULê>féÉÉëU%g(›Ää!Ò^Á‘“|‡Up^¼ê‡œüÌÌ\GÙªÜÀ3æIróÔîÉuóàM©îv·û’¼Œd¾œ'?ÊqíA×^> +endobj +818 0 obj +<>stream +H‰dT}TWŸ!Ì ` 5ã &žL¨ù*+D(‹¢ˆ€RETJ€h)òa‚TWi=Šˆh=ÝÜZ¥výXT”U\•êYÔâ+ŠDÍmã¦FPĽ“Þxº=§ÿìyïÜ÷Î}oæü~¿{$¼½’$Ç%$/œ³(iÚÃZ‹Á\§Yœ»¶`]™aèP'(IaŒ÷f©—0^€:,ûeã/³(Uùkªœ´ì×á}”_|}$ô‡ŽQÍãG>“^$YwtnIi…±`͇fõ”¼©êð¨Èˆà¡8k8F Å(­:.¿$× N«0™ E&ubq^‰±´Ä¨7òCÕ긵kÕÃ0©“Áh³¿CU˜ÔzµÙ¨Ï7é…ê’Õêä‚âsE©A— Ö燕Õâ·¦²\SA~ÞX`0…þ?U‚1ʘàEL&‰ ‚! -IDDAÌñ!’)"Í›#¼ †H!ŒD'™Bn"ozE{}äõR²J²Yâðžé]êý9ERc¨0ª‚ºJSô»ô +ºž d¶2>A>Û}Ú}u¾Fß/}¯û>öÓùYü.Ž7"iĹ/¤ÁÒtO²Lœë­ÂU+Ùä„sN‰?s¿*P£Yõâ!þì›—/Ïb¼Êš|(ÄlÌÎÇBÔ æB6dŸ‚BШd ¡ª å$|픺Ӹùt 2++‘Þâ3"=UNFVcNZå‡útO¡ÑÉÞ‡±Â2îü®=ðŒSœˆO Ë(þcšA±ÿ IOŒÙ†¡Ìæ‘Ó»7|ÿüRwóØÁ˶K WÀ˜©V”©Øû±8ÛŒ¼H¾î‹UÞ舳?ÄŽNÖɾ3Üçê÷î¬W²¯:^W¢Ÿ.9=ÇløñÆv^KïÑ5èzs}*[7]TBÂ]ãÌjKø†¯eØŸOÖ]<ó“⿺^)zd'ªìôùÝŸ¿‚QÊÁ¿Î×ÏH,MàÙ7ìܹ‘ùCl°Räÿø©D8±\ÏDaåïy–PбO!– x®ï …–­ï.+Lµ“B¤(Ø<¡ƒ vA/õŒì©¢Î?ûíå“ÛéšKæh£xô©ˆÃ÷ßêgJ(ýbzaú>@:9Çb.Vàšâ­äI\pH„¡žƒ Ÿ"ÓªSâêåhÄаºˆÓ‰|Ì?î›Ú•}§·4ñm÷_¼£€hT|1-k…¡LU]KÝ= +‹@ÕÓ¸*åKÅKœí\— Èã)Á‰³&f?¼7\î>;Ù$|,i‘ chTb8ŽÆÏL˜áã¢/ÀMˆsW·Ï}ÏÇ̶ƒ=Pl•ŸtÎsÀNÇ|';Àº„Ja?÷hQj1:¥s¿[ÑaV±qEÙ銂šØ;KT\¾ûÉ)%èî Ô¥òÞàfžuûêŸÇ^*رӹ7ôÁèõž9 e%ÿ¾Üy¶³O¼±£‡KJm¹ù÷ƒÎ#)9IYY±¢BÝh…ëVùiGäS84ÀÂW°™ëìú[û!¾¶šÂ…e™ºiJÖ5Wßú¯mü :¡¥Ûêáî= ËàCá ┤p4jÇLPÕ[¹ÔYû@élÿáÑË–y³‘ŸnYŋƪyWÞÈŸ¼f í '%&¾¦Ù¡Þû·­,³ÆŸYaM~×½®d—ˆ'ÖíÏA<Í +@´ÌXRÊã\:È3ƒk´x>ã± ð<¾r?Ï +Ö¦}7Î)^Ì·¡B…·i—‡å M¼fý±\3;3SÃc-Û½Þ.<´“­ý÷„Hÿ4 LQ¢å‚ëð(Ì „YíPZß6ó!4ÎþÉ¢d%Î_ ï>‡€Ûƒf”æe»E Ÿ·‘]‚º_ò0ši¨ì‚|ˆ€³í8ŽÇža¶bQÜR; _¸${ÝRªÞJ]n)TÙ=†{ÇÍ—“V—À¸$B«(‡'‹AíäÜé3ƒÏ€V%dyL *lødÀògâC>Y%¬f† »ßí+Ô‚7[a€Bâ\G(”Ñ°ð 7¾4¬€6ÈÀ6 +¤´lcwB—0µ[~±ð!l}ʶ°Ça‚@pÍ{ö^íWÚš‹Ò—·XªyœTA±-¨©Ø4éEø­EÏ_]jkjT±kóvÕåõ*ÔïÙýþ¦ú“Êê-ÊŠÊ?ÃC; + ®Ó#™…£ªTp“8VtíÒ¨ÄâÆ+7nןÙó?:«6&Ž*ŠºYv(Ý”Îb:ð&©@J³Èb)ÚšRÄBQ ],%hHøR šZ¾MK±»PVh©4PJ# Vù° KÂÂà† 1 oX“ªÑd~Þ¹ïœ{ï¹ç"é;®é[œ•–„‡¢Ï"œ*U})@/F¦¼ÕÌèd³?mƒc wð +ó|BmjÑùdçÐk(¦b[G‹NÐÊ2£˜Î H +éÞª/`Éãy³§x%ί°7dw‰ùÂk«NÝÂ^Ž~žLE(XÃrð‡ à²Ü̇RÚŠ´¬Dï-ù}¿€lîãsq-<š]"fíBí³Á€@tói—¨šjÅÝ’ì¯9ÌGb +ûc÷1¬…¾nàΘešµ»¤ÓWO`ôØ+ó!9I™k@#’Ž™ xQ5ø…0ó«ø„³¯]I?Îù¥} 2^TQp&ÜpÀ?¡#F\¹gl½ÅO}zk®ñ¶³}ðìÒÄüÙ¤¿Ý;ñ>¿+C1Å ªEÙª ƒ˜Âš5“ô°¾} E_[Û‚éúʪú*îÙ—/DòGbŽÏÚS1…Vâ3_Ö]yîÀKg‹âñ¾KSCWP(ßh ×F6®ë“ðÔÌùA,»Ã3 šÅɶ‚럘\h¾ò’óêQLµEt7ËÈ© ×%¹„ŸûÅŸÁ?ÑñíékÍ·›{У7èòܺ!6hÇ.Ó•ª¾ †´Œ)+Õ¢Qƒ‡H‡¢òaùÙ¬îU[»Ý7rVFzö#r1eQÁºMñh©ìšX&‡úM–ø§xTáKA’ݨ ÞûŠhT«¶ýw];Î3À3 +:[`_Ó¶Ë }Sîñ‡›‹ÅUØ#~±ŸLèŸ OÕ9 + +endstream +endobj +803 0 obj +<> +endobj +817 0 obj +<>stream +H‰\U PSéÎ%¹’¸Þ8M0÷vèF@QZ”Bê%¾ð,®ˆ<%VwÇZ…à£Î²nW‹[d‹°>vu@Å•¢â®¨õQtúpt­_¸ì¹ñÄNÿD§ÛéÜÜ’ÿ?çüç|ßwN™"@Æ0Œn–uŽe¶u\Š½¸Â^V“eqçúNFIF®Âƒu˜ˆ•¯>|µ” /éVCuì í»& `˜†ý?w¬©räå—‰csÞc¦Äý$Ò·Nö¯S|ë” br®ÃfU•–ÙW—Š³KrÎ5gv™=7Z“‹‹Å4_„R1Í^jwVÐÝÿ&$”ŠÙb™3;×¾:ÛY$:V‰Ö‚GYÕ»˜²@F¦QËÞ ”EË’d2‹Jfee‹”²dŠ…L!SÒÍ*ÙÙYÊÄ1µŠKÀ§rµúZÕw¢ÿ"hô`BÙ ·â4þÒè«JžÁ|P„5C8jA×é‹AD ˜¸GÜ@/Ͻ¸üh³yj¦}QÔ†êêXIÐ )ë¾QOƒÔS;wÝJîñW{::®ëÁŒ¡'#16)diªýö_·æ¬Ÿ¸9ÛÈ ”Z2ÄÝ 0Ðã«E{y˜ ݬ›”× “ôàÐM•à$‚»½ÓYTCÆ€1ýJÚÓWIÑh¦{Ù>½'Ýæáyõ$Ó«‡ÐjöTóɺ½†-©ÖŸå¦¥Ì-þ²»Z@‘à¨Àιì0q&cðב3‹*ªÖ +þÈ;A‘Wé“4¶D®Sª—šùn®oÌ=¢:˜ÿQ‰·V᪹Ç0…ªjäã—0^àîÍÇLÍ/\[iÜâfno|ù­áÌ~GÎ6ácìâÇe妧¬èº}ÿ\ÛÙöî’?÷×@Ë@(-AjòÌã½5¤µ, ‘ù©8+Öáa˜È§T±Xuå†ÊŸcéL§ RíQªô8=SÊ)e­RIs1¿ó$Ê¡Æò°‡DZ,L&¸Ãcc1™à®×6&˜#åÝä>f1•:ӃŠ¦ÒԆݢmM'rôÎïnéà<1_6}uT8rø÷çÎ믕]Ôf䤖Oºÿ0¨¿ñ>àt#¾ `òFð°ˆpß;WjµdY´©PI„“®«Z–U¶@ÀéôºJÐI¿¦©¢äž$ÉÅmŒ…±XdÀ¹8‡ã6¬ƒ‘H£AÊ Ú,Z4“IU ³â È¥Ó ÃÊ¡“×AûYüÊÁŸ¾THÅt ÆÀE“fÝK`ÃpÒAž6Ü$àUZjy*©Þç¿À| ²ajŒ šôZà`}Çç "—ž{l¼·éµM:œ÷z6Â8)”hD +u5þ©ß˜ÎNú“‡>jÐG÷^S‡ß¼¶ù8é©.¶öR`+(°´Z(†³Eí”b|}Ÿ@pt1|Ph-ž¦g}zã{;1t:Æ!ÐO),£p7Õ!C±I×ãvˆ¡Ó*ÙÈuˆ®ËíGnÝ'1ì3iž}#‚›”Ê&s ÌÐF““¶ÀMo‚Ùc£RiÂ6hB³/=¸Ifm¬ðØ\oÿhÉoŽˆ¦ +Ôº˜}TÝI¾ •þ3ïN²¸:cZÂÆ.`¾y2²#a#˜úo@¤Q#ÖRZÿîz‹ÉÛhÒ6С‡h@Y ‘Òb:·ú@”béäóìð™¬&8Ü{‰ÝBP']bÑAï¥7ÞÆÐK¬Û;¢¿<_¶4Ÿ¢\úJxêxDªaq¢ßqu<îÝÅúËß0 m¥<µƒY¢ÓYÞÈ㨷=~ õGá<Àú£‘‘XoÃF0ë`9SwïÉÀåô!ññHNÁr£&bÛ@±ÍóëÌ ÛÞ0ßÀS}Ã’Cw~<ù> +Þõc(ý‡ìjŠêÈ¢ŒÃë$NEOÜxoÔ A\ùMTü€DP …|²: €†˜D˜a ‚‹ùˆ¢FAK]Ýè¬ñƒÄ¢€Fˆ³.©UrÛ“boÏÈ&•­©)ª‡îÛ·ûžsîiÁç¾À?jØbšNåÿÏFñ‚%â­.7}ãû™:ûN¿Í`VÞ2ã:9ük*¨I kãN]<Ü.Úßfm?MS[Ic«t/„C2TB".ÎFåq°{ÒHDœ‚¤Gauq’ïÌâu{6ÈRIRÊLuÏ´ M©ž_' Ͼ®ml½­½’ £é"‰2Ò|%b´X¾çãEIQIéa²fiîCÜ uâXŽýøw8Êð7BodˆÍtT\…ôJ¼èßè[+ 4ò$—º{UÙEíõÖªKà^ž² ­é)œ«ä¹kèèé43À)]îÈæ„Þöì¿å,Ò†‡n‰¢îÆöÆB‰‘OéÁ+„­ìþF(="¤"ã:Q®R­=6%d·ü³Qu éVÇFf8󳦒À„e>Ñ NõIÊ:§óE‘ ÞpŠºödk‹fé„2+4CY倳z!‚!ìåGƒ¼ÏÔÓ›ÀN¦¦“Ô›M¯¨!@õÑƨ±o#J;Rv¾$§"RK¥½Ñmôkc°š­™H^±ÊÛæn‹q* [í8¬HNØèí÷GäðǼ®üs“O'H†)ÔJ°â,B<±‰¸;Í¡nÃÑiô)ͱª9ˆ$0 +ÐËp€’NGœS™” jå!ž³^XÆkrû‚ªPv]ë±b ÁSÈRv("¸SÏê ÷'¼U9¼«ìäMÝgwÎOMÏß´S¦®Y\@ÞìÅÞZ¡™ëZ}çqó©OHBÖŸS‹Þ-Ét‚ UdKqnùU-õ¼/ +ͯÍY;7=©â¬åäÞó¥’¥´¦´ü/N}.ðc‚ĦÁèú%拈9«¼ +âœL_ÿ€ä¶Û÷j¿û±÷Ph°Ds••"2XÈA2yòÂÙE|ìÑ+›-:hÁ¥caŽ÷÷ÔÙ?aù†MrÑ`l¸c³ˆÌ“z!2`±˜ùvLÔèà--5==Òõ]ÕqÅÉNàE $Jǃut–[€:žFM^ KN‚ßÊ¿K”E̵Y¡3 GzZR@ŽnJ8믣ÎÞþtÛBõ`¹Ruù¨\„ ϲåkuÆcÝ=t»÷ÇÚ ©¡É3ü3Ÿ\•0OGù€98U NeæG“Ťík‰:ʽû}ã²¢ÚOà:æœÍÝD^§iÀGÂøýMàö¹D‚Å›%ÇšZtÍ_d•ÈèQ}w0è}f)J”ø or9e®8#5GÌÛ²Ìoê&Ä&Ðaòšã:¬Q ç5zšÚàWÖÃp×FL(OÚ)üñV/ +¡ü±-k-/uÞOàv÷XÉfW^çƒÖ¯7„l?pà= ‘M¹bpZ ÃtP±üÊÅÌ[9Zà%Ëñóß6EE¼2mØ´´;­²ËÜÞ`T]Çš®bš~RqÁ9äKïðØÄ7²¥(¡z&í`!gš®ôÍN”h;Ëž5/¥ÞØ #]±#¸…[ÙJ=/L†xfô”Rc›öÆ¡F[*Z.c³Îâ ”Ðx¸ ó©i 4Š®æ”Qöý~mŽöU¶Ú³ ëÃYÞO½ÁÅõ&nÿºygn e?5q~F¶ti}òÁ:¿Ä…ÉÙR¡ó[ªe)BÄRuºå®iÎj‰~ƒ¿Üâ¯î?}óıŒÐç§ÓÿoçW#4ÿz7c×Ʀ Í&BÇPD /4ÿî~Æ.b;'JÐþÁ,G{¨7~Ä)4ŽÆ8¼ñ#ö@œD}FÆý¨u0þÐÚºï‡Ã>¿T]:o3Ä#Ç:lH¹‚;æ y;ѲìïÕØIk#ñ†¶ÛX_8ìHµ¿qÚÁ"²ñãc‹Ÿ ñŸ +vêú%.OÈÀ3hh5l3¸Ù… +×°lpˆü}_+¨öV˜ +Ê$ðâÍùùæ|ÝÔ”%ñÙ]>zHµ(iýƒ™ÿrtÈ‹–ÞºÞÒïz›Éð¤!%½ðqhRˆã·Ó—ê¼u4dù¸0YxLW@÷­qKr$Úÿ)iŸ6£Ý'Ôk¸' [ï†ñÙÃæ1,¥ßÍ»«­ÙSߎk/[¿¡˜1î½~¸×§êbØȘÆtÁ'rÜ-ÚN^­^Ã¥OHuµÙ\-÷ó…ï¼S˜¯[XXvX†¦û}öÂx?UP[ج°•¶ Ñ‹1.“‰s3V­YñQ—Ý8þ7O=ÚcŸµ]ª=&õÀ6Ù‡L³ºâÜéŠ+GGƒm0 | Œgë|H·2 +ߣÝÖQlÀެ͛¡Ü¨ªPjÔ`…Z"¡œ£$Sè$˜ÄÑ"h9Mk9#!ð! ä`&÷-pÐU{”:µòÛþeBUö\Éó\—ZÿÊEä¥íXªÛ–o6ãKÕ‘/ÜW[X©Í'u°¬§•oVÒ„r˜XF ¶ \J~!¥¼T™í>ø¢3¸¸€þó‹å‚Òô¿ ¸5b + +endstream +endobj +802 0 obj +<> +endobj +816 0 obj +<>stream +H‰l•{TwÇg™ â 5ÁLßUä%E(èú¤ˆ6&!øÚ®v}#h=•®V©­®rD¤,Š +êV뢂FÁ¨h@é¦F´î=|Þpýð­n´›Þ­nĨ#NÑãéèÍt-ýÂt_ê¾ßýéÈð‘_Ž¼îâñ‰Ç ©§4]zTzƒa˜ñŒŠÙÃÜðT{ö8‚háÆg|쓶˜›ÍLC ŸÅša_4Å”/î{·¦ñ Î7½™]HÞ¶‰`óÀ ˜¾+÷ѣ?P´h“Á–‹/žÂ Åï:ˆ²‰^` \_ˆ•Á‚xððƒ@E +õƒ®"a2ܲhòLÔ]æc º¨PZ70ù“”Uñ‚Z›0­^ÛdkšZ_‘ð…—}5bpZ€Nß3bZYf‚3 _˜EðÔ°˜ ¹˜c†!Bzqáøº×ýdG¯¨Ã«Z¶i±z»b¹äpÉ“à-{é'\ÃÆçd-ìA ÜgqgìÔ ‰ µŸõóéL›v’ë¡Iç +X…»Þîߢèµþº…¬´Á9›ˆ„ŸYŒ]îãb!¶®ÿõë:ŒUؼÀ?VcfdãjôGÿ*\ Q«Á_A—™øí- è}-`ÇT6ŽÒ¡dÙ&¤þâ2BÛmº¨?c‘íï„ +Ó£ù?²õ%ŸÃH#ï9›:-=oö +. ]Ìükjš*rú»ðí)µçXÙå æêÑ}WÚ@*ƒQ-H+˜¶(Œ0â:Nh¾6ƒÉ"­èšcíÕ®®cc^‚ÚØÒ¯v—Ê™_®õnB×𤴠µáÙÍ\ õyxYøƒL—uµŸ^’Cü=Ķä|ü7\±„ùùÌþKß?—ýþ½1YÌ8…•ªß³ïð÷}§ž®Ê瘗7ìÞ½‘ú‡¨V~™ÐÿÓN¢ØÖqü²h Þw,Ã5Œê„(IϱÅxMöVh±ÀD+ɇ +ÀæòÝ,\´:êCLjÖíâïOÖ}{QÞÑœæ?}atà¬ù§&øÅ ƒàºò'9䟂Èðö©¤&cî-k!ÏtÁÅ._Ä—²à÷JjÃå¸r1ê1`Úþày¡ÍÐ(ï®9v¶’;éÐ¥»2˜…²ËÁ“—,Õ(v‹ï‡ù h­Xžü¥cÛ~®ÅäÉàä)éªqî½în+YɯU +ÎùQÊ1=q¯Ó]ìÔE¸³ÀØbvis¬— z;Ò +yéÛÜ.ØÝgcz;¿‰?Ä>žß8+Ý¢U§–^3*˜ž9¹iÁ2mQÔÝ…Š®ÜÛ\%‡ð»@‚¸¡ðÁ”jŽ±—ø¡üµŒé¾Ã4öáMõtzߘˆ´îÉ•¦º¦n¡bW+›˜röÖß4Ùzþ–¼"qÉ’(T¸a‘Öt…vÂѦÀŸÙ¦–G¹âbœW°(|²œ±Ç¨kïlã¦Sñµèa°­îݪ>FÁ^NˆD±Ðª²kxq¥6%ä Èmÿ|üúìÜäÞ3-熮öK;z…³é·!dVð¥Î¿MãÐX¿+õÿ'› ì…«l¿Ÿ„V‚Ä ¬™¬âKD| /c%Ñ| …¬ó»m¾>•üjÀSį {5â~ +K2ÅèDá‘·™âWÔ}ЈOXY@³¸˜êÇf1m(j‡½XÓ.½g‡ö$»€$jÀ…XŠá8«I˜¾PÀa 5Éñ ?RÂóéOíÂî¡'—âÞRyðæ9Ù˸v”)°™²;R…2˳BÿˆE‹ü9Ì¢èòµVþ‘•¬}%˜ÉïbÁíO“A‚ÉrÔ §â<3| ¤ò÷÷ÕÜT +#>A27IŽq À "ჾàÕÜgDé1Ž.N‘úvò‘W¾=ò‚j +6µ@6CJ„ÿÀk){( * +F·¢ +UaPÊaŠªÈ +[¬o%­vï°²Ž¹°…kuŒ…|þ}«ãðÛLþEG<-ÿ-ƒD°°ÐgÅ>¡fœÕ±õm¦¢;Ö¶¯0Ac;¶JÏ¿â5]L=?Y0RïoHLZ¬PøÁöUrL] +“ÀRú{€µô­ArÎFA° '¶¢LŽŸúàbŒ‰*AwpòãVU^ËwùËçµ·ë9fã‘ñ Þo CV¸PH¶Ùùá‚õÿ^-PQœWØq™D‚a§CÒ] T¥"”UP°ŠŠˆUi•°4j4¾àÈ£ÁGâW4U‘‡‚_ ˆŒæÄ6XшK ®ÀØ5$Øõ{ÿÍ]mÿYl¢=éé9{ÎvÎ?÷ÿîï»ßýÏ‘Ñ¢£?\ð£`@!ýQé±ýTf•§ÛŒ•âŽµE?'Xœi±ûd0¥VHëÑ”Â{â$>º] ¼úÖ@„DÊý‡ù¨Ô¹#¢ê”.ð*¥Ô8f'¶‹ÀR7,@ Z¿ ãá"œeQÇá|ÀÂõÚÞ;íîÏ_é=š$«Í|rACÖÏ4u“-Ý{ž—݈o9³&“Écå§ÆnÁ•›¬×ty,püƒý–.ÄFÉm2¤ë<ýö Úœs7ÑR»ªI¤´²È«Zó8Â8ZY`ìÆõ+9™wÊF¶Pò €"Ž À´ã`eÖØnºÀÐMŽ•l^8Ò°ËGcbàmLƒr(¿ i(9uö¹ò,”pÏF©¡Še÷Õ•å¿Ø¥Á2ÎåÂ\ Ãe`màÞ‰?—Ñüœ1SÓí#;µN4B ƒ_Š-³Øìe‹6¤èPàŠˆ„Ùp“2¡â03kn=¬U÷2NI¨yÕ|eï±óÝÞ7„¥Õ* l±h•øWÏH•ï ¨a*o×Âɱ+ó‘)J’¡ ·¬tsñÖêMàõzŽÍ¸×Xê*|wîðg§žèÀÝN£›„jö.°™«mÿ5Þã³&ɸšª*ÓBº,Ú:ê¹ð5²[hZIÙ.¶å¤‚èqÂì‹.èùdÉùõ2ø¾Ã +wÁmÅÉ´ñºÁè–è]^’‹.œY?GZ~üb +hFž‡_õù¯öËB+&Ÿg“w½UV¯æQi}û½Å¨Ù.©Zµ»w2°«GSdw!ç©{Ýr:_9;]Î`ÚzOEó e¥#‘Gƒ¯qd°ÿY:Ï‘?G: ¾ +saÞ=:‰øJd!¥îB2˜2;¯å‰è$)a±Å´™>¢‹Ú[Êí¹ #É0€)ù~°†,%÷DÊÞ0Ç=ö!³è¦78Ô9ÚUš"í¬7]zÿéè?fÒp¹ÿÈmŸ½Ÿ†¼A\DØXtåp*Á©p„E6á#Üåpa¡¿…Z˜‹µ,¸ÿð2Tѵt’„ƒ$’EŽC#ÞG#Üg‘åà ƒ>;CUžÛIÎv2È é 0†#1¤†½ã8:Š çÓµìr…N–ž˜\rIC.¡§xÁqiï‘Ý4¥‘ kÒ~lÚ›á´P¿ }ÄêEõ6½¥zÙœøÔ é&‡d±ÂišµvH’nÄ—1ß>¼T[yBÞMÉ/Lù›¾lÏŽ‚bù*oz½iƒ>kýÎý2|ƃý “Q KDÏ Zpš(PCýæò—¯ÝØsv‡LÑþ?ívõÈ6ÇÔŸ6ˆÎÐþY +Ú|…lðöêòøå{+îêaòEOðe9fk|êÛs\MPÄ ÙO¦ùTrÔn™BMI'IN¨'­P¥PŸÈ¡< Âbδ‘=–žò=ÊÈ¡/z^Äp˜üé%7«ä<Šs¢…êý(Òë‚A(ÂA!(/œ=|AðãÁЦ­î†j%Ô*|GFC˜øû-‰ÓÂôCþ +ŒL´̈wþ2tI wN”•”¯}r°9ÿ#Wj'²Ø~µ¥Î8ÿ<1~ÌvÙé&$® ´mL§¢b'65ðgŠöUí.Úºu·ÔÆo[³vÛZý¨y‹"ä'ÜrÄ)$Žrge¼N«wuEf… +Eh‡×þwtt=b'´GšøŸªI㹊ÊrAÞj~F>½~ù§Éµ¼'ÑO[ +¯üáŠ6oƒØu ï­5Ó @>Ä×aØŠ1¡IñKR%ì zjT ŠŽÍgnÝ)›?IÂoÞÃñ}³,x›öºò’21ÈQ¦p‚Êñ ¥qI>SàßX×Øܲ?q¢„Vžñàë}tö˜Å‹“¤#ÙË.èĬȔM´ÜÍa¼Ç qóêK?ÔlD"Ý&Ñm­Ía´PÅ 5Σ:Í7HØBë¶ÆL›JìËVÍI(QoFo*¼p3xƒôãÀÃ1|z£^²z5¢óœ´‡Ð+*jzÑùO» +¼%ŒI‡9ÏÓ+évð÷Å^YöjòG±J¡ŽXQâ;> ¨¾¹þ¿"BY:Öp½ XÏí1Ì/­ŒÎ¬Ú‡Îe7Ë'™ŸUû_Æs8J£Ä;p„'¢¾¾ý½M.1·ùŠÚpI+ĵ2ÐÕÛ궈e©•¿ƒ]A_¶"ëv_:ûG€Iò § +endstream +endobj +804 0 obj +<> +endobj +809 0 obj +<> +endobj +1 0 obj +<> +endobj +4 0 obj +<>stream +H‰´WßsÛF~ç_±Ó'²sZsïö­±Ýe’;»V{™iú H´­V’SY©Ûÿ¾°$EY²Ü¹éÇ#.ˆ>|ÀbÁ³ñµ·Å«IqöF %&7E’É‹ü`T’>Šàµ4^LVE-n‹ZÖµ“Y1â§$&Åå‡óT9KW×üûáø碲2•·w#HByY-mÙTاËÍM¥ ¤÷•—¾Ü¬¦ëïkÄùå;–]T#íâM¥-–Ó¼oµXbcùG^‰‹)ïÚæQ|y}ÇÛ›f[ý4y[¼ž±Ó†£ÚÜÆIÀТ¨e]#vZlšâ¦@œí;géíàȢמö(z-t”ØÌ/™DÕ’˜P†¶·Ì1aÊwôD”u×µ³ÕÈ´ôP~,ÓÒ}¬Äûie,8ûChþ!4æÇÄá‘'Eqi­±˜\@Æv+ØKùûb¹XÓ.Wþ.g÷«Ž Š[âªe´`ÄF€¥‚Rû «Ád×—›Jƒ¸ò~þe¶ן›Ùâf1›n÷köÝSå’´Ö‡÷,ƒ/u5ùù™ÔYólæò«ç\.å²ôìõêS3Ÿ7ó‹ûÙ—U³ÞŠ³÷çZ¼º8çÐÎÆךN‡•uTb! +OÔh‚[Q¬ +”‰G6ƒWRÇ(–…3Òê8$i@I·eùÔÆ0œ“ÖÛ,Jf;•((:ôÓnY>µAf¡\#RÚd”>ypÛ:åø}’Úè^Ž­T*ô‚e/ØÁÇ!3éˆ BM‚Îè 3zSTŠóhA×qÚ¯œ®`)]£œ¯ÿ~-ÖE@Cˆ©gbÕ ˆ^Á‚+;$©R +Û XKRX!Fð8 $á¶+¿ko¤¿% +ýo˜ŒdpËPjékŠ-ÙÜ#[–ÑR iQ¿´Ò w³¢8tª úÝ átÖóêèÎ*îÞ«\¥ÝînÙ[ï­÷nw‹mû¬x(^¿?çB8N˜æè„ ”:µÓ%Fºox(B“é'‹Ç1üñƒ?(E¥Ôæb"ëSŽÑ~ hM°G·{ú/ N‡ãÑÞø晴Åä Ç*¨–Ý«¿tþî60CºFázîuó׉âkÙXm1íŒe1¶ß/ûƒêˆ +Ž&Hb®¶±¯ —^ž[Ìð*œ)]?þ)?ñx4;~ü?¾ç5ð?mdVü!+¾gÅe>­ÉŸZEßt +·E`w‚Ï…m¨­µðb¨È£Áâ*èÌ»r¬jDœ¨‰a¼4d t&CÕ^ÞlǵÊåL|Ï?EW‡RÑAÒ„KÏY<¨bƒ”;2ˆ£ùÒ+Œ}} ¶:»„EŠ˜¬Œ:¥§a HKåa‡¯E‡I7ããÖ¢(„¼VáÈÁ›\ç!×ðK³IøÀJA<è«4zçÃ}U¨ì4²@žøT(6“Á§žæ$CD©RùNýdQ_^?¾£X£œB›Ï0Ü×9OwEÖuj«{ _[Ð.£ðtÊê/Ôþ«q Úù—@§|»?zPoÆ\dó°6úóÜW EÒGŠâÍxŒ°sÔÿ#ºaÌý¹Ò±~æ\ñSØ0>`IÏüî\‘Aœ«¿†¯„R¾~…áK_·’lw×5ï,ÿ}¿m¾d½¿ˆÖ;'>kÑçáAIžÎ¨ÍLî±l¶[Ì=_¿Ó±…d{GUåËÅf.fwÓÍt¶m²d#*ë¼ä9‡Æ(qùit³iñy:«p©Ûò—émÖi*…Ï»Rrt˜Î Šx0®(ŒÙÚ¢a ƒq_Ôo +•<Œ)%zÒ0)…DcQÖÐÔõ) ƒï ;PhìlTRÙS&\8Àéöpæ8†@ü8K*½!V¨ñ©j8‰›ÛN»v¤Öjãfk5E§à#¾gôQs­>Œžñ×*à› zzBÈ'0ëöP›“}*=0uCŸN{pøP9é~NÅàP‚{ Ðz€ö´ëÃé,Æû“ŒyÁƒò§=`}Òƒ‰ú zOÁ»< eôÏ1 +0‘Nk + +endstream +endobj +3 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +6 0 obj +<> +endobj +5 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +2 0 obj +<>/Border[0 0 0]/Rect[275.58 25.92 336.42 36.48]/Subtype/Link/Type/Annot>> +endobj +8 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +9 0 obj +<> +endobj +10 0 obj +<> +endobj +24 0 obj +<>stream +H‰´WßsÛ6~×_éØ©h ò±¶ã\:M“Öš»Î$} )ZfK‘ªHÅñßd7owã±H,vûóÃòâí­Q›qq¹Z\ÜXeÔê~QÆe®üñKjÊ8/”Ïmœæjµ]$j³Hâ$qjU/–üVªÕãâ“þýªŒ²¸ÐY’ðó÷ŸÕ¿ÚÈÅ¥Þ<,Añúc”ÚØé&‚œÕûûȦ Qçz¿­úšåuõñg¦]GK quY‡e%rÛ¶ƒ ~’•º®Xj’‡Š–¹¾}`ñ¦™¢?V?-Þ¬`qfSöj¿Y¤Y ó}Ó +•ÀË$ï´Ø7‹ûü {™£Ý“-‹¶s’1´­lC˜79ˆ&Q"¨À ˆ‡ÈqÀLN±£7 +)…îú6É\´Ì`´‚é^Ö_lœ}ŽÔû*Jbö¤¬†”E€ùµd÷è$C~Y8m±X]ƒÆz£¾ëøkÛµ=Ieúk\Û90ÖƒT(ˆzø•Ä…CD\#Oœ²¯œ2çVC*GÜGÓÃúPOêv×Ôí}[WS;ô|ö1TY;—û£Ýµ¯]´úó©sé73'[ßJœÏJ•ye2¡^¼ÙÞ5ëu³¾êöé'uñþ*S—×WìÚÅÛ[KÝáâ¤0ªU‹œBc•÷Ñ*Ôv2É‘MŸ›Ø…êY;[œÊ8EHf‘fdYìr'¤ÒAíÌ󬥈3„èõ9A¤{©ƒÔ‚9§$”‡`äeŽ˜@·-Åÿ¼Œmj8ØÅÆø#¡;žÍG“¥å?Æ["ÌJ_f¥÷ JÉòÓ¼MŠ3ÓþætyGéZJ¾þó½ê€P”ÇHl2îÞ!Vî”PÆ&'‘HæOG + ÷’pŒ·/âÔšSŠÂ“Ò"öç„#ǹ¥äv +(pìVL °…x¡êàrí([›QÊò83D@½‹ í†Aê*a|îŠSBûLâŸ8& g’œ•ª™!/ZÌ*ŽFu/­$Ã%ž¬ ‚CyŠ»B:˜ +7)ÜÐâcK†@­É(ïÐ$+EGïR!XŠÈ+ßÎûßÀÒ—>± (m‹€¼¨ ‰Þâÿ',þ.$°ðQ9õ^}ú#Qk:Ç‘Çh#Ë}‹ž¢˜ÇEA¶:ìXϸ/¶:(1$‘äÁ;c…`J‰ê¹Š[Dé׳tä”b¦iÊé('a)ËT8¸S),^D sPX¸`ÑYö KFù ›‘¨-E!%¯a³c'3ª¡R8¸u( ©BŠ«Ä]á©ÈXDÂPxdÖ eaùøçn@‹uG8&î´ÏUP ¤´ù PÎ<§Z[¾>æ‹/TtrÅÙØç9j6.l‘ªUÌ fÈ$Üvú·p#ýO’a€§É(SÜ2T6Îò­t‚‘€eᨆÓ8…GÇ¥‹Sä®^ Ê«£t‡;³vY‚èlŠç}#U:KÏË£ö™NŸ¥ƒmç¶×‹qñæýÂÅó„ùb°„q¶œ‡Jš…d(²©‘bÀèXè]³ MDÕ64Ƈ˜_Ô*¢è¡ÁÀÄ£§ £§“ÑsÍ/MDã—þÒÖjh’*õ×h™êÞm#ø¡ïZQ=F©VãÓ[^o£¥¡QU¶öXáÆ µºgêx¬îº0†Ñ*AóÓ‡GöÈda$J¡£ µ.,þ­~em™¦s½;È“œûa:+Þïd£Ú4,¥Fš© ýØö!È~à&ùªëŠa¦iyWu‘‡Æíf-"➇{cÐ\ñ£_“&†*Ø ¯¾—Ä™9; L‘„ +³zÃcd2Ž\×êÇ5ÓÖí3fB"UZ‹ÀTñ£íFUW²©îd‹'ü{Ê¥áAzѨÚ^‘NÔ„ˆïvFNQHG·ÂߟZ/£+O®žçÎ~˜šQuí85kÒHMoæùW¨ÉæY5 ðóà›‰óßÝOÜì8ô5Š"Úã‘Šá¿5LªÖ˜Æéeÿß!gˆÌЫ]%d|#YOi2¼ö¡Ä6 $*MŒ}5.ÇdçqT72! +ñ}´ä ¬æ~;™©9 +Ù…$¸ñ#æwÜ?ºF±ô ~;5õtØ7êºë}»{=Ì¿êñ7éù‡cR†£LúâMU?ppÐÆè`4/-P \÷Ü»íHß.è•J‡»°x‘U‡À5[U i€^÷c;oµQ¢ûîÕöÐMíòŸ[5`ðÚŠI;ƇŽ½nÔÍ—}=µ‚J½t¾ºì†š>sŒþkTŸõÍåø9bøPU/¤Þ]0V| ^¦œ +0ï;£?0ß%Z0ÕG5÷rr×=¡‹9{Ï Ë¹”å3,tb’fNü¨ +Cªû^ž<-à’žÂr­î"Sâœ'¡+®°«›ó +7>­)ª¿úðK´ô?F¿¹Z©wÐÕ9Œ!û·$—AœVá áPûU˜búØ5zu<íÝÑy†/yÀÑ$-çìPOìÉXÂEƒq(I°×®¥¿FYøeSÆV"Þ3jäÔKC 9÷  +iÌuh×µ4o„[*ã*ä5ò Ç„yb”­+Q¸¤¿b!HVCW, ûFú½¤P7gž›P—©3s]îÒ/\'pw¤Ø!ÒØÙD˜ a}IéÂœ£·Ûꎪ wT£ºaÓ²r }1 _^ó)>T @wWݵ];=)äôAq/zÜqä± ¤ÒÅð(™l¥p}:aŽxÑeΆƒŒ îdÐàСÓáJ+ònŒ¨w)œÀeð[`α;`1‘µêˆÃgÄ)|n>/øµzà‚¦‡#„»nB)ÿJ‘Gºà© Q§ò"‰ê—°1ßY*sKé´œñT¦»ª‡žÉ=à“w¨\_pEDºÉWÃAäwü8n%,=ÝGü¶ ljl7B©pSN¿*¾v,5ïyÍÀ›š€¬Í‡Ê,¤2K®L× z{ÞT,ÁåêåF»‰¨¥/é¶Hõ"Kôƒèq%'eÊ"?„“wÂ<1&ÒAëfÇ”¦_󓦛㉿öA×.˜„RÐ1B.O¼ö¸†Ø׊õnµãš;0 ,#Ês=0íÐócøf<Éz­ªq궚r›µ„Bl÷b»49ìkz9èŽP)ç„ ›%,~aË]°H8F%Z™`†>Ï’gø~œU²pK¯Û½ô¾¬QQ¶$4¥=QE,]#Óó#Ê"gH¸!(¢íÛ&lÏÜQ󌾤pésoY{=>é8Æh÷_Ϋ¥¹mæÞõ+p$«D™X¼s³-;•ÄT⃫â ¤“ ã(¿>=Ó³àR¿T¢ƒˆ}ÍîÎÎôtKY²å +£xâ-¢ —E@[ž3M.J © +Ðv¹í+TÅ ããIËqçk0Þþ·˜ˆØŒã<¡Cs_øÁ‘Œ‹ÈýK‰ðCY"|!dóÄžN  +ùá=Þ;Ã!tìv®¡YlYôSꢓš%„0#‹:¥™—þF5Â÷ŒhžýÍŠ6L4ѽîhñ×tÇÜRl +´Wl9›ÈMà”ª +(%ýýÆÀ¯âã?G?Ï6rgDiM†®%¡3.hHà­Ù Eöš÷ª' ¨óËçív¦ne>ûüüG9žÔ(í}uSi&¹Y‚ͽ»†ž@%GÏãÃF­nðÒ•bgú³Ÿ¤`Mf‘ÕI·r|ø²Ùê2"œÀÆÚøã…ŽìŒ&³g4Ó ^ŠV-ax22ÅÀßsW.o ­ãÅý<Å­JK í®×Jú hT)ÅêC¸le¼6ý¼e)Ö³0Å,LN^EZ]­4KX†d¾˜•oÖX9õøF‡PM#dß±1[VÊb)eòð©" |›KUBé–T¼¨hÎW´Â‹¯m£0Üñg˜ÇRÂjº^°$}–šªÁ:Uù<…ólœtDÔ#Ž‚«c5£5£!#^ϸ«Ô_…dy¨„äY·œ¸Æ(“Á«ÔˆQ ÿNFÆâ"ENá_wÜdFGFžÍjL\FVÌXd|â墨D'*IÜ·‹ÕÀÍf<°ÝQ¨¢rÒ!g äááSŸEËÔ ¡1z¢’•w6Ê3ªó­È96 +£P?DiPã\)¢áúñU|[H2ˆ~¹;Ë»"DªÜŸ+Í +~"C߶+!¸ÊÅÉÖ[[cÞM©r)ÍvOò¿SÙì© ºç7lP=Å;™(Q‰9**v¯*c!³ E*¬]hß!”!ýš‹W^=¼&`S_¾2¿ƒýŽê~„tÍŸ¶×ߎ›J ‰æh7úqÔÿON<‰›©.Ê@ºiô3±pÂ…"ÛH5X¢,Q"©/Kê(Îeüìta˜HØí¯¦t¹´”nkìîå¥Ó™“Â’ÔÜ«Ð!½Â‚ÛŽc½!²¥ì~)–ôc+ñ'¤JäÜ.ÓÀ¡€À}ûå~Q®èQ¦e‰ ïSt¹/|§ƒMY":rÿ’‘³ê˜€¨–ä¹îžô÷´"O6ÝxN¾p©Ú$Ä¢*YXàâ·Öé d´¿xôb¢(öèGMb>\’*——Èd¢ íŽo#:Öýc"·º¶ãª‡Æ¯–Ÿ +[Mã xÍaöõì“]›š,c_¯ à~Õ@£ÍsÒ ‰âìyR.l^–\¢¡Õ\q Ý‹û"–>«„ ‘X#Oê:šjzÙ„,Q:@¢û’8çQ\åðâ2~•9›|àQ>˽Üt±ß$Ï°[”w‰·;±gÏ)ÊKöœ Aûþ^È­›U»–Kþ~ÿÄßhïçT½òj¼¼§¨Á‹K=É#rH%¿ZFÔ?[kŸæš­lì }V=¿;þlæŠí[›m{BË]è+"«\I¼")‚)ž î•}ïåÇ!äe€‹Ú‰÷6!/)xŽ¨Ý ‰§+Sãg£+·œ¡×)Ad}ãg¬9(‹62pÒ%¶×ŠA¡+lyoCwÂõ«9[°Û‘„r‡fl⎆v¯fçÒyn¬9Ó)±«Ç±_µ>§,›>*¸£(Ï¢]¯]RhÛ¹(@JbLy|ì™K¿4ƒ;é{)…€ðYþ?H¡ä¿iNI³2)’&ðýýM}¾ªòst¯"0¸T¯òcCÃ&0Ž,+šëÚ}²Q^I|ES™–ø(ðц+µ%üCWšy-B2Pë¤a.I’H&% YPUí¬¾¸œÙÀØìšcð¨8 + +&Jñû…Üo¢(4×íÐu*¡µ—1!ãõÐHF®é"WÞ-A +@º‘Øî2³†Y™.ã=¾âËyº#®h¶:ÒR¢Yî ¼±2-懆ÓW ¬n£I|ž¦7Tup.jéý‚âó[°H~¼ŽJVÓ*¶£ÃS) ,ÈÇ¥UB”Fè7»ö°Pʾ!‘ÕjT"•’Ti©ÌÑWdÿ`ܽ¥)q ÜX‘¤&8fJ;m£Z»ÇQ+Ÿ Tzƒ"pô³íjZU4‘k¹ø"J­ØtjPÇŽIp2šzLUsàöw58¸z$«—g45 +«}ò€•ŒÔ³T˜ñÄ-œI›ÂœÊ¬TU€Š­²ÎãÈ#$O]x€ÁNÇŸÓ ¼‚Xq±ô´ÂýÐx,‰úƒ¶8öiVZÅ`<ö XhÀDžáþdeH§îYˆz¢É¯y©NÒ-pG’)VM–˜’J‚zw™ +W%~Ö¶–…u-Ñ°8‚ [bÑ®ý7¯åáçBX (A˜“g–{î+§ YY÷¶"›]Ï­ÖÑx4$à¡0sb£¥µ›»ìŽÏN± ¯O g9Ún¢S7èÐh›õ¹W0 ÕÆ¢ºKÒ*Ê;çÊÊg»›Ô“«&®§xß‹_ c6"÷;}èRzÆepdzUÀïï«l O,¿Š>žÄE% jxϦZ~·›§Š‹Â¨âÙOÝèÃ7ÕíMŽwv‘K¹.JK8;~ò1q³¹yóaÿЬ×Íú¾_öMwŒÞ|~ŸGïîßß¼û†Ó¦^v©H£ðÒÏŸ»,r¢Ãª¿TïE?Éi•«œ#dÇe$$'óÿ„¯?âë$aô+J£ÏÑßþ¾ŒÖ7o~ÿWmÇ@KÔF7I—(솘˲h“ K}Oî@§r)*I¢w{¹äqêK– ãà^g3¾'4“„fÎK3˜¸ÌXOh&»03- Ì$40üÀŒõ\?Í´$0“" „3ÖsÝÌ´$0“wB00c=×/5- ÌäÕ]••¡ë¹nfZ˜)1­ÈC3ÖsõÁÏK3jBuñàÖsÝ7Ó’³™AàB×XÇÕ+M P9¹ _Û÷\½ÑyI`&ú¾¶ï¹nfZ˜MIsš±ž«Ž9/ Ìd9²#Ìßsý4Ó’À "ÀUákûžëf¦%\‡¯í{®_jZ˜A\ZaÇõ³ø£€çk˜‰qWÄQ¶Ä¡—"`÷©ø(¬ÌAf—J2gúíPï÷õ´ &+à „†*öbÆÛ/÷‹·ÃP?É0°*GÅ÷Ì¿~}BñÐ¥Yø×~k†=·F™(/ÇÞB…¬êc?ŒÞþ¶Ù2GÖ‡ì{®:è¼È¼¿‰KAÕBA:w†lKÏ"®PuÅ ~s/W]qx W1‘B¸*uøÇ¡çmA¦JˆRÜ6ÆŸÞöc=ßýòå?äWËŽT7Ý÷WÜe6ôøU~lFÑ ¡ é‰`‡H á’QÒ%ŸsÊö½îé³aV¨7íºå²]S§®.o§ëkj!/R>ÒÙaÌÂ8õâí—¿?þÓ;šö¯³Hj‰8ž,,|ßd\¥Kœ¯KN×YÊ°vÐKÓ~³JpyØZ-€3¬×3êš;d[L4ë>úz=£Kú-º…~Ëãwìáá` œIäD´½Î¯,š.¡}A<¸fi¯ëŒu„•UR ©^ …`Ì6êŽzF_cJ%B ƒ±Ç†Õ²^ÎX$íÍÂzËãwìAƒÌÖk:JWàö)m +½¼xBüçÍŽ©&Ì/§©ÖþŠ ˜jþ΃!C5՞팄7ƽ1Á!™,™ú^·¶¿Vá¥G#Ŭ[%P,ËÛ"È¿¸ 8ÇT;§ÙNDõ¨æ§¼Ú¹½›N“Ú|;¡ñ`Äô¬=•T!ânº¾¸™ž >-HÀ”ùU€XAY™G!à€- ²À]‹Næ-£JXµ;§ÓìÌt*„äñÎ8ô¢å§ .î"£¯-µK`ܱEýœË‘(@r$¡(ZuùÍo·MÁÇV"±ôÞòÐÉ»>czWû®Kì^ ˆÔgœªŒò~‡QîtÈ +3ýÌê¥k°Së ‡&uÐDjê:ŒŸOqÐÁ€º­Ü£«`bƒãݯ^\nþ`è5Žj + +endstream +endobj +23 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>/Shading<>>> +endobj +26 0 obj +<> +endobj +25 0 obj +<>stream +H‰Ã °Ù¶mÛ¶Í϶mÛ¶ùÏúlÛ¶m{Íš4@€¿ÈÀ1¨Á nCÊІ1¬á o#ÉÈF1ªÑŒn cËØÆ1®ñŒošÈÄ&1©ÉLn +SšÊÔ¦1­éLo3šÉÌf1«ÙÌnsšËÜæ1¯ùÌo Zȱ¨Å,n KZÊÒ–±¬å,o+ZÉÊV±ªÕ¬n kúµ¬mëZÏú6°¡ll›ÚÌ涰¥­lmÛÚÎöv°£ìl»ÚÍîö°§½ìmûÚÏþp ƒì‡:ÌáŽp¤£íÇ:ÎñNp¢“œì§:ÍéÎp¦³œíç:Ïù.p¡‹\ì—ºÌåþë®p¥«\í׺Îõnp£›üßÍnq«ÛÜîwºËÝîq¯ûÜïzÈÃñ¨Ç<î OzÊÓžñ¬ç<ï/zÉË^ñª×¼î ozËÛÞñ®÷¼ïúÈÇ>ñ©Ï|î _úÊ×¾ñ­ï|ï?úÉÏ~ñ«ßüîúËß9g + +endstream +endobj +28 0 obj +<> +endobj +30 0 obj +<> +endobj +29 0 obj +<>stream +H‰œ’ÁNã0†ï<…%ic§aY)Q„@h÷ЂJÛríi±âØÆv•ÐWÛÃ>Ò¾Â:IÛÄqûg<óù·õO/:Ëx -a-u‰ÿþþƒ‘%þu>Kgö +å÷­ƒûíÏ9ßÖ<ø¢švE×ØC]£´/º3a–PDÝ·)FÃH¨K¼˜Ý¢`Œªe@É“ü Z9Ö@k\&䮎¦N¬Š»ë›-V%~ Á”¶mKÚ3bÜšNò<§iF³,‰‰Öu‰öÇx·'‡5íÉ`ˆpÓP¹ ’ÒýE×๓6H£Q_³¥Ù„ï)öÅí¯0ñ rÎ"gJßp>Fî˜}ŸF‡(ªâÊ ÆÍ㟕ø²B?”ÚøàúöÉÝ)ÊIúi‚<ØSÃÏ +NAA:øècÒ¿Pð‚>ªzO£P²š›Ý>+ð£…ØÅ0C_nFdP0®^ª°gôf +ÅôºÄ]"`Å6*àJøôüëCš°oÙÃ.ýÏ{çñt—¢^‹CÂAÇX»˜ß ¸Ì! + +endstream +endobj +27 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +18 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +19 0 obj +<> +endobj +20 0 obj +<> +endobj +21 0 obj +<> +endobj +22 0 obj +<> +endobj +35 0 obj +<>stream +H‰´W[oÜÆ~ׯ˜G©ˆeÍM3sÞ;ÎAO¤µh‹b£•w·Öî¦{‰Û>rF·uòvŒdEŠäð#9yýî^ŠÕ1{ó]ß)!ÅÃcÊP‹ +ü e(k/\­J]‹‡mV‰UV•UeÄC“]ñSÏÙ¯ù§›PØÒ綪ø÷Ó{ñïMaʯÖWà¸üc¡Uiò¶€žÊ…Òà¬óÃv±kX¯7ß3ﶸRPw…2 Qo»é ˜ÿ)q»`­SüÅU߯Y½mOÅï?foà±UšQV™¶%Üw®yQeU;‡6{Ì€3½³†ÞN^!Xôº&I¯…ò%”ù%Q¦ Æ +Cê)r0YSìè‰BJ¡»½¯¬)®,œpÝå¿å_Ui+ćE¡ böP* +¼ +æÇÀðè$I¸@+·à±Ýççç¢ö¼ü{Ómv¤eó¿Ëf¿í£X^@ÕWUzƒˆ'' Ô PrŽhZ :ýñP(.ß/ÏÍIÜi›Íã¦Yœ6ûŸ=„Ê†Ò˜Ú ~7ÑùÜ~'uF7sñÕ÷çlÖ i#÷úíös»\¶ËÛ}sÞ¶»“¸þpãěۆvýî^Ñí0eå¥Øˆ¬¦Ð(áœD´¼Øf(“Ùtµ,•÷¢Ë¬.òSF(5BÒ«t—6:¸amijYÁÀl/3Zñ¥Eˆ^ž“TºKdÂ’’–Á¨C˜À¶ +J¥Õ ƒM)¥ÝÀÝÇ%Óá 4é1z£/½ÑÇÌ¡Rl=qÍ©ÊÏ\û‹Óå ¥ë*æë—Ä.sh> ‘Ø rî2g+3e„RÖ¤¢ÑÉÜ„1`ðh$|Ü%cˆ·ó¥VrÊ@Q82êK7g sO ¶F+0 «¤&°F&Ö§é.¼M?ŸÞmVgŒí&?`'PÎÁ¤I!Ƽ†žS¥¹0N™®÷I%Ÿ^ÑD‹¡ÿ´&ÒI‰Cð™j3›ïð`¸E=ζÅy¥6XÔÐ)Új“ g%š)$úaþÄŽ]IÔ¸ªí‹ð©|•]Û4¡SÖ oV›Ý‚9'®¤ö(Mãû­hùŦ |Ä×ë6¾ûÇX‰M+Ëru¯ø·cÅýçh¿cÇ驉øÓQ ¾T´`D9ñ%¿Š¯IœJñD::8+!/ò=-ñ€Ë½ý‚߮ݶÄêâËžx‹^™"¤“'ñ¹elù#yâIk>!A¡²Q˜Ý±íZ^GiÉÏ\0ñ†1•?‰ãþ|ˆW²Í‚ßíÄçVœSµç Zóm“¨ƒlÍ¡·Ê[l<»ë£(ûzp Áìã;wú´ùϸL”3E)EdsäÀuŒþHØ)d÷P¢Ïqœ–Ä%‡9êícÈ;à”.&QKP-å«ÍñD¿‡ØŽÔa€©MbY9-‡d–ÌõÚm„ /Ûǘ§ÝèËñD¾Ÿb²Zò¤L« Ž« Ä@B‹;a·Œú«MçßPÔŽVgªdºüú__]‘̦½V¥—“dÇm5ÅýÓM°ÐÕyUñϧ÷8@Æ<}GåHg¡¨›´,ÐÁeû5@¯×E¬âî¼kø=í¹â âMf¸ƒèÔA0@Ð6Ê#•P¾â}U¡Ø¼0øé7Öoî¦>í¦ü‡oç†B͆‰~sEÑÞŠ‰£%¾¹Øb¸ÉÁw«çxËŸ1,sãx©²xÓRzb¦çLÍÔS3£ +×w&¦†äÓ¸”-® ¥5Ay2Bà!Tâ‰>éë‘ßÞWÖüQé?P ²’i83ÒYa+‹ýOòT‹'70 fD‹QÔV5UÛ„vŒ´ÉFŽ‡4’PjVèOˆ4)hp¦¸ðn¢ŸÈñ€Äè=èÕ{çZiŽAÁX­°f)ÚQSØiŽ–8 ;¢Õš‡ö‘6¼6ÙÈA¬Y£·€kôgDš4"òA€6=1ÐÓã=§w"è}œ£ dÁñ$^cÛ±Åà /Ã@|jPK5MôJ$ö ÒŸÐ^B:éêÒÀ‹Át$!]c÷ªÇ÷5ÆÛQw ¢åD¦s{ÍäÕÜiÂ!+u7cŠË/O½É‘N'NäР½èá êgxˆžšÉ¾œBµ{ÿÔ7@]fGV~*\€ +— Â(?u™#´‹ PõT}ªžƒª/@½Ì”ÒˆªE¨‘i-Ñ&²òd(-ʶ§›ŒWLƒ„Á¶'GýžŒ|b A¨´ù°:v!''DºÉzÞÁdà–|«šÃ§ϛɩ‘žÂJ½ÛÕ–¼„¥.`© Xê–º€¥.`É—°Ð-d&°¨oê•×sT‰ž ê%’×I½§¢ùº¾Vvz*Ñ#¨ÿ’_-;rÝFt¿¢—ã…F|?–‰¢B`ËñtvÞcqÔÓBœü}Î)’EÞéž$€3³˜æ¹Å"ëÁªS*0®×<1€F¡fö;/­ÿŒ¨Ž½ ?@\l}7ÇOìl2sÚà*IÌÍ8~óþ›oÞ¾9¾{ÇÏàg7w࣠ž_ÿðùñç|C¼GÜPçÑIeçï~üñgrŒ²Z¿}Ä0rÜõ?<>œÇâû›Ÿ1ª|úÌѤcBqï1W¿ÿŠ˜ÅqàmÔüêŠÐ·›?0˜ÈYà[9š°;ñîÃç×ß} É„{LL‡åón³‰q·÷ ÆŽr¿WôûÏ«Pn½©éÅ- ®Yˆ8äƒè<~:\ôîõ{²ÀqQ°<ïÃaÙõþ¯GùâÓ-†.„ + ÒËTyc»:HWð!B¦“œÁ‡ÀÿÀ9l>$ÐI”=x ÛBzQÍq‹1åYw8mc.ò=U¤= DÌ"š *#æÓvw=-ÉTk†nÔžñ2˜•1Œ«€bâLîdªœäŠÐ®†PÀ„´?m,^}"w[D«ÖÊ>þ{ômV…¹¦CÉ_±é€² ]|‰Ð…-œOZÜž^&S]RÁ´Œ\wãCaB± H©âܲ†ÑÎöK‚ÿ6¤~‰db¢Ý!4϶ñ9ãq÷}áõ=KÊþ®tJ 7()ˆm&5Š.Ë3<ëL·¾ÊÍÐË€WŸR;´F1Å€¼rƒ…×d¤B7Å» ‰QÜ¥ÇÿÕ áMIêóa Šû?šÿs»„¯E.é\»$æÅË0Oml‰úÛ°ø,†–ûš¥!53œRs[ã.E%ÊyÉÝÎÌej÷ e“ƒDªm¿ÁS +;bî†:jÕ5ߥž´h†ÍÎQe]À5•—m–²|±â+·wïxjƒû›1ÕΠÀYä²5‡¯›ÈS00ÊYxm@. *ä4‡ŒŒ,Æ„†×œjç­”Lѧ +-b^ôpÆ@l +˜)Á¦é—5ZdµRø@5ôãôŒ¾¾—ÒÍ*VèU²ŒÖ%1Úzöj" æ.‘4aéI l™Ægi>˸ÙPß=§MìOÑ郓Mm ˆD8+rjMC†%M„q)H†dçg+c"áÖ&\² s¨)2¡±×¨fÝ_zÚþ&7±mní3)Ô´Avº 7òËv²@usˆ*Æà`Z›©Þv )·‘þÀÚƒxΩd­ù'ÀAÐQÉŠ¢œ‚Ì¡0¼;Ân:.gY˜…€#´·®V17$:uJà¦xwÔPi\X@¤y†m³ÜçG–ÝŽ ťͷNpˆF¬Y"@Ï%^´‘@*RÑç’HWÅ{´'ä˜Ô®KK'Ý|Y$_A6€2 H†6+ršˆGO(JôÂx/!s#C^*Õt‘€zðÎPÞEÄslH{Äù)¯ÌQ€I^S{v>,"Žõ.-"ð,N!uÎô¤”D¤†)q)%™¥$VQq)%¹(%m»_JÉ@F¡ˆˆuDTçyRÂRJ"Ân«ÕR2ŽÓ3úš¥d‰áðš(LvzmÓkSÄ¢s³».2ñ`×ÎÆë~óˆ•ÉañÛ@¦ß|B¤óê·i¦,zº±Îð¨ÔC×`K^Ý婽LwSôŒ¾~Æ]¢0.îÀêŠ!28e®9Ç’u¦Õ9Yœƒg`äY©s¤_\vÅÕ9QÓ9ø¡èšÚ¤Õ9À†éœ~ŠžÑ×Ï9‡=^Òy8§»çe{ÂwߨȵçZ#Y\G–çA +ìîÁ-H²kMœè+"O4iY£VÚÝ;ó¨ÃATC?EÏèëçÞÇ´º¾³à–™qñ‹ˆ¾<•¹âœ€Á,£6Nç dqÜîÚ8+Ò.ÞvåÅ9¦³Y9_–u‘"¹8‡m-Îħ¨súúçˆB¦s03E†s¦Ì5ç$ÌaÍœLç°óû†tç¬HwŽìZ_Õ@Ô)Á9‹³²yâôy8Ç«sÆ)zF_?ç*DâMçt`qŽŠ¨sTæšs|#í‹s:²8ô' ÝPç,H¿¸ìÚeNGÔtê‘ê²Æ!s˜"8´K5ôSôŒ¾~Î9T×ÌéÀâQç¨Ì5çÆwmVYœÃi§!Ã9 Ò/.»ÖÞ>5Ý0sf +–™ãWçXfÎôM?Dèëç|C}v!DX|£"ê•¡oÚ<‡Ym•Ô2oȯR)‚pPÝ89èXN:ÁAA!s‘Â8:u›Æ8SõbÒïJªáý'è=&Trkh +¹t|Øn¾=¾ûÕñïÛÛãfíï#((Lgôe\#e¶ŸTêχF )Nó€W“¹H¶=ü5O%ÏCV¬À”Ñ… ‚hLh'÷MCäá¿ï¹Øqî×·¼þŒ;èöm•·b$©Šœ&QÒYè|öØä`™Y _`fÈd)Àž”[ÃtPÉã2›¹·`Èe0Ï[ĖĽ#2}T6 ‰+!}™ŽL™;±Ê"‡ˆY¶ä8¼`<ì.• œ ‘I¼CN,Jcç@úÎWsëåÎ9AÔa³ã”…9Ƶ©”¡¹×Ã…,­S ”ù½ž´3ª•±Ï3‰I;bøSxLÇ_¶›?¼>þÂL–n*a©CN™61!ED7ÝÔ—\èYŒxÆ +€y)ãràÆÁÈiÊ8f›Ìq¨¶y«Aû»€˜ 'ðž“ÇÄ|…ß]<Á„äCB‘Œà±F*pc¾r‰q/EäF›¤Ëû-¡Lû¨¼œà̱[—Mùý¦xþÍUÒY•·åý¦‡÷ïýfmïîÚ÷¬’ò̾›Î[¶RÔSûò°AŽí¨¯OÞ}S¦—˜Ýû §ñò~µžsÏÜ O<‚g&P,™ˆúšå Js¥ÅÙ5ïU&u‰(3MªÄCÂÓÐ4nihª”È®t ø ¯+áú(wõw°º`[*¨QÙ.  @‹!["^óˆ0Žñ%/PQ†üL T‹:¯»ÇrÄI‰¢nnVå#ôðèÕdó“›Ï¼þ’l:oˆc@1×|yÉ|5#ÝЮÛ#÷4¯µÍkC F^÷õÌZÚœý’ט8,›¼äõ4¯ ”´äµ-¯¡*°"õT©H»¼¶èoI×H‚‰´8Z‡Î4ÊÖ¡–²¤u¡Ì‹B\ŒõˆÖD$šSA‹õ‡]$ïÑûÎ*Iý9ø„®¥”óN„ªpN„`·xLí2Šè¶± )çw@×29Œ{ü›öjYªä†¡{¾â.™TÛò«— Ã2•T†˜Lîfr'Tùÿœc[’X+йö‘ÔÖó4´"Cø­ìæ½Êª‡<Ú"ï%T¹J¿WRÄ)Eø˜[¤!z+5t»Dy¬S}œó]ðÉ6¦ cboJ‚ÅS™"G°%ìe_¢ —Ö½ÒNiCß…M¡ˆžÌD„ØÎ.£¯õ`u¤Axœì7TÃy##¹—ìÓ²¨ì*Q#&Á4ñàB/ ±Ý¦€ÈgÏš +üX²fv*ßB›`¼JšQj‘®øq-Ø$.Ò–‚íó’ìûm^ey¯%ül ÏW¿>\AØ6é®Ì—¸p! ëŽbñðc‰Žë?žÿþïÛ˧‡ï ¹Œáä& `#Î}¾º~8?ýàO7èã×ß~¹\¿}}y|â^d¡-ùï“ùDŽÓ—óËäAñ¯àA¤Wô7ï@úÏ°fkæ›øöÌŸççó´8ä„3HŸ€Txsð÷{žºXÞ—¹ÖÃA`2?¿"ÒømKÏY|¼<ºIè õúôg1=£x…Û˜Yû°„6vð´¡ä…ÑøŠGRœmÁn [Z‘Ésé=ô£¸½F5ä¦Û„áµö +ÓPd£ ’‰H༢%jÁüû„0‹#˜WwÖô„ÊYøò~ÐGA%Œ%öi¢°å¼ôKÄîÿýú×å<ÃÅÍÝ\º„ÿ0Ó+"MúN’2þ¢É¹œúXƒ’fHîÅËÊ +LG™C4X ÎO ¾c]TvŠ¨Ê Výè•Á‰ {4ã¾ÉKþS„O½qÃóê5{dßAaXó†2”©Wu”©ëÚx9;ÁM(:ƒÉ¦Ãi…1L+_ùÑ×Њ/‡ŸÐGc(sŠ»#”wtXÊ-µE®ˆp8ÀþNN€.‚MÐ4 ‘ð8¨x~Yµ—…@eÓ €š jâÁ>¡£òÎòÔ/´9E(7´Ê —±Àæ<¦V_b0Œqúd4¬pa²0<,St Pôºšxtbu ÓÝ+ÇQ³)¯Ž”Ï£cEluŒòê˜Êè†;Áå蘛 ×ãÁ1•Õ1->/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +37 0 obj +<> +endobj +39 0 obj +<> +endobj +38 0 obj +<>stream +H‰œ’ÍNã0…÷<…%ž‘&vÚH‰š Í,ŠT¢;äÚ·ÅŠc{lW }5<¯€“´åG,F³;÷úÞÏÇÖ™žµ–ñ +ZÂZê¿<=c$EïNféÌ^Àƒü½up»½šómÅ3ÏÊi›·µ­!0ÔÖJû¼-0f yÔ]›bÔ„ªÀ‹Ù5 +ƨJ4&Y’ý@+ÇjhŒ«ÐˆœâòhêÄ*¿¹üµ£ÅªÀ!؜ҦiH3!Æ­é(Ë2šŽéxœÄ‰Ä?êÀÚDûc¼Û“‹Ãšö¤7D¸©©\ÐIéþ¢KðÜI¤Ñ¨«ÙÒlB÷ûîö˜x9“È™ÒOœ#·Ì~MŽƒCU~á€ãæñÏ +|Þ ¡?Jm|p]ûÛÍw”‘ô¿M~ð`7Nõ?+85èà£Q÷BÁs>ø({ê-ü„’åÜÔèúQ,ÄÎ úú~3ê ƒ‚aõ\…=£3“+¦×n+¶Q—§'?ïÓ û™ÝïÒ7Þ§»uòÐX:ÆÚÅü¾ +0¹-" + +endstream +endobj +36 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +32 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +33 0 obj +<> +endobj +43 0 obj +<>stream +H‰ÜWËn\GÝ߯¨åíÁèªÞYF²=ÈD€c ˜IJ«mwr%Ç’<Žÿ>‡¬g·¢Y%›À0Ô<·È"Y,òÔé«K%Þ=L_]M§/µPâêí”–ä…Ä?þaTZ|ÁëÅxqu;Iñn’‹”V\m§þ•ÄÕçéûù»³´qKœ”ü÷»oÄ¿÷»¤ùÝû a~½1z±ón==ß¿ÝhôÃÆ/~¾¿½¾Û²ÞNœ½þ†±ó͉†ºx¹ÑâuֻݯPœ¿dIœ_³Öcþ#6'~¾|Ïê»ÝãæÇ«¯§WðØiÃQÝ¿›Œ[à~pp- +‰(¥Dì$Ü醴â,ßœ¥¯Ã'$‹>{ÒQôYè¸@™?rUIbΠÀb¬€zÉ'LyÊý¢”RêÎ/¥³›§\óóÿôâ~؈‹ë±ÈÙ¡u^ðO¡‘`þ™8<ÚIQ\AkWçÀØîçÏŸ7±ÏËoûuGZnþmÙ~¸­‰ÑPP ˆK.Ñ"#6ÂÉ!(ý$(uÑX &oýú~£‘¸ùÃÍ§í£¸üu·Ý¿Ýo¯÷îxï–*—k}h~o³ó³ß\ýüÌÑYóìÉåOÏ\pI¸ ”Ëèé‹ÛŸv77»›óÛO·»»Gqzq–ÄWçgÚé«KM·Ã.2*±“§Ôh‚B¶¢¸P&§¼ZtŒbœY¬Ž#ƒ”T•õØÆ +7œ[¬·Jfëšn%.)zºOQYmY,–ˆ””Œ²H†O9mrü>-Úè¶ÛE©Ð€µÝ}\2“þ@ƒPAP>ªÑ·S@¥8?¸´Œ®}äã +–Žë$Ÿ×ÿ!†SËÄmÈ!$z‚E®ì¤EyR1èdaZ „·;Z¾C\ŒV#€¢d4.áh+=¥° Zå°j·ˆ?¨:¸\× e«™_œ"õžhXW¨+É+PðÞÆKp9ÿÒ2€;#=E«æ>©¼i¬&šSë±—äø·´ÆE*8ܯ@y·è®"LJ7¬„E“#0«»C7q)«à±Â#:“Mybãùsÿˆ>B +Rs+@ik$$²°¥Nô +ÿ¿†ð3ú‚„‡Ÿ…âû¥¸¡},EŒk¤ùÞ"%1Pý#ùjñEîûÙw´:Ò¾D§tTÊY=4q‰,}{pžŽŠÆ>Ž$mNKJ&¯à›Ji YEñ +J ,îƒsiZùŒƒº¥,Š>[ÒQ ¥¼‚¯¥Á„ ¤R\ ³"P‘±JNC 8Y;tʨyû~pÅnGD¥ïà¡ ÊŒ$í‡FY׌V¤NO·imñÈÄšGœ^‚²³¦—¨£ UÌ—Á#I˜vó›2‘þ”ÃPèãa$ƒ)C¨/)¶ds,Äh©†ÍbQíbpvÛ©*ˆ¦íÑÀNµžE,GwV±W¹J«v›õ +”Ý«vñíÐ÷íô0½¸8ãB8¦ù#†©pf¸YFú…ÓL$Bw>a +Ÿx¹÷ d´q',ÿø±Ã0 QøDa)(j…qép›Ølë⚘¦™ï7 +%ÿÞ­«8[!€“Úùq}w#.A v:Ý{³ã…g×,ÿzý(›š÷›ŒØyÝ?~©äŠX¦2e´#žhÑo­•þ?üCI& §˜*¤$s½_&¦#&aÿ NÃEGã$Á0¸ŠÑ`H#ø.SuDÔˆÄ`D·Zˆ¡Ý¶È")PÓpà 6èrÝ¢"Õ‰j¡:yÅy±x&éÀGs#Bg2†Žµ!¤XaÜz¹¯ŒrLTàI°D³–a<ŲG‘ICQ¯è ÐCÌ _ľA²Y»9x–ǤH= +@cÊà¼bâlW„äh³œpæ]Æ;ISn:‚$ZÑ ¸E%0óºCi}àd÷ž£éW±oP‘êB5P]<ˆ!‡…NG¯"EC3q\È…k€AÓu°åþ"U]F7á\vÉnPT8Š¾C–ILI«¾œÎáñÓ 4¹mÑêDµP<Œ‚"ÓHoÀp÷Ž¦†BdsÁ¡iUD£1jŒŒ~F53Q'ìz†L¢ÀXë[d‘FNV ã`ÇÍB“Û ÉN4ÅÇ£(ÆȜ˽GV‘ê8É)éAÆ„”~ ïN%ºœA¬ˆ=°ö={ÝÔ›Ü6hHq¡(.A©H£ ®­MÄ<|×)KpSÑr +TÒIˆ4¡Š”žª¢íQdÒ@*RV€cSSkªÜ÷èHö¢Xh^ÆA±ÕöÿŸF#Ô…¨ïU¤I’iLÔ¨j™BÙ¬ Pè +‘VÑ@MÅFÈêŠ0Øx?…®ä‡}¨ç£Éô5hfIŨ/tvØçÈ(íc‘£èÑLå}Vâ ^£TøIYšJFò[£è8bÑ Hµ²‚¥ `‘AÖFÃæ^/£fÖà€G‘†ƒtñšeZ±h#Y^›ì|À¹ZÖÀYƒNÎ&4ÈÞOl¤ª÷ø ¼^Á½@ÎÔï¼WÛj1}ÏWøqýàD÷ËsZB[B/ ô!”’ºlkHRòû=3;ÚÕ®mtkh¨5+ÑŒ¤™sr]ó¾.~϶ ÄÓñUï趚iHO. †dQjW:âÛŽî¬z:ùÜQ.sre0cFÐpKÜ.5$ÆeˆÞ4—·ëÇ¥QÍv½iÛå·ë÷/ó„gZ~¢Ô€Ÿ¢Å[ƒÆiŒ%hæ™Í›ŽÒ T§QA*ærc¶ å¢|ê÷Ñ@P|Wø‡ýªLówã +P*Ó]AXš oóîìãÙÅÈ3ÊSVßíl{Ù“L’wD¤ñèz[Ÿ·?'ð¤¹*ô?toÃ$6úቆß4ëçÅõRCdèf³TÍãre|ó ¿’yñ‚‹j/‹?È°ßÍ3ÍY4"Ô å†b=^$+¯šóv»^ò׎l…zPpV¸Ù&qúrìm}ÙŒóŒWº“姉?ÂýIv  ¤+¢A8”ä‹v; + + ‹‡æÇíÒ4JœM»˜<^uë-!¶é;¨A^V@ñðÝÝIÙþCX7ˆKîAó°Ðã{¶­ž ÝLÑSßž }ú8UN£ +cE¬¦=GýR% VGÜV˸íÇ÷“ÚÍG—îÇàV)'ÊO¡¶'÷'ÇRyÀŠ”ì0¡Œ "O÷ÕìÛÆÊÃÚ÷}¨·˼ÁBÊ‚ñqg.ãó£t[R{“U ÜH2$6·d" ?Þ™ÞÒÐQã4Y°Ê2—)œ kµ¹ð®ØVV±žƒs¤†Ä¢SÄ+!O¨¸ÄŽËb5zCô¹· {eš!âE<ȈµÁÑ}^õ  èUÆŠeÈX°tK}•±Ár7RÉ=¯êè’DQ,%Ê #¤JÆT ”iÈC0@GIíÄ‹xÑûcú¬r‰&× ë U¾ðº5³ä>_½ån&œ>ï´HÇ:bé#Œ ™ˆý8A!*Wçÿg熈ñ £*ïGôyÅ\Ý¢ƒ^£&zaød±ÕÒjaøÂÊ‚I›.‡“U”yÇEg&¸{*úìßf°“$m„‚.†¶HÃ$~-¼ÄUê$ Èä(f]f¤ +ƒ[‰7µjJWsÄ0ÀÒkkˆ¾÷•Ÿ è«: +Ô—ã ¬Ãb¥4³ÛAÆLó„‡$Ÿ-«UI~Œ–„.¹¯u"v bäçﯧ2‰]¸ÞÐö+èéñ]2i¾Ì~‚ÏeF¨0pˆwËW~°È©\Í)†––Œü`'6ØÊÏTqïÙ¥.Љl÷œ]92½sd”#áʃ»ÄõŠ6„gÊÅU“×bð9ŸF~@eXÒiö©²~ÿ ú‰äÇâeqâlÂ'…CÌ™< ¢Gª?bi+ äjN\[ß^žóß_OÎ5ª + +endstream +endobj +42 0 obj +<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +45 0 obj +<> +endobj +47 0 obj +<> +endobj +49 0 obj +<> +endobj +48 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +46 0 obj +<>stream + + + + + application/postscript + + + Adobe Illustrator CS2 + 2009-05-22T11:55:07-07:00 + 2009-05-22T11:55:07-07:00 + 2009-05-22T11:55:07-07:00 + + + + 256 + 212 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA1AEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FUPf6jp+nWxutQu obO2UhWnnkWJAWNFHJyBUnpiqW/428mf9X/Tv+kuD/mvFXf428mf9X/Tv+kuD/mvFXf428mf9X/T v+kuD/mvFXf428mf9X/Tv+kuD/mvFXf428mf9X/Tv+kuD/mvFXf428mf9X/Tv+kuD/mvFXf428mf 9X/Tv+kuD/mvFXf428mf9X/Tv+kuD/mvFXf428mf9X/Tv+kuD/mvFXf428mf9X/Tv+kuD/mvFXf4 28mf9X/Tv+kuD/mvFUPqPnTyc2n3Srr2nFjDIABdwEklT/l4qiP8beTP+r/p3/SXB/zXirv8beTP +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 + + + + + + uuid:78A7A7110247DE1191BE81B4EC60418C + uuid:79A7A7110247DE1191BE81B4EC60418C + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream +endobj +44 0 obj +<>stream +H‰œ’ÁNÜ0†ï<…%.R'*%Ú!j[U€Ô½!¯=»Xql×ö*î¾Z> +endobj +185 0 obj +<> +endobj +184 0 obj +<>stream +H‰DLwÆï(íaGªíYÈzìîÜ`% ++›R—¹R±…u˜I‹Ì]Ûc–AÛ\kmce,Î` ˆˆÚ–©P㌠â0f€—mY“AÜ&…–uÃÍöë½ñÙŠK¶÷ç'yž÷}?8–™á8®4š«vU6›øFïuظU“)\ÌÍó²s\ ®l“‚o-S®©° ÷\î€àxû€—}ÎVÈ–”m¡hU·=Ö²U-+fõv—•gk/ßäa+6—àv œ—·oaY}c#û¸Áà +¼‡|i÷¿3X‡‡åX¯ÀÙù&Nx‡uÕ³f‡Óå ¸yVod9§}«K`é¬ç Õã°;8ÁÁ{þÏcéÁ±õX)VŽ0 V‹e¥ÿÅ$˜{ÇðV|)£6£‹U° +ÿ,\˜߬ª?¥_¸•'R¦%òx!¡ŽDÛ"¹üů-H®3[JPîáÅÉãL±¬S׫›±fú?n§Àø-H€XÚ7jŒ1íyÿFx|ø{ͺ”‡^ã™O/ÈÆ:º–AIývy7§­tòAðp[[QÀuÿœxoN5–^ ÷Sú%2!þ,žR϶ +° uP¨¼e L¤ü½a¤…)¹r×uÏ+š|$TlÝprèb™)¼'n¡}ã6x’‚µðü¼ ²ŠO·Ä2¸)wö­ž¸ð_ÎÇïþpINÑŠà”ñk±pJõQªê.K’×àSvF㩹Á&KpÔbPA@J¡gÍû5%·«Z¾5:ÐO“¶“aÛ Õéìèf¾$B﵄ŽR–31>!@ƒŠÂRo߇”­4ÜA¯ªÉ¡Šµe•ÎþÏ&¿Š wÒ€Gc]ÑsYŠàtu\|zL‡TŸ'áZŠ †rl¢p^xc‘‚Ýã°”°ñ%!†©>Q'ð–¬Dµ22øÈJˆ™ðšCÄ›¥›kJ€™ÂS@Òéž¼ÓHmJC&‚ÓbÁ´ªoÞ8þù]É4äQ®þ°h´'¿¨†Ñú©½,¤ñÞñ_=Âi^ß+˜Ñºw'‡ŽÓ/ÊÌ'»Q6Ø(/Nö ?ˆð+i®Ú˜ÔxÞ}vX3‘8s$aKCýï;ÖCªÛI%I¿x$GìÑ¢!‚¼¹³¡Iö@ÃCí_ÙRþXŸøîf_|€nIIÿNBá¿ø§õ"jè†MÝ2¸tÖu>stream +H‰ÃÀË®Ïƶíúl۶ɶmÛ¶mÛ¶];íÌüÈÀ1¨Á nCÊІ1¬á oÿ1¢‘Œl£ÍèÆ0¦±ŒmãÏø&ð_ÿ3¡‰Ll“šÌä¦0¥©LmÓšÎôf0£™Ìl³šÍìæ0§¹ÌmóšÏü° ÿ[ȱ¨Å,n KZÊÒ–±¬å,o+ZÉÊV±ªÕ¬n kZËÚÖ±®õ¬oÚÈÆ6±©Íln [ÚÊÖ¶±­ílo;ÚÉÎv±«Ýìn{ÚËÞö±¯ýìï:ÈÁq¨ÃîG:ÊÑŽq¬ãï':ÉÉNqªÓœî g:ËÙÎq®óœïºÈÅ.q©Ë\î +WºÊÕ®q­ë\ï7ºÉÍnq«ÛÜîwºËÝîq¯ûÜïzÈÃñ¨Ç<î OzÊÓžñ¬ç<ï/zÉË^ñª×¼î ozËÛÞñ®÷¼ïúÈÇ>ñ©Ï|î _úÊ×¾ñ­ï|ï?úÉÏ~ñ«ßüîúË߽ + +endstream +endobj +41 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +55 0 obj +<>stream +H‰´WKsÛF¾ãWÌq2!Ì`o¶d{+keˆ©M•“ ‚R !“Tdýûýº{’½{Ù-—ELÏtO÷×ϹxcÔö˜¼Y&ï¬2j¹Iê¬.UŽüáL•• +¥Í\©–»$WÛ$ÏòÜ«e“,ø«Vˇä“þí²N‹¬ÒEžóïoÔß»ÔgµÞÞ.@ úcêlæu›‚ÏêÃ&µÔ!-³Rv«}Ã|­ºüøiWé‚]½K­Çr%|»®£~”•ºZ1×I~Tº(õÍ-³·í)ýcùcòv ëتÃ6qEõCÕ*•ÃÊ<‡í´8´É&q¯ð´;ÛX´]¡me« Ì¼É š¢ ¨p'À‘cÀLIØÑAJÐ]Ýä…O”VP=èßõ_6+~OÕõ*u˜=*kåÀ+e0ÖlÝdÈ. £-Ë+ÐXîÃÃCZÂv}íúnO\…þš5ÃnÆ*Ö»ò¬ò@ÄWPrf”}a”9·h N®þxH-€ÓÃú¾9©›»¶é6]³:uÞ*êÌû2Lz7¢¼éòÏï¸Î»ïzN¶¾ç¸PÔªÊB½x»ûÜ®×íújhîwíþ¤.®/Uo®.Ù¶‹÷7–ÒÃgyeT§’’°±*¸*µK'%ÜJ“ÙªR}R¸ÌÛjN¨3LF–þ¹ŒzEæK/¤ÚCìxæIJ•Àèå=‘¥.ƒÄâpS‰É4ʺ(mk ¬3ëìtû̘0ú‰ð¤>²ÌÕß  B˜`‰0 +}A…n’€P)Ê™jÁæÕ™j_Ø_Á“¿â°ý öI@E¨ê ‰ÝD …tŸ¬üœPg¦$‡Rf„Ɇ +•„¯{N˜ðU欙„VY8'L'Î5%³jg³2ª;؈ŠŽ×>AÜÚ‚\Vf…!^„XH7Dˆ"W9Ÿ@Ä—¾šò,‚¤ÉKŠZÍÊÚÈ¥Õ(bRª®%)þ3)* +8$X Ü=J¤‡ª0“à†”YRbMA~/PNŠZXàAœ(a‚%D^Èø¾ß¿ Ô¡¹åZ€Ð¶¤âEC¥è=þÿˆÅŸ( 94|P^]«OäjM÷x²id9oIÅ2«*ÒÕcÇ.ü¢;j9†8ò2Z‡ÒÀS ªç"n€ÒÏgî(ÉÅ`tα;êÜ ,uíäg*Á„Åð ‚…ùPÿWX +òé GíGVCgÏFCµœàÔ!\Bƒ«F³dÌ"0Tžõ³JYY¾þ)bgÙQÇÜÏsð\¡!µ-g…r<3—’Ûúå5SY|&¢—g³`|`ÔlVÙÊ©QÌ d(Úþ%¶¤ÿ‰3 êßܵC—¡´Y™“mµ— XVžbØeMKŸ9ø®I&BJÔÄ]¢€ÃœQº,qÕÙTOûF¢tä—“ô‘o¹£nçº7É1y{}ÉpñÓD|,F(ÏãļÓË\1MJ¶œÆ +Sa’±bIÓ ”ô÷°S¯û~ÀŒ1ÎGŒg#-îD§q~>΢ƒÅ Æóìò–‡ÖVÝRš¶†5¯éÞÆÚJæX§˜R‘Hz—Êü¶ I•NŠ2|tò‘fàý½ìdÕÕ횀ÏuïÞð‘.uú¯ÔZ\Id¾C´¡ƒP÷LÝEœHˆ…‰†,²×FdG`ïÓB74oc”†£Õ bÙ¸‚†îŒ>ªÕGúV­ŽÇn»Ç‘v­„F‚­]‘$è¯ÕnÕq£\’×÷™H‡ øy—Rƒ΃jieôW9Nrâµw} dô+a]õ=µü˜šŒ" à°PP¡L‘ˆY­YcÙ:´“&Ç}1Ñá.‚祥՞Ô;ñ®»Q ³Ý +[+‡þù ùHßïY®\2D«£:Þò'‹Gƒ~HwÄíN&a3†<ÛƒP·ÓüI¿ë¶$*BOGÀã“æ]DÇb°EmÎç´Î¨P-"}W–G©=s +-§œºÝIäx +ô”â:ºJó%a†4¬È?9$\20S³âŸ“¬ &}¡F.XøJÄà¡/ '¶ÐQ¡ñ.â{Rî^.:½ ìço‘¼É /Z[+Z{h}TÝIÞD·ô8¢#”yüѪwoÌj‡·)Ô„E) +¡ŽòVXx}”–Oü‘3-u¥lå§#n€îâoÓE–6¢±Ç]ÅZWñÒfñ”x¬ùèÓ²ŠÉpš¶ïÕç–^aN?¦¦†¸!dõ~­6Ò…ø“QëŽ29OB}¦!þ=ÂÉ’^ïSCµàqTˆÒ»‰æâ²Cûå¾£È(t·ßÎõsU¬6:&ë·âµ^wV󦦼!êªWwüq (84pVâ1pîRm¤M«oÉÕ·€KS +¦FÄï•ürý±ºiGu/w4"t·‹ +D™káçX+b¬•c¬ùYGcê±vžR'íÀH;`¬¹t!:;jˆw°·£úrz‚’¿Øm˜·#00C.¸–VPx÷†|êàÚS¿ÞÅSr½q;wQ* ñÒ"æ†Ä¨14ÊL†8Q­bds1£žÊ¢ÕSü»BCʸ/á±¢W]¿búg*uV÷©áðâ£"w¹ÓêH!B›}K„€81‰å–ö¹¸”l˜[PM¹îb`w+6B¨Kv{^±p¨³“Ÿ=IhëVNÃ<äô#ež[¬ …ÊÏš~1´á¹‡cfIóƒÔ7«Ø—©1µ~yë*2ãN ŸàÆÓÁÊôAÕúUëóÅàE„¤v˜>ãœBÖ†'kcäI‹áîR »¼{ +¸óÆ‚ë\œ?kS‡‘ŠzàÖBóGùßZ ê=äðzµ˜š£Ô1/¬qFDÿ4œeÆy¯æ9ñÍGÑ=ÈçNÚB»a%çÁoŽŠâ#×8{Ñæ†åm¨o×Q^#wÕ°G(Å Ñôxó Ù*ÉÃ¥æ?M%uiIÏÃÀÂÌf%ÏÉ_HO«©§Çü¨ëŽg%ªÕ<¥¾fjɇթÛM£‹Óû-‹Ûˆ¸8sÁ”nÉHxsšÆ+}'ó›‘îúdULo§p*ÌhLÁÆ䱬Z.«lËQíÙVîó¶í³8m;™¶D™¯ð$ ¦®<Ä*+O²0e{`¹­*þ&2U”_ÈR~$Œ°“ª>–ªëUÃó2‡|Såø0pßvBR¿ùu€É Ì5;&Ÿ¨‰ $}1|8ÉžJØ'àücìFäôkM!ðòP!%Û£(bŽR‘€Â Žn ˆ*©C·ÃıŽ¢Àmüxk¶ëø#[ñ«“á@—–óûùœœç Xm‹­L¶²ÇkUÊbk—›X™œ÷MyÅ?€]Þ xËâƒ/0žJ†žM,l5 N†]ÎïèótøþÇ¿q8pD—‡¡ËѬº*ÇÇÐ,Z3t9þ©O|:¼nN罿þôÌ:õáù£ü9fùó×>¡¾1“áØs(óue$bc|rÜ|Œ}àÄ® R ¢V&TàÏOGùø sdÇú‡Ÿ1urûï²_fµŸ?ÿñëZ9Ù“úžãt÷/ùbº“sgŽä2ð”îcùçÃ{&;ι‰éV´ñÍxÁ5òÈñŽº‡š#4µ÷6åÅWSÞ˜îæ`!ËPv³xfø’†Ò'± +x¾O耩ÑÛ«-¿(EèEg­ dXAÆmÕZY[¦Ì+P›ÞXÈ°a˜²µ²¶¼1[’§\ÁWðøVì:*N7‘ëi+b¦ª 9Fá÷ @CgÝÚG)Hb¨"ò3:Àq7ö¤õEÀkŒ¿°!i¡÷EâFN7M–˜¸!cHe";Nrü Ë_E¡3œ™bj­á4f±1LòûÆÃFLoG€‡œËˆêü2Ìà!EpÜ„i·d¾;´ªëfÀ‘zœ;Ñ0bl²F+—'ÕGpë üUR2Ö±ØìzL)²Æ\€(œ&€Ð=MàdÐ2ø—]ÿG„ +q‡<:ÆÇŒý[ŒThÊò3-W$íˆçü*Â>^Jy…c¦örI€wüZ†­Œ4}›^ ˜¼ÀRƒŒÓ“Lï°9Nd_ê"S”Òqâ@¬8Ò†/élõõ>Öx¡pùIMà\ )ÈPX”rÒ•ÚDö‰Üg1 È"t T$”G.×Õu‹×HwEEj\ d¹J•‘ X_á $oœWg˜±ZÌ4Œ‡&?}(ŠÇ”ŠœV²»BPÒÌaö‘jç]Æ‚6¯Òa"§ÃOý½ý-䆥åéÉ´¯¥÷-⡇·7Åßøêœ?þr~þzþ¸ïǾ~ú|þîýü€gÊñA~wÇ}öhè¿üãù+ŸÓãûÏOßøó_ª¾8´åw¨—_ñ#¶ý¬yxùãës·¡¿³òúÊÿaO¥¾tˆ2`„•þäÑcaI3¥xAŠì ÐÄÁ‰`Ì —›Y:uK|‡d³( ig³Q‘™kxLŠ3Í>¶h³Šíe£úY]§¯¯ªà®~ÍdÜK©–9E s5=¦Ž æ&r¹™%s²/Y.™‘rì±¢@ƒúl¹€¥Ö›ÔÏô¡ë«;¸«_ÎW_†.ƾ‰ê©AÄÖlŽ:ÚDçE9ùÐG™J„¹/븄ÄQ"ô¬'A8vDÉÀ÷&èñ0ð‰k7àuk]o.È‘6ïî ˆ”Í +¤ãÓy1#:te(ßZ1wtí “ l×|JCÂÀPá—çÁº:uàû(¢_@ÛeGEßÛ6’69€¼\ûºO•(ŠâD¨¥é^ ”3‡=†QùE–¶Ö ¢ˆ Ep.R )ñØ °1Æ8;¿Œ”“r8i1*ÜG£v S%Êr ûB\É©©j[³Í8”·G +Ö­Û¡žNÙ8I´¡å]4íD9~BFE{EÖyÀ Ty¤85²ODxŦ†(WÇQd'ðÚB4a-¤g½ë †††¬'llœŒ0RmÈúÜjwŠÁL¯†ëÁåî(¾@ ªM‚£‰RŠ”‹\žPƒUZhö=[6-BLéqÛÀ9e²þ7ytÒÀÜu°ïp„«ááÝiKñÖ?l§6÷¦Ön¡'nŽCeì@ö…Ô:´B¸P›A.R½¾ne³÷ÙVBß7ŸýÛDØͲç(8}öe Yàdzß$=fP7Ó…®G›½»ÛÓâ I“¦F–Y¼‡BPÐy[Èåf–Ì È>o©PdFŠšB¿™k¤kÁpØ‹Ÿ\ ?ÃÇX_]Á]ýš;ÀSSC°Ì)br7&¼¤ÑæîD.7³dî@öY*:0™ú¢ÏuFÛ´L@ײãÏýêd:ÐõÕÜÏ©aâ¡„b9SÄp†Nºudp6‘ËÍ,öe_²L(2Åî¼™æ€'2Ôl©€°q9..ÔÏô¡ë« ¸«ßuÚÁYâ0#@ g;ÇD.7²³ø—m¹2ëoø¦sˆ¬ñ–Wg»q€lKmåâð3}èÚò_¿§kÖ…-ÆQ„KØäMa›äs­FØ +ó¶Y:bžÂ–æJ1º6£‰¦¦®Åáñ®ù©keŒ¬U`©ÚÔ •¨òU³æ }Â.@0¢™ 2w¨ÚÌ®ìÂTµ#ªóË0ßVµÐ”ªî‡fÈR‘©bvIFýM`hڄǦ$oDä@–ˆL¸ä‹Ñ´ š–ÁÄ`O3uš )ת‘´PE›]Æ8b΢À:JŽ¸ÏLD yCÏ’Áœ£Ñ³ÙaâÚÜÿx¯–ˆaxïWì‘ UÛÄyWÀ ‰ý´ÐÓ¢•ªåÿ±Û8ž"8Qu/]Ok'“qõ³Âàeã?Øeva0?K™G67€Ÿ•…¾ZÊœq0G+¥›ÑÙѲ÷%ò³-Y¹dÈâ=ÈsQOñ‡¡}™®ï_çÛáô1}Š›åóøÅïy¨åßáôØÜ/—ëùívþt»ò”2ˆ’"¦JRœ´ E• ùÍíþ7§)ݲ.€â(¢z:Þ<òp GvW'¦¨$P¥Ð…nWZ»gdKù<@ݺ9jcÆ)Áq³LÖy]Bã¯HýÒah]p‹JõX 6F¹ÏV‹ÂS9JŒ-Ø—×z@üŒ '5E¬r¹· +gȸY&8².b-Ñ/%bI!›DvER­øVê¬ÊS9J¼:»òB¢oC"¬\A r™{›pV3dÜ,ô`^‡î_‘ú¥Q.Ó¹A#¬O¸}oÓ—ò˜ì,ñª»ò‚ùŽ× †+ +B2o®4¼"ãf™@‹æu(ËŠÔïÙ¤¡FðCDMàüäÍÿ+Oå(ñJ‹vå}mžžšo`7Ý + +endstream +endobj +54 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +57 0 obj +<> +endobj +59 0 obj +<> +endobj +61 0 obj +<> +endobj +60 0 obj +<>stream +H‰œ’ÍNã0…÷ó–faFšØi5A4‚EG*ÑríÛbűí*¡¯6 ‰WÀIÚò#ˆÝ¹×÷~>¶Î䤵ŒWÐVRøùÿFRøöhšNíÜË‹ƒ›Í¿ßT<ø¤œ´y[ÛCm­´ÏÛ3aGݵ)FýH¨ +<Ÿ^¡`Œªd@c’%Ùo´t¬†Æ¸ +È1.LœXæ×ç·´Xø>›SÚ4 i‰q+:ʲŒ¦c:'q"ñ:°6Ñþ'ÞîÉù~M{Ò"ÜÔTÎ鈤twÑ9xî¤ ÒhÔÕlaÖ¡À;Š}sû;L<ˆœÃșМ¯‘[f?'ǃÁ!Š*?sÀ‚q³øg>í†Ð¥Rk\×>¸þ…2’~Û„à{víTÿ³‚SPPƒ>úu/<烲§ÞÀà ”,g¦FW +ü`!vÑÏз›Q «§*ì™\1½*p›X²µ +¸>=ús—°Ùý.}å}òxºMQ'÷Å>á c¬]ÌP% + +endstream +endobj +58 0 obj +<>stream +H‰œ’ÁNã0†ïû–ö`VÚØiÙ"%j‚h‡®*¨´½­\{Z¬8¶±]%ôÕöÀ#ñ +8IÛeÄíŸñÌçßÖ?=o-ã´‚Ô~þû„‘þ=™¥3{ ÷òzçàn÷kÁwÏ>/§mÞÖ¶†ÀP[+íó¶ÀL˜äQwmŠQ?ª/gsŒQ• hL²$ûŽÖŽÕÐW¡9Ãå—©ëüöêçž«߇`sJ›¦!Í)1nCGY–ÑtLÇã$N$þQÖ&ÚÅû=¹<®iOzC„›šÊ%‘”.ºÏ´Aºš­Ì6ø@±¯nÿ"ç4r¦ô çcä–Ù÷Éñ`pˆ¢Ê/°`Ü"þY/º!t£ÔÖ×µOn¿¡Œ¤Ÿ6!øуÝ:Õÿ¬àÔ ƒ>FÝ Ïùà£ì©wð0%Ë…©ÑüQ,ÄÎ úúz3ê ƒ‚aõB…£3“+¦7nk¶U—§“Ò û–ÝïÒ¼wO÷)êä1 ±8&tŒµ‹ù}`¹ï$ + +endstream +endobj +56 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +51 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +52 0 obj +<> +endobj +53 0 obj +<> +endobj +66 0 obj +<>stream +H‰´WKoG¾Ï¯èãŒaŽúýØ[,ÙÞÍFXgE ’è!%M0$e’²ì¿_UÏ‹Rìa†Ìéêªêª¯]}ññF‰»cñnY\|ÐB‰åm‘êä…Ä?þ0*Õ>Šàum¼Xn )î +YKiŲ)ü•Äò©ø­üõ2U®Ž¥“’ýIü½­lÊ»û(¡üT]ÛrSAN—‡ÛJP÷•¯}yØ®v ËmÄ姟˜vU-4ÄŇJ[,WYnÛv,¿ç•¸Z±Ô)ÿˆjáË›{ßlNÕË‹÷KXì´a¯w…q5̦E!ᥔð‡Mq[ÀÏ~ÏYÚm,Úö$£h[èXC˜7DÕƒ˜`Ä{ä0å ;ú"H º«élµp0ZÀôPþ^~Õµû½׫ÊX`ö]hÞ + €ù3±{t’"¿4œÖX,¯@c½OOO•‡ïeý­íÚI¹ò[Ýì·0:€Dü’u´@ÄF9sJ¿pJ{4Ï“þt¨4€+÷ëÇæ$n6M{Û6«S»ßñÙ#T.ÕÖú0ÚÝdãËX-ÿ|%tÖ¼¹¼õZà‚K¡\¦^¼ß~ެכõÕ¾yÜnv'qq}‰ÍwW—ìÛÅÇMåak•hEá -BP€+Šm<ñgðªÖ1Š®p¦¶:Î ©6Àdéžëè`‡sµõ6“’…ÚgÒkŒ^žÓ‹tÏuZ0KxCBFY á“(ЭSÀ§Z=rà`[+FB7&óQe&ýBM„Aé  ô¶Hçg¦-ã™i_8^ÁR¼9`¿¼»" #Ä4"± d€îŠ`•R­<‰´²0#Œ>Dt>î9aÄ;ÄÚh5' ))u8'Œç–’Û½À²[5u-|ÄeçkW oµ£ùÚ)" ᳠튽 +ä•dd¼·qNupi™€¢‘ž•¢W3ƒO*£QÝs+ÉðŸ‰ÇEJ8X Ü-Z¤…©p“à†–Pk2j•£¸;´—²"ïL&hBä…Ž×ãþ …¤æ^€ÔÖ$ò¢¡Vô?bñ'ƒ„…OŠkñÛR¬éK£Œ4×- ‰PôuŒd«ÅŽÜø³íè’¾÷NéLP)£z®â(ý|O!† 1†Ã‘¤Í°¤d2W*Á²ˆb‚…õàÜÿGñ ›¨-¡`ÈkØlÙIG9”2—Á`B&¤>¹.‹@IÆ"†Y;ë”QóñS5 ÄΪ#Giç5x®‚P€’¤ý¬QWZÓmhÄÆHø¹Ýµ»;ñ°‚E¸,Ü4e»êÄñq›Z šg¾åù/ôm?ÏîoiÔŒ„">(n z<柆€ +åé(öU¨Uù•Þx0¯8n*íò@­XU ñŸ¤;‚$ëÉÊ¡Ž 0ÇJ!M1!÷ Ç|8fŽ{Vµ¯È‹ò©Z΋‰¹Çn˜45mÄ¡Õãh +ô0¤Ç²ELy÷H9•(u wBŸ˜8Ñ4å|²-kê ø—Àû0µ«È)€°xKY¤F‰ WD»ãEsà§Øf›v'>Q^o:¼5ÈäŽÃ9û]WáNB’Í~ù¡ˆùC[š…Gž‡ãÿ†|=¯y«.ÌÙË%1áNaúÕè! Šô‚#ç—!µxT,áTþÀ–ÒRªoØÚ;Ü%Ý¥øïo@bgE¯^gõ@NE5µ3t`izeŸ•Šg—ZîåËÊQ1¶º Ö“-+œ÷·²ž(RíO\ ǵchA™ÜÌŽà>tVÍ uv Ÿ±“ÿOÝ'ç­Ñ‰ê¼)à¼õ‚gDÞ6r¾QžÀ¿,£Èƒ"{—ÄÞa†B0)òÐym΃ÖÙ54¾âÿ®uÿ<ñ”–À›ΛÈïo9ß(ó¿–µÀƒ!¶Ë<ñâ²sÞñ”×;ðpðÏÀƒÖÙå!å@'J¾ådí?Ø,&ža„%N§ÂƒjôÙ$†îð +XÜ„o1æ7qΊ¡­Çû†_{í1ïB̯!ø®™h̓¿Jø +Ô(=í=µ×/Ì/'€ßE ´O.šyÀü*pq§XçÐ(§ˆH I -¸¶C¼øŠ/W p³éD2A“#œƒäÓÛi¹+¼ÿ’œøPìK*V;"”b›ù€É\£˜Ö6Ä¿&ÃFÏ’ÂŽY Ÿ¤»àî'žd9û$'IĬã/uÊ)à¥|äT:ÇWÿ0ÁrG— AŽ£ +A䌵ó? #~rÍÑV¯°?x^3HÃ" YìŒõ×Æ ðñf9A®&wVÆßF÷¦#½a¯é”Új[Úf`à¶rq¨?À*¨{@ÎrÍ`ß&ç“`YW™Ñš6ÂB6øŽA§Ž¹CØ€¼ŸyÀÕǽ\Khz–ºÞµàÓæŠ[¥Õ@•ÎTÆD¥î@™rä|£<Ƹ,Zr ;0D7˜Ê;ÄýKÓ÷ŸñòO{ÿVA³kä„ß«žóðŒ[s¡3ñ¦yrä|£<»ÃyQî±á±†ªöRkȯc 5¼)¼á´„¦×(tø½ +Æáz‰­iHà +úx”¹ÚÈùf™6ë²*G±MR9ÑÑ<Ä:r ÓY +hÍ®Q ýNõ‚ªdœQ”E‚à'ÜWÔƒœo–i+‹¬ªñ¦+bW–ðÐ!‚C¼È#iÅ4ÃPüªk M¯Q–{|º¶UË‘¶TÅɹ#5ämGÊÏy-8RAjÙŽ´±ÔÁ3š#å|(8Ò†Ú¸™fHÛïdW®†TâÚƒ!5Ä iÃØÛsÙ´±¡áœ;Æ&Rð£-A=À©ùÑÆ’+vùQÛ×óW;ý†ÅëªÖÜ\Ÿ!îaµNµRðoŽ˜#mxGz>Ð÷µc×µWꈹRÞPÍWߣˆO+$æÍ}©#b"'ç©'¿GÿžÖàš£ÑÞÀ®”y”{i¦”óÙ·)mh¤Zó6¥ Nñh#¸ÒvðÌ5ƒ-eŽ(ÕmKÛ)Œ§2µ¥Ü1G.fKáa<;JýU©qc`´Ilȯ}éO¯/ý×óçÇ_?±'EÙIñ»‹UÞ?¼ûÃåòòüËç—×ozVþŠ6¢&âšÄô i3Ó$GÞò¬ÿmNÓ¹µªÙ1De¥1µ­{ØN¹·ìp{)mÙ±š^#×¹»ô×…;©Ž¹R$pUaF®6r¾Y¦Íº¬ŠÆÝÛ$T³„Yzà®g¦æhÍ®Q ýNõœóJYn±3eˆ3UN²G¦9ß,“q¾VE ÑMV¢ÕmåY[Y77 µ#Íá$X M¯‘“~·‚õQO4räJ‘ПÎrDŸïÈùf™6ë²*r°ÛâÀ+ÛöÝçw±ˆßÀ8¥Ã&+`Z²¢Àù}Êmið&©EEP$ðD<^éðFÎ7Ë´µEVE÷nˆ]æV° ¿ìx´;E…»o5¬–Ðôq¹WÁ'{[Oåñ‡‡¼­F¼Äö`.GŒïè°ÊìGéYfb×zýøÆšîgÿõyâ2re/ÔO8ñBë5䲂žæÄ“]e§Þp½. ðÀoŽ¼e± ›Èpbn±^˜&ìkö¹-6uø²žƒÅ&LfÜcÃw!gÛ[âV‚Ç6Ä=6ázžÛSΣSöU× âHíÛcdŒÿÁ<¶mìù«­~é±¹Ü-±I¯)xZC.é°™9˜QGÌ«5¬*1"!Oŧ%æÙëu…›$ff½¦hv†\aç)îݼº#ü=ì±ùüëÒXõá†(û¥ yð4±–"¡ËØòyöÍù†ï-ÜócÇ@DPŸÿí%˜†CØäË4‚”ŸGÎáRÜ*§‰¤¬ñ¡0D5‰*& ÊN´¢Kµ5 íÕZA³käy¯zþ0ñEž³F¦ LÁBä…S9ß,Óæ\V¥È"¶IܯAm‡¸ Ts ¡óýówÂJhzé÷*ìÀ짼¦{² \%œå¸âj#ç›eÚv@VE ±MÂÕ$– Ûi–H€l÷0oY %A£`îU0ôzš§ªHàª<«œo–i÷º¬j±õ±MB©æ×Õ(HÀ›Ž­: ZBÓkzý^ël­ó•+â\u¶Ì9j±#ç›eÚ¬óªt¥²ŠØ&áÿk¸ÿx&3Í@üÿQi“`%Vz‹ë÷*øôð§¿ø·Jœ + +endstream +endobj +65 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +68 0 obj +<> +endobj +70 0 obj +<> +endobj +69 0 obj +<>stream +H‰œ’MnÛ0…÷9,˜);u –‚ AÑ.\‰xÐäØ!D‘ ICŠ¯–EÔ+”’lçYݽÎ||$Þô¢µŒWÐÖRøÏËoŒ¤(ðýd–Îì<Ê[wÛ_s¾­x&ðE9mó¶¶5†ÚZiŸ·fÂ,!ºkSŒú‘Px1»AÁUÉ€Æ$K²¯håX q‘3\MXå·×ßw´Xø1›SÚ4 iN‰qk:ʲŒ¦c:'q"ñÏ:°6Ñþïöäâ°¦=é nj*tDRº¿è¸®}rûe$ýo‚<ØSýÏ +NAA :øècÔ½Pðœ>ÊžzOƒP²œ›Ý<+ðƒ…ØD?CßnFdP0¬^ª°gtfrÅôºÀm"`Å6*àRøtòí!='`?²û]úÊûäñt—¢N‹CÂAÇX»˜ß¿ º±& + +endstream +endobj +67 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +63 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +64 0 obj +<> +endobj +75 0 obj +<>stream +H‰äWËr[ÇÝ߯˜åE*¸œ÷#»X””r¬*)D•]%{Á€ ùB°(*´ÿ>çôÜ)ÞØ«”Šæ`º§»§g.^^u÷©ùfÓ\¼°Ê¨ÍmSº•Æ?ùâLébV)ÚÎEµ94ZÝ5ºÓګͶYË·¢6ÍÛö‡geºÜ­åó‡ïÔ?ö+ß•öîÝHj_¯œí|»[Aζ÷·+ë€W±‹íýáúÃVävêÙëï»\­-ÄÕ‹•õX^W¹Ã¾‡`û[]©Ëk‘z¨jµŽíÕ;ßíV?m¾mžo`q°N¼º¿k\è`~ +0-+ /µ†ï\ÜïšÛ~¿Ï_?!Xü9RÆðgesaùQ‚h† Ö*lƈ‘“€™ÈØñCÊÐ]^éàWë£LOííl~\©W×+ç³ß”µuÃ_•E€åk÷x’¡_N[,6—ÀDïããã*Â÷¶ûußï?P*´¿vÛãa ŒM€²‚h‚_ºËñF.œ²gN™S–ÙàêѯïWk7Ÿ·êê—Ýv»ß^?ìäì)T¡tÞÇ4Ù½­ÆùÍû¯\w_½¹úÓ×..…¢BR&Tôâùáß»››ÝÍåqûù°ûð .^=3I}sùL|»xyeY¾ÓÙ¨½j"ccUJáÊêÐ O"®3EÓÙœUß×y›—@éb2ŠôOuô°#„ÎG_¡â¡vÜ3kÉ]@ŒÎÏDú§:¨›5\¥3ш%"(ÐmK @,uvÚƒ}gLš€~fóQe®|@‡0É•ž£ÒÛ&!UB\˜–¬Î'¦}”ûJž÷µ®öý_Ô‡&¡#ä2Eâ04î›ä+¿Jg"EZYZ“DŽ{ +LñN¹sÖ,$E¢ÒÜ¥S`Úqj)Ývè^ÜêØð_˜’¯}ƒ¼µW»` á« í†À y¥e2>ú¼t—B¿ö ht¥èÕ²!SÍ£ŠÉ¨þ©•4ü ÷„Ì„C%ÆÝ£Ez˜ +7nhI¥!Pkï= „REpƒØá«€eDÎt|ýÞ?¢”T’¶Ò Úɲز½Äß·X¼GcаðQyõJ½ýI«žãé1ÊÈJÝ"$91Š±Ë™¶züb“4þj;z/†:Þ[SjTOU\!JoN®#òŠ!蜓ë(Ú×°”âê©T†%U#;IXÔCjXïƒ6㢌‚£×°Ù‹“9Tê)†Á¥ +”!¹ +†Eb’‰H CN¸Y¿è”ÙÊñs5 ÄNª##ŽÚ/kðT£%ÅÆE£÷,µh[ΙÚâ}q¶KÆ'‰ší²ÍNd±<Š!"Hwí¿†‘ô‡\†Aÿ[^Fq˜2Ì@ÛEMߊ¯=r°Ìž9ì:¦¥ïînÛL@@§Jj’ŽhàpgÔ^—ØŽîlòü»©Y:JËIû §Òƒm§¶o›OÍóWÏ$.fŠù„YÂ8[FVI24°¢  +±yöH>æÂ/;ù¸+Ä°k+xÝ«þx'_÷+XÕnÕñvåHäãÝ”ªýåþ({nVkdFûYÛÕÚµËÍ»ú3ŽïõíKת뾯âÛëj‰l>›©ÿI}ªæWc¹}cªt€œÇŒ4F+Jjô røníD|Þ¶/öð&®iÈ`•åÌjó@ø@fPzIšÚŽÉyñÂUVe0·QÆjÍ‚-hiÃAÎŽÜÓ”é´Ï«ÐÞïðŸÊøïot«ˆâ¯Rµ¢]˜l†CiuœhŸ í3–o@Ççí"€nVäy5¾$ûêïévEj{]±ºñHV_ÓïŽwûíÈRIß< +<tUpjôVo&üÿ¢rY¨ÜÇÆ@ôMTD$«õU˜ïzÖò=JX×ÊUÿ\Tj8©Ó‰¢¡9<,§*;\A%Œ;¡$O%)W>Ç8pZÖ†YÕ[l¿xìàŠËË+§Ñ¯À²Ð +‘i8~l!ñD™a`éÚ£ÎeÞýAz>-ã&ñ2–cž$ÎfÆe„0ã0/F¤Ÿ"Z‹“YœÐ³Ã¹jˆ +1ÇÝ92 Ò'ÇÓ†e?.9„n€À Ì3P/¤šfI×ñ´,–Ê øQ$ЛñHˆ‚–ëkܼÆ6¢²¶"ÀY‚·`g|TTe«¸b÷Œl½˜GêÌ_+gÜ 9»ð|#é + +„•e0A‹G IYÆŽqË5O¤lANTWUT ‡9h„:À¨D#Ce™Pí€~œCh’[(™’MäF´˜·¦:S-€~<'±±ƒ’€ÈΈE£wKw@Á cþŒH@RÖd±LËì—s*B±¼ë A›7Ž¹aS袜uŽP?‘ªÈ¬Ùr>Z Fcy‹uãHªÐ@Í„ô3’µ´Š=i!5"³”5qrÝ Oadkв]DyBÈC…í[$§f8ìö‰Y‚øˆ§ANs˜~B¬ˆnŠ³îˆÌ—^÷ ¼%ø*‘~BÐûp‹Ü™e™z°eƒ^àsA—pBÝ‘ì¨&"ªWpÍ>ó¹‚%|á' 'ܶ™7`Paþyédd{€×<‚4[Ö$/­=¦qM:ŽjöD? +¼oŽ…™‹ ekåÈ Az ¤¹6ŽF¡‡ˆ„.äɫ홟={êÜ<šd@S¢SŸxÌðé'$ £åÌüðÔ,Fö½ªS ¯@ŒóÈÁ$yÊ3$2 +,¶É9»9¬nŽÈè&s Ká Å>jmmwuΩŸam‘-òÍ°€v‡` 9³Æ‡Ìôq3G"ç°³sZp¨Z;I~_߹ȧYˆl’á4Ñz “XÝrø}™3‰óéèÇáX ÙaœÊ @Õðù…‘¤‹¤¢ñœ´8!vÒÏHÆt‘ÎàÜ›‘«†9QÈL’ˆ30Äò)ožJZ`NáòƒÈÖ7á$9 ƒäz=—aîzQ‡e™¥xØèD]‘NçÑ ­Oâä°ÇG µàµpñÂWÖ‰dâ〾2,)F„8¢Z<ÜábˆñÏ• —n//6Š¼WîaÙšº@úÚ¾!Lvh#KP¿Þxì¶m&Fk#ÇþȾàÌБej(ÊC³¶x«~aË †ïMܗ͌Οv†<·¾7'‡’DvžŽÅ«v®Mà •±3Â.ôNgŸ¼Ç|À‘0‹ë‚ž@ª’Ú¼ÃÃ(Ð'h‰¬óÕ‚Ám¢¬u1B§phDê<ákSÈÙJÁ¬œ‚VKð#yÔÎFeLÂÀb©ãЊ LS&Ƕg®öC! $ñÿ9§ˆÃMœCÔ pvNÒÏÈLXrË —êlõFÔÀRÿK~•ì¶uÁ;¿‚G]DϾÇÎ%F‚Ð9Ž"À!CtßOUÏJ‘ƒÈ”:PSo¦{zz«NY~Ri/ÄDv쎠ÃË£º@"Ê̱єSY¢Ðt}ž®Ó^'êBŒâƒI*²tLÊÝÄSB9.±¿sö+f©ú:Y:âѵ7“Yq fàøò`AÊ¥…£ä>Y:BgÛ:öÈ¥ Á¼Ä#iÍ!KßâWS8I@h8÷z+í]±Mc-m?âù5§“±}„'!ÁÓ&T]<.Þ'1íÈÚ2ˆèC +Q‘ò2sÉé=Ë>,4¡t4‹~9ÖÐêEkGðºô }D:ÚáX» Ã™Ü-»9²õ0‡¿ï—؛Ȩ"Ô±ÝD…44ƒ{¦ù&LÛÛdþ– `ü\f_Öš¿jKØû¯£v+J8ø8d[0±ªÍV’ಠ26pΛ×VÊï@H±œì°¼jhÌYž]åâle›µ_Aíve@ÆŒÏSoD¬äÞŸ &åbïO\CÃÔŸÆŽÒŸ Žlµ?Q‡‡i£?ÈŽ`M£?2…FÔú“‚f[ËÖŸRú×Z¢ŠlÌÔŸšÊ$ÿ®Í߯,/B)Ý|Krn\7ßZÔ)—»ù\ç'óÇŽb>%pšhæ[Êg'óÁ~…i2ßBº×Ýz £LÍú±lÖ¤XÏó¬VÍzjpÈ÷aýCKéüïÙzTu¶6# -Ã;EeÔÀXÀ™zr–IíèÀ~…«àlIéq&”©Ð åÅéûî̉ãýºÚ€\‹ÞLmÈGû÷ÓxgØQ˜ÃhœüfH±H¨Áü_§o`ï•™É$t:éh‹È8Ê.!þ‘yLƒ@š !y–-™c¯^ßßíÖ¿út{ÏÁ¬ÜëZËpúæÝÍýÝÍí²ð Ø£Ñ#‡|z{7Î`ÌUˆ““‡Ð7»F¸*¼¯ìøõþo>¯ßÞÞïÖÛÛÏ¢w}m8ê LŽ¶¼\în>ÖMœJOlùív_䀰1b_ÙõÓr÷ç»…Z^ô= ¿x:”^¤”nÛ¡#®i.6ï“íÅvtQ…d)žºÚ/¯êÀK/!…M*¤iWü˜QŽA(¬nŽä„kPNT Tæã-UŠô¥Ë–(zñ:ÐãïO„“5äÿC—@¨PM³é´Ûà­c ¼Û»Ïw÷õE4˜fk1¨œÌ»(kìa‰õŽóGßSiŽ\§¶T1BÈ/%º¾Š{ìU ÆI´|êQs’gAºü|÷ÏÙtÁ› ¥, &v}ú.5É¢X  Y‚RžTit/MÈö±R€.âÈPæ[J)è÷|¼ðšëò÷q…òìPŒ@Z ’óŽGÛ±lÀÒ‹_pÄg3óõ%ämE +ž¦bNDZë;ÀJ‰)°±cœ`1™il®g«ü&».IÈŸUÝv•ÑÝA½&Û_s:„³­–(mTúµFÉF0Ô]»s§nß·Xt`)œS‘@<¡è¢jÈÒ¢Êùƒó'r r ÛæZŽ I¥áÚt׺¬`k®À‰Py’¼*å¾k@õŽCm0H”¶LHPx¶{Ï¡¢fíš÷š†&½.§`y.…=\8Ú¥x6^Ú¶ÝÙsGŽBÆ&²2 î¡œíÈ2ˆ—äÀå”K2B©Q«y´ÃÅ;•Ÿ\ÜS!óy#dä›? “K +e‡{lNpîî©š{êrŠ‡çRØãÁ¢&¥èÏÅCÛ¶;{îè@‡O¨ÖåM¬.µ¨4`gê;4÷U »Ï‚ð8aDÕ}8O‘7‡&ßȲ½>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +77 0 obj +<> +endobj +79 0 obj +<> +endobj +78 0 obj +<>stream +H‰œ’MnÛ0…÷9,˜);u –‚ AÑ.\‰xÐäØ!D‘ ICŠ¯–EÔ+”’lçYݽÎ||$Þô¢µŒWÐÖRøÏËoŒ¤(ðýd–Îì<Ê[wÛ_s¾­x&ðE9mó¶¶5†ÚZiŸ·fÂ,!ºkSŒú‘Px1»AÁUÉ€Æ$K²¯håX q‘3\MXå·×ßw´Xø1›SÚ4 iN‰qk:ʲŒ¦c:'q"ñÏ:°6Ñþïöäâ°¦=é nj*tDRº¿è¸®}rûe$ýo‚<ØSýÏ +NAA :øècÔ½Pðœ>ÊžzOƒP²œ›Ý<+ðƒ…ØD?CßnFdP0¬^ª°gtfrÅôºÀm"`Å6*àRøtòí!='`?²û]úÊûäñt—¢N‹CÂAÇX»˜ß¿ »' + +endstream +endobj +76 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +186 0 obj +<> +endobj +187 0 obj +<> +endobj +188 0 obj +<>stream +H‰\U PT×~ÝwŒ®Èã-é.¼}‘•WÄP°AD©V­,»\Ü…]H$­# µ:EQm"5þÄø;â$ZñQ©1P4‰HÁªIíyëYgzfÒ™Ì{çͽçœûï|ç>–Qû1,ËêÒ2çÍNÿÕëé¶b—­¬0?/*Õ^lUN"d+«åБ:LƊ翾˜ÛÆ0û7kaëh¸4¦34àÓ Æe[Ì´—V: +W”Iò'J±Ó§ÅORVóð:]Y§Ç ¯fi†Õn±I +e¶§4wM¾ÝQjwä•Ù¬Ñ’4£¸XÊVâ8¥l›ÓæpÑÝŸI…N)O*säYm%yŽ"Éþ;)³p½¬²ÔEŠ¥iRÞë/í©p–[œ…Ö„ž9ßtæ€ÑSÃáÄÚKV7·o4Ök´›]0ål7»Ç›¬‚ +˜ À.r'p`&¸ÅkápÁm/,Ę'&xÈá0ƒh/ÖA äÀ(ˆ…À Ê:ÕòÉË=:¸@øÿÀø£û>9füøÈÞsô/ëžü‘ÈËm;;ö¯¿½üp–ˆO ˜|,¤æçÎ93SóŠR˜IäÕjH!¼|ãxeVö²²,#΢V€N~tìIˆRySd·ðl㘀Eœã0±ÂFƒô§ÀBL›#ÉäÊ˦ÿ5•€¿}væ¶&¬l2' ¯†@¶ÆÓâî$°þ28¨C—€ß7b7ñ(€‰t>y p„G£ÖˆDÛìòZÜ?ªÔk¡*}aQTš[GqÞsÓ°ôÀõãÜ:ô-$×Á$ qÉC0"è&Hòø +ïŬ„ð§0Øw•«!¨“¯rh§%yÈC Ä7ÄÁxzyˆóø†@¢‘4À˵ÀS>"e=½ì$ €ƒÐ`yøŽÁ bñI“°Á‚ƒ"Dê`9³wïY‚Ëé Kœ…墶‘ +¡‰–sÕ0‘Ð8 šZXt¦]ƒ×Ìh4âÝáe^Mm_Ñ<8ºfvQ]"ªÚ\Ú5ý ¼C}å1r¿%ÀûîRI”øú^_òµÛ ‚Hh–Ñò1ã ¼¯(,œ@µ¢¸˜ŸLwxy•l–°Ã£a)†à: †u¦°ã¸Î§â`&qP¡XæTõ8¾YŽuÐ~Ú<ÙÆWÈïÉ¡„`Xk +²È•¡ù ä¯M'º ‡ÿVURº¡¼ÚˆA\Ü»s‡ëi!ü¾\qçá©“ùŠ†ÏÆ­x½™¼½¥jÇU=†ÝøSó2óç—Úv¶wœØþé6±c[ë¶ö×æV&â ôÒÖHq]¦ªÀÄ·Ës`§é˜Wp»ïÞÞ~7Жd±J^&Ð_G‰ Óðí×=š·^qu ®‹ºF@fø Äæ--,7Ö(ÉÑçæ}pÒGA‹‡3mÖk5 éèjíï¯5¶äl)ð‡±ÞEñc³ÓS¨bSP}£`䞀¨ó4þ %FQJåE‰n­!ËóÚc ‹™Ñ…Äu\i¾tÐè¡hÓ‡ÁúhN_·õ |·7~jRÁŒ¸XÇ£«¢R ºo”§‘m¥‘K¬ZˆlÈw[ Èmüd³Qf÷ØŒãΎŪrÌË@;hfBä7ÏŽCðÌB÷ÖCÇ» §Î¯ßj~—÷»ê‚ö +l$t\+8H"¸ú ¨|RÎÂœü*JJûh~lÓ—>ÃÉ)Û´\4^Êá´;)Ño¾œÁ¡|»÷º¬ árøTkÖÚJñª‚“ QÖì‚JZþî?PïS¤ÕKèh>Ýõu]æ +?§;·4W÷î>vhm’ˆ=ÊÝ”å”ãárÁ6…†/`·9(ôc8ÂdÌÁ&C8B?äˆhÒ¥¹£AÆýí{¾˜=Qiô_úü† ‚ÝÝ +d¾·SGïl#÷Üvûκš&Æjê7l¨ß`˜Z”»h‚öÁ¿P¯¡ÿáMÏàÞcöK…‡wšRbÓÌñ·°‡ÌiY£Ä]¤¥¥¾¾ÅøLS»~}íÿÔ$Ô5}•ü÷­Þ›@>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +73 0 obj +<> +endobj +84 0 obj +<>stream +H‰ÜWKs7¾Ï¯Àq&µ ÞÀÞbÉò:;ΊUIUœJ1%2ˇ,R‘ýï÷ë3¥½löârÉ4Ðî¯è>{s%Åí¾z5­Î.•bzSÅ6:Ñáh[„wªÕNL7U'n«®í:#¦ójÂ_QL«_êŸÏccÛPÛ®ãߟ¿ÿX5¦õírŠ¯?4Zµ¦^4àSõýM£4¨»Æµ®¾ß̶sæ[ˆóß3í¢™(°‹ËF,g‰o³Zƒ±þ’VâbÆ\‡ô#š‰«¯–̾Xš_§ßU¯§ÐØ*ÍVÝßVÚ¶Pß[¨D+»¶Óâ~QÝT°3ïYC»£-€EÛŽx$m Z0ó&ƒ(3ˆ AÃ8öŒ&aG_)AwqÕYÓL,”PÝ×ë?Uk?6âݬј}J¥ +ógdóè&Iv)­°˜^€ÆrÛëöój½Ú—­?·óݦFy‚«‡]] 1JŽŒR'FÉc‹ÆÑ ÓÕîàêÝõÃü ®îóÕÍj>;¬v[¾»@eC¢ÖIo¡<ãCrjÙ5Ó?^ð Ñ/:0m½ä?o£°^H›¨g¯7¿/®¯×»ùÃf±=ˆ³wç2ŠWçlâÙ›+EYbÚ.H±•#ˆ”ð^µ 6ÂÅÁ«ÞÉV… Ö•Õ­QaLˆ­4=Ëú©Œ5ô°¶5Î$R4ÛŸ¤„Ö:ÿÌ=™eýT‰Åᦓ–h¸è +d«˜p±UZ•¸Ø´RúBX >’MÇg(Ò+"ôBO½Ð›ÊÃÝÖTóª Gª}byCþš$‡ýôØV…!ĂĦH!½®¼VfLˆ­tÄ¢QÑüˆPl((|ÝSBÁÛ‡V+9& (< ­?&”Çš’Ù%Á°Y-ƒ lÄEÇëºBÜ*K.s­•D@À'! +Ò%²ÄUÇ'ñ΄1¡k½Møw† HšÎ±P”l>à¢L—†^DQjýTKRüG:cÌî•Ò@U˜IpCŠo)±Ò’ß-ªŠ‰Ä ët"(BäDÆË~ÿ„B}ôâZ€ÐV$ðbNé þ¾Ãâ†> +#Þ‰_~íÄ5ÝcÈb¤‘â¼$ÁŠ® t5ØAù¡úŸtGí ÇGç²uR%‚Œ ÕcW@éÇ#w8r15ª¹#v&Á£N'8S ŸX$Ÿ X8`‘Öþ_a±äÒŽÚ +š¬†Î†´C1àÔ!´O„˜ƒ+âÍðdÌ’`ž5£J_?dRì(;pìÌ8E +•ÊþÌXJ§âé5¥,>±NOj½4žQSmPA‹ˆ(æ„G28€Ä¯^§ú_ù]úK<"QljO …¡j]GF“ +e&` ²n5Ì*KÓj8p^‚E¹ò¢p;TqØÔKOKG‰–aØ—)T{î~Y¤÷„|{Ïu;Ö}^í«×ïÎ9Ξi7eÆGQ[á©2 òø¹O=†.=†L-ÚBÔ¸z¶?œÿðþýëó©xûV\=®óFÒƲ™@å=Ôá~õù¸ëxÒåâj°h3îpe¹P«ÜÔL— 4£°LR3J½éþÐL4úNhz²÷ ²µfeÒÎÛFQ›zõ˜öWèïL¹æKR.}ß7^}óÝv»˜ö¤¿¯Å~u»­÷"Ü5ÇúÕ’W‹Ü Nïêµ€m† áTîÑ/_‰ÕöMy¨: M4™ÑH‹Îr¶çþy¿Ü5yX?6dê<‚/½G$å•–¹ÙÌì¼o;/W·èÆM}V_yI}«Šþ %¤ó£v¯h•Jü-Ae¨®¿]¯ÅÛÒú•Ø=$¶>ܥ߇CÚÙ‹õ|—h÷¤›v ,l=IÊ#0©^¯M¹>æëÉÝøþŽ¤Êz·M¿×égE€…z{›–¤ÝÐÚÁãRà. õâžö5ïßsŠU–x÷~û })>=KÄr+‹€ËWÍ$¤Ù·ñîïòýwüÙKl: qMÁ„§^ýÙàWa¦:,Ó"E–^áÎée)r9ÐC=$݉D£Ÿ 2‹ÂAKx»ºßnJ`û’bwƒ«û<ôp';æ›ñÿ7iÌl'e ¯W›Õ|¬èô›^v0²z˜fÌHÌH–g¤ßM‚ž‚8}¯‘HéëšFO‰CÕ.¯*Êd@¥GÉ<ëê'<Ú×7X+þY^guô2÷³ š4ºA¼r7ªž®L˜HüR·­Ð;϶âgÈÈkT÷ˆ©Î@œT–nÄ{ʺPè¬ãéÅЀCÚR€£ä6O¢8D<+§ñ¢HÍMæØcä©b—EšY†Šžò"ËàÛQºÄ‘kzʱkÂØ5Ó~Œ(#Yé)ë”°ݵ3<ý!êc(”„XD5°Ú´’|cÑ騲^3 Án u-;:5{$l,4 X#—E* ´Cë¨ µ‹~ω‹*62î6í_‡‰Ó:ìY«åveÓ~UºÆúé¸.]}óûýíãç/÷ç7Û—Û_¹(];|‡ˆç‡5OPoÞáÔo?~÷Ýû·7çxÊO®mùù‡?>?Þþ|þöÇÇß>ÿ—¿Z»xƒ8¯ÓâsãøtäÓ«¶ŠaîX<&ÖT³–© ‡¡œl(rÄß!,edë¸LÕ¨ ë’5ÔF•©Ý(Ó Y2rg0¨¶†tÏ…™=džÇp³dŽ ‰·‹­ÊslzB=W•‡†t/C÷rc{ò!±ÝçÌRêí"ÿà!]}xý±%r}So +síâ‹aaÎß uÐŒÈ(Xun‰œ3.µz_y)º‡rªÔNë–XÖ©Žà+Èêš‹¹Í¸šÆ<ëЭ—áy8y¼•Õ¤²R˜Òà=2Öˆ”¯ì ïÆsDñ©#”¶-¾ƒ\rl¯o Ì´ªQØûä[714y² ˆzкûJT¶®ôG·ÁŒGÏ´ÛµDÃaK%¶kη*§2œ ]Ô ZììUæy)>¾ø<TQ”AýÛGP¢ÂàÃ$x2 *ã±Z§€d¡sFÌ€CÈåëwÕ‡ +ª©¼(¨*S1)/Ù‚.v Q” ¹¸ ¡.1e^“ˆ„\6;Ô¿È×KÑrˆG2pNãç’ÀRÇ‚rêÈV>[æs@´Ö…66»Ô*’½’ÊPw×^—ïÈÖ{©syï)º¿H€‡ÙŽL]°('¸5d_ºþXÁ„¯7¬çN€†ˆJ=,Ty,aýDÛ±:A—»‰Ž4':ƒ:¹â‰ók p¬™‚*™RšöB¬e|×½PP•hi;hÖÌçÒÖLÁÃyËl@_2ùb–ùDCúš)0c]œÖLE˜ÎýëàíŠóÓ7 ß ÞŸïÕ t¾Àg®jª¨Ê«*OW¬'ô• Ëj¡Í…N .îcx*…¿ªð¦ƘäÜœp˜­¥$SO8ÌÆVæ|«:Çì}×1u¨Ÿ3³!#yùÜ.½2’—ƒ}©ñ=y²K^Œ ü´ãvÐ/Ï°6ÄIfõXçëåDÁíE BišÃB•§ëÕz{JÐån¢#͉ΠNî£x*}¿²§6,~ë”u>³dú)ë|ÎÅÒvÐ:æð3éiìsh3²æ¨"#Ëpêæ4nÈHccÚÒÓ¸!sûÄ>õYô}B…˜nÝÞõsŸõ‰E&ž;ÁZnfX¨ò¸å~¢Ýa'èr7Ñ‘æDgP'÷Q<‘Æ_[€#}B´sç÷‘Åsó.Ùbi;hÒø¹tÇ4Ž¬½vNã†ô4.ÂÍ£„"=iRÂ~þr~³}¹ýõÕÍ/'‡Ý$9_c¿J1œoÞ®>¼þ8\Ã_¯Y/±wð€MüœÊÉMX;l£{Š 3 +Ö™k‹[DË#Ÿ®‚|zÅßßßœ:³gv0¸–žÅÇ2¤†PN69š<ÉX. ·Æ`-Dpƒk–PCmT™h0Q¦øëòÄ ò°¡ˆz¡ êå>– ŽYìˆûØÒ=Ç’çæØ,ÞÎ>6 iŽ —!slMžbë'šçaÈf[÷BÔË}»Ø ÖÔÕͱ5¤{9bë2WmÞÉøê~Ä9Kv›<ÅÖO4Ï;ƒÊÆ"ê…2¨—û8Û“O-ˆ[r.•(cÊoéÞ¹>;ƒg'+^vùœ~¡ÂÝ@Ðycá“—ॶÿÈv}©Õ óKÑ=”S¥ôD³ÄRn;‚¾ƒ]°é±â&ËvP¢_/DôpBíB-G@]Z-«»õ¸YôHE6 ~ñˆÍ—Ìh/µÊ§z!&ø$ÄÂÌÈ”f¦@¦03]hŸ^ˆ >!¿Ù‚WÄÄ{¾;¡{DŒ– +@ .ææóŠGÄ‹ßJÅ¥—!z8ñ g žH7I—4*tç%XN~•e5©ly¦L̺Œ.6•j½uÄgž!ДØcCš¥¡ƒÿ5Ç$ÏçÍ•ÀûXvžºgq„ç˜È¢ÖÔ³, gR#dÎò>“†!“ë,?¿Ç×2"åñ;S¼v(c>u„r’µ”t§‡ZSÛ„?¶j¨*S'%L'XÒÄ ò°¡ˆz¡ êå>ç¿Š ­ÙÿØPÁ2&Ë)ÓªçL_ѺŽ–7î '½¸IvA2€ú‚fxÁ&ÖMT™¨|6Èål'†.«‰¨J >{O™¾%"1$—}Ðû’V !ûÚz„»@~˜Ú+Gñ`1oç; Uf%tüù·kò¨i½˜©X-u͆4Íë¡zÔù“Ÿe qÒGøhÂ~Â5ç›[Dl'Õ?NWï^ßœ¿?4dõǯu«š#‘‰:Ä7·®q +B‘]21tþ_œùsÆ?û1}öúý·oOÿ`$¼z… + +endstream +endobj +83 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +86 0 obj +<> +endobj +88 0 obj +<> +endobj +87 0 obj +<>stream +H‰œ’ÍNã0…÷<…%¤‰–)Q„@hfQ„ Ý!×¾-VÛc»J諱à‘xœ¤-?b1šÝ¹×÷~>¶Î䬵ŒWÐVRøõù#) +|2M§öåÍõŒo*ž |VNÚ¼­m ¡¶VÚçm™0 È£îÚ£~$TžOoP0FU2 1É’ì'Z:VCc\…Fä—'–ùíåÕ–«?†`sJ›¦!Í11nEGY–ÑtLÇã$N$þIÖ&Úâížœï×´'½!ÂMM圎HJw]‚çNÚ F]Íf +¼£Ø·ÂăÈ9Žœ ýÂù7rËì÷äx08DQåX0nÿ¬ÀçÝú£ÔÚ׵ܡŒ¤ÿmBð½»vªÿYÁ)(¨A}Œº +žóÁGÙSïàï ”,g¦F7O +ü`!vÑÏЛQ «ç*ì™\1½*p›X²µ +¸>=ùõfìWv¿Kßyß<žnSÔÉ}@c±O8èkóû&À»s( + +endstream +endobj +85 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +81 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +82 0 obj +<> +endobj +93 0 obj +<>stream +H‰´WÛrÛH}çWô#95¢Ø76¹–lfãqf­òNU2²DÉœP—XRÿýM]ìøm·\ E°Чáû[­Ûäbœ ߥÕxžÔy]ªüÃê:/+J“ÛR—I¡I‘…Sãi2à_µ?%ŸÓ?Guæó*õEÁÏ??ª¶™Ëëtñ0€$¤Ÿ2kr—6ôLú8ÏŒ…t•y™>.'«)ë5jôé#Ë.³ºz—‡×‰è-ÛŠé³¼©Ë kí䡲A™Þ>°zÓ첿ƿ%Wcxì娉õ9Ü®Uª@”EØéå±Iæ âŒß¼£¯'Ÿ}.IGÓgeªÊü‘AÔDAPa1V@="ǀ钰£_)Awy[x— <œVp=¤_Òï&÷_2u=ɬfÏÊYð«2˜Öí¤).ƒ  ^Æ—±Ý§§§¬Dìiþ£íÚiùôG>]/{`L€¨RP ˆ«È+D\'O‚2¯‚ÒçVƒ•­?=fÀ¥ëÙ~ºS·›fÚÎÛéd×®W¼÷*_åUm­øÍ&L`|ÈNªu6þû :ûfåÓ[ù ¾V>(íE:¼ZÞ7³Y3»\O÷ËfµSÃë‘ÑêârÄ!ßß:%./*­Z•”‘Q!h V©e‚r)‘ÕPêÜT•êosgªSA[@Ó«t/mtðÃûÜ•NDµƒÙ~ÍÑJ•û2üdŸ¨Ò½´Af±¸@¨¤dµe]Ø6µPÖ¹±æ°»\ëptÁÑ}6[ÿD¢ÐÁ 7úJÐ'éöå‰kÁÕ™kß8_ÁQ¾’°ÿü¢VI1Tõ‰åA@è. X¹SAë’T,-œ1T Þî¥à€w¨r‹Ê8 (­òp.8¬8÷”¶ ÇaåDKĈT\¯]‚º5žRVæ^“/F ¬kD¨«‚W âKW +Š:ƒ "¨cqÕ¸3« U@fÝ SV†·?ž±³ÓQÇžÁs„ŒÔ¦†ÚŠ@í”cO¯{éšô¡kÒÒb|Þ¨‹n=ÍУÖé×ó¶âE Û¸V¬;ma[Ôtc²ÅñšHôúV“³FOyÃ/²z—~å.óKšùTÞ\|ÉðÂb´Ydc×ðM.ú7›N¦ò¾¥–6¤ê^^wO™ÆéC«Ê¯+µc{zaj¼€šÞ:°m0œQÝzÑNc'MÞ¡"t1ÂÂEÌHÓ¤«odi£Y“áv±é÷vÚ¨ý¶ydÛêÃܨ {bà¹Fo‘æêj2}`€ð• +饸rÚíg訉ˆÎlöÒ˜S¶)ñ¨Ð?ûŒ«#ˆ§÷4ØtOWéœ÷›K3L>Ò·_ÕzÏ%2KO5\Ú¦í÷Ì·_._×û~¹è*ñu5‰;vÚ6§²”šÖ>Œt™iXD»ÛµùÑd=^ú#³–ö·;ÿ,=UÙ'E¬ÏNàßÈs½ Í0+Éž’½åòèêÑ­ÃJÖÛ÷yžF×w’ªøY¼ërAä¶i{¨ûgèÊ U&¨’Ì¡'ÿœ¾k¨vd† +“võ6_mJ/VÔnXÏ>“Ò€†¼lý¢ˆõéÖ³f7i;Ô¢…^õ¤ŒtO:,þ~&1æpºÏ—(CúAõbi¾š4gR@°:g!†S,åuTMS»šË Ë&¢ÚÞgº$$e¥zjw²‰òwjt}sKÜäÞ²ñ8£Éíc”ØœŸöîuÈ`UEÒs&ÖÊ蚦8PÎ-G'1øt–¡rhL2@:õôóŽÜtTT[:UÚJI,XwB j•TÕ80AÐ7F Oœü¿^š¦Nç@‰ø +U;à²ÝGÓM|bš¥ÊCsK Vsü ç÷3ÇftO蜗@œç¸T‰ó84‚ÂBp^D­jŠN8U3-èv,•u âý†nâçgõ%œÏø㺢ªÄŸóP+¸ëã:}ø}L·ýù•‚<å=½‘«`–•ÐqHt/»uF ¨fµÝó¯G:‚Ðîp”X4¡Ÿj'/ÕÕUÞ"vSR…Dìzjå3ù=ÒP¤ã‡u7‹dŽ¢(S%„ò(·Js ‹øYlLÄƨÃ=2[ ­ÖqãHº“ž‘Äô9nÇǃ—Çgs~”ý=pDÿŽ?O&°œ'ØB2†C1Êè¯Ó7lïÅÝï°ÃeaO2eúƒU÷÷ 9°¥šœTSàj"neYC‡½Lsþ"÷`Fþ†íe‘è §„^8gáœîŽGRÛuzlÇ6¿ƒ +G;cSÍV8ª¤#Gi<€’`å×~•neŸ†?3CáœnÛm¤Ä¼D÷þªjtO‰¾Šœˆ&†èÊjy§vÏ›v:éP³.Ö,‘;ß.=ÏÓ5ÔmÐæ²`¶çÇ´9®Ü>Ã5×/]Š)ú°â5k‘·ÛFÅòeDòG%8FÖT|Ñ`»U¢¨þ@³£)Lìߨ¾ˆÝØžœá´$*Ȫ–ÄRóêÀN%uE‘ Äœ0š7&Ó*à“è¡Nà\8_’Nòf+â$ùP)ªòŠ_Û¹”xõDšà{)*œFßA{Ùu@ãíéz4 8ò†y/ó¹xô$zòЈ;”|7ìQ”‘wç5˜mEðÚÒr¥q>O>—RŸ¨ªeÂÁ„b)Õ(×ÃKæ°7£„ ºµû \/~¸ÁèçóèÇSLFÒ¬üE‰ÀL¼¡aΖ»¡ˆL '…m&ü׋›.Vð¼.9ø|ûuù×ÍÃmöÙû&ûrÿpØÏù²×IEôF4Ó˜=™r(Š+(ÕOýš›4Â1~­@xRÊ¡üþ·Íݼù8ß"XËŸ_&§¬ýù/ât­KÀ7÷Ÿä£Ž1|}ÓˆHNíß“S…öÁ`‡É7÷o7¬ä\&’ždøˆxÙÉž‚DŽ`š]/ÕT3v^(®—WªÍQwdô”(ˆH©!uZJ.+Á|¡yÆûW †Q©Ñš&U i;"S@Cµ£­3½,^D‡í ÑQ‰<€å$:¶DÇÁ‹@F—DúIú†ñ°sXæ"}Ò· -AË¥…:åê–®•qx|ùÝ A*L~0T€®—"Fî‰S¥F#¥µ%õå"IË©‚ªøÝ››ky™§2’u9å™Äø^‚¤ðZ˜ä­ÂÔ™( ˜€Ã \Eô o8Biƒ1κ¶Åw%9m¬Qƒ!Hñ¾»¡4Cy°è\!k hýv”&Òf«Æ(éR¢& ΃ښL©¿å{{m—T(kø‹Nx0™®þ¢“26_H]²¡?¨îx^tÂ'™Sêó¯ÈP@ö‚d\+’ ÇÓkƨ¦×ƒÁX~þƒ­RºâZ:RêA7u¦6s«|d41ø5ÄIa¸ÒÊqbͣϩÌEÐÿ®‹ˆ£V¶VÂ[€o-²£ïÉñVeÒ¸!àMMw7•£Û-•uW[¢= %Úƒ¡S­ùhÒÕ8…LxîÖrfHe²„s˜Ë^ƒµVÜ•½Т¯"³Ì +Ýh1FöÀ6*TEf™l”cÄËWR-8Eëòhï¬/wGã)s¬oÚ^¼iƒ:;ET`…y#0®?Y'ÍsZІàËÈfH¸Ï¥Zz=•º#0;Зˆ%ÑTOM"çAÙA^]„&«DÓ©{*MxˆhNüjù8 p““ô®ÈÜ7q¤“éR)šA°¦åÛå“é»Îš8’‰\î3äz®!|^v0Ƕä%(Ù.:jÂL* +ª™j¢®·<ÆÿÂìõØxÅTë”°ƒÃŽéïf†Ñvà!Mr±‘v¿³E”ðzHÜ#òÙò–žÅÃå‰ZkÎÕÖ]m:W{¢D²ý9ÔÒ[ÞŸõ&©¥£PÝÒc¨Œ&ýîžÁáçÑ|Ìcȉfü9Óܶ4ͬʧšOÕˆÏϤùˆ <£KÓd4Tk£Pˆˆ`|öGÖçшêžy؃,ST}®‡^?ŸîÁoÐÉAwD%Út—=ƒîBą̈»íùû3ê~„6+Lg&LNduŠZº)¿A]\Ýì—?nŽ/ß¿{÷úåÍ%O¦Eh4dÔ@pM˜C-絃°nk³ÔÊ ÝÃg8’5TÁ¹U¼@O’ÌSRµ— ~"¡ ¢Áˆ<(˜e5˜WPaqmÚ»> +endobj +92 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +95 0 obj +<> +endobj +97 0 obj +<> +endobj +96 0 obj +<>stream +H‰œ’ÁNã0†ï<…%ic'eY)Q„@h÷ЂJÛríi±âØÆv•ÐWÛÃ>Ò¾Â:IÛÄqûg<óù·õO/:Ëx -a-u‰ÿþþƒ‘%þu>Kgö +å÷­ƒûíÏ9ßÖ<ø¢švE×ØC]£´/º3a–PDÝ·)FÃH¨K¼˜Ý¢`Œªe@’'ù´r¬Ö¸e䮎¦N¬Š»ë›-V%~ Á”¶mKÚ3bÜšfyžÓtB'“$N$þYÖ%ÚãÝž\Ö´'ƒ!ÂMCå‚f$¥û‹®Ás'mF£¾fK³ %ÞSì‹Û_aâAäœEΔ¾á|ŒÜ1û>9ŒQTÅ•Œ›Ç?+ñe?„~(µñÁõí“»S”“ôÓ&?x°§†Ÿœ‚‚tðÑGÖ¿Pð‚>ªzO£P²š›Ý>+ð£…ØÅ0C_nFdP0®^ª°gôf +ÅôºÄ]"`Å6*àJøôüëC–°oÙÃ.ýÏ{çñt—¢^‹CÂAÇX»˜ß ¸l + +endstream +endobj +94 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +90 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +91 0 obj +<> +endobj +104 0 obj +<>stream +H‰¬WmoÜ8þ>¿BíEǵ$Ë’ïÛ5i{·hÐîe-°ÙÎŒ3ã…çåæ¥i~Ç¤ìx’‡AëER$E>¤Þ~¼Öjy˜¼›MÞ~0J«Ùý¤ÊªRåøãVWY”/MfK5[OrµœäYžj6ŸLùW¥f“ß’¯U겸<çï×OêmZdU²\MAñÉ—Ôš¬Hšr&ÙߧƂºMˬLöëz3g¹F]|ùÄ´Ëtj ®>¤¦À²¹uÛA0y”•º¬Yê(•NËäzÅâMsLŸý?hžÆiåB•…üuxêןÞÿúƒžÑÔ+‡y•.»äoSâœzTY÷"-ª>žL¤xRxÔcÃß=Áò¼áÌÅÖ‘+l/«.S×ð>Gö\ªn@öÂŒ‘=-yÄp ÈìB¯îybÆoñ8=ìTÆ>ªÂq—ócŸú.çM*ù‰•ýѺõâOOÊ­Ú¬î¨vêÎÊ>+­û”­T!ùµ¾FYNk›Úç ÖUܧïbt€ÞÏeüþuEÛFcACÑc/4¦èXë!­P˜°L-Ø;­»ç|‹}-”"¢¸aݹ'…‹P•e¶=r]vd¹³#‡#¾H[¬-8À à ü»˜L~˜z.a²†…<µäá‘aî&¬9ç Ç¯…¶*F±¸¾MåÕŒ@£Ý$+ŒŒ´X‰=Kvà»zÏv£¾á§!ó)Áê™óÊTlOÍ]ç¬ý´äòcéH“ë–˜ÏtίMÏZ–cŒÛi8~‡Â._t=‘/ÛŠ0òwZ©`Ȧ~×ö{€½¾æi!øUnQüúÞëd®*PÎUñ¢šËÞ„¹jÚaÝå ì(×åÚUNiÐê°ÞòáÐ*a(fD0&YûYî]œŸ+J £f=ŸŒÛþâé–s•^(«hEq˜U°u:ÜÚ¼,ÎôÖOžÕËnIɼÃúYLn wüÜ0ëX†köô»çþ‰ag—Ú˜Ïd\AÙ™¤‡lo…Tº4úG×Yl„òÐ$4ÎD Ÿ^k]Ç8h›Ñ‹èò€Aõ_æz„&ÑøÚe9ɪðûëwßno¤%ò6Î.LP5õõ£uÌbÐÚ^D‚å*A¢À¿G8}/Œœ’Ö„_´)£$¹‡µËŒâñªX‘Âضȃ;t½ ÜG!°¸1èÙ Ð)Ôb÷:çW2"7¥¤³¥ÖU` +¦„Ü‚½q$˘ÉD0!ÂÝkm8€å»Û¶çí4kÃ…Ÿˆ¹äú[® +±Õ™;9Êú%:ˆSØ.:iÿg$DÕ@uLHÿóeÅ•P-µвíRA¾Qç)FØÐÄm sc¯a(5œõT=îtï Ýln“ìŒ^[*1•·YJ›—*ƒ8 ó $ÞÁkZl“ƒn7Ë31jjJEM«M{ÓµG• ¶·rOæØ×7¦Bî2,c²'±ùŸšÅ¾·âù¼RScQš±hL´zHîÐâ@zä@0ÎèLÁpæ3ˆ 'ڣÀ½Ï—áï´q]=^®¦ãמcÍü(Gð³Ý~†š»û%­‘½Æ)mò¸ÜpYfÕg*²kÚ ‡uiW`ÍÎkÒ€2Ñ«ýOƒltˆÊKÒúËZÕžÀ’]΄M£/#H%³—~9xc~A&¨ðÝ©Oý$y %;i¶·{óZ”Í5 á/Ç!˜Ïm99—ZäšàÐU2 ¬®À)Œµv:ªÏ@[Í¿Æ}kkW»^?ŒqÄ!VÊÌH'£ìTŠ‘ñÂ8½MÖ¸/öø‡î@FAÀC§Y.<ïòPxOòéH.Í谱৿¬þõªÚˆ¾c>dE¼)dœNŒA!ºÂÒSU©H²{õNg„‡™/p5Ý\ÊÍ…<þª+|óð9éóø*QËFºŸ—ôI—ú2Õ›÷Ö-Üä7®$¹ªhj׳ÑpŸ›J‰îæ¼%ˆåÃ;ªç¨÷štÓ•¤¬´”•F‰±ìþ•ðx-4éºÑØ6ºq?—FuMµ)BÈp“$…wjÓ}_­3”o¢ÝŠ%¥ +)À*eZª“”[yž<;Z“Ùhö =(JVHã Oj®5¾Ö½ûü’J`ŸÊõK4„Ñ ïÞIeö ©p^»¬ = pf?£(4F#sF(Ø´”§–'÷úéâÔREs3zZj 1k!+1¶|üîûA†ë U”í{çx-qS_¶õFñÔS†zË â+Û]+‹x£¯Ùg©¿Ž¤ò•HcÁÆU›÷B±Ëƒ¬Ðúç÷aãú«aƒ(*V Îa 2i‘Ë%rYXÏF +È §µ>Ð7b ®Á+T—íÓÈXr¦kV^'›è,ö¼ô.« +¬Ïýk]§9èŒÅµ©d¼€9mQœ•ëݽ\™Ä•‰¸/L<ÃÂm»7ñ0(r1 ;uü:ªõv|ØÇÕ=vóoýŸ@ÁÉ6¨½E'Ù@iîÉEY¨°þ]º)Šh™ñ¹ßNì‘~šºn=ܹg˜w¦°(_Ïj)ç…'GŽœ`ÃÊúí D÷›Õ$½UíTÙñå»Öt½c@+MBPÀÊò+{w@%™V—Ï«^(©éh»´1YnB?l·§!º•vþ~àœ½™L{uwÅ,Þú>+ohK[«EåRwv*Ï–ùÚ/SLÿí‘íÙaŽ©Žë…7Œ¦‰ùÌcK”í tÇA_w:Y¼&¼hˆÇ¿>ˆ‚ ÞJ&Ë?[úA»þ,Cð uáŸP<”Á'¾Iä» ŠÉÃݤI‡êíàìlºöÒÖúÐÝKÃUdîÿ¤ (êEC¬âVkîlÒ‹;åªÝ[ÝÓI'vlsï>˜€«áu·j]*Â׊CµEýFâ%q–ü_‰—g‹Äó.LvgÀû²B*FR|°û*žžÏ?Ôi™›¢-b—¤Æ¬ëžæ +©Wï5Öꎰ°¯wBš1®?÷UAîu£ÖG)Jù{BÑ9S‚Í4mCå`vú†ufdbVR¨pÉ6éFt䢙+i´Yø2ƒéˤ:sq/Ú¿PVT•K ¹ÈY»ãøw  €GF§…˜“Ô2 + Ë85$ûÜRNôÛÆ„$UÐÓŽq¢å£Y_M”˜‡ª2>|„](©/r{Ûպк¬fBw¸á¬­HwBÅJ58z¥< U¡r{û~²B ~Ìyñ€'ë3œÙщPOÔ[„Œåa©.t~Þ…fÇ©§ÎL;}¦§ïþ®«þø fû¿”W]wÛÆ}ç¯ØG±Ç‚±_X ‘Ý·±©nÏIzrh–Ø+RMüï{ïÌ.ŠR›¥^Ë{ý²ë—…¾­ON›Å8ÌQf “ î\„±®å?m^…µÑÚ.}óÚ<ˆÿZ½E–ÙDiéJnÞ‚ PÒí±ÂSæ?éËs3†Ã*¢²•ç&¢0ÂÅ»7¢~Z&¨…[L3ãhd ÿm›•{éM÷ ˜Ò¦œd¸gç?<Ê÷ý~hS]àöS™Ó·i³á-)NÊ==÷f0÷ ¢0òvT,íe¥•o•~‹òòi.ÿY>`™ÉÀÇL …ÓŸe:SûÚvóš…ò‰ýf­‚•É´!ûÄFq—½Ì ¡‘o˨ÛæúN:É -U+€/ŽñŽÓ¨”Ž#2> èr;ÀŽž?º\?ñ”ñâµy‘9|•© ñ­mÞå•î +bÃÆB¨¯5®Çå¨dØ5ÊË>Aí»¹ÕŨ"Ñ9=«ÍÙB3p· µÂFTØ`þY\q­ØAé^^6_õ“ùñÙÔ¶( +tú¶ÕÔæžÉŸfvB@ÞÍiãƒur£ßu7˜ËˆLü7“ØX”Û,–wØa©Š§ÙèÓñ2ß±oÊðÄYO@]ÐŽÐW3Í¢ðôZ«gÅ{*ƒáŠn„y“Ä•mâ×9‹mq‘TŒ+{ª™%¨ÁèÃ" [§a‡¶:Þ€Œ“¦Ò²THrÕYåèMáèh…¨ZÒÞK— -a[þ]ª"<§h¾Ôv€€ÉïR +êøx¢¢f6æ‹V–®Ì†ÕL¯ŒWewª°uG-sÓï”!/ôwÙŸ+ôÓÓê­3[óaOïµ°ÈW¼ì÷Ç<²H†eñJÔ9'•«B훧ø(æë À·8Ä/wëz¶]¬wGü1u™Y‡Å¶Ï¹”mõºvÒÄ÷2CÚ€ÜKyÊ˜Ú hä* +¶¢–bd>flMúäÌüÓú–t2*á‹Jã…e|ãÅ9E¹XÕ©õãÙz–HÃA¦Õs"?&ö›^‡³ÿ¬ç¬uâ§àŽ¾îxIÊT¼”](ñB—•+ñ²ºRÖ¥/$­÷{ƆÙîÙ†ê<é,(^™lí³Ú/ÖÞÏO¤P¸^Œ®¨?½¯¼š«¦/ù“Saä”qqýõËp«cØÛ›™ÇŽ\Ì9T4¡ó25€TjúÙ—Ùë·ÛÏýjÕ¯ÞÜ/ „æõû+\É7o®fµöó<ýOÿ2Èbó‹ æ½ù៵YÍ^{íÌía†2k3 þ£ó»ˆšqf;!¨<ê: 6X‘ªº…CóG’ŽGpE[ñ +]D«tV–À¼ƒd3»\ûyf#*xãàÌz¬·{tvð îAš֎¯©j¼YΆ÷¶Š©5£6¢4Ú×w* Ο¬8\œX(ïÃEP<(Šƒ§GXξüa’«ˆè|.‚ +"­­LvE‚Xì~Åbdz’¸ã5âà&M”+ˆpb;J°ƒ•d<-®U¶´ ~6QèævæÛP¡³pú'¾ì0C‚w!ƒÎu³onP¦AË´%Ô)ñÈh¨UkkÒQP! ‹~÷Á’q£<šF¡mÿvÃÈkÍÂY¨1¬Ÿ&§/’áô×tæ܇€Ù¦6Áä– Â±…9ÐTV*JZ[x£¯¼H Ѳ׿}ûáMvu,ÞùÐV®{doꃉ÷Èñ"ÙÌЖÏXƒµoE€B9L$ÅN–¨[Ÿ¬ih±9±œí ’|ǾÁå3‡0÷ØŽÖjô Ñ¿3*°–:…%ˆC`Š²íßÍneÄ!bÄ!!z@-R¸H6³ˆA‹·âÁN`—’ˆäiš©¤ØɵcÁT'kî|²×ÄÎ É¡Œ€ôI_ùáÿ¸g‘0–¬SŠå\ã0ûkIgÛ € ÊxZäµMÝžWÑÅà‰Â«¼±Ó&´1Q°Ó&pJ§Ø‰ 7²#f®¨õhÑtÆ‚l%×ä÷@kÍBm‘¸1 +´f +¬ë\6§îb&83HðÚîÉÞmªR°ƒ¥í(Á±S-ç…©e8æ1¡Á\½ÿx­øÜšK4׈ò#üÈÆè6}w‚`Cí^džQµG„³€®pE§ ‘4 ¡Q Wß'8ƒtMMGM@Cü=šÃy/=C„¶ +„o€q\$ð–Æ@äG‹ +ì#vhdm‹û?AË««wn2f? ¡e‹$MóHœ¢©1zi/tœdáü‹{}|~+ß±|˜?¿u+\$Uï±-9äÕoß+ G@Ûï=–ȇs&ÛfS£Œ˜…¥¡¨Áw¥uNÉuiEC–¡äd2D\]­K~¼X(Ùpî± 8Z$ ^\Œ'ûfˆL`ÿD†6kulÀÂI`/‘bÖ ÑW7Q ¡Å`ïltî¤Ïæ/g{Œ*¢ôCiØ/©—F?ܳ/ê؉Τ—»-­ÅX€'v8€uÇèdÉfæÈöù~Ù™k"§’b'KÔNÃD×ÀŽgÅŒ–‹AR`°íªì‘ÈMdCpèÒ¸P$×äÓ¤›Ÿ«NKÃ~ÓKCa)Œe,¡O–¬L£‰SA6S$j&RO”œ¶¶‰a13oP̆©7Y2zã"8Rl&fFA1“%£7S¥ìÍÄ°š…=%æ1Æà‹Šô OÝ(™´üÌŸÎTÏsR‡$EÁ!ƒ|[µ!ù¡â¤ß¼2h<77ßåÔ侑ƒÚYˆ>{2•À“Ep‰^)<.Ìæà¾ù1Ö¨=P0Ãä‘âÀìÍ5õ'kªƒ³µ}x‘–M@2—Á7â3}!`ï• +*ŒÐ7ÐÜ?¼D¡1Xq +™Pè,™Pè%žü”úŽ’b'K&z¢•)ôÄr¶3HžPèD?ÔBgÉKzPx!xƒ o¦xwL%zí9:ç8íɲ-ù)Xt 6¢:ÿe½lr#„a(¼ï)æU~ 몛‘æ½ÿ ú^ˆIQM—Xø)‰íÏösñÄáñÄðÀWæ°þxµ[atı}E\gàõïî®ª× NÔ^àUì*ä‘sq.f=ñhaŽmN—¤"$Š±ˆŒnB”ñ;—€…-íd›H¿y̸)šµ7KËù4üÏÉý:Šh»`­— J1Œ!,hñŽDËEÉÆ!ü߶‰„8YJ¶ð­s´ÈfÈ&® Šu¾6] MekT™€#ëƒRdžݪ²ä,Ú ô,Êg9ËuQQƒ¨h#³XŸv£»ªôÀÌØÞR ãÊE=~è3gËðÎpŒðÚó„>ˆÎ‘±ÁÖZ£>æ'@‡eÅïp½âþfßEƒ°]jYÑ®HPÜ*ÒZÍj%{C‚qiH0²M¤çº”¸bZp‚õáÿS$À³`pù Ö• ïQ½ž1ªw^ž¥%Óg«ý‚¥ŒWÄ¿¼WÀ‹-œèêwuù\tfÍúcÄòær6?^=Ç qï××ǯUA©ú + +endstream +endobj +103 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +106 0 obj +<> +endobj +108 0 obj +<> +endobj +107 0 obj +<>stream +H‰œ’ÁNã0†ï<…%ic'eY)Q„@h÷ЂJÛríi±âØÆv•ÐWÛÃ>Ò¾Â:IÛÄqûg<óù·õO/:Ëx -a-u‰ÿþþƒ‘%þu>Kgö +å÷­ƒûíÏ9ßÖ<ø¢švE×ØC]£´/º3a–PDÝ·)FÃH¨K¼˜Ý¢`Œªe@’'ù´r¬Ö¸e䮎¦N¬Š»ë›-V%~ Á”¶mKÚ3bÜšfyžÓtB'“$N$þYÖ%ÚãÝž\Ö´'ƒ!ÂMCå‚f$¥û‹®Ás'mF£¾fK³ %ÞSì‹Û_aâAäœEΔ¾á|ŒÜ1û>9ŒQTÅ•Œ›Ç?+ñe?„~(µñÁõí“»S”“ôÓ&?x°§†Ÿœ‚‚tðÑGÖ¿Pð‚>ªzO£P²š›Ý>+ð£…ØÅ0C_nFdP0®^ª°gôf +ÅôºÄ]"`Å6*àJøôüëC–°oÙÃ.ýÏ{çñt—¢^‹CÂAÇX»˜ß ¸Í! + +endstream +endobj +105 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +189 0 obj +<> +endobj +191 0 obj +<>stream +H‰TP=oÅ ÜùûԒו"¤6oÉÐ5iw8)RÈ!Cþ}F©:`tgŸ}6o»KçlþF^÷a´Î.~%pÅÉ:¨j0VÇ•¨g€'q¿-çΚ†ñ÷”\"mp3 Õ­8%ƒdÝ”˜»úã31ýÂ7Îè" ŽŒ·Ï*¼¨á9l¡.¸Úg{ƒKPI¹ ¡â¬dþî…tæžÕ¿ªë¨¿±£úüø Ù.Jè©•,i÷ªÜ%ox¸Ò+Q2\ÎPleCÖáq©àCžû`K‡m« + +endstream +endobj +190 0 obj +<>/DW 1000/FontDescriptor 192 0 R/Subtype/CIDFontType2/Type/Font/W[58[768]80[576]]>> +endobj +192 0 obj +<> +endobj +193 0 obj +<>stream +H‰ÜW TSg~YD¶&hÇ¡ú¥ +$á%Êf !às Á$D´Ö1 ò4y¢@¢"hµÔW*j+*Z7\¦3uðh]¨PÜ*:n#uªu©Ö­ +èüFA[gΙsfÎœyïüç½{ÿïÞÿûÿ{oî Â@¤R†°QÉZ,õBQóx¨9† B¡Z)›uïš¾_†:½©€á;f#HÀá°s¹ÖèÁ<˜eß\KQÎW;ûýAB!žÅ4ã†ì¯¶LÄD ñHŒ*|Å,‚ NƒòÛf+5­0 e‚0;-v“![–-C¡ß!Ãm5Ls0Yœ:hÿ&Ä›ÁŠ³J&‹$Ü ñŸ;œ¸£Äw?ôlëA£û¦Ÿˆ  >…H÷%x€ºw¹^áå£Ëy3<˜µnÁ¨ºÈd0¤>h?®gÏ “ÃAÐÉ\^—Áf¸‡3ìZ šŠúh×* Dºo5bDHÄŽX¡àIß(xÙÛoaýœ«Í¼ÎE gSëŸ&ÈÖº}ßEÝÌF8˜BAeÃñ¹×ê~}xåüŠ¦ÁMZýǨ÷ ® 6¤äúD:}‹ËÊdóýõ¸“й6 sæ“PáT¡Ý9U:  |Ïs€`6“D*BÃ{&Bz- +´”Áê l¹@‹; 4v;%†ÊzÐ*5HÃäIX¦ä +…2C§L¡¦°Øáàå5ÐA¼c‡£ÑR:…×(ÆJeQÒˆÿûp­î{æ Âr͇ç^Ét¹“pÇ<]$–¸·swÔñ÷ø{;§mËo?¾ãÔC¯÷†Ý»^õÔ«_ë_~;áÍß?¬Ø^Ó8'ôÆŒ,?rÊ´¯óºe= «ÏšTÍîý³\My‹OgEž>&äÌŠùbñ¦†ô1×oÇoÑ// Ze)o“ºtJÃú˜Ó^â“ ±+™,˜Ô¯¤ òŠó_5›3òÄõ²ŽâÓïo.êät.IÌ Ù1ôÒ‡¼ò©h㣠+ŒMþue÷÷ìî9®_>ÕÓ¨<´ö³sÑ¥œà‹N1»œS7Ý«ÿ"¡âΣþéßz,XégÉzÊ‹^ÚT¹úÛ±*|†aÁþkü¼ç“—,–- ®œû$Ûóí'žÀüm†#†€|é¿âœâVPGJ֬ʦ”ŠªÐÛÂÉÿI¼Y: íq<èŸÓx¾SþkwúoQ|~>¼_œ?êKOx<1…;m8…ºj~‘Òó`æÐ)]o¸Õ°e~UjÕùÿIÄy^©±Š+mnyVñqÊ,nñõSÜwk¶¬6áæãN“R½—oC\S/öºt×>¤Þ{ìdN´º´E§nÝ#Jjã·Îß;éÙî²Ööê†Ò`,ÉÏrrÙ6†~Ýo$«ãî—nÈZ&¿úaý´U:›šd~O<£k“Áú•„¶NîXþûO‰'‹ÆAÉ`ìÖ€Ãó1öÓ7—çE{F<üèâå]Õ×æÕý®<2Ú«fÛ¹yç6±®z…ê¹ß«>Mýìø¸”S#ô‚š¼/•µ¬¼òçQ©?´YS ®6¢ë|ËZJÛâKj/ —F<9"¼uaÛõL¹#E,*AÝ^ëáð­e1L¦_QNµmæ¶ÖÝŒ7l5 x^_ÆL˜Ð†_9õ×G( +•ö<üEF(ìV+î4 ÐÚs¨BƒùF Ašq' òƠ苔¤EYTtltìÔÍxÿ?NBš‚&÷%J + ! %&»5v`;IPvgQ¤"CK¯aw:$ÀX4xŽDDçµ$M—LçrŒt$šÐã':™È%(¸ – I‚( é„Éi'!…^zƒ…È6P„Ý +dR>êEÛsÌL­T€úÓ‚§€7Î@šaéQv›Ôõé9 + žmµÛ²¥ƒÐ@ZÃôºW@Žvg·Ûçóü×ÌïV‘›á@½'ÓÍ` U'ÞÙý·žY‹åjÞc{x^‹äMízYÌåSæ¿Fwao´Uwâßh…`ûèŽ:¬‹oÛ¹5]!Ëš¾{ãÔÐÜåW +à\ý±½úÑþoÖž0ËqågûDõ »¯F97à ~>pÚ×X–ÆùðC·‚¾ b?0Îä Ø©©Ù\“V}&A••è.¾í­ßenLR®—®ëh[Ò‘yX´aÝ0uËýEwXƒ‹ïÄmüySÆLŽÕxgž bÄÙö@r?wÔCÜh^˜wx_ÎŽ5ºàoù¹ÓžST¹9‡·iì“.gPgùû‡îñ¹™eIoÝ—}Yðɤ#³­iý·&zÀB^çæ\@Ýœ³ÝÑyKÀf¢ʧ_}Ùl“S‹º*h‰Áv•¡%e~ÅÕßWt™—ÝqÌÿß½Æô_($7‡Ù¿ +Ñ š ›ÁxÆ€ +Qú˯÷Ë®?‹éQ†ÀhCÍE!yî(ÔÍŽéƒáѦnvT® +b¦(ù/ +c›µ×åf5èÌ L¸“"r“ÂÑ]0t²á$]5N<wâ6.[6 (ä“F’r&ÊRÄ#óSp(»Pfô ¿t½d8 &Šnˆ°5Q¸·Q`(dƃ4I • p‘a1-4“—½õn¨8Þë6O³VŠ­Ð ĸ‚؉çåã$EŽzgwò ô9ð嘊€,:6 +†Ñ;¤¼‡Št{¾2@Vz/Á‚Øaè°(^¦VqŽ"'‘k¦è&)yÅr‹hh ˆHØ“ñl P(5:9¦â“k4r•SjA2¦U¤É±te2«’ûôá4,ƒmX£Ñ*L•t£• S«êøŠi»Ýa)˜B®S(juL¡K´™Ic” +Щiž^©Áà+U<¦V \¡ÃJh¤+U:H›^Ój3ÿÎ|•‡EqdñWUÝ38¨(ˆmEÔ°ƒ(‘c8ä”Q—áF¹fÑTÏQÄs F! Š&ŠuÅÕã¢&¢‚˪I¼ Óyƒ.»û}û×~Ûozfªº^ÕûýÞQÕ¸žà8ÏÃ/m‘u©ìB xúø{{¾µY±À?@¡T +=¨_ï@Wý,=½2´ÛGàâÍ.”~‚›ç<_½ºþwüÐF—@o§Á?0ÀßO©˜Ð¹È|OooÁ×ožÌYÑI’·¢SÁÅÏW©˜ˆÆ{:yO@_ÏyžAouºŒõCT‚«““»Bi+( +™§~¿ÐÏáªÀQÞJdÚE¹.SGõŽÅè˜D, ‘B¼:^VQ1‘Ê7‰à”„™–Œ $‹LEýÎàNQÅ&G +‰KUñê$!,RW㣈ÎIT‰‚*<<9áMF©â:sF–òf»Á©z ,uâYŸw~íqíbçü܇—fý8gÝ竆ý©ø0{|º8înÒ•æ&—Ÿ"¬kR_ú-Û2ä¸O¿K÷rÃ6-ÿlÀ®ÑK¥? ––3&ø‘UV˜Å°ÔdÊM+ñšmVó7E£µïPé{áVñ Çmûû¢W黾L‘Yvè™ràΧ-µ9%µ£V5·ÝŽY:©È‹žöøôãýÙë8ÜÖùí¼ÚÚt®9vܵS¡_Õ/½Vd¥²>ŸÙ¨ºWtÙ4ÖØ3ô‰óL4ùdW¨É«êÓ…j“U‡Š’ÓÐRxçbp^³væ…üCÙº‹'ÓïOº1ÞºTK®à©®¡Ç;-9…]'ôA¶¦úÿþý•šÂ©EM.F½v[•óg·ìËǃB{j°|è»qjØÝ Óî'¼‘þÕÃNŽïr»)“&/ü—0m+,èwm¯¬rõñ¹É6#¯ÞAµF£H_7Å9=å»û7V¼4èU|½!³VŒösL|šq3jŠty¤bPsøH|uª¨Ì¦8¥¥*M<23óûEÛž<Ö$– ,ëc–¹á¨¬‰kÕ^¾/d5µMÌI»sC4/ÛZè¨Í ±Ü|kßS¹±séêÑ~Y}<~=i¿ÓáëO}[6–'ê‹á.‘àø"~6-ßü²=Eû2ž'”H%”—B¯ËG¯†ÙíB»ÈoÔ¹‘I†¤NÓý”_ v¼7ŒÄ{8Û +æâ·÷=]°øˆ_ºeâM+#üåÛûÍ¥KX60ê N“qàgÄ+ è‡ð>öçÃq8·Á"€‚ÉA,†0Ö˜Ι‰Uà  Œ`0ŒD 0…hØMn‚'xáà9€ßs±ÿ9™†OÈ`1®¾vÂiø üÃpF[¸Ž®.~.XQÂ!NÀmÞ™ß&P‡  já>±%ûI{,V‰ â?PËìÀB°ú„Áf(Åq‡à"µ`ûD31]ü£x†£õ刺ÎâZψ@‚H8=ÈÒt¯Äx±yè‹6£õ(NˆÆ’àŽ¼¯I-è4\7PR‰n<Úˆo5dÃ&DQ%pÈRr‰<¦ý¨†ÖðþR_©oŸšŽoEwñ®ÑF¡µóa9¤¢æfØÛQ³×úJ;t{â@‰' ùd=9@^Ðñô{úšõgFl f¡,ƒ5³—|‡Ÿn‡îŠè/¦"—9—¡']ç„ Ð uy(È^9JòYƒò Ü‚»(-ðbÌñˆQFÆ¡ÈQÈl2‡’ß“h’Hvc¤šœ&gIyB'S{:úÑMWÐ$Z@+h%­¡÷è/hå ¦`‰ì#VÎêØyv•5qÀÍáT\ —Ìmå*¸o¹vî §ã·@±åUüžŽ½:/]ˆ8VtÃÄMbÊäx¢ VˆÇ½Ž;J4¢Z+QÒ»uˆh;ìFîôìƒjø£´ý[W  ñÝ‚fx/‘=>S2Š¼OìßYÄe!ú)…d É#EÈs%©B9Cn"J" ¢Át M¡tÝAwÒô ½Žž™=1”¹3/6Ÿ…°%,‰mg³OØnVªÙVÏQnçÏ%pk¹n/w”;Ç5r7y9ïÀç¢TðUü)¾Eb,1—L–(%ÕR‰AšA«¾€sP U½sŸd“¤>#­ŒcÚ@PCzh¹ËÄ +=0“Ÿ‡»íÏhá{ä*Jæ³p²ùÓ’(»Øp¶—Í>ž(™?‰%·~å¿ŸK?g”Ïeä%-‡¥G—w”‰Á¤?(É~z#&f‚ g×ét6´Fz„Tƒ£T¦³FØÚÏJ#Ҫ߯Öà&®+|îîJ»~á•l$ÙÂhÅ"{-ŒMˆ_ª½²$ó8~Aµ@ZI¶©M0“ć’¡eAW™ÌЙ¶3Ít˜48öʆŽœ¤Ôÿú+¿˜i:m@x´?p“ÉRŒzîZ6vÊtºÒwϹçqϹçÞݻˊ÷ÏM¼·¸wñ™p—üM|³[ä‹6'¡“\zbƒËƒK Ü%²wñôâŸùŸåAª¸Om‹!.Œ;n~š»ŸÁOž<nÀ5ŸÃæóÞ{ßÇ'ÍxÌ•áý4ˆÏ‘ãzWWçׂím­-;žÛÞÜ´­qk A«¯ÛRë÷mV7yÏÆš îê*—Ó±¾²Ân“Ëו•–I¢Õ"à[+4DÕž„Bý *øÕ]»¬¯&Q\%HPE=km¨’0Í”µ–:ZùŠ¥¾d©¯XY B0РDU…~Q•9ØGþBD5º`òûL^ð›2ìx½è¡D]c…’„¥=céh"‚ãeKŠÃjx´8ÐÙâdK£Nõx–8;‰ÉpÎh{–© ³¢Õj$J«ÔKò¾hr„öõÇ£·×k( «) +j7-×L›a¨5LE3Œ2Φç•lÃ|úÍœ ©„V:¢Ž$Ç)Ÿ4X ›†q#Ôùêm×Ó.nÇϮֺùtÔ5®°n:}V¡ïôÇWk½¬5 }9_O"݃¡ßÄ*ÆŒÆ1├Á +› ›ÕÒüFÕ(“$Ž*´HíVÇÒG¸6Õi +“Þ™êj}.ª£Jz(®zi—[5’‘ ÙJHLÎVéJÕZM !+Û– +›]W^`JËV3£+:“3ÍX©,a©»qGPeXÁLâ*Ω•5£­nE3¼ ‚^tWdœ…i¹É™?µødUI?Üê½µ’dAbõÉ€±lŸ¬ì5Ô/óTÓh}=Û"b×sì4û; 9.¤—$X>èÃÚ&öF,¿×Ëø|N‡vè©þøR_”{ôFÍ \‚iæ—5ë÷3Í©eÍŠ{BÅ|Ï/€õTò¯üËeGEt¬ÇÿP.écƒj¬ÿ`\‰¦…ÚƆÖô–ô­+ºG+ÂqÞÍ8ÎÍ›ZÜ”‡WŒY'^Jþ­æ¦ɉîJSB”*'v-µF±×û:åòŸ3/“´ù'æðø… };,gÀ¹ïD]«¥º­‡1Þ-pà8¿²þEºÇAä?€ÿ Ž=„yL"zøûEßÝ‚;ù=8¿ëà~ a¤QÔ¯G4 ?Ç9i°y– òÒq´éE_ õ;±ž!̵ÿ!mÄqñŸÀuòS¸„ôOhÿœð*È—fÜ ÁÕBŸç±V`µÂœÕJ¶!ýâ¡têÄ;Ãñ_\¦üv8Âj‡'üx¡¦“èã„øßÀÑB6³XÀ]á:×&AþÎ]±^Ä5? ¬Í7Ä;äGX«^!‰tŽ×ŠhAtÐn¹BŠ%¨Äþë 3ˆhFß­kˆí Ômè,j7¡öĆº]à˜èruÙ;mm=‘g4‰B«=½\Úê+Ö7ùxÈ+ì㋼<+zÞ™t¥SšaÒŒ)uÕЋ±Á8®1h3cò5™ ]ÕO°÷€„E$èù‰1=•R”¬~µð‚àO¤†ÇMŽÒ«êh„êjDɆNr +EÎjg½“÷I¶ËÇ9ûF›v¹¶ö\ýFÍçZÇ ’ŸóùybYçròå%RßFH­ßéx]–ˉD>$;pàr²C/—5°Éþ¤6É)w Ç‘ËĦW1S2áþ}K@€|2ëÕŒÛøáÂâÂ]ù6þä þäœG§ƒM°kØìÎ6` ‘îü @š¶…'ÿ#)E6.UNYîtvyÖtF.ŽtF6E ¡­ DÚŒ…± ±ŠŠÂff¦ ÊJ ¢"b⊂ÆbâbÆŠ¦jL¦& ŠF,B¢"LììŠFfæƬ[ÿž”èmý÷ýä¡_:»$ÿžQf–Õaä»ô”±”Ñî0£ûÆÏG8…c<ØÔÅ­ovA•ÿÝüwâÑ¿—Œâ¶bÊn¶Œ'ÿ0FMþ÷låùguÜ,ìÀåÊ?7æ¿ÌSŒºÄTÔu´ u˜˜¹Ä„4Ùôr„¹v0U:p²åðº sËò›ì`”ÞÌÈ幃ñ“£‘¡ £¡¦–†áÆï¼êRúŠKIJ´:Ô%J=7+®†©ßß·o¿¼x +пÀ!ðí­À3{û/Álo#h) JA!K!`ÈZ0 +Šˆ‹‰ƒ|ÎƦ¬¤¦%A}A K]ÍÔÄÜÌÜÌTÐXP¢NÙŠ›SEDR›KS0ÉÛ+‚3m»³n˜&“´°¹²Š¸< ;Ï +¥“>Oæ)—V(Éyµ¥EåF*+MÌñ•7sQ³”ÑŠs«a–ý»?-ÊÄΕi¤Ýe4ðñ±qxCpp1ÔÁÛÃõ‘T*ñy6 Ýe³Ùs² ,œ@Þ?†5P6#ƒã*(›‰ñ”Í ¿e³Ù_ l69&¡Ê‚Ô´ÄäT…• +!© +¾ùyù%@!çü¢‚ü¢Ä’Ìü<…‚œd=—Ä’DŠôA†)ç甂DŠ<ó€ú -- t„‘ž‚cNŽBPfzFI±BPjqjQYjŠ»—›»§vpenR~Žo~.CC%CC*CC"C2V`X Ä! `¶/C>C—@U)08yE@6ˆLŠg‚U(Er€úõ€,°x"…&éÃ]¦À ”Éa(…«)Šyiˆ}† –@hÀ  eE:r€tPO:Ð %`]A@󊸈¡ H¦0¸3øÛHn@ÚX›mÌeHÛæ ´¤:hoÐ}EÔR" I€v±‚S#ƒÐÿ@Ö[V~°Hž©{דx~›¯²`áÅ{¬Aô&Ÿ+ÿÿÿgÇñœƒÈ冥|€oŒê5 + +endstream +endobj +99 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +100 0 obj +<> +endobj +101 0 obj +<> +endobj +102 0 obj +<> +endobj +113 0 obj +<>stream +H‰¬W[sÛ¶~ç¯À#ØcÑðrfÎÉç¤Ó¤i­™v¦íMÑRTD*¶ÿUâùvR’í(¢"1þñ"QE”æ"Ku”¤bÙ±XqÇF,«`Á«B,‚ßä¯WEh£\Ú8æß_ÿkBr½Y€’ÉOa¢##ë÷´Ü߇:µÓ(•û®ÜV|¯WŸ~`Úu¸Ð¸.nBm°-ݽ®iqQ>¹¸.ùÖè~D¸Hå톯×õþ±ü>x»„ÅV'ìÕ~$6‚ù™…i¹ˆáeÃwÚìëà>€ŸþÌ:=9XtœÒEÇBç.ó!ƒ¨<ˆAfpàºGŽS)aG+‚” »¾­ F ˜žÉßåWÙßCñ¡ Ìž„ÖŽáBhÌË‚Ý#MŠüÒpZc³¼å><<„)|—ÑcÓ6[ºeåcTõÝŒÎ@Ê®fð+ŽrDL#OœÒ/œRçfCâTÚ‡ÀÉ~u¨Fq»««æ¾©Ê±é·¬{†ÊæQ^$‰³›EèŒñ!9R%áòÏoDÐ$ß  ;úVü2[› eõòmwW¯Võ꺯]½Åå‡+mÅ›ë+vñòÝ­¦*1Qœ+ш %ˆ´È2ÔrÑH—QÍRé<m`“Èèü”PD  ™®´Ïe´°ÃÚȤƑ +±ÏQJÙ4{E¿Ò>—AbÁÃUº”(4Ò"(­ @ZD:Ñ3›H©l&´3áh>Š-)^! Q¨Laú‚0 ½2„Û¦'¦e:ÎÏLûÂñÊ ÅkáöËwbdh y1#ÑÍ2@·Af€•9%‘JéJ‚Ž–fr4V÷œ0ãåQ¢Õ)I‘‘Ð<ÊÎ 3ǹ¥äv‚–`Ø­ˆšA± ìà|mä­¶²4²ŠHx'DCº"‚¼Š™Ÿšü”G™uødž (š8e¡hÙÌÊ)Í'³Qís+ÉðŸpgEk®E¤–†A9o*êïð÷=6¢0ã,ˆâ·?b± + :iDk®˜”gäEå9åˆÁ ÊŸú¯¥½Eí0t#f³H+íªp^‹xóXi-th•ÐmX§%H ÇÁ™DV%™#ë-4#Ìù +Y•gÔœ´\³òcj ßÎR%‡S±9MÈs)tzÒ5&žS)±.^ª™{Ä3­ëû:Ê”É3å:ODGŠ³™‘"~ЪåϾI«ZÿV<:Âi<Š}—rBGiLÆu OÀ67”UI”À­yk¢á«‚™`Q»™˜o§hiði’î¶`G¿Rùñ­)IŽ·§í,}"xíÓmoÛ¹íU0o?\!~¢Weš½ž\0NÓ¸ES‚öóBªµ{\—›ÐbNÂÄe± y Óþåž®jÓŒX(YWî÷.”Ü×IJs,}¨2ù5L0B5«z÷4gh‰‘9ÄpØ‘GY(f 1ÊÞ3ì0RX¹ÀT´=Ö=ú‰üÌr~<Á±ŽÑ›h.‰”‰­s‚/¯y`«ÈØŽÎ_ÈÒÛüŠâÁ4Õ ¼‡â¥¨H}wÇBKÏÖÓ†ô÷Láu¢ži˜„ô5㸠•‡¨»#‚wÏ_$'–ßq$”„2Ú;±ïc³]‹!ÔH «ª Ðl¶bÜÔ,á&´š´±õ$K!lœúA¤æ“TåGé+šÔ”üNgòãG·{{µïßCSBsk]9B47¢d‹IÃðó\…f†òd=ŽZi(€G4Â…áœà£žì¼Å[lŸ„† +w¿oÚqGO‘Ÿ/ø„ý.óŠ2+"Ô‰»1§ò‘kîB­é¨¦À[é/ßyÝNþ¾žÔ!šD.µíi\ÐÝ‚*õžíÀ›qö€·ç ¢„o„±žN5 Äq$2iŒ!•Ùrä%m7Í–o±sN›’HŽª}_¹£¶ª”–õP˜H9¥9÷ˆ¾8õ ±ÓmRÿQ0r<ô™C¶ZD¥v›A”«ÒmE%Mu -È+¿mÖ[QmJÞlמ(œÀ“áG2˜Ÿ‰ÿÂG^qãf•Èv^ˆ~ÔáxÝÁâeÅ_Èî©î×Ȫ±&øñnâ2i…¯¤ œU”ƒE“¤Q¸ÊA7UúäKáøÝ¡rÌ\P9¬6þÜiæÈž…ÿˆ4œŽL€ÊæcJ…v@)%O{÷+êSæ‘6²ΕW€ÎÐgõ‡gbþJòœB£ä—CÉ¿ø8â_†³@TáyRAî©™QWµ¯Ýµª¿ðúuIܱív¨µ„âùÈíSË'”žEè.ÄÞÙ2ìÜ›áZ®Á —…lŸÂ¢{Ä~¢–ÉÍ<2 ¦ŸÉK3}Ýb´a'oÂ¥){N¤½` ‚ŠŸt%Œ2ahXõ•#q*‡)¹»aBÉ釄8iñL|90¡á§B6þ\l·ØÔŽO´½#_x©DUòvç~ªW_+$°wGÅ锿ã“O†qSnEƒjt¯Þ×PÔ š¶¼sÊ`×Dù9@àüÌYÇÀÎ:&MÙ¶O¨¯~ ]±%DÐD(" ×1¿K´—$¬`[“^jâÓ;ÀŠžçáÜk>Xáiã@/C€Œ|wLô]AS¤¿­}'éýÁ=ïÖÔ7-ªï3–R´®Sì}7ÚÓZñŽwîîvá"Ñ3­Ûµ¨æ¨}åÍÂ4@pÚHýcŠÝ?ч &Ŭ1nxQ‹¡ìj^rAíxIFr+Ê``RW»ßÑ•7däçw`yæ™0Ì %eœ•+eFPžéã­§®uèÙÈåŠ!yÝ£SÈ S¼=ë ŸóhÝ+ÇŽ‚ŸÄÊÑÓZ0ÇëýÏF2zT€4ß<ÒL²ówYí–7Ñ|q>þ˜¹™ÇÖÃ]ÉìoÑC4ÍYaA-GT”¢?sKqmãòF \¿”ÿÐ4ó*|‡*?óZðÉ~íû|:õí{¿]Ü> c݉OsJµõ¾ìºÆ·àËåt¼˜­fq«ñqÆ_/kôØ™}ÖüÚXþ7¤Qëçï?¾û7ÐFÙiðÔ)*´=ýð0IÅعÄõ'7"ã2ltÓÔ)Û®ž/›ã8p6ô »3/¤<ÁÒ0Ń![å’¾¾ðÑ羧xaa©’œÀcWá ¸ÎÑ0xãŒÀD~d¦S1ìÃDü—¸cƒþ•Å¼ùË—ù•ï;¨¾œŸ¿LÅÏÚNik|ä±­ùm£´§W÷ÿ´WËvÛÈÝó+z ž#Rx?²“%ú1±cK9™dœD€f@C€‘õ÷¹·ª$%[ÙÄýª~TÕ­{Q¥,·±ªuÐö}JÃ@U+\ (ÑYZV‚¬3•~7ý“/u/Ût:½ú>îGŽRFîI A´H¨N¦ìȃ6jÙ)A0e'ÍŠ²K°A‡ãA¦l„kÖk]Uið9“Ù½dñS?¸,•Éæ?MiJY`ìÛF{w•‰åc¦§ØJ£™’¨³f«üÄÕ_nq:Ö÷ ŠŒÀ{ÇÍFîЕŒo–›ÖÒuåù½0zÓ?@W¦h? +ygéF"XöæRšò$‚€ëŸâŠïØB*ä;â+ïYjRÅ  +¦>äŠ:ì~H‰ââ`ÇwÔ#N­š³Vâ\€‹žÏ(-€† þÎÈIIðˆDÃÆë™aœ"Í’aaw(œ\7Šš÷¹7+ñ~c«»Þü¹o–d6€èÊ°¸ÅDîÙuͲ©; ÚåÉQííÍ ý;ʦÌ+ë›- £úÊ©¾ê¶YKŽ6§¼Ü"jèç–tåNµ-—S‰€?¦¬ºå}m@rªh6W†²gILŸ‘˜ÀY mÂÔ.u,ÿÆ·/¤r…Y¥ +–Üv³E¡L¯SÖG#›<çd¡Ý*ôíVð%j3˜h׺W¡e¯6âêB]ˆ£=©«+Ò4?¾KÈ»ž«'?K£7âŽÚDto?8oÊ<}ÐÊêTl±âì[ë’Ê<È¿zäþÁˆ xëµëÞ«¸ÙƒFQ[™e³û óÓ3½Ìr/üYª¸Dç6š0AR¾ R¿q‡"GìîeL*·«‡¹§‰a³(FåÞÊ,.Åœ4î‰â©‚y¢Y‹™bd­ók|ÎÄÀ}?ˆÍ•üÔf9ž +éžyºo³Ü·åN‰#EM)SÛ“BàRÓ:r=•€#.÷ýºdýž |ËGSíyuéEGaÕ ‡¦JçMÇìwL +(%¢#È¡R¨ÂÆDçbÂhöíµÝ¶t,Á“&;³³9ÙôjĦæÌã™»¿#b(Ó€"ÓHiªŠüP4é°Ÿ¬%Èìô%$&,â‘w¿3A6€Ï,¾ d–P"Õs­œe7 C‘T3R¹{;­Ô&Š™Îî´ÿu Äfé<:@¶ úy`Àt›L›õ:ŠTWâ$R÷D"¢N-ËÎVŽ²•ž Ú¾;Wv…©R”2 ®[!S?9ó +/‹G=ªŸ6.£À½RZ7½ÿDZx3á6ADí¡Œ"J”þK[˜j.L›ñ"‰• !*¸¹Žš²7਱ö¹.Lçôý™ÙÓì*Ýs«34ɨÙf!IÀB“:’mÓãmÅøú”|Yâ„Eá2b×v±`nn™KJh¤ÏxHá44“ç/™ +^#´Z+ëˆU+.Œ¼oJ]š;<ö`¥¹”©a0ÌÒÛ'ZËr¶»z†c9~œ)gz–]~á4…ã•äØ™P/€”8Ÿ…‰.ëG4aÁõ‰%kc.Ù3¦#â\`YZËá0½»?3z@‡)­Ú™>øåú$¤ÜÙ²(q´ñUQ¦jJªJÔD¨˜tmuuÕFö^‘:žÎÙ™• ïçîu¨– +ß=HËj·¥J@0aù”ì÷VèiIDÅOîI§å'‡xÄZþ{†P ¬b™×+("$ÚËO»QÕã}ª(%Œžðì•YtðbÙá +·¿¿†;A–Ì#·…ž5<¢„y0ß—¿_?jÖ^^¼ê5ÃÉ £©¤ߧä˜=$H£½¬Z›Úª¡ý‰nÒV±µ¤(Ði†ùÂŒfîjïIÑŒÂñÐ6ë6t6XW€Ú䓳žI[>}×v€OÏX,Ï)õµ + E=!cà\§u @ s?-I’\Ÿ~& J±Ä÷®¦Y$´Ç‹KÞ0ÿ‰¡ëi2,/nn¦°œfŒ«úI[ ùûÍâ ×^~ÖJ|µ8Høð7{š ác»®.ù‡s À®ø¹` +ä~/ã2ðNí¼ÇYþe,è ²2b–¼¦Xù(]Ÿô +×ÖÙ‘:›I›˜‰‡á¨âƒ°tüí4cUÇuï÷äP5‚¡÷ó,Ö8E‚Ú‰ƒ¼ˆ-z|Þ‚í[ûonZ"…÷Èä.„ÎÞ—)¤Ôµ¹$‰V þZë„E´æíf‡°fø:5_ÉäMb§“÷:QÊòWO¬Ýiæ¿U*Ãʈ¤®L,aç!·ÒÚŠ‹ÛI€øOŠ9Þ*cŠÁÍy +Å5YMÎ뻚4ój³Üƒµ æüÓe˜š7W—_óßü_¿àëwƒØ0&6ŸÌoÿöM59wšû~ð5™ GcHµ¤RƒÒ¬]GŒ€ÌŠÐ´“0 æ>RôÐs3nó§‡aaRߟ§²ƒáÛAßɺÚ9£»În¦²W%K?K ü~»|µÆ}“,0 Ý‹Ì[¡Ïþ·÷êäf;‘¦nå®îS,öÀ@d|;˜—¨P#=‰Á¸KÁ~®¾xÇ„XÇ+ k§%5$d>w ¯Is1@Ó& ’åÌ·ŠökS.ISxY F”CÍ`Ào­ðÇŽ.tm´ñ=‘0d_ÇÈ÷Õ×°€?ÏV‰/L_bxŸ9[y•+Eî‹R+´Èœ»óÉ:ãŒ^!¿ éE£!=ò © s3` €eôþ} ÊZ^<51ŽÆ[ôÐ(ëàapÜr-hpaÃ7°HAB¨‹<·ÌÚ!;3*™tpF|ͦàu #™«.(8úu­ãÁF’Cˆ°‹–Vœ@æIsPfF®Ü&ðœèºÎn¦ƒû×Ò‹—n–Oî{íq=8Ô¥MÅÌ¢t. aý3ÝN$€¼¦²›©ðåf‘,ÝHøßÍ÷u­ +†ûA÷(Ó‹&p(gô81FÅÙ4Si‡†0‘´ä51‚åDTCÇ.ŠIÍpS0VôÊòD}"’{…rðí¬Cå‡ViC‰âøRãÙÀ©‚옿)òÛÕ³ó³ÛG¸ÕÕVþŒZþØG #~õó8>úóõ/ØÅôØcâ¡Y1t#Ę Y¡Í‹Ç'·×{@/VÏ/w§ãÑåÙùF| v=8À ˜/rÄ“'IÇtãÕvøkxüôâýöôt{zp¹¹½Ø~¸¿ØGØOö5–ÿ lýœß¬³Òò/& xŸ³e¢HèGxýœ•ŠäŽUiº„I$Ô0¡ßÊï߃ yí)ƒuB¿½0¬‚Ý$~©ÄÎ#61Í%œ<©ÂÖššÊäVvbãÝÌv‚QÀ#vj‚ɯØä…˜­[-ýÊüˆ‡AjÃ(¢•ô4IÔ;SG;V´äØïîZ•´#WåÎ@§ŒVàZ¹I¢ƒE{ÆÙØóü|Z´ÂS›$‘»àE5ìuvì[”%ô=›ùôݳÿ§É¼­§ º¤†Ðô—‡ØHŽ~Ì“•:Ê ˆ#YEæ僉ç.Ðh¼ŽOLK°} œ`Ó&°ë¤¨^¬-ØžKw_×ÔW2‡t „ï´™ôuß¡KZÕCpy„M+êî\ýv5̈3fÑ»˜$Õ}y *–zñ M§Iv“$›5ZlÊV¦«öÆ`Šdj}>#ÆQ˜—ÉD Á©ªcÑòÈe&‹/Zç¦Bd5;o:(G‹N£Êæít»> w®éBt’7ûî)gç jÿ‚Ç#<7‡Ü9ɵ ’«AE2H¡e”!Ê(Z%þ™Ö„#‚rÜ[W‹Ý=Ó`SÇ]¾T•¥xŒLŸÈ÷© vCÆì‘çXËûm®¯wuMp ÿßpÐ3r¦GôPÏd^Ì$`B’Þà¨,3€= qtmPjw\n¦=@ªl›µCú}›÷ºÜ àü,’þI’Ý«u[6ï]PvoÖ5¶;±o:Ãø¡u]©˜&Ã쪭àIˆ¹VÂ0Õ$\G]@‚äxZKUm†I@úìÆÉC¹¡ƒ´Ê’[|œ)€æº´õ´E•ô ª‡äòí®2UÊ×Ö»Š)7oÂe^wD¯K³5;G»«"!yqã䞢}ƒ²ÜpGLeÓ÷tݼ/›ÿ.(tk o½¨5žV—sD¯rR! îê´ÛË̆áê(? î_ìh•aÛOeä ÈamõŠCåýAÖ ù{cP\ÈC3[=yNí6q,lö…Ù&«‘Ê฻=’ÅwÌŒ«ÃÇ/ùaO£@MÄÛEE‘.òÛñöf¼¹;ü•*jÜc'CþøíôöêüÃÙøñdw~:Þ^o¯¨òú§auùïöêäæüò˜11_z4tæ(xö(`UMP“vÿìU‘œÖz¢ ÇYãàêüãQµíÞ<œ1Ž*Ñ΀À$üãýý×猔BÎo7‡œm?nwe’«;à§q.£³/üĀѠ¦êñ³P*ÅdZÀ¹þö E“ +ånT1ªeã’›úƒG¦ð +Á’Œ2¦¤âXy÷NÛw¨]<˜šï§/ö‡ÿù|Ý¿ + +endstream +endobj +112 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +115 0 obj +<> +endobj +117 0 obj +<> +endobj +119 0 obj +<> +endobj +118 0 obj +<>stream +H‰œ’ÑjÛ0†ïû‚^h…Y²“u`»”–²]¤„6°Ü E:I…eI“ìæÕz±GÚ+L¶“¬+½»ûÏÑ9Ÿ~‰vÕYÆkh [©Küëå'FR”øÛå<Ûx’_ö÷÷K¾¯y.ðU5늮± †ºFi_t%f¬¡ˆºoSŒ†‘P—x5_ `Œªe@’'ùG´q¬Ö¸eä3®ÎfNlŠ‡Û»-V%~ +Á”¶mKÚ)1nK³<Ïi:¡“I'ÿ¬ëíÏñaO®NkÚ“ÁᦡrE3’ÒãE·à¹“6H£Q_³µÙ…)öÕíaâAäL#gFßpþÜ1û>9ŒQTÅŒ[Æ?+ñu?„¾*µóÁõí('é›üäÁîœ~Vp + +ÐÁGYÿBÁ >ú¨ê#ü…’ÕÒ4hñ¬Àbgà }½uAÁ¸z­Â‘Ñ›)ÓÛw‰€ Û©€+áÓËOß³)û–=ìÒ?¼wO)êå) ±8%tŒµ‹ùý-À¹# + +endstream +endobj +116 0 obj +<>stream +H‰œ’MnÛ0…÷=.Ø))M –‚ AÑ.\‰xÐäØ!D‘,ICŠ¯ÖEÔ+„’lçYݽÎ||$Þì¼·Œ7Ð +6RWøïï?IQá»Óy:·—ð ¿ïÜî~.ø®á…Àçõ¬/ûÖ¶ê[¥}ÙW˜ ³‚2ê¡M1GBSáåücT#ÊI‘_ÐÚ±:㔑3\˜9±.o®¾íi±ªðC¶¤´ë:Òã64+Š‚¦9Íó$N$þQÖ'ÚÄû=¹<®iOFC„›–Ê%ÍHJ]çNÚ FCÍVf*| Ø·¿ÂăÈ9‰œ}Ãù7rÏìûäx09DQ•—X0nÿ¬ÂÃú¡ÔÖ7´?Ý|FIÿÛ„àGvëÔø³‚SPЂ>úȆ +^òÉG=Roá×$”¬¦E× +üd!v&1ÎЗ›QL«*ƒ™R1½©pŸX³­ +¸>=ýzŸåì[ö¸KŸyï<žîS4Èc@cqL8èkóû$À¹." + +endstream +endobj +114 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +110 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +111 0 obj +<> +endobj +128 0 obj +<>stream +H‰¬WßoÛ8~×_ÁGiQ+")‰Ôã¶éöP´¸îÅÀèîƒ")¶ +ÿ:KN6÷×ß73”l§-p»81Åáp83üøqxóîN«Õ½^F7¿¥Õò!ªÒªTþøÃê*-½r¥Im©–Û(S«(K³,WË&ZðW¥–OÑ—øó›*)RYÆíçê}’§U¼Z/ qñ§Äš4»óL||HŒ…tŸ”i·õ®áyzóéËn“…ÁtõKbrtk™·í7˜?KOÝÖÅdä$êDÉ ‚240=dŽ¦KÊ}QJ)u·wY‘'‹N+¸îâßãG“¿'êcØ9{VƈÂ+e`þ¬8µF_ + +GF}ꮳƵ§¶%äVJd°EŒø t0^7pk +Ú²2-4 x1b`]“ ˜®2ÖâËÜ_ +²Ô’ÿ,gMV²QP6+”•–EýdbvjóÒKrüWì´]å2ÃgÐ2pÈs§!Fx‡ÿ÷è|ÅÁÌœWO*WÕ—?2ÕF9˜ŒVŒ Ÿ¸äEQ¦ÞFrŒàøÿÔ/pv)14#c]j´®$ªk¯ÿ^Ö¤t€(¶ä”%'°vÎk”ÒJ4Iä•u"¨B®+P¨£œóòÊ;$4¿  oxñ34€·+¨x•å—€¼6A{#•)/XcÒ¹´’™êÛefŽxab#¼oR§sÇ93©7Þª*K5£È(‘"¾@Õñ¿Iÿè´þ¥ýÐ`„Ëý¨,x—0aÒ2£«\X#Ðõ9¡Ê¦aÍÝ<µØ¾&šήSó씆˜&ëÒ…:øJûó8¨ÉÚóì©;[ŸaõivðíÚ÷&¢·ß ¿Ò­2Õ^/J.8gª©Ü¢*ÁH½WE(µp•ñ0¢¸Òñ1Yh‹Bè„6nDF—,¨|BI„ʈµ0Ðá“K¤átÀçæìeص±L'­Võ;ÕÑÔf­Ú.éø±oºD»8e5õsKŠ}X3A‰óÂõ&&XÓd`%ªH¨ðù{ìàP³9Ñ’]«¨,2ð}A&hœÂ¢¹4u1<S(PØ^*D}¿J4MÕ(樲„Ö–ç®è[í)=†3†Iiù“ >ÔW¨f8ø±K4\m)oBѤä íkI'ÞȾ^”3RCUSUh8Mñm7ô«ºëšÓ±ŸéˆëË—ˆ)qC[ʹ*ËüT–YZu*ÒE\$:¦"R~>S¦‹ø#{mæ½ÆàÀRäžÒç‘qÞ3ÀÁ>„žÁ‡³8RI;U“°¥ŸGªñm\Sí‹A–«–uFþUƒØ¶âæ$œ +PB.Fô¬@ÛNE?Û©Ï[B‡D²g3 +Ð1A È°¢·öÜ1ÐÔÓºª.56›Ä#êgu€ª—ó8sg¤ü–¨ƒ<Ø`\I³ 2¬²á+cCh Dƒ 1úX©–ÛZ¦ŠÐQõJÆ‚î †Xå¡%ZMÍÑž¸¸·dƒšSB‹Ž”5ÿ2~fñˆd¶ˆûÿ¶»VäêH-=ÎÄ]¶ÜéƒíUÐœ-eü^at\Mx$ŽCD,¨8'Wº`jœ¡F¨‘ín²M¸¡;$þ4ùv#VŽAëäûÅuvŠ‹#º‚%±gâz+åƸè9ºã¸@jŠ­èéTÒPWó»D†Ø—xIûd÷øÈ,Ü„¶ŽåNblâ½!˜M$hçCiP¹³jX'ôžÃÙrhž°á0:¨QÄŠW$=ê"ôŒ tÖ²ŒÈ·Š˜=ñi Ù46ª(„\œ5GÆè3`ç'CC'BùµÝjà88¾t—|Nh‰%dºNÈÌ#ÁŠq¨9Ú¬mBË™‹ï§n—žï wqO ê Tˆ‡ +Û^®aPGÞNÂVÎ æ ¹œ($§Tq§áïSÜš7Û +‘Ðºç± “©JfÕlaÇã꾓öÒø(Ù¿'èH!|‡Ç>N^ÊÒƒŒuÁJ‹’Ù{1{˜¢©1UzJŠ¬=^›üþ…ŠšSxÀs¾Zakì¸Að†SG+Ô,Ü$&ðŸºYUkÎ)©O­$ÎC=rðcH¢¤ú³]õlm¹á³}/…àÕ +!Ôí a5[$ºP ]¼4ƒìÚôŠãÉg¾ áþ¶&ƒZ!Ò_%t+«‘›µ vt½å¢ˆ.1À°ç +Œ5ô,½ïe:N_. +Y¡»Ï1e³iYï(›u8Š!N)š Ÿ1åRTÐ=ØSÂÐ)wáÊžW/Ã7Õ|WÕtæøxmöTǸø‰+µ‰RUÇå ñh'ã)1"zË· Ð>“ ÞŠ‘ù`-W_w–ËçN䢄 Ï*m¸`™§˜Ïç¡ž‰Œ‡Õ~·yVO‰¦Ò¬åç+îUP¸Âù¦ÁÆáGI+׬r¯“»KÊ2܆i“:סÖt¡—¤KUÔÐNÃÞØÈ62üÄF|©§£Ô%=Ÿ·üL¥ßr¢© ½rRºçaxãhå +ÈÁ|5õmX¨nÃW;+ŠÉ®‘VìPÝ|v£^q¯îE:ˆÍñ[*¹ª),Þi\\¿Mj¹Ò§+œj¦J”\Íz–JŸG™N×lü?^ðÁó}è_%‡¹‚a¥›ÝM†dh»ý¹b öžÖÁ± WW•‘+À˜¡J7x«ç'‹6߇Ëúý§×ÃÈÏ ^i.~G·5ñiÓ[;5œî¿Ò¶ˆxܫݾ§H|•ðùèÕàpÈéžo¤³æŽªÕ2x„ˆø2Z)~Ï°Ánûý« Ûg´ Üp`,U('´l +11¡Çã5ÛwJ¨:$àWÿÜq¯é¸‘W"j‚NÓ‹ˆ¾ÖyM/½ž¢¬Äö)¯–]·‘#ºÏWpI–"¾Åe 0€ ^Èlh’÷Š‰T$Êÿ}êœSMI÷Ú“d#ŠÍîêWÕyÌüÐá›)+=â©ÅdߌYUhn»e|RòE餶kRí„Ì(jÎÉ¿ÊÈMð§Éyñè¤×Å_ †`Ï/cÒØønÐ÷iПþ)Ø,nþìß/zÍ+Ê^î÷‚Gæ‹8QOžš‘°ŠQÑŠÖ>î)­ƒ¢É‹uO¥ ¬×qìÁ´ËÆ®Xd9ÒbŒ[â?×óÐ/c\£R5"ËÓü.-w«nÂb–߆ɈÀÏ/3™ky Ú7λªf–$ufǺnÈ6;2s¸lí¶úCc›•–›ÕŒí£ÿ8#Kcª_’"¥J¡¾—èç¹|ŽÙÜÌî3­‚Éåyf+). +þrlÿqB5:Ýac…iLÎ*è i&-OÆÙfaÇÌ ¸ûñËØ[yÅíñûõš­wµw{™›x½ÌdÏÂhý͘,Wí´^fЗ¥ƒÁí”UÅöVí@”$¶Áݾ¸'IšùÄ^\ƒM“¤¨Ó-c}:Œ„§=„OFÓ–XìåfÐÖRiØm…ËA7¶ Ó¼¨ëí 0_OØ0è\¯‚ÓúIÛ¡'{¢ŽrÁ‰+®ãë4ê²Àtyܵ8eª§&6Ma÷7ÆëqI[vŽ¾OéY¡3¨ÓÆÿ¯mwÚ“Ÿå¿DümÑ©ÕÉf@ì|+Y”Ù-ÙÜn°&å[H‹¤.³±Èl€…WJÝføqRˆÞûÚ´ß—ùÙª{s-÷M~ÞOí]z&ò*à–oÀšýÝ«”t*¥„Á^Gž”è¹U+цü¸F}LtÑuBÁÈlØ¡€ ™ÆeììФ‹[©æœ:Èôi!²ê{÷¡ êÆ™Vʆ꽊]`µg>ÏG‹îÊ'ˆK ÔâE=OAöØ©<Õ»Ucßòq‘ªŠÎ.»pŠµOMŸf×]úþm_¥þÆãð¤\C]åYé95Seä0 ˆDoýÍJ(¥4Ü€/¨„t(›ÀbwM·g½ùCÛgGì_b‰â4IÏg{O¦:Ïë´«zª¨žÊØW$õTƾÜ^ã0û êuOžÄ˜÷‚Ë€¿HÎ Âc#Y~ï.Ç/‘ëú³ë÷DƪRàû®RI5ÎÜÄot~ï²¾B×Õh gý"C5<Å·¢õÉÃÚP—yˆìóD= á*;6žÃú’<Ûƽ'N5+\Aÿ¬8-WßyTÖ¹+üʆœÃä;žõFV²âÙÐKøä'»~Áí¼@u§a`Ø¿ŒÓÓ²úp˜ãôÆ<)}¶þY³ P™Mª7§Õ"ÉOD{Í'Äü5&,È™XòñlÊ­y®Ô4y³_4Eµ +Šøã/ɧ½Ñ éÎĈ2$ÛkÔs¢îR˜_€ƒ ÷Í2oΉ.¤üÔé³Cr³Í‹æ‘DïûÍ|¿í2S<Å#·‰ÖÚ!|LoF#Ö‚·iDž’eU½ƒý óÚåâ`´d‚»“ñÛ Ý*$9‘ºï7õ<³g¤6 8ÑJÒ¤ù/H´+ã[·`y4µzÊ Áꘇtœ»$gýæQgÍDQuã°E³Þô²ÊÞ¦=ÎO³=%R~¿¥Âo ájÜKÆ‘îب¥•Zší{¾éû™_oBV‚DÓ¨©%!Ú-¸ ©™@¸o°p PÔ¨qâ§ö…ãÉ|Gèsèùæ¬Ïß,ëÝê¨ÏA‹î=O‰Pšíøò\MùŠ©©Û…n dB,ÔùWˆ¶R:QÀ†e´lÀ;ý¢ü` 9pýÝdÿ¶&-…3rÞ†i±OQ”õþ!Óëu-;¿î0š%mƒãƸ…Y†kt®ðT¦Ž +úYðmTî¢)$ºG«…÷žèMV‡DGߊë7ôþlÁj»ƒgTïÂFu¡’r¶ºæýØý±‡‚l¯ÐêÕ? ŸÕ ÜÁ +Ze €²2ý»yzÑŒ¯ü¼yæÁõœl?ž¸§£GÜRù œó7µs3Ú×VZ¢AOš • Wíƒ:ÿØ•¥åÿbËpü4‹ñ§ñ„{… ;TäÂ÷ [¯°ÖóS8П“Îyô;$V6Ö~uß5Yì® -‘>4Ðï—¾ÿv;³uB– •e¥ ž~ýú:ø5·Cýó•6°5qz®À&(îoÇ'–µG¬¤¶Zôš˜Ya5DwÏ?œ.·Û(Ër®¥Š}äaˆjÒÇ{¼‹ÚiY!ôI¶ÞÚn}¢Oïñ¹åó:vo—óˆ©Á>T{ÏL÷Ç2I(z8«‰‚™Xò¥ÞÖÙ¾¹cB‘­üÏøoÔU#ÙþõðlÈrum¡SÓI¥›š×?óÞãdÕº0‡–Ñx¾ÀvÖÁÎÇF´&É”Ñf9Ò”Q]>†+B¸Æê2w«I{‘‘›:Ó–ú'× ÉÐ=oÞAÓzvYu7%i|hõŒn×à`œìU?Ê1ÑfÄZ­¹§·Cë¡1Úø ,kÉXâî«zÐGUòQf ôÉQ†ÊûÊáFiJw.dì*HÚ$ý¨8¯[Íôœw¦Pªfïdd •ŠŒ<ñ>!AR•h>»f´¤:u»L‹_¬É—ë^ïÙ’†3(½*T¥Ü€E»F÷wæuhþ¤Ó¤'ôgÎÖÃ]÷ï ˜\Š'•DvfD†ÝÃb>ú r Vy(Ѹ([FüI¦Ì߬ÀטçÇÉàrj…,…__ÔEW$†[Áµ/š +"¬½ ý{Ž63©•qØ}Ýg7÷j¹ùht[ž 2{‘zy.d¸=3DºG-°™Í]«çâï¬Ö¬ÙçPÆ/ÑäAD²ûØ_{Þ௉zH µ0Þ‚3ÅL‹—»ê!V­ +Ý ÐæL¦(-jF™\"©,Þ4Ô8±Ýê%'#M=ߥFPþHª}¼9ªÙ„Eürvá FU9äf( 6£0ûuëyn±êGeµÊé´Ü?ðr«ãó"bœEj·N4âl2ÚW—‚$'Ñ$ÚµwÖ¡Ç«ãGìÄe)ñå<¨GoöÈ{õæÄvT—W#¶ë¹î»ûã“š_I…Ħæ‰-AR[>;+JPÂÃYÎSÀØÃØÀGý ¨À*»À!Êa"„œ¾h»†y}ÁOh‹K(3 ±¾ö÷ñ$œ¼ÉÄœ¢ ïÕúþY~äqsu` +¾t°z»\ý»±88‚ÌyçB¿EÛUÑä9(?9¼ò¦‚O)‚õ²}’J¡®ÓÂ+ç'*ÿÙ‚H¤=9™sb+aõ ±P"Ö1T+ËxUêe dÜ+MúHÿåš×Aƒ?DqЈáqáÓ +˜b¬S-à Ëx}ïH ®«Ü/o·½;ÊOI¥hƒ äïôíIô˜`]ïô”鮩þ=•ÅÕU{ó»; y1¤µS:)#³ƒØQ>¥Â¡ÍžÂB(n[&Óoj:s@´ÌzÒÒÿïKÇû"ôÞÓt`+›]ñ¶\µM,6”»$4H¦•ƒà,l˜·Ê[µe¨)…àóv<¶ŸÕrä ‰»>“D vˆLΟ¡ê§ði¶?¤\%é–½¢ŸÖ¯>,A¡X-Ù¡ ÏÙÿù г¢~ §„AÄÉ€lóp}E©¿{};Œ5Ž2Ïé×ØU¿;º|u—G—!óR‚ì>¡¢°û±e÷7¶uêƒ2Ç«Ž8µ#ÞÅÑK"ºÆ¨I½UPƒü+€é•ëVP‡®ÿa¾jšÛ8Žè¿bŽààÎ÷Œo)»ä”c'`샕rI$HS!¨Š–’Ëÿ>ïuÏ.K9â!(¦x 0èéîéׯ[Œ•zŽ"ïO”E¬„1¸a5õºFv&à“ 36‡ÉþwJ—‘¶Êy`Êx|u¬¹¯x..˜fÏ©=€‚­~Ú!ô̳;jcNJdô‹Ùl/GB##ÿöá=åúa@HùíáV¿"Zò]ᣮ…mvF>„€ZLŠ gâÉN<éÆÑ ¡SË¿oß\ÑúG±ˆ’8ýÆê{êZ0ƒ +ñ!àñeòyÍ1¸›rÚöº­,ŸÌØ.?Þ±Ïceb7'ÄñíÃaÄš¯«æºÇÒUMŒ04ú[÷þ +×]þ ?·Oq؇².p¸ S‡Óc‡9sdÜ©{ÒˆZbfë»™oKà¾æP´QP.IÑPß•ÂR·FgY¶VêJ[kâÁ¶ßßp“˜Z+l:rÞœ +•xùL‡ý¶aÂ%ç k%¿,Õ¡ ;D"c–ÕHÊëÀV°ÞUÚÅYˆù4l^é󊥈섌é7=¼UröööAÜÊãÓ³÷˜<]+ä¯ÍBò²l«ÆdĽº×ï¿Ý¾=°òÐl× _<p-ì¼í÷ +°K&Ž©‚B¼õŽ©(®óà ÷¯.ƒ6ÐpS#xz“Ä Å®QÊ{s…‘·(P b‘Š ÄÏÍ=¶ÞŽ—VHcs!pr€Èü'¾ +ÿ 2u ð¹WI œèKN7>kˆbq´è»õóÛÃ]DÚg/.öÃ}6œ`×±rØ+Ò‡°g0~`ºR(ò\NP™ ðÕ|˜#)Ùù=áòûF­6ôÊ]¶;ƒ^µµñ‘²Ë7»Ý­®7æe.Ûì]ÏÁß ãÂxÌ륞¿>1›÷wrz[¤ró-»Ü/?é•Ë­ˆƒ,›Ï^˜Fˆ®DôõòDÙLu'#{{ú†*ßìäè½h¹ÕÛ7jè@ªþû½ºñjÔ7:dÎôó[Òz+DI:»5’E–-83r‡’.ÀH!ÊÀVÙV˜§/wo·WWÛ«ó÷—wÛûsúýÐúÅùÙâtzæ;9“ŒÛ1#Äxæ¼} ÁqHÓ à5V¦þô¬/æ²Ç•þò^™®ø¹R…ؘX‘³š^“)‹À"²ÝÓ8+Ë.†_mølØu•òxqgôï_xû­Y8€Fç ˆT 3w`íØ00.|FÕjî ph|/F§à Â•êÀ},ãî‘–;i þYóúÿßIoýn‚ùÞüòÏÎ\-N¿Ý8sÓ͇^nYÄE®àvr- c=—“åæIÌr¯¸A“ÅoxÐŒa¬€+ƒˆ‡æIUÒ|÷Ècðo #@Cš½Ê¤\±À"XI‰e–˜ Ev‹ŸÍý3»Þ/þ6T +ô¡X\ËQð º]J’#Œ›î$]ó ¦TÀ%RiÙÓÇ´#Ó6׳¯`3j¥“9¢¹~R˜ +³ SB• ˆ¡Šb yшãîftÕ6åƒ y,QÇ”ë +AIÄ%›à@Hâ@±QÜÆNYRä}h)šêaL†žAbG׎bªßäø¤™Žèȸ+:ì ã\uÄ<ÔX@à°gÙšex{ Æ$µJÍÁÙpjü¼¿×ÏlŸ±xgä²”.W,sê„}¡Á)+yÁhdù¡¢UÔR4€Ý9é®"K(›Tuá«…û(MWÄp€Âd ·Ó¾uL)‚(ÐN:'qÁIbþCe,W œ¤QNM£¿c‘7ƒå B¶â.–ï²¹e×w„$8RPò"?ž€¦%+-†]µžXÆ'±¬IãïÏg·ÐcôþÑA³¤¸ðËRá=ÙL†¦ën'¿ÖæG;A$]ó |xò‘ymõÃá–?)nµ“f‹1y^û”™¦KìÅ”$t5›€LÄ*cº@v3á–dBu‰{(”Ö6Úçjᯃ#Yêç×vv ]/×ò^€•+„4ŸÜÂœ÷%­¹ª?,_¹D”Ïyxý¬Öûqþ=ºßüHꇸÜâ%EódÊE „kAÈ'À€®Ÿ€¨`…Åj½óŠ?54`›ª™&_öXvú ÎY€u) +\•`x­Â+F­èq+Øõ¼T¼ˆ@q'ƒh¦çNwNyÇÑL †!ï’•‘Â{Ôðx¯èŒï¬AÇN íÖ"sÇifz$GÓM¿ ¸°—YÉ{Ô 0c±ã^j1©í²­1âÆ´Ò¡õûXº{)¯Ä×AÊiL¸ù ÷X¥I5ižÐFëä“°”V”3=â÷Ñt÷’9©&ÕSc$™ã¾ 1Iõ•D¦Õ`LÍZìÏô¨ßÇÒM¿‹æÉ‘¢nä²(EkšÀ‡%»qUù ªViù.ÈÉLú},ݽTSŽÂÈ LûùúIR„//ü¯®sþŸAijâæµ 9¸7‚„í§‘TÔ…j +c5¡œÛ‡à‹Bá¤b>ÙN¼Ä@ÊÎ +«÷ RÐBÁIH(úàZ”Š“œ^}Yh£üÛ ¨¨ë"”&š¾(´tpÂÛÝ€Ï8y K -T_–ÚhÇ2 Dí…œÔ×Záú)BÔÔú:6{­…4¯ž µ‘ºVƒqð½8 1ACXáõS„d‡ÌÚ×Äf‘-Š5> Ù@®„p¢‹ôʺV§}Ž.ùµ˜Ô\%S êÖz]Œ„rÐë­"µCRâ‚úâmŸðª‹Óo2¦øÅõH]ÐŒkagÍŠ-Ãe¸è–©(ˆˆ˜TÈ]ì§g}1—=®÷—÷ —‹å·=?¹x·XI‡WÓ.&sq¾XþÄsħ+P­f„³ ‹=æ!æ‚b@™DJÁÄŠôÍŠæ³3*xy!ì +ÃG¢ÃÉÌt>Žá Cç~¤§{Ú©N’`MB°p†­‡Tæè-W]<nYÇ2—Æx‡µYš+‘Pºr$ý½\J¹]B–v Ÿ9kñP¬$.Æv/È&ËÉ7hJ¤£œ%.5SŽÕ‚EÀÚÐÜI•›BÙÙádb‹ï{^ûÎM–{&D˜)êÈãvȸ9,1«ò¡µƒr}uªËY1ÊP+N‰ºà3š5k‡'y.5W×€Uonëp%+,çu§Ÿœ¡çÒ}´û~bˆê»Cû˜£¥Ø/X¼ìÃZîí«-©£gµÏ:b e¯vUœ€:EUnºÖ6R–߇uŠÊ]ÝoSÞÕuˆi²MIx;Ù¦æZ´>ÚÆv,Ó…ª|õ“mJ&-“mŠ1¨beàqÔå½lSs=“…íx&P¼ ‰9•ÉRÅOQtKuj†¥Jhs—&KÕ\æÑtÓoÎb'K_¥‰–*Iaª“¥jŒÛ¸TÍõ¨ßÇÒÝKž\—&K•Ðfï&K•)uK_nƒŸ,Us=â÷ÑtÓï Õ4.U\=nŽK•à55L–*ÆÍ1sãR5×£~K7ýÎZ;ãRÅ¥¤Ô0Yª<¦Â(K•,7]ž,Us=ÿa¿lr$·‘(¼ÏSÔ ¤H‰Ò¼ì#$ ƒ¬h`n?/H¾øÉ»kc˜‹^u¿WTðËȈÜÿTlù¾ñµÃb=û¶¯¬’ëëÌÙ lãÙ)kðu8JüMºE6éò]àâw³˜¬j[ ÛWV!VCçÐ=ŽPåÄÅ+ ‰PñûýÂ*Ä:ŽMöÖωv]~&!ÖÄŸ/úÖ+TÛN7Ž• ·h÷ªþÂ/¬úÖ¿ÆÖËDZrÈ𴇡í+«¾S+¬:•cŸ?Ǧ¶¯¬úÖOR»Ü<Ö_þ¼Xg¾°H"µ¹籂³¿/7µ}eÕè7›Ûʉ¯H:zÛʉi§^:¶õ/áºÜØV0£EÇ6yÅisS.ŒùИڰfÁËMmâÇáÆŸº¡êÎÞi\õ5çéïãϽTiä÷”2š«ZæØå=ã4Ûÿoœ¤IKýì¢A:Ù¤ù8£=î?¶ÅëVGVÛGÍí~ýÈì„‘‰Îv"óyûèÓW×ð³$©Ã@ò¸mWê+d“ëØú ×{‘äíâ0VÑr¢ ýë¿Ð ö/WVàØò +ñmrQKµm²‡KýÇo·Bô@]f¤5Ñ{׈†WU7|Rxy;>X¬ÝîmÇ(òçïòâçÚßtNc7ز>ûùÓ`?>Á6E\Ü>µÊÇ’ûÀ ‰K§Jßx"ReÄW-'~™WéÓêÓ98¾õüÐPÓ`í›N|⫽N[1[•dk¤\kÆ4=v}ÜÔ`Og r 9™n:õã‡lŒyiÿ•¦¿Oî‘ Íýø¹íl=AèǶ]ÑþAáÂ7‰nCæãFgñ죹`ï®>n8å£ß‰©™ó¼Óxª# ÚQª†4=ö|ÜÔ™XOç n9–î:õã=n”û•£¿Ì> ™®P–kFIÅX¦ÂkSG>·\¤JIï_œFߺŸ–J>ú3I:øÚQÆ5f™ç®…h½\öM6郶ÖÔé%e”1M]7u&ÙÓ9ƒ]cÎߦ»Nýø!výJÔOõ +µ,Ù˜$:Ô:ʤ+¶R ¥ÉÛå¢îŸ‡WÔo´Ž4*f´vx-¦å–oo+p/硯6SQÆÞñq°6i`¤‘ÁÃõ»g¬Lmþz?Oüº„_·÷³£NÆ•~¹èðûÑ×¢¤dÎÓ9è‰zBÕ#êxF¶KÈ^TîyH'F‰Þnéªe½Œ¹wã-]}… 0}ôÏ#âœmüðÚ‡žÝgò-Óþqÿçã×ø÷ÞÀ·÷_ú9¨›~øA™Aûª#a׌“{Ià 9ŽSgpN š¦ñêй~w+p Hç¡Q¢Ëé£Ç|¸}÷Ñ*½qü·kíš×ÅDÝ+ÊÉgj+MA6¥Mƒ\ŒH.jã¢C®È é[“ëÕ›ÏV<¾Ñv.çt0ÕJ¦ÎDcÐIF©`4víÌCO׊X£-߮ȅ§÷=p™3¸¨‹¹•`ÔFF‡h‘c¤lU69•ûl™¶Yˆ¤ŽäëRçéœÒ+‰iÔ(|÷ßÝŠý^{íaTìÜ›)êªÕ‹N™Õ*rŒ“¹*Û«Ï´‡#¶Y±²Q²1*Ù¨Ù"ÇÈÛªlrNÏÑÇ86ô'½+16:d£66:“M£N6ÕʦÎd{ãçtU6É[½›²m MLólêL6ÕʦÙ•lÔÆF‡l‘cämU¶—ëer¿Gå^£x ãé“TéA3æÂï7g\20ºþ)ÍéÒ>ÜžÛ½†'Ɩ㌮Èõ²VÆ°ŽY4ŒËœFmdæ 4íŸÙ”6 r†‘®±^®1®í~ö*m\æ .jã2§s¹þ©ƒ©V2u&ÚÇ8•«²½\/£lXUóéÙœÓÙT+›s›õPƒÚØè-r°Á]“íe½Lºú­ ¶šG­˜ÎÓœŒÙ· iTã# ›:Ø)çßUíåp:÷˜×C¥û埘»Ž#º*ÛËzc+mÔ +c£C6ÕʦÙ¬«lÔÆF‡l‘cämU¶—õ2Ž ³ƒTiÇ6e£66:d³®j°Q²Ev¹k²½¬—qlX]¯À6e£66:“ÍuUMµ²©3ÙÞ8Æý¶*ÛK[štökT®mé<ƒÓp-ªFؼ]ý +1çlׇë£Rª&Sø°M¯{qËçŽãS[ëeýŒqaQ¯ÆåœÎEm\Î\ÖG 0j#ã¾D‹ìo×d{YmvlÇ=×#°™3ئvlæt6×t6ÕʦûN¶7vmk²!o˜ÄN¹ ÐÃÈ [>q œê<3§8ÕÇýÄ¿ßÝŠ6æ:Úú=`úè17ï¤ðÄصçmY6É›ttg`ÃL+w c£C6jc£C6F%µ±™“Â>o«²!oø“#ùìO¥V²QɦQ'›jesN +O¸¼-Ë&yÛïG g§ø¸ÂYPg²©V6uÈƨd£66sRxÂçmU6ÉÛ†».œ¬ÚŽpÔ!µ±Ñ!£’ÚØÌIá Ÿ·UÙ^·r¡á,¤Œi$œuÈFmlt›El¦Éæž°¼­Ë&yÛ19lŽMVW=žÎl¦ÉfÙ•lÔÆfN +Oø¼­Ê&yÃÛ8÷À†ÿÕØèÚØèQÉFmlæ¤ð„ÏÛªlÈÛy¢J´|ßÛÐèÚÐèL4d” +fFòË]ÊVÄ’lí¨Íá`Q.»çRgr©V.uÈŨ£62sRx§lU6É[Fe 'ନÖá¨C6jc£C6F%µ±™“Â>o«²!oM&­Ø2ªu@›ɦ4°iL.8¹T+—sRxÂålI.ÉWEEõX­¡H‡kC ¦ZÉÔ!Ú J²) Lä—ût-ˆ%ÙʨÄ5pUL\áËW‡\ÔÆE‡\ŒJ0j#3'…'|ÊVeCÞŽ†Jßg¾§t6:d£66:“M£N6ÕÊ朞py[–MòVï»#ùìOíÍÏ+æL6ÕʦÙ•lÔÆfN +Oø¼­Ê&yÃÛh¡ª\j`£C6jc£C6F%µ±™“Â>o«²!o{CE wÈ‘P¥C™R‡lÔÆFg²iÔɦZÙœ“Â.o˲IÞê}ÛÃYÀª²…³ ÎdS­lêQÉFmlæ¤ð„ÏÛªl’·„ +ÎÂ^0q…³ Ù¨Ù•lÔÆfN +Oø¼­Ê†¼U¼³¶„º΂:d£66:“M£N6ÕÊ朞py[–íu“§3þVs¹×ÎV·„¦:«ó Î6Óû½t6sÆNõ¸o[qzï1nßÚÍ;‡äm]6É[A+œ=›¼©OÙœÓÙT+›:dcT²Q²EŽ‘·UÙ$o ·f l_åØÌlÔÆF‡lŒJ6jc£C¶È1ò¶*ò–pªk8 X•r8 ÎlÔÆFg²iÔɦZÙÔ™lo=o˲IÞÊ}Ïá,`ÕÞÂYpNgS­lêQÉFmltÈ9FÞVe“¼ám´p°*—pœ3بÙ•lÔÆF‡l‘cämU6ô!×^xwlåºÐ_ŸŽÍ;ÂfšlæÌÊ­Q›i²™3ØÞ9z²,›ä oãj ñŽ€¦Æ ›ÒÀ¦A.F$µqÑ!Wd9[‘ ù:/Tç-pmè«÷fÎ £64:“M£N6ÕʦÎd{ãè9[–Mòv :‡3€Uµ6ÏæœÎ¦ZÙÔ!£’ÚØè-rŒ¼­Ê&yÛP[Ã9Àª”šƒlJ›¹‘\ÔÆE‡\‘aälE.ä«]¨©kC™Þ—9ŒÚÈèL4d” +FcrE†ž®±$[ˆÔÂE¹„Ã9Kµr©C.F%µ‘Ñ!Zä)[•Mò¶¡‡¯¿í˜¹šƒlJ›¹‘\ÔÆE‡\‘aälE.äë¸îÛ~® ³Vøþ3Ȩ ÎdÓ¨“Mµ²©3ÙÞ8zΖe“¼í¨¤áÞ8NTçÿ1_î8–äVõkµ‚“¿$]ÚÀÌ +’£WŽ +m_ÁOÜÏëdI ÚèŽhòòddò’/[6ãL6ÑÂ&ÙX•lÔÊF‡lžcåv*ÛÈ oÃ|ÏY9»`œÅF­ltÈƪd£V6:dó+·SÙ[i8Q«c‹Wݱ©³Ø¨•Îf“ª›M´°‰³ÙÞ8fnÇ²Ü +Nf·0ª&·Œ3ÙD ›8dcU²Q+²yŽ•Û©l#·ˆÓÙ팺»Û ÆYlÔÊF‡l¬J6je£C6ϱr;• ¹e¼îöB¹¯§¸½`œÅF­lt6›TÝl¢…MœÍöÆ1s;–íç#ß Wàñ ÞWŸl9Þø*“8/ãÄ+¿E§«M6uÖJZ5_OLF§YóëÃ:ÁÍX«ŽÜÎe¹Ü“eè;UË&Îf-lâUÉF­lê7Ãæv*ÛÈíF׬Ž-ã«lŽÙ¨•ÙX•lÔʦNp3ln§²!·Ð®XÝ^À¿Rt{A²Q+Í&U7›ha3Np3LnDzÜ2îÂn/„÷k·ÄÙl¢…M²±*Ù¨•MàfØÜNe¹ám4·0*g·Ä!µ²Ñ!«’ZÙÔ n†ÍíT6ÜCúƒ»psl÷Ìéñ2Ù¨•Î>¹¥êbSM6ë7Cs;—mä†j¶…ŒAþ¨Wg¡©&š:DÛEI¶¥‚‰ìpÙX#­gsq\·êÇqÑ!µrÑ!«ŒZÉÔ n†ìT6äÖœÍc ×SÚ6H¶¥‚mcsIÅÍ%Z¸ŒÜ “Ù‘\#¯ŒÕbaPŠÑr‰³ÁD ™8DÛEI¶¥‚‰ìp×X#­€s4:.¬ÖŠã¢C.jå¢C.V%µ’©Ü Ù©lÈíÁ›h®c`TήcˆC6je£³Ù¤êf-lÆ n†ÉíX¶‘[ÆIlÑ0(⼜ÓÁ¦:^i²©³VÒªéŠóoê8k~™uïù4ï#·sÙFn7àjÙ0*çfÙŒ3ÙD ›8dcU²Q+²yŽ•Û©l#·ˆ®Ù[Ååøvlê,6je£C6V%µ²Ñ!›çX¹Ê†ÜBÇ]Ø팪©:6uµ²ÑÙlRu³‰6q6ÛÇÌíX6äÃÊ2´Ý{s?Æ¢8/ãôÙ{E£NÛ=„Î^‰U¡GïUvïµN°3öª3·cÙÆ>-ø Q[Xé6:d ’?Ù‚C¬J6ÑÂfœ`gØÜŽe¹ü†pï£fT6q6µ²‰C¶]Uب•M`g¸ÜNeý­J¶»‡€àîîÌ2Nßïöîî̇=„UÙC¨µ‡TyëÅÍ°ýíT¶‘[”lÉV®§º3Ë8‹ZÙèUÉF­lQÞzq3ln§²á÷BïW4$ßsV2·¼—sµ²ÑÙ7l©ºØT“MÅöÎ1/Ë6r+¸ GÖzÃýÚžõÖlªÉ¦ÙX•lÔÊF‡lžcåv*ÛÈ £óãØÊUn‡&Æ"ÛRÁ¶A.V$µrÑ!—gX™È…¼ZÇ­ÆaÅ+<Ñq©³À¨•ŒÎFcÑMF)`46—g˜qˆ5ÒÂ+xÜ—ßnÓÅrgr‰.qÈŪ£V2:Dó+²SÙFn'jql¸ÓõDZ©³Ø¨•ÙX•lÔÊF‡lžcåv*r{ð6ºë ·?×hÕXd[*Ø66—TÜ\¢…KœÍõÆ03;’kä…;³?™0 +ïÆ‚g’‰4qÈƪd£V6:dó+³SÙFn7ÎâìØ2~«º=`œÅF­ltÈƪd£V6:dó+·SÙ[m8Q«cÃèЛ:‹ZÙèl6©ºÙD ›8›ícæv,ÛÈ­\Á|ÏYáq×!ãL6ÑÂ&ÙX•lÔÊF‡lžcåv*ÛÈ ÿ÷¸{QÍ8¯³cSg±Q+²±*Ù¨•Ù<ÇÊíT6äVNg·0*·Œ³Ø¨•Îf“ª›M´°‰³ÙÞ8fnDzÜòõ·ʃß\n/g²‰6qÈƪd£V6:dó+·SÙFn7ÎX·0*5·Œ³Ø¨•ÙX•lÔÊF‡lžcåv*rËãn2‹d, ´<®;Iœ—qòRýT]f™?̈zÝõþ”¢õŠ­ª,³â—.ŠÎc‡¯gd'b´*:Ý ´o¬¾›çr^ƉW™X]ÚkßXt¸Î.Š¯zbm™fůcÜvøZq¥u ÖH ÿÕ‹ãBô¥9.:ä¢V.:äbU‚Q+™:·›a#;•mäö ¿µ¹OǺ£_éªÃyçÞÝ HŸ_ëfÄîR5ÍŽ¢z=Ý—Y?ÝŒµêÊíT¶q¤usm¦?Ø꺙lçeœ¾V¢FQ÷•òìÄ»ªtÑ$7øQóˬÛwïöë 8•íg¾`H¾ç¬{ôÃF‡l[6:dÛU…-È žl\—lžcåv*ÛÏ|­ÄéÕÐÀ6槜Åy§#÷Å45þnO›:÷Ucÿ”ªãK/ÙhÜ rœlêÜvÆ^uåv*ÛÏGøîÏ~äˆ:©¢æˆÝ|¥„#Ë'¼²ÏýO²FôYLH-$yQß³1Ü)‰ó2Î-ÍdéÈÏAœu´kÕ´>Ñ‘Ÿƒ8«M¿s¬Öx*Û¾¸ þñúº‚â¸gûéë +*Nß+wi?m]AÅÙÛ†U¥)S‡YóëÃ:ÁÎØ«ÊíåH¶u… olÀ¡mƒdK°mkW.jåR'Ø.³¹W—Èä¸âUÇÇ€Ñéò…OmÐèl6V%›ha3N°3lfDzٖ˜Z¿Â–û”«µ2(ÛøÁ÷™kÁ³‰´ÿåçjU'½~)ó PÏÏôú|~r…B»ßÃè=éõ^eÆÞC¿ž³Ê'‚¸Óý9N<Þlâ©PG`éŽÑœ¶ñRC¡g +åÏœŠÚæ]êþêìÂcqœ=­<<”ÃËçÛx¦ýØßêŒÅëxÌpWMÝ9Xj¼†v…b ž¯¸>æHÀcRHÉ9híyÔ‰WïuÌO<Ÿ³>W¬8kák@Ê'ê\ýq„ÔÒÆW£¡Ï¸0">u˜WȬRqàÄ9ávNŇÓö¬ù•<¸¸·´ +×Î!ûíÝëKzp>Õ$x¯_€çCŒQeYñÏ0JÇ1¨^µ¬BÏŽÆóàéî6~Å9ëÁk ~‘›ËpžFDWw l¬úùïÏÿ窿ù<Ÿ¹Qû™ßYïµsZCzcéÚ¦³®o³ôü26bÛéýJÿ†»`µ÷ºPöZÜGÙñösÕÝ–ðeôhmf´ûǘ2à(õÏ–bz+ò27ÇN´™%qtlôG~ø牢w\_ï…än"â;PôâÊRYw(ãK|ipBM—š#ù<\aŠ8½Ñt,™}‡+['½×qeˆ³nÎ×:Þ¿@Êgœ/?î_ôñB¨ÿ¨_Ák°ß ²¤¿Š“V÷9ü =UÑXsiÚô.EœŒ6"ºûÞÂ@û&‰ÁQœY¬§*,#oÙÕ“¥ƒ´ Cêஜ¦‡¹þO€òi?@¾;ÈW»OÞÆÄ gKNÈðP #dTå*v Z ƒž¦‹@Þ-_„Éjö¯dhs@æç‘#j‡ÓyŠOº€3@žrÊ‘'È:3ìÜÈä¬:kI#Èäd‚ WK±vN!AÞvðE®w‚ ÎÈhðÕðÍù# ~Éï òõéû=„–“"5—œÐŒõƒdÙM¦ŠdNBÒ‹nMtΤ¹²m©éu 44{Ç¡XÕ9GèIûk¯KâXœ‚ ÉÒÓܺ nÑÒP4¶ðĉ^­œ^ÂûRuÉì²±Âö7 ¬e[™t{Õû”Qc™^»EèKç•E“ª€aÕ¿÷/Xú?ð½¾W¹>iüvËz'űµçåx r [†=I–~‰-Nä9šíâò"ù²¡Ù¡}:`y‰N®I-ïEèe‡§Þö›œ¹½Ýâ9ñc\2gz{éŠn–_¶ËJNÕTJºrN$µÈ¤V·¾—±#äÜYÈiÕ ¨1nn¬=ÊÖ¯Ô˜ü÷^à^åù(è²Ïà6JNnÓš³-ÙÙèV-ä  r,‘³‰tNb~F—“¼½+»J¢ ‡¯©Rpðó÷<ŒoQÑZºé9‡hôOº’ä”®ÈG$‚7q¹¡Ú¬¥Îð£cÌaÙ®¯&Ì–IÇW‘™nTMÞáÈš[œ± MioEÍú§ßïâ»B|}ú~O¿õ7(^ÁQ+Ò˜éÑಇ4&·\öÚ .{H£mÑàl(Š@ÍÏ57¸ä!Ñq‹cçbKd³ð°ùˆ›á¼·,áÇ#ÈDcÿ¬ö×=.©1ÑÎÓä0Ié9u79ÍoöÌM.Gyê·&Ç…wŽhr9¦´á&÷P¿ãÈwùúôýšqkv)&µáfÇùj‹Œf§-b‰Ãf§ªš¤+æ´~š8ÝAR³£@µcjvDk;£Ûa«hFKÝd‰¤v·[¸ÚD³ãn,FнØ$5;®)Ý.¸Ûá1mºÛñ@·KêvÜz5¦ÍÓí¸³hL›îvZµ²èÓí>"é'ü@÷^èb‹Ë˜E´ö®ç ͯâl.Ü9¡¹d8tí„—KL!½–%RË¢½Ll˜Ènn­ˆÀ9ÑL[GW¯!]öˆ›ù$;*y>²ôÖ# _‚s¼OŠ÷–Ž÷/˜ú9?p¾?ÎW鑵èx¼çUöËŽ6¸€QË÷NïäŒþ]·èjºå!z†íÓEœ%䯤ó+t”ÈÅy²œYëžÕC$$Rî¹E4§J P¥Ldt6òä„ž!=GÂ9þ&=;PiJâÃ+ÃwÑýÚñeçxßAêxÿ‚©ßóçûã|•%ò˜ CàÜn7Û¶v»÷ØÖo¶µu÷ çìÓÔÀqÝXa[ºqüï·|Îó¤j€p^8uÎ3êÆT4ÿ©3ç–¨$à8â;â9n/伙ạW5%qê„* ,ï½Ý| Îñ^±äŠeœ?aª÷üÀù7Àù*kU Å»Â{µ¤$m^¤OÐü ;LçÓÒé\pŽóŒ?Hªxÿ‚¨_óå{£|•ex±¢Àü–ÅÐPr›Œ¥OÑAVß©õ„_™^OÀéÑeÚ9Å +Ê ò¨0µJR“×Ðc{æ÷zRû­µÅz‘sI¬'àœ§ õäHD"¿ùL[2]ëIm~ reèÄ¡£1Ó•àßµrÖ“Opê!? ¾/Ä|Åí9 ±°¿ŠaÓŠ<¦;5JÝy“ƒ§˜ôf — +˜’šèý=´l„­)lï7o­bÜ’<Š 8û¤=~Q} +Æ9º²¢R8n„t~¨Á 5sû–R¾gù›$\)ðœv“Ä© jÈ0ô!|‘ï;8Ç÷aø¨âý3ž~ňï +ñõ)]ô{®—<5¼òŒ©9¦î×23ãRRh3!ë‚H‚Q)ºÈÙìf¸´qeà|¾†‘Äðsù÷å~®_νþssùÜì%8K§`aÞ¡-àƙtƒø¢:ÐÌã¿šø÷ÿ¯z†ñ'„ñ—Ëçóaƶ-«?EÐ3CžŠ†$ŒdŸh©âLq +žé!¯>³À¶ÔBbèŒèfz¤"ºp: î¾èDíMœtN$ÓÖÑp€iHï>u_ØŽÀÉ}]H7uÐ%q°hi@¶‰Ó–À„Œoñ­æŒÐ3¥çH uÂpˆ%8sIðß¾LYfzª™Ø—{_‘tF:Þ¿`Êç‘ŸŒø {*°ÿ°£(lÔÌfTN3 1§"Q@geé”Ío€mòp>×Éú zùÞVLÃ3ÙŠòü‚ ¦tO6×Û*Ì‹ð}6_“'P·Ö‡º7¡)²ujVèÆJÍ+Tp`GìÑYÌÙÃV¥j%ywûQä‚_Ek•D}MvjñÁÆÌc¨ +%5Ù„ í-N&é¹±™eõL•½À÷øjßÅÛ˜Ç 02!GÃ9¼•Ýo2=uë^ô²æ-€ pê¶Ä3uì›RˆòoCcÄhþ^`ì Ëø-ï{9àÛ³ÏÎvÁ‰ÛÞ¦“ÎØáó\#€á‡ÎÏ2‚K§: ·‡GÀQMÏ%TcR›¦SÍ5ÀÁô ~|G€¯O·{ µÐŸ^¥wÇÔ3­¸–ê!¨Ù0|`çrš!=‡éaºsþ£ikÊ´„æX¸ÿa¿ÊqcËa`îSüÚ—x0áœâ§vÔ@¾ý°=oqg¼€|’H–D™^íGroΆ1~Ï…aš4µ¡xæ\KWq`,Á“*QìYÍ€Ukr—=e§.‡ú;Wô¼¨Ùijh€GÝ_8ZÑ÷÷¸àVÊZ“šš5Æâ‰tÜæríú +¨^ñäƒ|㦠+×zaM§áÑ;5¹iâcÀqÎÎr-Úî-Óc-BÐË <«ä²ìÚ kÉÎ +¯ÖX¡kj˜æ€Ø’œGæ†(EŒ!_‰«`VÐ`ב- ÓØsÂkËbDšìäêP*LhÊX +ÉÎF³ˆàI‚ù{æ{ ͨ“š±ŒN~«ñú ª§üDùÑ(߸«ôÍY´u¡}s¥¢‚%hwQÆØq§ï$†8fÔÁ‰’ò’Ì<íè­r´õøÑuÄ+ÎƵ €¬Î fÚe¡Ü‚£œÉ¸{Ú\‘²P®qQ:s ¡í×”8}Í2H[vRr,K(G{Ö-‹\ìXðpTn …8Çôõ÷\¨ÙUð,0y¾Ï¥ì;¢|ËO”ŽòíåóœvÈ/4láBòC¼èàz;ävp¡!ùA^2Dò‹øÙÁÁ5‘_hØÂáˆjU +Ä~U-\/ûµpH;²_Qòa¿¤³p†Ù¯¨‹Cxf¿¢.ýŠº8Äbö+lãB!ò+êã€ÈoU3Y?ä·šú¸Ð€üpû|qýß@õ”Ÿ ?äÛËç1ãâ¾â6n˜ûŠû¸~q_v×Í}Ù}\7÷e%\3÷eõqaYÜ—_툸/© ùp_2áVqßÜê㘸 f.õq8ÃÜ—ÔÇ!®_Ü—ÜÇ s_r7Ä}Ùmܸ¸/»æ¾â>nîû¨žòåG£|{i©¿®®f¿„á÷Ð VŒ¬; ·4_“å‘€24göP.–£r@œQÓÈ׿Ü1 fR܃v´)ùØÀ Bî­qG€ˆzÐÙøyÆP^€¹åè }fÈL¬9§àTkh'è™vΊhè †*âbZÚ$xF²×yçÉ f]±Wã ¿Å[~¢üx”ñ–·}]<çy²ˆ¢i–aùÎøŽ¯ØymËÁ—üÏØàò,š³ˆJ¸·³£ÞþL9!Ã3íØH]àcD4„1N ÉQ€rõ]"ª Ls¹NÂ=4Â`ò&>WÄ­;d|gtÀò·7–³åÅ7&Ï’5'z½ M¿0Õk~âüxœo´#o7Ïy§ÿòe%Èsû\6ó-7¯mÊÓòh”O&%Õ€Ð4#ŸÏŽòy•‹ãdgÒ9ù’ÿ@fO yTâ<®Š€JóÆ=Ã9^|7“wñ¹B9~מJÅ +¸!~dÍòæ#s(֜ೄ‰_ò9?a~<Ì7:Ë€cœÍ†y\'˵y{\›× +6]57²X‡Ñò²/Ó¾MWþº²¹æåª1(Àgï%Y0—äh&/ îë”SGöuáºÎ}=ód¶«Vv®P•Ø®3ë’ç>±°j1Ä2`5Îß1Õs~âüxœo´Ã¢:äÉ;ýgŠ÷$Æ*æ´OøV²‹ÀVnAr¥LŠ—«"ŽÐœlÍgƒ“S&2“öPvYSb¢€<‡ÛFÃŒYf]W÷Æ=Ë„ÖH>ÐlŒ‡°®›à®=\!êo¥†ÏZÁæ3þóDÇbÍ ¾@Øøø©žóæ‡Ã¯9ÎE¶ÔžÏ„þ§Vµ]MÈݲ'”Ò¯ìÒ!˘PB>¾zB MÕÈù –uå.þ6£á*SbØu×Èù$äZ\e4Ÿ”ÈÕz]Ü·œC<ž@³®jw-p.ß¹ ®¬µ¸` -àxRú%›™5Ù7][ÈO~ÀÉ—ü„ø±ßhfîJjû;o:ñBÜ [úŸ¸â ¸z¡Ø¿Àÿ—ëé©»!np~ÊÀº2øÔ–íJ+b.že{F$5»RèÎÞ¸çkfÒD;^á¾kOVl`³V“žc™Ü!Y:kNð…èÚøø…§žñãÇb|{ù÷¿øý/Àƒ„² + +endstream +endobj +127 0 obj +<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +132 0 obj +<> +endobj +134 0 obj +<> +endobj +136 0 obj +<> +endobj +135 0 obj +<>stream + + + + + application/postscript + + + Adobe Illustrator CS2 + 2009-05-22T11:57:23-07:00 + 2009-05-22T11:57:23-07:00 + 2009-05-22T11:57:23-07:00 + + + + 256 + 148 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAlAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYqlfmq8ubLyvrF5av6d1bWVzNBIRXjJHEzKad6EYql/8Agvyl biG2j0Oyu5yjM093Ekkr8OIZ5ZnSWR3JYbt18cVb/wAG+Xv+pZ0j/kVF/wBUMVd/g3y9/wBSzpH/ ACKi/wCqGKu/wb5e/wCpZ0j/AJFRf9UMVd/g3y9/1LOkf8iov+qGKu/wb5e/6lnSP+RUX/VDFWv8 IeVBJHFc+WtLVZiUUpbwvvxLUYNEm1FOKojymGhtr+xDs8Gn3stva8yWZYaLIicjUkJ6nFf8kAYq nmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpL52/5QzX/APtnXf8A yYfFUxk/46UH/GGb/iUWKoXU/M/lrSrmG11TVrKwurgVt4Lq4ihkkFaVRXZS2+22Ku0zzT5Z1W7m s9L1eyv7u3BNxb2txFNJGAeJ5ojMy0bbfFUzxV2KuxVDXf8Af2X/ABmP/JmTFUt8tf3+t/8AbSk/ 5MxYqneKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpL52/5QzX/wDt nXf/ACYfFUxk/wCOlB/xhm/4lFir55/NBuH596LN5DZr3zyKLqlpOPUs44xGKcnckx/uCefDoKEf F1VerHRvy5sfKPmZdPFrp9lP9YOvT6a9XjuQnxhShDB4yfgQUoeg3xV4nca9rf6FVdYvLqHzTZ21 /b6/HNIUZDb3GlJbMFU8Qpt25cu7M/jhVkHnXU/MWpfmvcT+T9S+sTWsdje2MMMpkt7k29tePLb/ AANxPremYzTviqH07zOt/e6DrsV1eRaFrN5eL5rj5Epb29xrdw2liUlv3ReQGF+P+69ulMVfQl3/ AH9l/wAZj/yZkwKlvlr+/wBb/wC2lJ/yZixVO8VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVSXzt/yhmv/APbOu/8Akw+KpjJ/x0oP+MM3/EosVSjWfy/8n6zrNvreoaak mr2oC29+jyQzKFNV+OJkbau1cVVPL/kjyp5durq50PTo9PlvTW6EBZUc15VMdeGxO1BtiqeYq7FX Yqhrv+/sv+Mx/wCTMmKpb5a/v9b/AO2lJ/yZixVO8VdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVSzzRZXF95Z1eytl53N1ZXEMCVAq8kTKoqdtycVS3/GnlS49G5XW7Kyu UVkktb2RIpoy/EsksLvFJG6lRUNirb+dfLaDk/mjR1HiZogP+ojFVP8Ax55V/wCpr0T/AJHw/wDZ Rirv8eeVf+pr0T/kfD/2UYq7/HnlX/qa9E/5Hw/9lGKr087eW3FU80aMw8RNER+FxiqFn8+eXk1K 2jl1SyuLdf3hvILmySJGKslJBJdeqaKa/BGe2/UYqmflMvNbX996bxwX97LcWokUo7Q0WNXKsAQH 9Pktf2SMVTzFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqpXczQWk0ygF oo2cA9KqCcVSDStN1q+0uzvZfMN9HLdQRzSJFFYCNWkQMQge1duIJ2qxPucVRX6A1X/qZNR/5F6d /wBkmKpN5t/LG2826O2j65rup3Fg7pK0aixjPKM1U8ktVbFWDf8AQpH5af8ALdq//I+3/wCyfFNu /wChSPy0/wCW7V/+R9v/ANk+K27/AKFI/LT/AJbtX/5H2/8A2T4rbN/J/wCVtp5Q0g6ToOu6nbWJ lacxt9RlPNwAx5SWrH9kYoTv9Aar/wBTJqP/ACL07/skxV36A1X/AKmTUf8AkXp3/ZJirtHlv4dZ v9Jurx79Le3trqG5mSJJf9IeeNkb0UijIX6vUHgDvviqdYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYqhtT/wCObd/8YZP+InFWOSahBbeUdHiOvW+gXMlrbmK4uPRPJViXkoSZ lB69sKsZvL3Unuecf5k6bJFwUAF7aCjAsTtGzA1qMUJhpWrvbtaNffmPp11HF6ZuYAtkvqBac19T 1OQ5fzUrillH+NvJn/V/07/pLg/5rwK7/G3kz/q/6d/0lwf814q7/G3kz/q/6d/0lwf814q7/G3k z/q/6d/0lwf814q7/G3kz/q/6d/0lwf814q2vnTyczBV17TixNABdwEkn/Z4q1aEHzlqhG4Om6d/ yfvcVTrFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVO5uba1gee5lSGCMVeWRgqjem5O2 KsVvvzDtlkWHTbR7mSQ0jMvKLn/xji4vM5B/ZKL7YaRaF+vfmJfjlBC9rGfsSJFDB9DpdtLJ9ITF VzeWvO1wxN1qQQ70kiu7hd9yKpFHAv0DFUo8w+X9cgWLSodakv8AUr9T6OnMblgFGzzSytct6cMd d2KHfZQWIGKoVvMtj5TjWy0nhq2rlUS/1mejI4SJTHHEEeoiRTRVDUWm9WYtiqmn5u+Y24/6PZ9w 1ElPatQPVH+e3Xq0trz+bPmSh/0S0qv2hwl6ex9T/Pr7Y0ttN+bXmQEhbS0J2K/BKO/Q/vD8vx+T S21/ytvzJt/olpQ9D6cv4j1P8+nvjS24fm15mopNpaDejfu5fDqP3n0/h82lt3/K2/MY5VtrOqnd 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 /9k= + + + + + + uuid:7AA7A7110247DE1191BE81B4EC60418C + uuid:7BA7A7110247DE1191BE81B4EC60418C + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream +endobj +133 0 obj +<>stream +H‰œ’ÁNã0†ï<…%i7VJÔ!Ú=t… +Òö¶rm·XqlcOÓWãÀ#ñ +ë$m—EV{ûÇžùæ·õO/ƒ¥¬€–b-u…ß^^1’¼Â?/f“™½òÛÖ‰ûí¶mXÁñe= ehm+€¢Ð*íËPaÊÍR”Q÷Ç£¡š +/fwŒQ”§ER|A+G[Ñ× ,ýŠë£©ã«r~s»£ÅªÂ¶$¤ëº´;K[“¬( +2ÉIž'±#ñÏhH´?Æ»9¹8ŒiŸ†RfZ"$K'd¿èFxæ¤i4êkº4¨ðžbßmÿ /"ç,r¦äçßÈÚÏÉñbtˆ¢*¯ `ÜCü³ +_õMè»R®?>™Ÿ¢,ÿoœ,ØSÃÇrF„­Ð࣬ g%mÔõ^>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +194 0 obj +<> +endobj +130 0 obj +<> +endobj +129 0 obj +<>stream +H‰|P{HSa¿Wݵ‡-ò6{ÜÚ.j4—.[ú‡ö0{Ø2›$)­îM—Ûîº[3 ÊŠºÒT˜Œ ¢„2C¢,2Ó0P©¬ KùÀõ@¨¨<ßüµÛßÑ9pøýÎû’ !H’d¶è3·d¦¯ÜÊ›¼ÃtП.X9Þjç9)¬D ‰†¡%Q8WOOOëeP=<ó:ýå‘DI^º•.ØJDSA¡ƒÕ&$$¨%›Änà„<›Sbwð;»ÍzPm‚htðœ†Ý`6³©ÀÎx;/:%çnMŽ†Í&X즤5Iê5ÉZÍŽ`c#ǚ쬑ùS°›Ès¬C4r¼Å(±Â¡ÿMú×QA‰%–+ˆUÄZ‚ +þ€Ðâ ¹‹¼Fz]íh² ÚØöPWªðg*(¨ÆÝ +œõ2øHa?V€Duá*ÿ/†4äêPHKLn+}ƒîXŠ#[>ÐýèºOq¼pwi.ƒ“Õ?!2~|퓧NÜTÑ·¯¼’Ñý ŽÜËkÌ㘠à#ƒç€ÁÛ×xé†Jþ´ì%ºÛOŽ¡Ù¾ÐÁ Šò{= ,øÞÜÛ«êíiž€Å@¾ÛÙ¥ìÊÖ6áyÌf}ÙÙ\ÕØvÅÅ«Í5m è'âðê*ÎŒ‹ÁY¦¢ó5G•òÖs¯Ax ufiK1BO¢Q˜R`1–â<êt1wÖÀàÄد°R§¾Aò‹¶“'ZTô°´ñ¤ÇšÕ˜Ê`'Vâå8¯JÝ’Ø£Ô?{äã{{ÕÓª’?r¥q¢¾)Wqä >{é} ‚;á´Â*‡ËG”Õç›7¶¥=X¿ãϲq¿.ߢèÆè )õ‰Êʪ¢~îÕž¡EØ Ÿdê_:J¾×5±Ùé×GÖ NÚQPæ×É4¦ð¨Œ¾mY-莥Ψ¤J†D¯Õ # ã)°ýÒÉä¥n¿®ç»a•û¡;ਣPf-Ö×w[mSm¸òÊþŒ3žß3ŸÏŸ=^1UÌGßosM + +endstream +endobj +121 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +122 0 obj +<> +endobj +123 0 obj +<> +endobj +124 0 obj +<> +endobj +125 0 obj +<> +endobj +126 0 obj +<> +endobj +141 0 obj +<>stream +H‰´WÛnG}Ÿ¯èÇ™`9š¾wØK¶ÙQV\l;4IQI‡¤,ûïsªzn$-kXA8SSU]÷:}ñöVŠÕ>{5Í.Þ(!Åô.‹et¢Â?hK„wªÔNL×Y%VYUV•Óy6á§(¦Ù»ü·ËXØ2䶪ø÷·ŸÅ?ê”1_ÝO@ñùM¡Uiòe9•ïî +¥AÝ®tùn=ÛÌYn).o~fÚU1Qo +eð:Krëº`þ5½‰«KÒ(&.¿½gñåòPü>ý){=…ÅViöj·Ê´-a¾·0-ˆ +^V|§—Ý2»ËàgûÍú:ú„`ÑgG2’> JóG¢lƒ˜"(À ˆ·‘ã€IG±£' +)…î궲¦˜X-`ºÏßçŸUißâzVhƒ˜}J%†¿ …ócd÷è$I~)8­ð2½õ>>>¾çå—º©7$eó/å|»î£Þ>”ZÉ1EáIi(ý1¡ç8¶”ÜÖ †Ý*i¬á#¨:¸^› u«,¥Ì•VŸ”(h—DhU ®*æ@Å;Æ„ªô6Å¿2L@ÓTŽ•bd3ƒ‹2:½QÍ©•dø¯ÄcÌSÜ &¥©p“ -¾TdÔJKy·˜*6&dÞéDP‘3OçýO ‚裯Ï”¶B@¿Ìi"½ÅÿOxùƒ¡‚…ˆkñî÷J,èC£÷-B{}}ÉÕp1ÀÍ” ãTì&A$ß +…}—0Òò0«›åBêu½Y‰züè?b&å;`Ez[fV$ !Ö3Æ[Rk?‚²Wo’v IOØ+ÿ@ IF¥±h ^¢ò¿@5Ÿ ºÊŽk!îvô¤s+þ‡ûc=wé¡ièP*Ä[eë [9éÌQU„ã$ÚÞXe“µ€rtÊJ¬·ü°X²Úý=¿m ‰ å"q"Z"…¢ƒPØW^Ê-Ò)ª]ïò7õª°9L–pœ<ÜÀl‚ÉÒµ˜s8¤ÌXÁ2Õ¦¬,¶‹)™eë5Œ>ã×æa¹³ ?/IJЄh¿Pötþ)qÀpoÿ•ÕLÛnöÉ+NbÕ"ëàÚHÝ># RvŧÂdÓç÷âÓŒ »ØÃwô5ó/ÓËU»—èø'餯ø‘¬”9»‹"ÙPô“ü}’ •ô¼¨?׋‡dUCUG׆üs=_ŠE:ë0k#RLCâö÷¸ôì Iצ²ÅÙ:áì Ò§Q@j4‰ÍÓ…ì»súaæ]±ÈK›j^€š„=()Ñêoo–»êã·Ó«CÒûjÆÝ×s1å&æÄr®9»[ò‰Õ¨ + (?@l€„N{èîPj0ú•ì–©ì$ÿ8Š¸É¤þxÎâ!Z÷CZdªä•æ›ŽöXMæâVƒ ½Ý]ªèšáIƒ­dpÅÂ2<à¾sãPí#ý}Ì0Uõ9 o¥ +xQÒµ·³Ä)Å?û]"öHws‘¥¥{‹ÄäVjP¸~öˆs‰}ºšBHGº2ò ç{ „° p݈4ðÆLf~L»3Ýì.·ëõfvØîêYCË”61‚Z…À‰ÎÞ®ê9}› y,ö5ŠX;Ü&èãÍnûi¶JƒþjÙ̾Š¿‹)1{2*m—@F¡”"¬ó¸žX¬B‰dÀ¨üæª]áRya`8L8‡õ°T±Äƒó®t|w‘˜ Ó®ciz §˱@ŠPVÎÐj±3ö8ÂÒpÌVI8pb±ó£jß Ž) +-%YD[JlßÁ@ÀÕ0Òßóô6œê9öóåNé=ík²uU!nA†‘«\¡îÉ +ò6Á)a]`L—¿Ïg†Cpt’bO ¯íw äØ;¢Ð³­Ÿ•;Øà ìéê»g)EKÛÄž:ÙºÑNÐ~”,[¡ŒŒ%ËV˜^…C"zž>Y§zŽKâåNéK„XZ¯û’°h‰›äPCN­¤kŽ~6©––7ͱ>tÏJž‹ôÚµjùŽ¥'¹j[J3PÐ sEnAšAÁ½~#_H +FdºêtGº“ö€<úB~gµp Œ]ËÑøNð\â¹…¡]Dò˜ûÆÂøŸ×ºÛÓšPÞ2DÊo—‡‡O´´—OïÜr!=ï‡è0›h&Üþ›¸ÃÀÝZL…è‚¢R%îAµ«¶È.’˜Ùª"fOÌŒ1Ò%$¿üåÛ§P4°H…u¨:‡þêùÄI¸ózGc —ÞN ¿yÊ ÔÅ( +ÑN¸ú}Ï Âþ¸ãJ0SÇZ{êÄÍÈ‹£ìƒ*ÄÚBd"ëÃàÆe³‡­øåáðL~¬&—p~ÊOÒrDÌnmn76šÆ½m1HÌxØô<ý°9Õs<Ò^î´¦Z“´ qR4D4¶¾±´õ}©=50QoG Íš°ïmLºi·5gz؃—Sž w4‰ ¨b«ÛZ¸g±½kuëˆÁŒPx¥[Ý.â|‚ÇQ·ºÇzzÃ_Fy?¢5n ¶–ˆ¶¸ Äñ1ÅÜRRÚ Ô\ŽÒn jÖQ\ÏÓ§ýTÏqq½Ü)þì¦tëªA­%Å ¡ŒBÒ¬¶Ø-&¦™=tãûüÃ7À”V‰RÏ.^ìx4Îh‰>+x&±‡G¨ Ì_´WÛnÇ}߯ØGÂWÝÕ×yTHE‘-E´—‚$àHtdWJLúÁïsª{fzföÂæ¹5UÕÝu9uŠ²´vnc0<ëAÊa$ Ž,­ªìÏ-MÆêp\‚,%¥ ^{£—ìF °Êr$bŒ•amr×ê`3K•÷ô¿É8aלµ”ôg»>džÌ¨–˜,j×ÏnkF]ÂæÐ?dœ|^£0;ózѸÁ!½ÊnTA%«ÊÌÍŒ)>Õ!Œ1@¯ì$ß/*ìiÃÚ¦Cüý0Ì¥—Ôwh%àÛØë|^DE½î±l `šFt†fŸû™Çù©N¹o"5tÓÐñ¤]çã|xŒv)³’˜ñ  ?w-*:Ä:¥æzƒÊð„¹›£}ªCÆÁ×j˳û’Ÿ=H<ÁMG¦fyH«s,-Z8Á•|žp”d€@Ѻ×ÛŸ·\š|ZW¸7úÌëi}’’ëÉ‚C,MÎŽê"nº¨»dÊîšQ=¯q^“ü9ì€Ì.Yå?¶:RáäBeŒ¨ô^e7ªÀ6æP)dãeÉSŸàˆ%'9®ÒTAUõ’JTDŒ(êY‡“ˆ1DËé>ÐK 'J¦²Ìª¶?o¸°¸oÒ&Ì*G4÷DïÂþb‡p[q|ž°ò:»Q'°åD%S?Ó$=Ý)CžINØ ùÉG=ÏŽ½`Ú f’Q}C7AKM°%œãµýYÃ¥ÅýÊ‚DÛ™+Ë-izsäA8­3`J2¨ìÏ-MŽ' Ôi,qìÀ‡Ežä0yÊ# êÝ ž«yUiÐÝïÿ]¨Ô(‹ hU-o¶ï†ƒ¦ïèàßK='òtµûòá?ë‡/ë·¿>œákÄôF/:òµË·n®ÞÖ¶´`óÞ·õj÷€‹¦^­A-JhjqÐêuîgÚOwÊÐ]¸¡)@¢7äMSˆZh{ImZÓD¤Ø¶­YUÆÎœy™õÿ1¼sh†¡û-+íCOsR›Á¿”(6œ´€õ?.> ¦Y0Re +y É  œ1[è7ðNÂiø¨*ûóFK“sÀÒØÛ€‹›ËÛ»_°:±#ç}„¿6§¶ÂYˆJLJ +¯:M…ãm[áƒÎÁ>úÃOYô¾8×µT%“NDnŠ\dãºØyÑk\"fUhk¼×8ØFäãí[_À¥ùÈUÝ Ù<Û€B‘+‚#dÈ‚~øÄ«B³¬ÿéáÓÑÆb~ÌÙƪZûsf ý{<Øc傉e³¥B’»†$ÿ¬¬"0žUeÞhi2DWd‘sWØ„ÇaÉ®‘4›fŒ"ƒyü›luÀ/]AÆÁ +#.rŽZú“Ž°±¨ (àM$Tà Ó.¿<ÈóåÆŽÉ[w|™Cà]Šë˜’™CqyDЧλá'Z¢|Xõì¼ Kó$…uw?1±c(œ>B}»J¸o®lѲX#\ÑPé‘KàÅ‘Pš•3B Úèœ9Y9ó1m¶'9àž"›¹D!b6·–á–~›€Û.:Ýx“©nEY‰ÞnîCïý¿–^å¨âKIJõ¥pÀb÷Aaþ¸þü4§õ gÁöbQ—ðní¨!KÈ*nèI!ÅÊY9Ü CJëOU‡á‹:v™ ,€lx ¾x‰äK|_OeÖo°B‡|ß#]`ß‘ç%Ë>1zŸ]#á_>fnµ[}‚|â.Z|h®|h +‹òÃÌjV!huï6ô#€åì¢Â§×+–õnõY1+í$š½ÝÂèx£:”áH›4j»]¾xs°ü÷êÙË-þܯ¢ßX7€Egv¼`tT°{öbÿ¯»ï>^ùðëþîóÃúÙ›+`úŸ®á¦dž„ž¬®h눇8e–3‰¸’Ýa‹ˆ``F1x[·*DÍB'²™g¬4@.ؽ‘}ÒÐ3@ïZ'±Îø™db£Ç)¦ ³¸’WTšJF?¢~Ù•Ÿõâùx·¹äðÝTY5NZ›*9n#lÓ¶çô’‰M˜Ä@HÙrƒ*YÚè4®Óñ­dÅ4.θÜßÛ/«3¢œþyûíJx|cÛt8ƒ[áö‡éðFËæõw=8”VPJŒæt³Gï]"+ÉjÆz…„1]kR%K>]Âci2“¨Iª&AÞýĦ—LlÔă^°ÊÆcf’ÉÍêkPV¬A–‚NÅ™dñš#é²Ö*gr–° yÒá[wÛfÍk@ò9CAy¡lUùÕ_©}À3°1×+u¸Û)×]t`8ITÖª¹xýöå«×7‡Ý£(IcrqŸ ík9Äö›#g ‘–*ÏÊáíæöùáÓ0Çx຃qâp:ñ‡1¸!yT.ù3•qÁ.á®—ùŒ¹ÍZW/iôRÿuh¹Ð‘ß`¿p+´öúÕ‘3IÔyì£Â† p͇G(í<•à/¶ïŽùF=FlóM’ê™ Ö÷ÕÛ£÷ö›œ0Þ$sk°rúÞ$i`¾’ùZ[ +ð/Ç\ƒ@;ÏÕd!¸túÚÀ`L,ô)ØB ¿¤òó£×†o¼²Ó2LÆŸ¾6|{¤Ê‘ÊåÚ?<u¸Öù' js˜Bqè˜sT-½$°Ë€8 r`ï–Ctʹ´ôíÕwçœs”x2Y£sv«ÔÝÜ–IzØy +¨2±ÐG=Ÿ ‹v©%sRßn8ÇìwÂÖCÅG“c¼ ®ª¾<“Á³P;¤Gyu_θ…¯Pòh 7 ÞNa.q\:ì„lõX7sö­M•LlBkC +DklzÉÒ†K€À9„³sºLJÏr{3L± +–)P1šÌ$­MVŠ Yû·ÓÝh¿´4°ØðÎ eçÀú¥«™dbã +‘õ·ëJæ{Y ¥=Cq€ÿ,G/ÙÁÀÀ`%¨ñŒæHÄx¡*pÅ 2ŒÙ­HšDƒÎnaŽçë<:½äçoô)“/¡³­?3,´zÙ¤æ7¢àfMÖ‡f²îQ€Ñ•iƒÎ'…*¿ùËègx2íoµÿ°j&àPsSÌ{ïú“ꨄÇïifæîÓìüÞÞMý»âŸÑ,vmvÉ6¾í&¡)ùFßuIš,q÷Ë©Í’ ¼Rœä{f¥ùþJO½Î<ßí—’ïA2> …Ýa KÖð”bëÚÈ¡ÝKOçBÓéæ×ÀáŠÒl.ÜëìVíÓÿ_O½N/ÁÓp*+NN— Iï¸B!¥V +–î~ƒ„<‰*€íe%‚Œ* ’ÔaØ»&„£„!ÌBø¤Öº-)É$»Qâœì§AØ-ÄùM0}(– ­¡ÃíUv £>¦_ᨪ ’6ý—Ü:CýNzµìÊQÑý|E/a‘Iûmo‰nXef$Öh‹0ÿ/qêiwtCÐl¦N×ËvÙuªE«%z$'bÁ—­’UèýÚëDžŒÜÿd ÖÁ1êNŠ<AS± +jÅ~&¾ÒAŠìf¬å`̳f¸èxÎ7ÖÚc_=Òw^¡D‹.‡FN,8ô*“‡Çe"ݳlj{‹(òƒ#öR +û±Ø›<#LDrPžãq üò›¼†¡]ª xï€ÈR‰»+@+ij2z:ÈäBÖ* Ø6wÔEYRÔì]‡ÑÆâÀäb"’„yȧYcèbiïè¬iRü´ c1ÚbGs„ÖÒY”®„E²ZA¨eämz(êÁbˆ¬Ëå{bêâÁäÃËÂ<ôSŒ®1èÖâ‚f¼oÆ ovcGHÞ‡ôÔBî\Æî&r3‘‚‘#nÓöìgÆ™,Zm‹|Õ¼x0yÆ0IJ0–åq¼8â‰%aL6ñš€9vGž_ªv»dÜR_´&VÁZÓE +$p³ª +Ô§,.GÐ +­9Y%AåÇDT\#žÄSˆ‰HîA“<¯‚wŽ› éò¥ñU ô2‘uE(ý^Šò¬ºÈ è©è¡ *íË}ó*ë +c^4" +<,Tö‘,܃fy^ÇCi;‡"6D®êÐe€^ÐtàÒùMD;pÈDíá4†+>Ò;‘“MzN(q¼ ­3‡éK)‚BÕ䥑͹ˆ³”ì{:Z§³÷tnÆý輫ós%ѹ/Z +X¥D"uqŠ•”YI”U^I”3Þj÷.â¬$û®•bÖ&ºw4ºYknÇÜóÈæ ê¦Êº\ôLH £NQìýÌh„)ysã Ææ\D?2ÿžÆéì;c›q>:Ïê\ª–VÌléžî·z$Ír1)s 2QsëÀäý%zºßþ]NíMtïht³ÖÜŽ¹Óia„íMò«µÈiQ‡5`Þû×5 Š¦dzµ0}îlPÿˆ‘¸OÀÔ“Á:'¢L‘XNDWŠX=ÓdL»ŽË‰lËÈÊ„D‡ˆ~@ÄŠÙÃÿôd:¶n¦JÙ?`öÃUÀµ¨Þ¸ï§eÂPÀr`PÐz+sí ¼,T&Å6e¶Owý +ûí¶8Ö…glsŒú¡œŒÊÉi9SÎgfºL5@sÖqˆé!ÒhûDH{c…Æ “‰ +ÉÀáHg>æˆÝeYLž¢$Z]ʵµ´80y†PÄ“PžäaTïßÝ/Wyìøé_¤ymµÑá‡>l÷O—oîßÞ?^ˆ#“²þ tÙ*ˆx›¤—œt¿¿ßHûíû +Þvÿåb$ 'lp‹4xuÙ}øéñçO²~¹KÅÅ„ªÄÑ该'*¹N³:òœØ\KZÏ»]ȾÉïW#2Z ˜L¬OsÅ"ê6l¼î”»"Ãàn\–5yž}†™„ç !5;S‰µÖømK<]8RqaK`ä`DÑˇw—¿ `@ + +endstream +endobj +140 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +143 0 obj +<> +endobj +145 0 obj +<> +endobj +147 0 obj +<> +endobj +146 0 obj +<>stream +H‰œ’MnÛ0…÷9,Ø)9M –‚ AÑ.‰xÐäØ!D‘,ICŠ¯–EŽÔ+”’lçYݽÎ||$Þô¼³Œ×ÐÖR—øÏó FR”øþt–Îì%<ÊŸ[wÛë9ßÖ<ø¼švE×ØC]£´/º3a–PDÝ·)FÃH¨K¼˜Ý `Œªe@’'ù7´r¬Ö¸eä WGS'VÅíÕ-V%~ Á”¶mKÚbÜšfyžÓtB'“$N$þIÖ%ÚãÝž\Ö´'ƒ!ÂMCå‚f$¥û‹®Às'mF£¾fK³ %ÞSì›ÛßaâAäœDΔ~àü¹cösr<¢¨ŠK,7Vâ‹~ýRjãƒëÛ_n¿¢œ¤ÿmBðƒ»qjøYÁ)(h@}dý /ø裨wð{JVsÓ ›'~´;£fèÛͨƒ +ÆÕ öŒÞL¡˜^—¸K¬ØF\ Ÿž~ÈÎØìa—¾ò>y<Ý¥¨—‡€ÆâpÐ1Ö.æ÷¯º²& + +endstream +endobj +144 0 obj +<>stream +H‰œ’MnÛ0…÷=.Ø)9u –‚ AÑ.\‰xÐäØ!D‘,ICŠ¯ÖEŽ”+”’lçYݽÎ||$Þì¼³Œ×жR—øéÏ#FR”øv:Oçöî彃›ý¯%ß×<ø¼šuE×ØC]£´/º3aÖPDÝ·)FÃH¨K¼š/P0FÕ2  É“ü Ú8Ö@k\2ò WfNlŠë«ïZ¬J|‚-(mÛ–´gĸ-Íò<§é„N&IœHüƒ¬K´ÿˆ{ruZÓž †7 •+š‘”/ºÏ´Aúš­Í.”øH±/n…‰‘s93ú†óoäŽÙ÷Éñ`tˆ¢*.°`Ü2þY‰/ú!ôS©®oºþŒr’þ· ÁOìΩág§  |ô‘õ/¼à£j ÞÀïQ(Y-Mƒ +üh!vF1ÌЗ›QŒ«*½™B1½-q—Ø° +¸>~½Ë¦ì[ö°KŸyï<žRÔËS@cqJ8èkóûW€ºQ% + +endstream +endobj +142 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +138 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +139 0 obj +<> +endobj +152 0 obj +<>stream +H‰´WÛrÛF}çWÌ#2!Ì3ƒª­}ˆäx•ŠcgÅ8©²ó@‘ˆ,o!HËÊ×ïéîDRríVj·\™éF÷éÛ™‹77ZÝw£o'£‹ïŒÒjr7ª‹Ú«ÿøÁêºðQo +ëÕd5*Õý¨,ÊÒ©Él4æ§ZMF³_/ë¼*bV•%ÿþúƒúG›»¢Îîc¬„ì}nMá²&‡œÉvw¹±XÝä¾ðÙn5]ÏX®Q—ï൫|l ®¾ËÃëTäVí‚Ù£¼©«)KíåGåcŸÝ,X¼iöùo“ïG¯'°¸2–½ÚÝlUÀüPÁ´¨JxY–ð^vÍèn?Ó^åh÷h `Ѷ'MÛÊÄÂ¼É ê¢ ¨p' žcÀ´'ìè‰ %è®nÊÊåã +F+˜²OÙgSTŸrõvš[Ì•1rà•2˜kv¾¤É/§ ^&WXc½¹‡ïYñ¥]¶k’ª²/Ål³ê1KQA4À¯²ˆˆ¸#œ2Ϝҧgƒ•O¿ßåÀe›ùa¶W7ÛfÖÞµ³é¾Ý¬ùÛTU,bm­ØÍ*L`|HO¦}>ùý+tö«”­¯Å/Tµª‚Ò•¬^¼^Ý6óy3¿ÚÌ«f½Wo/­Sß^]²‹on U‰+ʨU«Fž 2* Ô¢Z.Q ^&FµU¶p&/Ô…4½Èò\ÇvTUἓ¥ÚAmæIK,*^øNYžë µ8\ÂU²Ú _{€ݦ|]k†ø°+´ÃÂrXx2ÅfëÐ(t0´Ð+}¶Ð+½„»òG¦SÆÓþàxGñKÀ~ùF­G!Ö«a ÐËQpÀÊ/Ô…ö$bÑÑÂÑÂàCDCáÏ/ x‡XX£”Æ"œ. 'N-%·-Z‚c· +j+øˆÊÎ×åyk* +™/*M HxQb ]ÓBR¼*ù2Þ»x¼P¡üKÇ (šÒ³R´l>àk-½ŠÁ¨å¹•døOt¦Š”p(°@¸;tJSá&Á -¡0dÔêŠâ^¡«Tµˆ ‚8áá•Cˆ<Óñõ¸ÿFP‡:”†{RÛÈ/3êHoðÿ{¼üŽÆPÂÂåÔ[õñ·RÍé;ŽÎÈ.¾áƒÑDtmÕ2„ÄÖ;h'fÚæp2[ƒyÚìžøhÈÔ¦ Ö³‡<å½ñ_“¶¹#«^©}N¤nÑ(æªä3%øò¼ÉÑé]ö¹‰ ÓÙk>|Áß‘_>ëÔjš›š‰ám£bÂ\„Ɖâ¤)Ñ„ˆ­Šâˆö•øq—ýns¢ië&'Š=Wþ] |{9±TXeèCÅHƒJùýÏ^Bõ@Ý>f——×?æcôlÂâ§`k–a  ö€غ·Ñ%°aDc¬MÖ5|£è@“³é- Ï>çý(“-{rLwº[À-wVà¿š,øPË +öí*§¬iä”Úò^z;ýæé`+i4&ò:;ZP¨SÊ„˜ØðlJ܆,›¹<©ýBšôÞäávO1_ìè >ux×›¤ ß%¹{ùiÉ2”kÔ ¿¨xáMY] €Ô½$ý5ý%I_`!%É´ã¤L@ç(‹˜ƒikùd‡ºÚð!ƱY 7q_¤¸€À ¸š­7¢E=RërI£~‰<Ã2öW ׃yGHÊGµç'|I6J  Lmø¥P×w„OINœ×½NÙ¨=!úí~ŠFœbáùÒ +(¨Å¥`O pà:'o~äç—j;‚)ªó„Œ¬(kÑõ +É€¬¸¾àßwÒÒpDK›KñUYK¥ @æÔ–B6,çˆö=/ ٳ哥چ”æ’ ÀlÊ¿÷²Ùœ qJ£—¬y£kqAå')$ªÁ¯¸$¥ov9ˆ *ƒâ´îK³ävBõ[ä%\½{±‘7\àTîÿu–EÈÊ#¤Ý‚ÔMûDJIbHæ5÷ŠÜ—d¡ÌÅ4•á¶á+qù{2i*5u·oäaw:TéÂÇ,* ç&ÊôRÎéˆxºçÉš! Tôsê?î˜C ¦Ž¡(&XbQÛ)ž»}õE¥9qàuøÍáë‹TP˜*¾ÒÏ +ªgÖFÑ¿Ç$G£¦Ú>p‹»Ý/vM·Ø,çhÔ÷-R½~…d'£ƒèCÔõSãM“ÒÄlÔƒŒ€v¹Dôh24ª]+;îöÓ}£¸Š§8ÄL¤™þ+ÙœŸÛ´;âQòÎ×õy°®|v/¼¬ÝðÛšL',o*?ú”În·;¦ƒap_rni«EÂä–Ì/qaÕ‡O9KrHý²hÖO<ñ¥Þb@h¾iýiš½®!ßO¹³þGÝ1E/’é,1–ôÞ L§gM4üƒ±Ïø©ï©‡Keµe¯7 ÚõžzÅÕ‚F#Sɪ¬“i](bÚDá´²ÛNYé²ý“f±'¾@ïŽì?nÛÙ”¸ÅCX æ Ÿ)ÅR¤çM&}ÓÃЈµXV‚÷oeY•Gm Ý‘œVÎeŠÍ±A=(×$ö‰ü”ñ)Ý<¨;O³=*NyÇù`|¢É/ÍW:„ùúÐâJ±älEhõaÅÒI…Œv\.ø]>·›šËž=3alTQÖ®9Êß» 2õû0Š“oŽnZœ`.‘§s^mËm#Gô_1DJ¤q¿äM–,Ûy×)WÅy HHÂ.0°ŽöësNwƒ€l9©J¹Ê"æÒ3Ó}úôéAÐ-—LÆ^ŠGÁÂÁòŲ‹Ò€¯kÎ4<¦[ÉÖŽI« X ½e¬g"X+ˆ¥ÇUÅŠ0L%o ³x2k´ñ¬^J𑢌+zœŒˆV6A8²½o/…6`ÞKÍòÅÎ~xÄ–ö„2 å\ÖVÍ7›l åJ^ÇÄUs§}÷ôaDfÂn¦‡ZùŒ ©™{+§] ,lTR Œ¤fÜ Ë;¢1”:L1D™%gØ‘§ëQ²§¦²¾iU#ëB‚$7÷PDUõ>@K·!’z£p¨ëR˜q'  Ãé%óuZ'Ý®ô"F_|)#í ëƒ|÷ÓSJ3»‘aøy§?<±ÓÑ;Þ ’Nì„“ä¡ÇÏðf'a’Y6£zGZ½ÔcÁîp`3BtZÖRkñüÃ-^ÏÎöÜ‹ØŠ¾ÕéU#‹ +i±„øb ÜR÷K¿–Hó–ðîÈ^§vNZ8;ô×êôæi<`¹ÓßTé©úÐ^§EÁLà‡¦‰at[óu§?K·f,Ñž!” áÑËFN×µôpú±ÓµD)5ªð¹Î4t[€Âè ¾8[)94¹æÌ9˜ÍžXÚÓÅö¨#Õá0¿ÜnºtÕ<ã§|â§Ì^(ì÷¨ìWNd§?D*³p΃îÙqºû±³AaX¶²®Ö‰…ïµ1RÊÞêÎÖŽXE¾Ð*[*ƒSBe?%ÔH7£"~ïw÷ò¿ëåÏc©2s'.ÄeÒ¼â¸\Z/6¨òñÀ¦Éz'‰²–kÕÖgídᙚåBiòw~@#C‡A/èè$›üÔ¸Îôc™žÐ‡¾ø…ŒhLÂ)T©ÒE²ü ¢Ñ‚‚žÄ"Íè{YþXVG‰[›¾—ñêaÏ£ ÉÝÜPgG韲ÓðevÀÑ5í¸74‚72ÔÛCik€ x¼µ¬dIÛÈ‚5èÁ*÷œiLJáÔh#ÚPÒHáà ¸\¸B"œ Yà½e£âe;¢0¤¢È4™í¾`|qºJœh€K3HÅé†Q‘µóC…!ÚA†µ±š?(N©gádGÖ=­ºíFw_v}gٻ鉤€¿ŸpéU ¿1A@2¸~Þð’†U6ë/ô'1IØv’&„êNÝ‹?zøvÉC¿—{j{¨Ë¦w7O]_Öîf8XLÃP$“m‚ð¹ÞæÁ2‘¶\«é@ü*RÓÛ·|'[W©¼üP†ütÁÚœ,‹DÇ|_ÿ~ºžÖÜSQUš¶ à +‚îZiæmôG×µúc[ÙHïY —u² ¼¢…î©#ú„ÚB@’ç¡yl«×Ü\?ïIù…¾µUuÕ<¸íæ°¹«öU_•¤m!Šä-½꤈¸ˆ2*˜äÛ–ÀÔƒø>b³Õ—;ÜØ•UÿX]×Þ÷_(i€Ì£Ñ_×îëüFË_µ~~P¥TmÓññðš0‹ ÞXí™7ÙÃc•Ïûc[»OxNóï9M£{Ä£ð‘ôF„Ý•ùÂR¢0T®4;U"*6Tœ´»5<Àu•ÐªžQúC·ìWŒ]2Õ%&}¤tK^˜Î¸VÔè¡®#Âe®þ–‰Ÿ ƒ8 R}ÔÖ„AcÅ{S5VŠ•WšƒP'Íd&ͤèz{#eº¯lŽT%“=ƒÌ‹°’UÎ&áðŽY‘./ÕþõTâ?/µ9ýE…Ô»K]x}æ~ñ²Då>×Ò£ÄoµoírgÂ'n’$¢è~ çá –¹º!ÍcËáó×o®?{gˆÍÎuUík6}û ±%øWŒ#_CPÍ„ñôdÌ*ú˜'”FÔŽÂðï{¦‰ÂŸ%úÀ7t›Í¯ +g˜Tµ}º(_JÿéÚø#9"½žpºK¤w!Õ#e‹‰‘–µBbDZ£»øx}ét ;Wßž£8F‘[±ÒÕÕ3b˜7b{>.d|GäÑÄ"ј=¥ƒ ¬6Í–aÊNŒ¦ϲK’4Ûý°+UO€’ÇO/&ã–þfJŸ…ñ9†¸ª>ìK€ÍH%fïkg''a–2…E­òӶѓÚ&㥖Ëí£Î´úIHFdô'ªÒ‘†#×k< ë]SnË®cñ îqþº;Rò‡Ñ£Ò™èEȾR–í2•ß—òçø.÷Cã0„8”Î)†Ë«"JEF°Y9ÎC4ö)ð@¬Ç´l@Öo.=dT¾AÔ¿€Ú³³-R‡¬ð9 CheI1Õÿ/O‰U=h^ ­P¬l%Ê.ÈôÇŸåAîyN'k?Ë£É1a8fmXLR<Õæ]>nô»Ž ÄG/¥! Ñ/ð=j{¬‘òLV¾¹]ÈÌÀUn…p¤K¸,tõ"IAòéø½¿c?\øÔÕã×ýâÕ›ú®ÜíÊÝe»¤+xõáiüúòbñú/Ëõe€}TÄBé:Ê á€/oŸŸ=‹¡p ÄŠ$Ôm¾ìAê¦@¥B(Ð}á"¡ o~„ÃO"GL±sö¦}qOü"‚Ç2? +dîçJcKËùµ´Í Ÿ¶®†'Ç×qQèäß:TªŸÍ"àìj)E\‘dzÀûJm³¯þP•×Þ;Ùö×ò¡‚–>vÜFø­_ +'¦¡K¨à†#ÐUq†8ÎÛÏÖ@ŒÐ%Å‹kÔ ù§Å¿­~žšs25¨ +ÁÔìÆŽåâï®Á€ Ji=Å«Š"õ³L¾¶,ÿ‚_?àׯô +š˜/.vÜ?þé»ÝâÕÛ›Ð=tr7ŠàUÃ(¼^Ë倠U‚’Vĉ=@QG£»20Ú2ÕÑYY¹?uýg‰ê.uBͱ};§95 |IØp5šÉ7ýRƒ.Ü’Ág®ÊСxa‰ VtP¢Gø>4^>ÄqÛ£Œ{ €4|‚ú˵l¼µF +é $ØØdºZ†µŒ3mýM'ÑkEP¢ý½D´ìË[¸¯·cÛE ØÔ‡ÈÊ­n²­¸Fc+)î€àµŠ!…`^-æ­µCµ[„bß`Ä…¡âµL§š´2U«Ì5 €ÀPT– J×ß™rñðúsfI»èXÚO¾QV¼£#Žp{„ˆ=/OM¬‰Â!›ÌZAoŒv°w åyTO¤aÑØÈ_þ ÃNÛ(ab‰ÿá@ʬÔÄNá5ÓÑä1ÏÀMœ3’°:„ZðFþö °ì ÁÐá"\:Ëõá2¸ÇmŒ¼ +݇„Õ%^ÒƳÕÅòvÞ.ng“«H/kØ‚íXÚM~ ?l s®dºz#S SƒÛËp32úkÀ'׎ma@6ÀSÉÆJ '›z~Ù”æUÚ§Éj“…ëÆÅ‘\k¡ž0:tSºÒBÜj¬¨6MiÝ„dö†®_7¥y›©ë8¥Mì+àNåâDn|ä’yxÂä‚óhò" ·?WbÑ +1Z M¢HYÉI]Wr‚EsUd¬ëdz5¿Ž&á&¬‡±JC„¾ö7UŒ6a-ÚS™è¾þãJ2’”’`:™¡¦É“ÛxX»¸ÈÂÖG€ ¦öÃ&ØÞ"yö& +L<{`c¿B‘¿?$+Õd¥Ðòü5À-;¿~”õ¢LÀž¬c]D»áb¥bì›|ðøä3ðë|”c/¡Wy¼ÖjÂl’ªÅƒÁ’£²,/¼rà žcQà9ïùk ÀàУ¥,¶džM¼­$9ˆ·ïÆÓ›¡²÷9LÍ®ÚI–{uš£Õ¬¢5ø™ð²Vw-:›ó±sj!÷˜ÊöcC emºÛ’oñ"¨ƒ—T‡àC5Íá…Æ«ÔQ^ÐDu>¾—Å“zæš0µ×þÓdÈìJ|X].ʼnì<÷Ìl“õw¢CÄ“}o*ÅêÍ|9™Ì.i£¦zµÌ‘35›‹d!–º<``Í,,@r‘Õ‚úJ1sHc¡@¶ª !%¸Öé›R_ü¡Þ.áE`p”Yü×NàRƒ*P#Í5)Ú¦Vî”ëyHOÞÍ™J}. EÒ)qJ‡mÎð̳³v¹”÷c\Ô4G{©¹ +zj¶Rm•›€rÓÉj™NÝçVŧìlÒæÀ+õ9gô‹Ò¨wx?Æk–CkÔxß´Wr!7›ðÀ5ݬӣh-ËQ}þZÇ/¼|Wñð3IÀ9Å6æ |™AWÀG}ÖäOf  ´ÍlY²eú`Û°.CéûØ&7ñ…,¿ÓX…ÙQ;åÔ ¾à¤ô*êYnbÁî¨/, 0n·½]_í””z{ßwöˆ(†ì–ýµ¼zší¨NN¼8”3ÎG—2~ö,÷xAÄÙe7öÇFǺ‰i|wúðæ + Œ™Ô_KLÚ\=Ëv$“t²âžµ}FZ_1ïŽÿµã²†ÃÄ„ê ‘ÊÇë%˜]õröao½lj^£C÷f2cºóg„ j’æŒ0±C”­Oz¬>çѤQv¹Š¿÷`›–WÊGAÛ_HzßXG€ í€=}0š߸Hí©²0ˆ?®Ð“XeºÃv©2ýXm9ôÕCLk©˜MGþKÑÂù]võ8²§$00ŒïK.¦7ÖÄáÉþšÓ·¥;ðúð 9» :£(P,|ºÌQ#/EnÆ:!´òh¶Š‡÷+‘^\‚†Ð Fæ"Ûnì>¸éÊwCyIhõÕ†‚QEµ³¡N먵êÇøj%ˆ{¹Ìd ÒùJaHîÅà:‡ó† Æ0 :‹’˨AzŒ}W;ƒð={ wúó=½áÞWñy-ýð\}oë4€Í]ßDö÷xß7v«o*©Ïé!9,2x"ï®7ì ÛwPÏ+©´hªS +Fò V€Ž ×Èü( ¯`5+¨$êXÞËIMæÁÛ®Ÿš®Ÿ`ñîÒè›É~o3¹@ 5_ë¥ +eŠˆšÍDrEápú÷ÙùñûýídõVÖ=¥ó1”o§ÂÎa/à÷j4‰]òeAŽ‡°µwqhõårÒf§¹«Iá£4>ÖÄ¢1qÊžUƒHìï$Dé3I×êe^³÷ ©{º«‰„{¯]A›ÔE!˜´ˆel£8Ž÷·‘ù¡62Ûh½³5Q:³r‰ wa8h¤|Ô?fËvñ"Û`Â¥PgY¿ŠA¥ PRÈ*‰=HeÍ–·\»°ad“Ù͘¹¬Ô%v?äm&+ï¸ ³ëx¾¼m³ë¸ iúÍÒÖñ†ÕôRÖ·‚ÉÿK6ZdWíõ8ýo¯²ñ4£ +l‘d +ê?˃´±Úäýf¦P°HÀ1tZ*ñàSžÎ¹¢ê*R*PAM9Á~€ +b¢2©Ýª|ÁsCÈÒõ)ø˜”ººz”Iþ~ØÈЭXÙN•ò§Œ~—ÂÃÃÛ‘œb#û\ÊnŠ†býqŒã ZĵNø&„ kQЄ¶t}¿luØ~Ô¢  õSNG¨ÄªË6;Ïsr4PˆµÊ¹ÒZè@‚?ù›†ú8ç»ÕE|{;oEß"~};›\egË‘œ-#%e,CÍëþ)—®ÆíâRÚiT‚/äwÚ¸ÔaÑkªí-ÒšÞ±”Æãù‘aˆ‹tPÜÓt/V\ÜG·öC~ŸTUi½—RmçbH€ :ÊØ ”醛éo9R­è¡n-RW"•}XH®|ä'xq//Òéh9ÔÇ• ©jñ€1…ÎÕh`½Þ¹Ê¾Ê”É·'¯²Wh µ’Á³(þ†¨§rÔ»ºAážÚ¥Öéùaš˜¯ÚencÁÀ› îÆÓ6¾Áu•³8:•¶^M&ELæ=< `3:Ý:¬™ËW+š':Ö6vxµËw4vø΃¨Oc$÷íó“l4½Š=¨‹o‰ƒ)7°·'¶Ä#¤x4]<\ ñОïŽÆ‹ÑE.œyÒâØ—Ž’<É‹\{Òóþ;K`Â4ÒˆÔ";œÉ‹éµÜ4¾YÍ¥½Ûo F²ƒâûp¥ÞøûyÞ½Ì]«Þ yd0³érN›YŒYêd¿!r¥#]Æ­üùˆÅãc HTC`XŽR9WDƒ%q:NR-´ýøü‰EÛ’ ”¬"ðÇý +ˆj>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +154 0 obj +<> +endobj +156 0 obj +<> +endobj +155 0 obj +<>stream +H‰œ’AnÛ0E÷=.˜•h9M + –‚ AÑ.\N€zWÐäØ!D‘ 9†T_-‹©W(%ÙndQd÷‡Ãÿ擘Ùe縨É +6Ê”ô÷Ó/J”,é÷óùdî®áA}Ùy¸Û}»»Zä’^V³®è×rÒ5Ú„¢+)—vEÔý1£d¸‚uI—ó[‚ÖêZ!™¦y’ kÏh­¯I–^ÐêÝÌËu±¸ù¼§Åª¤ˆ®`¬mÛ´=K­ß°,Ïs6™²é4‰7’ðÓ ïÞÓ½O-6Ò!P*lÃÔ’eé„Ý@^9TÖ¾æ+»Å’(îÙô0±9g‘3c/8ÿGî¸{cBUqí£õ÷ñÏJzÕ_"_µÞôýñÉâ”,ßAŠc·õzøW)hhÀ`ˆ)²þ}RbLQ Ô;x…VÕÂnÀãc5Š¡Ïž»¢F…Fەƃ¿Rhn6%í k¾ÕH+&çdŸRpá{𲿼WÎöûÓËãjÆâ¸Û`âBû¸¹C‡þ{ + +endstream +endobj +153 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +195 0 obj +<> +endobj +149 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +150 0 obj +<> +endobj +168 0 obj +<>stream +H‰¬W]oÛ¸}÷¯à#µ¨e‘"Eªo·I›½‹7m]l€îâB••X»²ú£iï?¿g†’,91Ú],ŠFæp8ÎœήÞ+q·›¼˜Of¯´Pb~;Éã< þñTåqæ…Ëtœfb¾š$ân’ÄIbļœLùW.æ“òæ"lì¥MþÞ¼?ב‰sy·œBâäu”êØÈ*Â:-··‘N!ÝDYœÉíªX—¼®ׯYvM5–‹W‘6aݪn°P~ #qYðª}øˆhšÉ÷K^^Uûè÷ù/“—sxluʧÚÞMRÃ}gáš N™$8; ¶Õäv‚s¶sÖÐì` +Á¢éŒÖ(šÚÇXÌ“DÕ1DP@XÞFŽ¦2Šý¢Rè.ß'ÖDS §\wò7ùEÇö·H¼)¢Ô fß„ÖAá™Ð0ÿÌùx´“¢siZc0¿„Œí><Ñ iØúziNn‡r/ÞßWe}[—žެyï>TÖÇ>OÓà7›ÐŽãCv¤rÑü34éÙ†©sùs6Ö eƒtörõ©Z,ªÅå¦<¬ªõ^ÌÞ\@íÅåqvõ^S•˜8ñJÔb’Qˆ´pN!j^¬&€K†¬ºLÅÚ{ÑLl퇂í’æÔ™…r‚£Ò¢TD#Ë3¶uå±Nu¯M¬”ëM/8ºbKó'hÊitF :£·‡tÛlàšÓ‰¹ö™óå åköëOb=qh >ï#±êäÝLœA¬ÌPÇ*£%):šú3x4ÞîTÐÇÛù8Õj((õ± z±§tì-Áð±bj+œ?Œ×fÜjK)Ëb«HÀ#Ö ZÀUÂ@|füPÄΆø'†(š$c£hÙ¬å*lê;½SÍ©—äø[äÚ.w‰æZ´4ò<(©#\áÿ/üÂLœˆ7âãï‰XL :ík®¸ä"‹½'ŒÌ ü©ÿZ[Ô.†V$죋µÒA òpª±‰ÿ€—ÖbO +ÅŠœJÉ ìmxOK!̓#‰¼J]äm¬s´PG1ç%ä•w¨´ ¯yó#4€·T<•˜! Ç&('0’ëlÐ5:¡•Dç·é{ĉ‰&ô};eÇLÇ^ûTäI¬ý@F†ñ€V-ßµMú\µþ¥|(t„a>ò}—0¡ã,¡æ&tV€¡7„ª4Nq¬~hâé+'½À¢vèWghi8Sg= ¡Ž~¥üq­)M«»ao½´»w«[ßƾ—“Ýäå› `á-Ý*¸— +7…ˆQ4éVÌkxo]þÕòˆW‡m4U€«Üã Ú°¬¶â]U,êõÝøÖ=ayØ'Á ¥Çg¢­:ÊÀc[À¥92Ôhû—‡–fpÉpªÜn2Ç÷¥Züû?Œ#{G&a®?î&êØ õ¨R¬çX´«¨‚XmUÓFþ\(éñäÝ Nì1’7ÿº¾n©iôûLqåb 8.½é9ŽŸ"òÇz¥ ©Î^;Ëæp ~×ZçüÀÜÑR7óã¦,Q±'Mµ3)ýÈÔ°(pnåG§ýX²d–´çhxfpJ?ì(ƒQhÏJ¢˜©2Q7¸Û-nvÐ$ çèÌž;v*)é${×þ†.6Ùœ@JÁZªí ¦tÞí?†õ¸«ˆ àfiáSQSH宾[ñ=p¿×*Ê=/‚[²¬x†/Ö<DPe¥;¨i7F¢ó¦ÏSF…ls®j\Ÿx÷þ`¢4ü³xØä?^Õ£D2=ízEêÅ¡iªýýv³¹%ÆJ4ëšî]Ë•NCqYQ ÂŲ<_÷ûº¬v§Éñ€2( }8îiF׆ äÁµä! äsƒ±f(?%À€ëýsþÎÌSDü—©/C .ù³YÍvâYVv´ u¶Ø„iðÜ5Oî‹`º@\Ïî鼚/dR,è Nâ~RÄgÞþ»»?Ê€Ôú¶f;¾ÌǦ™xydÅa:|à'xî"ëóD‰Z{¶(yH­ÛÓ µ(üú“XCãŽ,ÛÂ|?};~ý‘R–ÒÜ*üÆ)E-ë3aÐM×eœl˜7IéL÷飭v&˜ê§Þ>v‡Ç–QLOùì˨¨0ÛZÐn”ç5žgl§è᥋²1æÒeYA¬òÅßÛÌÖ©6u1ì.v“K“ùÄ X{n›5Pã’®Òv˜{3ÓT*–6G¼á»AD’}•DÄ^ã‹…™Êw#åçÙòÛÕHYº•»ø²J_ÆìSìJøç´êÓ„cLÎp…î:óª;d1&ÝŽºÅ¨¤;ˆ‹ô/µLÌÓO¬°«^(Å Á9‡ÑLUq0ô»·´4·oy†Ìžé7’¬ã óÜ(²ƒ$Ÿxuëv ú­ùñçwfÙàS2@€ÉQ¶•A’ó)Ï„±É^b¥ +žJð´SQÚ‡ûòרòeßû¤>9/FÚÃ¥žá,v.­èÒ"óp©Î5¿pÎŘê5O1­n õ Cݲ…<“™Z mªt²Ñ >7ò?<+^бD—çk…f¹ ‚R,®†ק,.þG‹÷`Ëì ÉÝÕÁõ)—=‚ßtƘôð}ÿ"–f6"hQÔD^ÔZªeþ”T›»×j«“joòÏ…™4p#ÌÞ&Í@÷ ¥d¤U~$Þ_¾RL<§Mŵy·;·à¡<àj‰7 ¾üvw&7(Þ_j?ssg]KÒvÉ9nÍݨdƒý/³ço쿬áÏ!T·Ã>5†M£l¯åÍF)n"Ô×—™«Á1CõMD "s„# |–ûšñp' {‰‡ú~sê·Ë»mBãU¡„¹ü—WæcÛàqÒAŠ×K©¤<Ò-ËÑ®œÁmâÖ%¯Nèþëxór«©ÛãíK"Ô«Ä‘‹lFž›Ÿ ³‚eÁZ–$þX–¤Þ¸¾$ž$½G‘½†D¯!µ&‘\-±ä2Ú_ fü"Ô<ÁCKI7¸²_Ât “™QHÄ9vF +hÃ&„µpÞ«fµ‘#ˆU»•)Dµì)è…‚9.£k™¼Pfîš_¦,yQFM£BúW#$ˆÁ UfîW œ7ÙŽ¹`–øÐŽgø07ø€• Y‘+àÝPký‘:@U= eÊü>*¾Í°$¯”tªLç.Eäv•Ý¢&Ÿ›YBYGB‡€ÚÇ{}Œ0Ìs'ñþ°ý:òSb@̪ÿš”Æ•Ô *裨>’øü£eÓ#±¢ºÇiTçxÓ©B$|3ËN$GÇ­/S xdÜog³dÎ åH|Q«}Étí–‚Á=ü[²-U'ªWÇÍ“&¼ âÄììHö4 Q`y}ÊícÿþAXŽèrYžè?ôôïHÿEOÿŸ1a,Iÿ ©ûLé·Ý’Íþk=ð»té«Ý€å ,ÓW.Òõ17p©±õψ=n`yÔ±I‹ë±Ú©W˜Q_7,²`‰„Yà‘÷þ•v®/‡¾tÉ—~út¡H0¶–XAg!ƒ™ñÒÎ!./l.h.°îª$`E@âÑITa°ìcŒ{Ëe}  * þRFToÊBúc°.Ü$“b.«i.B}]¹NZø=Iš^ Šjαã’@™ï©Ã­‡ëÞêÎ`Ýy >ú³|]œ×à%yÎkPZ:§!/Ïkp¡:¯ÁU§‚’Ö‹ð î;qpö v¸nã«8Ô'ãð¯)ÖTì + +endstream +endobj +167 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +170 0 obj +<> +endobj +169 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +158 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +159 0 obj +<>/Border[0 0 0]/Rect[166.68 593.64 210.54 604.92]/Subtype/Link/Type/Annot>> +endobj +160 0 obj +<>/Border[0 0 0]/Rect[127.32 608.64 171.18 619.92]/Subtype/Link/Type/Annot>> +endobj +161 0 obj +<>/Border[0 0 0]/Rect[36 688.68 318.48 699.9]/Subtype/Link/Type/Annot>> +endobj +162 0 obj +<>/Border[0 0 0]/Rect[397.26 623.64 428.94 634.92]/Subtype/Link/Type/Annot>> +endobj +163 0 obj +<>/Border[0 0 0]/Rect[270.48 638.64 302.16 649.92]/Subtype/Link/Type/Annot>> +endobj +164 0 obj +<>/Border[0 0 0]/Rect[221.4 578.64 576 589.92]/Subtype/Link/Type/Annot>> +endobj +165 0 obj +<> +endobj +166 0 obj +<> +endobj +175 0 obj +<>stream +H‰¬WÁrÛ8½ë+p§,šAÜ›,Ñ3’¬ˆTW2¯"'š’ìdzÎ|ÇîïëHQNrت­TÊ@ÝxÝýºÑ:¿ª•øüupÑ Î/µP¢¹q‘‹ÿx‘ª"ΰ¹ŽÓ\4‡A">’8IŒh6ƒ!¯ +Ѽ >È÷ã"Êb'³$á¿ïgbº‹L\ÈÏ_†X¹ŒR¹ §åÓ}¤SH£<ÎåÓáîaÃz[1^ÎX6‰†êâ2ÒÛ;¯wØí¡(ÿö;1¹c­gÿGDÃ\Ö_X}»}Ž~kÞ Êˆ3²WOŸi¾Í͉^& |§ÍÓvp?€Ÿá[fèkï‚EŸsÒQôYhC™?rU¢ Àaœ€zˆLå;ZQH)t“:ÉL4ÌZº•å¿tœ}ŒÄü.J bö·ÐÚ8æeÁîÑMŠüÒpZcÓL c»///Qßeüm·ß=V&¿Å›ÇCm!rª~%±3ˆˆqÙsJç”:õ¨Ï†Ô_½|Š4'?ýµyõÛÍî~·¹{Þ=>ðÝ]¨2»"M=n6¡-LJìHå¢æ÷ŸdФ?M ÿô³üÙ¬™*óÒóòðÏí§OÛO“ÇÍ_‡íó8ŸS+.&cvñüªÖT%&Nœ;1È)DZX«5'Ð%GVm®bíœØ²46ÚõEœ"4­Êþµ=pdYlrãE…ÙöÌÑŠ‹³Üþàž ²mƒÌâpWI)UÑÈ‹Am]øäE¬SÝÀÅ&VÊv‚}'8ÂG±¥ÅhÊj´F¿´FïéÎò4«wíOΗ5”¯¡OØÍ/âa`Ñ\ÑEâÐ ½XƒX™¾ ˆUN*):ší : +_÷ZÐÅÛº8Õª/),u±=t'N‘’Û)Z‚a·bjøˆ±ƒùº€·:£”åq¦HÂ{#Ö ‚ ð*á`|n\_Ä6óñO P4IÎFѲù@^(©kMt ö¯Qð·ÈNÛÂ&škÔÒäx³¡Žp…ÿo°ù…™X'^„sñá·D|t2º4Ö\7€ä,y‘ÇÎG ¾ ü©ÿf´ÏP»ÒH£µÒ^  +ïÕ©‰‹ÿÊ,Ã4ŠJ î6|gF!-ü f¡BÃ`Ab] …ZŠ9«*gPÓkNóåGj€o'Tqp*1}Bžš œÀH¡ó^×hÏô­$ºøþš®G¼2±÷}_ÇVË1Ó±Ó.E+f?˜‘#Dü UËUhÒ?«Öÿ) +¡Ÿ"Eß%Nè8OÈÁÂø®Ø:C¬Jãnu[§HßfÐ 2Ô®vŽ–ŸZë~‹ãèWÊ¿£5¥éQ»ÝvÖ[A¸½ÕØN±o_å| .¼¥Wå»ÙKùBÄ+Š&½ê~òê¿€ÇW—WaŽX<>ï6[ñx/&»¯›³[!÷w»ÃöéôÍ}5ãá–ï“îÏwʶOº2Áz3-ÅûjV-Þ‹éhEÄƈfRy¡D”E‰ âKq¹¼‰ÑbÂ3fº‰˜”´|WËšbU^–«Ve"š=ÉÈëhˆgMŠiÙ³V-ØÌGùïå*R  ¼žø¯ëqSÿ£R ©õúâM9n^Ûþ00 Q º%MJ(…,øW®æ5_/&US]/¼ÅZ\_Šž÷³j^5ÀÛ÷;\>Z4·âfZ§b< +êéä{N«wUyÝQ¤4MfMÈL`@7Ì5¿øÌfÝ,ôA~y~þã䌓çç/цâîOjýœç÷˜ö¾ÑI+ãHÁùß¹óÒ§§»‡gZ˜ªÑò ôå¹›iêu†~¨ÜÆŠ†D[´cÕÉä{B-à>hf¯Ø•-»BìcÄ·ªû‘µqŠÈÑ\ë„Bx dN–µXøÜ.d#Jò=ý(pȤß.ˆS)~Á ¥b´¸kþPRR=—¸´“´©½¢¨ìùPa0F_ÀÄeø€: ¬®ZzsePôªmNr‰xÜŽ7(özä#Û~ÙŽ©¸ëiYzå<ÍfTFõ’nØ ¬Ã=Ö{’K_½¨ÝÑêUG 6hJòxÊz‹«’,ÞÁ‚ƒ¦×ëF,8Úà:VLgˆ/EÇøT“tä¡àšO§C_(V kuµ©¯Wìy¨lÕýfÊÚ"¨M¹ð?Ò&…¬í‰ÊSÅJqQŠËï5×Ѥš ëÑeIÆYQ\‚ik¦1r…$åý.@¥%8êYƒ,¹ÜöX£Ž¨t@Eá§„È +WåÛÈɵw¼Zy.8yt6÷ØòÛÒ7r'm>ZŒCæü¡3$'H¦pšj´ à~R{i‘„³ê²ôµ7¬×ËP…³7Ô¢BX¨”ü±ä¶nÊyij}g¾I> +Åv+Úrc#¡B¸–8Ö–º2]ÁRpšé©,”Š‘ï"£ÛªÿÚ©¥„%k]xr—|¿FC[4Õh&Vg6“¿ò›Ä¥h= P>I©œžµa·²ö™õyÉä €Þ¬½hѬ-o#•R#< DÕ|oDÇ!;¥‘Í­¿üx¦kfá•-|3ãbÕÇë&Qš3@ÞÏG‘¦žŒ²Ãs>¶ðÞŽGÞþì$(Ù‘‘!*£¶ØÚ'£—êÚ‡¼ßç-Õ­#âÊ2^ñÝÜVF-}N.àRq1ȘùRùà%Úò +²@9eÜ¥®g½ÝÊßMÀ~%`ãuÍÞÑb^®ÎX3å¾ê! xUi;¾”{Rbtáñ¬³‘ŸVnüˆ³*¯Ö3‰ £N*Q ¯xõÿ+ÀÞ7EŸ + +endstream +endobj +174 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +177 0 obj +<> +endobj +176 0 obj +<>stream +H‰œ’Ïjã0Æï} +AêB-Å)-ØÄ.¥eÙ=d)ÛÀæªÈ“TX–Ty‚Õ¼Úö‘ö*ÛIú‡–=¾Íü擘ÙupBÖ€de +ú÷÷JTUÐ_—óÉÜÝ£ú¶óð°û±»Zf½.g!k 6m +**»‚<ê>Í)J°.èr~OÐZ]+$S–%Ù9Y{Ñ@g}MRvEË“™¯ÖùÏ»¯{ZŒ +úˆèrλ®cݳ~ÃÓ,ËødʧÓ$V$í³AÓžÒ}ŸZÛLËCLÚ†«%OÙ„ÝA+½r¨¬!},Vv‹=PÜ›éï0ñ"r."gÆ?pþ„ûœ/F‡$ªüÖƒ@ëñÏ +zÓ‘ïZo[ô}úl1ÿB®Øä¿]TòhÂm½¾¶’44`°FÒþ‰•Ìåh¤¨ð4 +­Ê…mÈý³†v´3£jøÛΨQ¡†±õFãћɵ0›‚†¤‚µØj¤eÐvcSNÅó‘>tóWâ'ÏçûEêåqGcp\r0q³}\á ˆ + +endstream +endobj +172 0 obj +<>/Border[0 0 0]/Rect[275.58 26.4 336.42 37.56]/Subtype/Link/Type/Annot>> +endobj +173 0 obj +<>/Border[0 0 0]/Rect[36 682.26 36.18 693.9]/Subtype/Link/Type/Annot>> +endobj +799 0 obj +<>/Font<>/ProcSet[/PDF/Text]/Properties<>>> +endobj +820 0 obj +<> +endobj +819 0 obj +<>stream +H‰œ’ÁNã0†ï<…%Þ•ˆÝ”¨ B ĺBP‰^]gZ¬8¶×™*¦¯¶‰WÀIÚ.‹8 nÿŒg>ÿ¶þéEpBV€d kerúú÷…Uæôñl6š¹+xR·[Ûßs¹­dZÒ‹b²P»PPkÓd!§¢´KÈ¢îÚœ’~«œ.fw­Õ•B2ai’ž•5´ÖWdÌÎiq4õå*»¿¾ÙÑb•Ó'D—qÞ¶-kO™õk>NÓ”&|2IâDÒ<!1Í1Ýí©ÅaÍ4¬7Ĥ­¹Zð1ñýE×ÐH¯*kHW‹¥Ý`N÷÷îöÿ0ñ rN#gÊ?p¾FÂ}NŽƒCUvåA õóøg9½ì†È/­7 ú®ýc>ûIÎÙèÛ.Jy0á6^÷_[Jj0ØD#ãÌä`¤è©ðgZs[“»g Í`!vÑÏð÷›Q£B Ãê¥Æ=£3“iaÖ9 I +±ÑH‹ íÚ2pÁý"ÿûäå|—¡Nâ‹C¾ÁÄPû˜Þ7 ce + +endstream +endobj +805 0 obj +<>stream +H‰dTÛnÓ@}÷WÌã®Ôl÷nûÔBŠA•(ÆÙ¤¦©9N~„à/™½ØMUEŠgggÎœ¹­€Mvùa)`³Ï”ËJËÍAŒK\¶ÎÞWÙåÕ:+ã¯4F‹²€ê)ã²àŒsa¡j2/áuuÌ~«%7š. ³¨e9¹'Ï’™{ +Ÿkª4ÓäH .@rÅ’þ¬>f>’€a“IˬÄCu…º€{<©åÌvj·mç½ 9±¦ +ž×U&sT€®9æÅY¡3] ɳ¤ä›¤Ä댸öQ«úë@¥`%éW‡f„åÎ5íºmê±í»{.•)™Ö6Ÿy7‘<´úí"}©BdLQ†±´ò%å¾ X|á,‹Wؼ<¿1>¿\ûΤö~¯òTÓ­w•o‹à[HÁÏ€ejªAÈ[Ì%À&„üQ–´Àî%/á.tÂNt¡±ØqIà6*›¨dQywû)hoéBâçË͙‚ÚE´lûMOµÄz'´ïí@JáŒÑÕù9’S3Ë]Ð +Ý$Zy·º›È,C ë ¨#­ÐEh}8%ÌD‚bÖ’ °rûvÓEÜѽrû•‚•˜ZÝ­Âi3…¶k¶‡híVð࢕k;¨‡ˆ’@"Ç1ÜS¦Éàè3 ¿ß¬|Ú1YÄn DGµ${ !55¬À:·Tø$B1“Üù¼p!Ç`òOHˆÀ·®J·òÇe<ÔI— 1Í#¸×ÅDv!˜ÐÖN”µ|™ ´DMðå7dDö9bµnï×Jã|`wÛ-ô¾0ŠÄÊÙój)UuYaµÎãÞ&GØ ý.ظ86ñôëÙ  ôÂ}²kâUK%õ™*ŽŸ0 ‚@OEŽßc¸ëÜ0sö釥 o–üÞdTà®…mš÷ÿÑïÿüö5»©äg-n|‡ÎŸˆ—÷ˆÜ¸z< X²€4=ÍÓ&—Ó&k㥴Ëð_€o´X= +endstream +endobj +806 0 obj +<>stream +H‰|TMsÔ0 ½ï¯ÐQfÛq’žËt€i™îì…rHÓt7C6 ›-öÆ?GéÒèI²$?IO²S›¦Áò^$)©™ƒåÝâ+þ2‰Ëb†g&³ǽˆvÛ>­ÇÆD¼¦„ãK2 dØÁ¦]“Ü°#¡Ç86;‘7&dEžI>stream +H‰”TKoÔ0¾ï¯ðÑFrd;ï#”V´*åÐpB=¤Iè†f“(nËÎ<¼Û¥HH\bÏÄóÍÌ7âj“IâRaDñqccl*ŠŠna$ŠýFë2®‹¨Ê±¼o»vyQÅöfÚ±IÐV£‰ÉÉí¾I­´Ò8°ò½Ò.Hd­4JOÊ…“eÏbÕðY ¥iü†1ëÄO'[€ +2YM,ÞT|W.‚³Q&ÈeÉÊE¹òu}&=¾˜ÛŸÊZzΊ³Ï ÷]ÞrŒBÝWpfR‡Ù9eGjÂ#5§x¡bH%Úær^.®ßß~KSmû¡”Kþ… u$6Šß2fí3qŒù i‹³ dÚ2¦-$Ú ßB­\ÇfB˜¶Ã$ƶ×ÝP)‹Y>*a‡ô¾tÐ +@74£&ŒZöµ˜ ›}‹ý¡·°I–-›ë<°a–üUz÷¤}­=V>„ºŸ!T +„Ýpàà†òü¬——bVYØ·Kµ»rÁtÈù3{ýÿjœ+œˆg@²)±­Q+ö­ÊpÔGD¼n{:a†©^âbeE…ÝKÖ¶T—~ôêrì,èçÓ‚!ŸÜ².> +_~…¨R9 +•pðN.ŽU"sÃŒt ðt ¡^+~®YËBöø2‡\wüoöÇ¿Ä œ’²š ¼upÁ8Û uh_Iæl€°«nŸÚz-éÞA¬E¯Ð‘$T<÷@!a5¤‡ˆ©Ü±“¢ì:¶®nÁ"Ñø\Âá²ðñj8ÐlìŸ ÕÉk¿!€T– ³Co9*-îƒGÔ HÆf ¥¥ëWŸ“î ˜¥žEbJ'ðKKxÙúgþyCÚH‚Ä{š˜’ïUxÑ#Öô„ÌNäNü`™bxŸ +endstream +endobj +808 0 obj +<>stream +H‰|TKs›0¾ûWè(u* !àØN“NroM3±Z‚ÉøØÞ}Ø8Ž›ž´ÚÕ>¾owµ¾_™¤L +´IlêJ±þ¶J“4Í@jH2™X¿®~Èa¯ò$—q ‡—s3iºOÊ%…l•N'÷J[Ög2‰¦‹²ERÉߣú¹¾_és²<õK.¹4Š.çdZiãŠBÝAü\öÛð0³“s݉8“8‘m˜ùm_“z£l÷NY¬L -VžIð:9°·è ô®¯Í;Äâ¥è"™Ú BpÍÕ:¢‹‹½2zÁ:ˆäd?*í1]ìÿÇEqâÂxÉEN\xÙSýÌ<”¹S¶‚ó 0×ÈJBìd;†QÄ^Ôô¾ëÄ<-¢îI·›HÂÜo鬹……±€Î€¦P"½˜ùÅ<l‚·þÄxŠÓ.\Öh!ñƒJå< rfHÌ4Š]œôÐÍOO¡M=ԛЅép1_"úˈ…¼…êå eÞÝÜ܈‡i+”—Ƹ*1GÒMâÐ/]ø¶K´Š£m"ô[™e€ì´X©¡•½x”÷ke,¢ÿƒóýQq\ 3[ywõ˜óvrôe•$Ô/¢\È®˜lÃdo[•Á*„¦%ÓñÈo`×ÏÃÀ[´—œêÒ’ãr«,„Ÿq—*¹ÇᨕÁ!ðÀ\T˜õYiXq6Ö\ +aƒieײ)…Â`J,–Æî-¹cÁô¦Y¦pÔŒïfþŸk›º«µÍxw<ŠHoi<+,‰e)žyÝ^ÓØ´]7* 9ågü vìR¦éu0^PïÈòöÇÂ0p|ú"=ð­0€d½ +endstream +endobj +810 0 obj +<>stream +H‰lTKoÛ0 ¾ûWðH ³«‡åǹ E †\GM½9Næ$ërÜ?I9¯bðÁ"%R?~Ôì>1Y¥K ©É¬Î+˜Ý$:Ó:/aÖ&fïÉ7\4ªÈI]V˜Üsœ×Å!ÌyK%Cƒÿª”ι¬Ä;åóÌa³ÙB»”§u«RK)wbŒŠ+úùÌb¶*Ïr„u´W eŒ¢ŸÅF"–Ë.æY€€š}Š(Ü …½DQã“2Y}PÖQžwà„’Îpü•’PXW=¬ÄdÐ óîw7ß®¡Ý]<¾Žž¶¹@UœPùKTÞª‡7ŠÎ±Ú ‹9_V ÌÎç±MhwÄ“±DT§,±wöŠ³òWårZÇ SànŒæ “YwÈSò[¾Úáêdë{êü¢R»í>ú æ0†¾k^:ñrî“œÎeaO¥›xSÊ7• ýQ+ŸiAðR|R1ÊÒà®S uÀ*à.4|pyE%®÷èÞh÷m6¨‹8'ÊLÁD,cIÑ,ÊxÞ¥Z„ÏôØs¤L†œ2âöÊV–'·HœM<Á¤WTñP8ߧ.’Ðd þÏÜq ÜGÑ”øH¢¡C*Ò’<®–k™¹<ª#¥ø¢LI;½ANÁ{§*²¶oÑô_i4ÇiïùºöZ–DTþuÙõ{˜F¦Yœf>èàâY9’;É`Í“Wvk©‡?)vÄÅWR9|¡4ž\\L먪jˆŽ(ê«; ”ô5q és`K“i ¥·ß»L ,øE›ž5jãìGbèI¨$ ®œ!¾ t6s¢3oc¾q!¸µ?T §vKúù¾t‹·ôQq(†ñUٜ뗢¼ëLJ›ÈŽfbˆw F—ǼÓ(Þñ%ŠbåãÊpßhÐnšmOo!l§ÒM,½ÎêBÐÊ‚œ¢&R¼¦âáŸúB\h +endstream +endobj +813 0 obj +<>stream +H‰¬”KOA Çïó)|ÜTÅ{<¯+"!!µ"RÀæ@ ´ŠúíkÏnŽUiö¿öß¿ñxÖ£÷A`2u^—`òê.»ã G¹¸êþ0ŽC¯FªQç7ùs} ôut=9sã/ “… àõ€3¡gH•P´ÎÊܺ„1µ¢ÞÊuÞ&÷®bM-©- Š¦yä–æ5Íoa©‡ýú4J˜»ÇÙËt»g¸ø9·ÅÝBkw7½yî ñd¢F‘{À§[䘬L UkFxš»E+i/}@_†—Šj­CÀžM*Œ%íÛÐÚ&£WYk^Ú " MÑ.éSSÇ'«óÙl>;~œ¾¬æÏ0>?"8<>jPãÓ †ÛßNÐzp®FÌ)@ÂÄ°rÅš]Ô9¡¤K— F©;B5ŠMÆrÏa© %`¤Ò+…Ôt²õГ­2–ûæZµ )¶¤ÈI|Žè í¢Œúß„èÄxÁÔÕ+Ë­²Æ%_°|(B•–³ñ}¯¬}­zE⺠Xk~ø«šäõ¡ô§öý<8b¤’6MYm%‹Éª¤^[AA)˜‘yWØìEÖ>6­7”7Ï\°ÚÙWvbÞ²ÚöÕ˜}ÛzŠŠ’ΘùÔáEƒ•UwN¢!êÕÖÔ -YnH‡ƒ‚ +QZæVPïD¡¥XyÈX«™*a"ĆD‹fáÞ#¶éì±–ûœ†þMÆ+L®Û´zÌÃÚäTÿgúp¯×Øç ¯ p—×f.êGL+*Š·}Ge±þÅhûN¢_j%dHƤ)9B"Ì%öB1áÇဠZÁ³^4.…’Ø÷6Ií¡¤r‹H4@I½ì|àŸ«¿5 +endstream +endobj +814 0 obj +<>stream +H‰lTÛNT1}ïWô±5žÒÝ{}ÄH"xŒ$ćq<ÈA#c$þ½k·s†Ì\Ú}é^«k·Å$ò2ÛhJ 9‹·âLPr&— s “œ¼Š ©ÊL cA…hbÞw$k¬õËšùy‘Y\ ŠÖD_»«^’ëÄbˆþƒ´]3¿¨Â•ßŽâàI’ã•H€‹$-> Å‘A©[s‘ÙSªGÚ°r\ó߃Pçz¼Ç£ø%|BÙ,ÉWc`ÞOâË+ù1kjÉÕÅV™Œ%çœoÆš«à÷Æ­´†¢—2ÈSyùÕÊ3…œÌ.ª‰7ž#²ÒÎC9ËÛt TËž 僓k±óx‹]ãRÁ;ƒÖì ºÉù +æ]Ä”—/ö#ÀγPØØQ|º‰µØˆãÓCœ—3qpò‰äõ¦÷Á÷>Tƒ$–§M<=Ï ý‰(·`’ˆ»p©Æ•ˆ¢qê›j6¤fvdSÕ„‰#D¤ÔCR´$¾a¿C&ü_Ç÷w<O•»31šå£ ¸>MïâPEjÔC0QYÛÇ‹zð¦(yÔã“&÷Ÿ=DÔzêiò&À¨•&XwÛ謩˜¬þ6:Å|ör “É&ÓoÉrô˜DÕ8”*úÔFµ8”B(6_vÍ›jÜà¼ZB¬(†f„n´äÐdÙ•p¥,å»NÛË2àž%î:S´á‘bbŽ—êt¥Ûžï1xõs=Íó(>GvƒóPrŠØpv˜†‚çDQ‘âˆeqmyÑ>a`ìñUony;hˆëZ|Þ°à¤Vß4”Ëjžä Ú-­X\¯~O}Ü´¶SáÂlsçr±x½î+’݆ñ¹`ë¾;^»‘´0KÖrÆEÁ?S¶Ï;èÊ^ ϧë›Íoí‘>Ýk>Ì/xH• @Š¹;º\³E.P‡å¬SK){ØKkVü^áZ”v½Ú$@7é2M×7æèZòÇ#Î~zñÆ:dSƒm¡ü'Àè8Ô +endstream +endobj +815 0 obj +<>stream +H‰Œ“=oÜ0 †wÿ +ò`B¤H‰œÓE¢Ã¹C‘t*’Ò! +ô×—’Î÷Ñ\®Å GS/_òmƒL&aý6-9'ë¯é.†û8[&Š?=È9¾´L‰÷ó¼H­è‡"Ræ¯ë‡iA¨¤Ú?& ë»)5×Ôüâ:¯?¦ +¦!ù¯\‰s°>M R"j5q÷¹é ¬t}DKC¿´ÄÞÄ£DÇÉö¹TzñF}dä¢ÉãÜÎs„Ù(ÖyQ¶ì‰-?2Ö2'1w;/*^”^1'þof&àS†4 o>]€¶^À`tZ }_=Ä3jtjŒ/ƒVL|YÊÇnà2P÷©ñdyˆ¼šEÝ-¿øxÐoŒù{ÃtÜjn5wq÷e·ÞÎêwù±»Ÿ£ÖÅLîÃ[!¶{‚) nÐw÷þw'Å¢±¥Ð×9Æ_”Г?nõ|5öv²{«Ïà¸Áý¹­=Y5>/Border[0 0 0]/Rect[275.58 25.92 336.42 35.94]/Subtype/Link/Type/Annot>> +endobj +765 0 obj +<> +endobj +822 0 obj +<> +endobj +823 0 obj +<> +endobj +824 0 obj +<> +endobj +825 0 obj +<> +endobj +826 0 obj +<> +endobj +827 0 obj +<> +endobj +828 0 obj +<> +endobj +829 0 obj +<> +endobj +830 0 obj +<> +endobj +831 0 obj +<> +endobj +832 0 obj +<> +endobj +833 0 obj +<> +endobj +834 0 obj +<> +endobj +835 0 obj +<> +endobj +836 0 obj +<> +endobj +837 0 obj +<> +endobj +838 0 obj +<> +endobj +839 0 obj +<> +endobj +840 0 obj +<> +endobj +841 0 obj +<> +endobj +842 0 obj +<> +endobj +843 0 obj +<> +endobj +844 0 obj +<> +endobj +845 0 obj +<> +endobj +197 0 obj +<> +endobj +769 0 obj +<> +endobj +770 0 obj +<> +endobj +771 0 obj +<>/F(xilinx.joboptions)/Type/Filespec>> +endobj +196 0 obj +<>stream +H‰ÌW[oÛ8~ß_á—¦ÓèFRŠ©·ž6‰'v§³èÎEQ‰¶ŠdÈrÛì¯ßë(Y¾¤ÍÛˆÄsxÎw¾s!õêÕ?&“³óåt>ÑeÅêŒ/èßLrZn¸”•eýmÕÐj³¦ ¯Ø£#Ú¶õ¢ÞmQW—‹å¬(acÛl­ð¶ni« +CbýMQeEu79ûÀóV,Liù¶¡‹¦ÎÁÀä—‹º¼¥E5 ¼¾Ð +·oßXù^&óË)öŒ ^úFizõ¯÷VëãËåËÉ'žN¦5@È&ÿö·üt³€¿þäk ÷lN1[Uu{ùòlVWí¢. `àìm*BjÔkÚiQíãþ•—ÿed$ ßlnÒÿpÖ+z·qŠCØ´®¾ò¦?ˆÕU=¯2þ€ñ‚n6«û¦ÞÞÝÿ¶¸|«ÔºÍ ‡0»˜‰$tÒËuº*ØÞv‚ žÓmÙÞrðÒ@$óªåUkוJ °ß” ÒùQ‹Ómóœ{/=ø§°—u£Ø@1,ÛÜÞ=Š$Ó¯\J?VìžVw<“fêÕýö!­hQ:¥&i†2Lw.åêÍšW«ÇµÚ‚6>ŸNu7ó +h}à;;!ø›µ¨P'ˆåô–¯ë¦…ÀUÆ<¥^´ Ò¹uqU™HÕäW_¼Iæ¯øCÝ£¬­˜v‘§VÞ-e›Ég"ÿÿ59ûcg t_¿0n×G?dW@€»ýÐWPÊŸŠ 2 Ü-½ãÅÝ}Û­ý¾¥âð‚DÛ~Nö?Ä™?Öκɠ]mŽqé¾Þsk×t†Õ9Àí Õ°-‚}N÷wÅ!VŽôÄ¡­‡:B(ý= Ñ…þ·ôÃ^à?ßãÈŸ¡®êªëgÝ$Ï.õ»ÁT½Œ‹÷µÃ˜_»v ¬Î!n?ŒÝ_î‡Â6å>ÎW«ýÞÕ|çÃÍÎ{…@.¾fË?ͼ#ûž³/âbÙ¨Ÿ|V›¯áncŽöÅÅìOŸJEç6‹áÈš1ÕÂËMU>ö¥×õª)ÞÔß/›JÞÞª@¤«úŠg…§›<‡ë¤®ÜÞ‰Ï6Ümà"ϳžážÛN¬<‡Û›m»Þ¶êÛÂ~h½èKá«!“_ó ´Š¼€ÜîÕq$·ünÛÍã5}pÂÅp½†[ÙÙLò-«oXSÈo[ÓwËÉ«Ùålå$'(ˆãŒ/? +u^L¢î]æÍÔ/êòg{ljû¤oŸÐ.'ÆŽÄ4b£·ë¸ùÓú':¡¤M6îÇåç O±ÞªgâÌ Û—Äá/ræ‘î=kË×ë¸ß¶G£®7LŒc¶Ì¼’q9ù6< ÏiËÁÍ£GžÕÏh7Ç‚ã;\¸6øñ¼»sòGòiú:73Œïâ3³ð”Þr÷ógžÞ;œE±ÆÖ5¿Rf~f>ŒîÕã[Ï‚ËåÂÎ48ë+ääØäÅ×ka×Ò¿®g;Û5‡b=º3õôm‡+§á4Ü“ÛÜ™ÇO=K`1q™ùfâ’5b°% +Oï<‰×Å%m;g/ŽºÚ°g?b?ïðŽÅnõ §‰Ã•~Ï2þÄ™U¦ÿLîtOôøÞçÓÁeóŽäߕȹ¿"¯w†[|•?ÇÔÅ0çÃZÃÃ:ròt<Û·ËqÏes¦˜>CNâu¸Ý;ŒÑwkÆöüìöüPÏ›z³Üráø´÷¯¨ËÊEœfì©yŽ$}.,7áiù5zOêó¼›Mc>¦^¯!'—3_w0ïé×aGû'öìïžYÄœûƒû:7µŽi“~7÷[2Æ»Á8³uøìyÍFöž³}ý(bâÉ ¾y0¶d¾¨¶ëäÝæØí¡h€ÑÄîÖБþ–{œ»­¹û›üä™îîù}`XŽgïGü"åW`ðücuÀO ØŽÞ=N®·ˆs”`Á)& ŠK”ã\×Òû›[UKŒ(|Ì"ûˆ‘H½{”1L“ ¡˜!.ϱøg2˜U™—Éy–!/J“Þ¦”y’7 +a‚g†2°ïK”q/‹â˜%,Nc$×CÌ|e{O©á4 ca7Mˆ¶“øÌÿíÕ¶Û¶Dßóûè<Ô–dK²À€oqŒú+nZyX‘#…ÉU—KÎ×wv¹³R”¬¤®Y"g/3gngöûxÎÑt€çà€j™µszˆÍ$:l¬ô£gŽ¶©#d÷[øÕê!b·h8«ü2èVkÃÁtÈíô¾½½>;—0Õe²1ü‘ä…4Mò9äBeâ$VS÷ç‹UTf|o@dr?ž”Òbñ,ÓÄ@b +9‹u¹°µÄ㊅QË¥Np.¾]j¥fø{Wœƒ˜C&嬾(ó¿ž•Žñkj y,20â$Òj*=©Rëd Z w{öÝw5½ûÞ[FQ‹(|uVÝ‹wVÞ5»€^`> Æ1ù¸îj¡’³µŽ5r¦È»¬gBœÕlÅ1[3]Ó]y×õÂtF̃ªÛO nÄ:\¿ê&?)ÌðCÓ¢Û3ê­0“ävêûG÷òÎG1àÌÓ&v¿Ž÷]G ‰|çXÔÝ–âc[¦ÐeË[1‡Nœö›vDÙ~ÿùô56ðà £Ïìçìkä÷Ù€kŸgŒ½sÙŽKš)öLð¨ØùVÌrÖ{½cv±ó~­{¨|’eXl²«‹¡‡)Ûïuí®€Qõ¾N&ÎXe£¾1ör–òo¶Æ–s”óé·÷l铵ŒÿˆaÄÖ“Þ¤aÆY>Å ù80|®#Å,aλïl¿±þbýí¸Z™n‡ +Š ZOù=y¼ =cÃvú1M‰dT¿Gí÷}†ëAÝ+ÃDbý±>à}ìž#ÿ<«±Û6ÿ¶©Õ¡^K–£‘ÇÛßCú’ãƒzíØã0U¸ºof°7jb>®žÅu ò¸]·r(Ä'áç1t˜1É&Âó§ûÛQ½—ò¼QX¯£žO±O:oÊ'êÀæ¿æʾÜ|¾ÃfØkÔ÷iërã‹Þvk³Ë¨ÎYéS‡>>¨ÎxîG¾u{é.è5¹!õ`úóäýüÃô5Žâ™õÆ·â‰Ô‡].}ÓÞF~7Þï½Ê!Û¼ †ÍøwxPo3vqCÂÕaWË×ëOµ‘öQ$~ÂómØ1÷ÿ/a:mæÕœÀ%y/ß–K¶ì~“>Ô:³Á9î”?·bç±a¾þ/Àœ a”ˆ4Hã¤(h˜+Ä ÇÃJ;¾7â¡rš E%Žxõt(ÎÜ‘që´H毰!Êžó=Œ„vÿÊLh_¦xN5[KöneÅRF ¾:ÃvÜ®jhÜ9SY¦rÿÐßíÙ_ßì®;´Z‡­…ßûáƒûBùIQ];Y¢â1Ú-ÓHx¦Õò*“s(>«Ú"Œ.ƒøBk¥ÏTn´JÅÞ©ó“<¶ÏI^/úˆv4[_Ís¥¡ºçî ´NËæ}Wy”–1\–Vt‰ ºå·*¿'—tÉ'iÙ´±kã瞯òs(’yÎ^THÚ¿otÖ]–˜ûÏŠO“ÉeKÇZ|q?Y'²ÑÑM’¬´·À¸Ð{×0—Ñ‹[p|ÜöZŸ¦ñÔ‹Öý(:S©Ò§RwHСÝ{îÑËWùL­`Þ±½ŒšwSøªêE‘¨œ– ˜è!ië-5KR°^;ï×/˜@ +‘ÁÌÛ»= «Ôs^Èl™B„€WáØÃa÷ÜÔ0ÙÁѽªÏ½8)³(TZšZY°=Léì"_¸É—ö +tÑïŽL©¡¡„½S¥Ù*\^úée :Mò5â+[Qdd’'è”_Ëh;Õ‹<€M`nÊÔ$Z,?aAImºìa!¼›þhL|ü©qÕ Õ›”‰áïy‚1þç]i–¥±våfƒ—ô\ĉKjnÄcnä|ñÙÍ_¿×f\ƒ|µ—>\ž¾¶²€s_œ]1L](|{w|l;Eœ`ˆ¦)æ¤ÄòW¼s¡µ÷éK@âkŽ°ÿ\½µy4I~ Š£>¢‚¢ñ‘û¦#—¸ †§$‚wÿ +0sZBÿ + +endstream +endobj +198 0 obj +<> +endobj +199 0 obj +<> +endobj +200 0 obj +<> +endobj +201 0 obj +<> +endobj +202 0 obj +<> +endobj +203 0 obj +<> +endobj +204 0 obj +<> +endobj +205 0 obj +<> +endobj +206 0 obj +<> +endobj +207 0 obj +<> +endobj +208 0 obj +<> +endobj +209 0 obj +<> +endobj +210 0 obj +<> +endobj +211 0 obj +<> +endobj +212 0 obj +<> +endobj +213 0 obj +<> +endobj +214 0 obj +<> +endobj +215 0 obj +<> +endobj +216 0 obj +<> +endobj +217 0 obj +<> +endobj +218 0 obj +<> +endobj +219 0 obj +<> +endobj +220 0 obj +<> +endobj +221 0 obj +<> +endobj +222 0 obj +<> +endobj +223 0 obj +<> +endobj +224 0 obj +<> +endobj +225 0 obj +<> +endobj +226 0 obj +<> +endobj +227 0 obj +<> +endobj +228 0 obj +<> +endobj +229 0 obj +<> +endobj +230 0 obj +<> +endobj +231 0 obj +<> +endobj +232 0 obj +<> +endobj +233 0 obj +<> +endobj +234 0 obj +<> +endobj +235 0 obj +<> +endobj +236 0 obj +<> +endobj +237 0 obj +<> +endobj +238 0 obj +<> +endobj +239 0 obj +<> +endobj +240 0 obj +<> +endobj +241 0 obj +<> +endobj +242 0 obj +<> +endobj +243 0 obj +<> +endobj +244 0 obj +<> +endobj +245 0 obj +<> +endobj +246 0 obj +<> +endobj +247 0 obj +<> +endobj +248 0 obj +<> +endobj +249 0 obj +<> +endobj +250 0 obj +<> +endobj +251 0 obj +<> +endobj +252 0 obj +<> +endobj +253 0 obj +<> +endobj +254 0 obj +<> +endobj +255 0 obj +<> +endobj +256 0 obj +<> +endobj +257 0 obj +<> +endobj +258 0 obj +<> +endobj +259 0 obj +<> +endobj +260 0 obj +<> +endobj +261 0 obj +<> +endobj +262 0 obj +<> +endobj +263 0 obj +<> +endobj +264 0 obj +<> +endobj +265 0 obj +<> +endobj +266 0 obj +<> +endobj +267 0 obj +<> +endobj +268 0 obj +<> +endobj +269 0 obj +<> +endobj +270 0 obj +<> +endobj +271 0 obj +<> +endobj +272 0 obj +<> +endobj +273 0 obj +<> +endobj +274 0 obj +<> +endobj +275 0 obj +<> +endobj +276 0 obj +<> +endobj +277 0 obj +<> +endobj +278 0 obj +<> +endobj +279 0 obj +<> +endobj +280 0 obj +<> +endobj +281 0 obj +<> +endobj +282 0 obj +<> +endobj +283 0 obj +<> +endobj +284 0 obj +<> +endobj +285 0 obj +<> +endobj +286 0 obj +<> +endobj +287 0 obj +<> +endobj +288 0 obj +<> +endobj +289 0 obj +<> +endobj +290 0 obj +<> +endobj +291 0 obj +<> +endobj +292 0 obj +<> +endobj +293 0 obj +<> +endobj +294 0 obj +<> +endobj +295 0 obj +<> +endobj +296 0 obj +<> +endobj +297 0 obj +<> +endobj +298 0 obj +<> +endobj +299 0 obj +<> +endobj +300 0 obj +<> +endobj +301 0 obj +<> +endobj +302 0 obj +<> +endobj +303 0 obj +<> +endobj +304 0 obj +<> +endobj +305 0 obj +<> +endobj +306 0 obj +<> +endobj +307 0 obj +<> +endobj +308 0 obj +<> +endobj +309 0 obj +<> +endobj +310 0 obj +<> +endobj +311 0 obj +<> +endobj +312 0 obj +<> +endobj +313 0 obj +<> +endobj +314 0 obj +<> +endobj +315 0 obj +<> +endobj +316 0 obj +<> +endobj +317 0 obj +<> +endobj +318 0 obj +<> +endobj +319 0 obj +<> +endobj +320 0 obj +<> +endobj +321 0 obj +<> +endobj +322 0 obj +<> +endobj +323 0 obj +<> +endobj +324 0 obj +<> +endobj +325 0 obj +<> +endobj +326 0 obj +<> +endobj +327 0 obj +<> +endobj +328 0 obj +<> +endobj +329 0 obj +<> +endobj +330 0 obj +<> +endobj +331 0 obj +<> +endobj +332 0 obj +<> +endobj +333 0 obj +<> +endobj +334 0 obj +<> +endobj +335 0 obj +<> +endobj +336 0 obj +<> +endobj +337 0 obj +<> +endobj +338 0 obj +<> +endobj +339 0 obj +<> +endobj +340 0 obj +<> +endobj +341 0 obj +<> +endobj +342 0 obj +<> +endobj +343 0 obj +<> +endobj +344 0 obj +<> +endobj +345 0 obj +<> +endobj +346 0 obj +<> +endobj +347 0 obj +<> +endobj +348 0 obj +<> +endobj +349 0 obj +<> +endobj +350 0 obj +<> +endobj +351 0 obj +<> +endobj +352 0 obj +<> +endobj +353 0 obj +<> +endobj +354 0 obj +<> +endobj +355 0 obj +<> +endobj +356 0 obj +<> +endobj +357 0 obj +<> +endobj +358 0 obj +<> +endobj +359 0 obj +<> +endobj +360 0 obj +<> +endobj +361 0 obj +<> +endobj +362 0 obj +<> +endobj +363 0 obj +<> +endobj +364 0 obj +<> +endobj +365 0 obj +<> +endobj +366 0 obj +<> +endobj +367 0 obj +<> +endobj +368 0 obj +<> +endobj +369 0 obj +<> +endobj +370 0 obj +<> +endobj +371 0 obj +<> +endobj +372 0 obj +<> +endobj +373 0 obj +<> +endobj +374 0 obj +<> +endobj +375 0 obj +<> +endobj +376 0 obj +<> +endobj +377 0 obj +<> +endobj +378 0 obj +<> +endobj +379 0 obj +<> +endobj +380 0 obj +<> +endobj +381 0 obj +<> +endobj +382 0 obj +<> +endobj +383 0 obj +<> +endobj +384 0 obj +<> +endobj +385 0 obj +<> +endobj +386 0 obj +<> +endobj +387 0 obj +<> +endobj +388 0 obj +<> +endobj +389 0 obj +<> +endobj +390 0 obj +<> +endobj +391 0 obj +<> +endobj +392 0 obj +<> +endobj +393 0 obj +<> +endobj +394 0 obj +<> +endobj +395 0 obj +<> +endobj +396 0 obj +<> +endobj +397 0 obj +<> +endobj +398 0 obj +<> +endobj +399 0 obj +<> +endobj +400 0 obj +<> +endobj +401 0 obj +<> +endobj +402 0 obj +<> +endobj +403 0 obj +<> +endobj +404 0 obj +<> +endobj +405 0 obj +<> +endobj +406 0 obj +<> +endobj +407 0 obj +<> +endobj +408 0 obj +<> +endobj +409 0 obj +<> +endobj +410 0 obj +<> +endobj +411 0 obj +<> +endobj +412 0 obj +<> +endobj +413 0 obj +<> +endobj +414 0 obj +<> +endobj +415 0 obj +<> +endobj +416 0 obj +<> +endobj +417 0 obj +<> +endobj +418 0 obj +<> +endobj +419 0 obj +<> +endobj +420 0 obj +<> +endobj +421 0 obj +<> +endobj +422 0 obj +<> +endobj +423 0 obj +<> +endobj +424 0 obj +<> +endobj +425 0 obj +<> +endobj +426 0 obj +<> +endobj +427 0 obj +<> +endobj +428 0 obj +<> +endobj +429 0 obj +<> +endobj +430 0 obj +<> +endobj +431 0 obj +<> +endobj +432 0 obj +<> +endobj +433 0 obj +<> +endobj +434 0 obj +<> +endobj +435 0 obj +<> +endobj +436 0 obj +<> +endobj +437 0 obj +<> +endobj +438 0 obj +<> +endobj +439 0 obj +<> +endobj +440 0 obj +<> +endobj +441 0 obj +<> +endobj +442 0 obj +<> +endobj +443 0 obj +<> +endobj +444 0 obj +<> +endobj +445 0 obj +<> +endobj +446 0 obj +<> +endobj +447 0 obj +<> +endobj +448 0 obj +<> +endobj +449 0 obj +<> +endobj +450 0 obj +<> +endobj +451 0 obj +<> +endobj +452 0 obj +<> +endobj +453 0 obj +<> +endobj +454 0 obj +<> +endobj +455 0 obj +<> +endobj +456 0 obj +<> +endobj +457 0 obj +<> +endobj +458 0 obj +<> +endobj +459 0 obj +<> +endobj +460 0 obj +<> +endobj +461 0 obj +<> +endobj +462 0 obj +<> +endobj +463 0 obj +<> +endobj +464 0 obj +<> +endobj +465 0 obj +<> +endobj +466 0 obj +<> +endobj +467 0 obj +<> +endobj +468 0 obj +<> +endobj +469 0 obj +<> +endobj +470 0 obj +<> +endobj +471 0 obj +<> +endobj +472 0 obj +<> +endobj +473 0 obj +<> +endobj +474 0 obj +<> +endobj +475 0 obj +<> +endobj +476 0 obj +<> +endobj +477 0 obj +<> +endobj +478 0 obj +<> +endobj +479 0 obj +<> +endobj +480 0 obj +<> +endobj +481 0 obj +<> +endobj +482 0 obj +<> +endobj +483 0 obj +<> +endobj +484 0 obj +<> +endobj +485 0 obj +<> +endobj +486 0 obj +<> +endobj +487 0 obj +<> +endobj +488 0 obj +<> +endobj +489 0 obj +<> +endobj +490 0 obj +<> +endobj +491 0 obj +<> +endobj +492 0 obj +<> +endobj +493 0 obj +<> +endobj +494 0 obj +<> +endobj +495 0 obj +<> +endobj +496 0 obj +<> +endobj +497 0 obj +<> +endobj +498 0 obj +<> +endobj +499 0 obj +<> +endobj +500 0 obj +<> +endobj +501 0 obj +<> +endobj +502 0 obj +<> +endobj +503 0 obj +<> +endobj +504 0 obj +<> +endobj +505 0 obj +<> +endobj +506 0 obj +<> +endobj +507 0 obj +<> +endobj +508 0 obj +<> +endobj +509 0 obj +<> +endobj +510 0 obj +<> +endobj +511 0 obj +<> +endobj +512 0 obj +<> +endobj +513 0 obj +<> +endobj +514 0 obj +<> +endobj +515 0 obj +<> +endobj +516 0 obj +<> +endobj +517 0 obj +<> +endobj +518 0 obj +<> +endobj +519 0 obj +<> +endobj +520 0 obj +<> +endobj +521 0 obj +<> +endobj +522 0 obj +<> +endobj +523 0 obj +<> +endobj +524 0 obj +<> +endobj +525 0 obj +<> +endobj +526 0 obj +<> +endobj +527 0 obj +<> +endobj +528 0 obj +<> +endobj +529 0 obj +<> +endobj +530 0 obj +<> +endobj +531 0 obj +<> +endobj +532 0 obj +<> +endobj +533 0 obj +<> +endobj +534 0 obj +<> +endobj +535 0 obj +<> +endobj +536 0 obj +<> +endobj +537 0 obj +<> +endobj +538 0 obj +<> +endobj +539 0 obj +<> +endobj +540 0 obj +<> +endobj +541 0 obj +<> +endobj +542 0 obj +<> +endobj +543 0 obj +<> +endobj +544 0 obj +<> +endobj +545 0 obj +<> +endobj +546 0 obj +<> +endobj +547 0 obj +<> +endobj +548 0 obj +<> +endobj +549 0 obj +<> +endobj +550 0 obj +<> +endobj +551 0 obj +<> +endobj +552 0 obj +<> +endobj +553 0 obj +<> +endobj +554 0 obj +<> +endobj +555 0 obj +<> +endobj +556 0 obj +<> +endobj +557 0 obj +<> +endobj +558 0 obj +<> +endobj +559 0 obj +<> +endobj +560 0 obj +<> +endobj +561 0 obj +<> +endobj +562 0 obj +<> +endobj +563 0 obj +<> +endobj +564 0 obj +<> +endobj +565 0 obj +<> +endobj +566 0 obj +<> +endobj +567 0 obj +<> +endobj +568 0 obj +<> +endobj +569 0 obj +<> +endobj +570 0 obj +<> +endobj +571 0 obj +<> +endobj +572 0 obj +<> +endobj +573 0 obj +<> +endobj +574 0 obj +<> +endobj +575 0 obj +<> +endobj +576 0 obj +<> +endobj +577 0 obj +<> +endobj +578 0 obj +<> +endobj +579 0 obj +<> +endobj +580 0 obj +<> +endobj +581 0 obj +<> +endobj +582 0 obj +<> +endobj +583 0 obj +<> +endobj +584 0 obj +<> +endobj +585 0 obj +<> +endobj +586 0 obj +<> +endobj +587 0 obj +<> +endobj +588 0 obj +<> +endobj +589 0 obj +<> +endobj +590 0 obj +<> +endobj +591 0 obj +<> +endobj +592 0 obj +<> +endobj +593 0 obj +<> +endobj +594 0 obj +<> +endobj +595 0 obj +<> +endobj +596 0 obj +<> +endobj +597 0 obj +<> +endobj +598 0 obj +<> +endobj +599 0 obj +<> +endobj +600 0 obj +<> +endobj +601 0 obj +<> +endobj +602 0 obj +<> +endobj +603 0 obj +<> +endobj +604 0 obj +<> +endobj +605 0 obj +<> +endobj +606 0 obj +<> +endobj +607 0 obj +<> +endobj +608 0 obj +<> +endobj +609 0 obj +<> +endobj +610 0 obj +<> +endobj +611 0 obj +<> +endobj +612 0 obj +<> +endobj +613 0 obj +<> +endobj +614 0 obj +<> +endobj +615 0 obj +<> +endobj +616 0 obj +<> +endobj +617 0 obj +<> +endobj +618 0 obj +<> +endobj +619 0 obj +<> +endobj +620 0 obj +<> +endobj +621 0 obj +<> +endobj +622 0 obj +<> +endobj +623 0 obj +<> +endobj +624 0 obj +<> +endobj +625 0 obj +<> +endobj +626 0 obj +<> +endobj +627 0 obj +<> +endobj +628 0 obj +<> +endobj +629 0 obj +<> +endobj +630 0 obj +<> +endobj +631 0 obj +<> +endobj +632 0 obj +<> +endobj +633 0 obj +<> +endobj +634 0 obj +<> +endobj +635 0 obj +<> +endobj +636 0 obj +<> +endobj +637 0 obj +<> +endobj +638 0 obj +<> +endobj +639 0 obj +<> +endobj +640 0 obj +<> +endobj +641 0 obj +<> +endobj +642 0 obj +<> +endobj +643 0 obj +<> +endobj +644 0 obj +<> +endobj +645 0 obj +<> +endobj +646 0 obj +<> +endobj +647 0 obj +<> +endobj +648 0 obj +<> +endobj +649 0 obj +<> +endobj +650 0 obj +<> +endobj +651 0 obj +<> +endobj +652 0 obj +<> +endobj +653 0 obj +<> +endobj +654 0 obj +<> +endobj +655 0 obj +<> +endobj +656 0 obj +<> +endobj +657 0 obj +<> +endobj +658 0 obj +<> +endobj +659 0 obj +<> +endobj +660 0 obj +<> +endobj +661 0 obj +<> +endobj +662 0 obj +<> +endobj +663 0 obj +<> +endobj +664 0 obj +<> +endobj +665 0 obj +<> +endobj +666 0 obj +<> +endobj +667 0 obj +<> +endobj +668 0 obj +<> +endobj +669 0 obj +<> +endobj +670 0 obj +<> +endobj +671 0 obj +<> +endobj +672 0 obj +<> +endobj +673 0 obj +<> +endobj +674 0 obj +<> +endobj +675 0 obj +<> +endobj +676 0 obj +<> +endobj +677 0 obj +<> +endobj +678 0 obj +<> +endobj +679 0 obj +<> +endobj +680 0 obj +<> +endobj +681 0 obj +<> +endobj +682 0 obj +<> +endobj +683 0 obj +<> +endobj +684 0 obj +<> +endobj +685 0 obj +<> +endobj +686 0 obj +<> +endobj +687 0 obj +<> +endobj +688 0 obj +<> +endobj +689 0 obj +<> +endobj +690 0 obj +<> +endobj +691 0 obj +<> +endobj +692 0 obj +<> +endobj +693 0 obj +<> +endobj +694 0 obj +<> +endobj +695 0 obj +<> +endobj +696 0 obj +<> +endobj +697 0 obj +<> +endobj +698 0 obj +<> +endobj +699 0 obj +<> +endobj +700 0 obj +<> +endobj +701 0 obj +<> +endobj +702 0 obj +<> +endobj +703 0 obj +<> +endobj +704 0 obj +<> +endobj +705 0 obj +<> +endobj +706 0 obj +<> +endobj +707 0 obj +<> +endobj +708 0 obj +<> +endobj +709 0 obj +<> +endobj +710 0 obj +<> +endobj +711 0 obj +<> +endobj +712 0 obj +<> +endobj +713 0 obj +<> +endobj +714 0 obj +<> +endobj +715 0 obj +<> +endobj +716 0 obj +<> +endobj +717 0 obj +<> +endobj +718 0 obj +<> +endobj +719 0 obj +<> +endobj +720 0 obj +<> +endobj +721 0 obj +<> +endobj +722 0 obj +<> +endobj +723 0 obj +<> +endobj +724 0 obj +<> +endobj +725 0 obj +<> +endobj +726 0 obj +<> +endobj +727 0 obj +<> +endobj +728 0 obj +<> +endobj +729 0 obj +<> +endobj +730 0 obj +<> +endobj +731 0 obj +<> +endobj +732 0 obj +<> +endobj +733 0 obj +<> +endobj +734 0 obj +<> +endobj +735 0 obj +<> +endobj +736 0 obj +<> +endobj +737 0 obj +<> +endobj +738 0 obj +<> +endobj +739 0 obj +<> +endobj +740 0 obj +<> +endobj +741 0 obj +<> +endobj +742 0 obj +<> +endobj +743 0 obj +<> +endobj +744 0 obj +<> +endobj +745 0 obj +<> +endobj +746 0 obj +<> +endobj +747 0 obj +<> +endobj +748 0 obj +<> +endobj +749 0 obj +<> +endobj +750 0 obj +<> +endobj +751 0 obj +<> +endobj +752 0 obj +<> +endobj +753 0 obj +<> +endobj +754 0 obj +<> +endobj +755 0 obj +<> +endobj +756 0 obj +<> +endobj +757 0 obj +<> +endobj +758 0 obj +<> +endobj +759 0 obj +<> +endobj +760 0 obj +<> +endobj +761 0 obj +<> +endobj +762 0 obj +<> +endobj +763 0 obj +<> +endobj +773 0 obj +<> +endobj +xref +0 848 +0000000000 65535 f +0000041929 00000 n +0000045140 00000 n +0000044409 00000 n +0000042082 00000 n +0000044665 00000 n +0000044553 00000 n +0000010141 00000 n +0000045269 00000 n +0000045397 00000 n +0000045500 00000 n +0000019621 00000 n +0000010309 00000 n +0000020489 00000 n +0000019789 00000 n +0000020014 00000 n +0000019903 00000 n +0000009879 00000 n +0000054570 00000 n +0000054699 00000 n +0000054805 00000 n +0000054912 00000 n +0000055020 00000 n +0000052517 00000 n +0000045607 00000 n +0000052815 00000 n +0000052708 00000 n +0000054094 00000 n +0000053394 00000 n +0000053619 00000 n +0000053508 00000 n +0000009637 00000 n +0000063292 00000 n +0000063421 00000 n +0000061948 00000 n +0000055127 00000 n +0000062816 00000 n +0000062116 00000 n +0000062341 00000 n +0000062230 00000 n +0000009402 00000 n +0000089326 00000 n +0000067319 00000 n +0000063528 00000 n +0000086648 00000 n +0000067527 00000 n +0000068261 00000 n +0000067634 00000 n +0000067785 00000 n +0000067671 00000 n +0000009153 00000 n +0000097396 00000 n +0000097525 00000 n +0000097628 00000 n +0000095452 00000 n +0000089455 00000 n +0000096920 00000 n +0000095634 00000 n +0000096445 00000 n +0000095748 00000 n +0000095970 00000 n +0000095859 00000 n +0000008911 00000 n +0000104247 00000 n +0000104376 00000 n +0000102900 00000 n +0000097736 00000 n +0000103771 00000 n +0000103070 00000 n +0000103295 00000 n +0000103184 00000 n +0000008669 00000 n +0000113841 00000 n +0000113970 00000 n +0000109457 00000 n +0000104484 00000 n +0000110339 00000 n +0000109638 00000 n +0000109863 00000 n +0000109752 00000 n +0000008427 00000 n +0000120597 00000 n +0000120726 00000 n +0000119252 00000 n +0000114073 00000 n +0000120121 00000 n +0000119422 00000 n +0000119647 00000 n +0000119536 00000 n +0000008185 00000 n +0000127930 00000 n +0000128059 00000 n +0000126573 00000 n +0000120834 00000 n +0000127454 00000 n +0000126754 00000 n +0000126979 00000 n +0000126868 00000 n +0000007924 00000 n +0000146912 00000 n +0000147041 00000 n +0000147149 00000 n +0000147257 00000 n +0000137037 00000 n +0000128164 00000 n +0000137938 00000 n +0000137233 00000 n +0000137462 00000 n +0000137349 00000 n +0000007677 00000 n +0000157179 00000 n +0000157309 00000 n +0000155211 00000 n +0000147362 00000 n +0000156702 00000 n +0000155408 00000 n +0000156226 00000 n +0000155524 00000 n +0000155750 00000 n +0000155637 00000 n +0000007397 00000 n +0000194882 00000 n +0000195012 00000 n +0000195119 00000 n +0000195228 00000 n +0000195336 00000 n +0000195442 00000 n +0000176092 00000 n +0000157414 00000 n +0000194031 00000 n +0000193795 00000 n +0000193105 00000 n +0000176316 00000 n +0000192632 00000 n +0000176432 00000 n +0000176580 00000 n +0000176541 00000 n +0000007149 00000 n +0000204854 00000 n +0000204984 00000 n +0000202884 00000 n +0000195549 00000 n +0000204377 00000 n +0000203081 00000 n +0000203900 00000 n +0000203197 00000 n +0000203423 00000 n +0000203310 00000 n +0000006901 00000 n +0000215358 00000 n +0000215488 00000 n +0000213574 00000 n +0000205092 00000 n +0000214455 00000 n +0000213759 00000 n +0000213982 00000 n +0000213875 00000 n +0000006597 00000 n +0000220560 00000 n +0000220690 00000 n +0000220875 00000 n +0000221060 00000 n +0000221223 00000 n +0000221400 00000 n +0000221577 00000 n +0000221755 00000 n +0000221861 00000 n +0000219818 00000 n +0000215597 00000 n +0000220083 00000 n +0000219967 00000 n +0000006349 00000 n +0000225035 00000 n +0000225165 00000 n +0000224304 00000 n +0000221969 00000 n +0000224558 00000 n +0000224442 00000 n +0000022607 00000 n +0000023077 00000 n +0000023518 00000 n +0000088689 00000 n +0000088745 00000 n +0000087120 00000 n +0000087658 00000 n +0000087420 00000 n +0000110815 00000 n +0000111212 00000 n +0000111546 00000 n +0000138415 00000 n +0000138847 00000 n +0000138549 00000 n +0000139040 00000 n +0000139272 00000 n +0000193582 00000 n +0000214932 00000 n +0000235317 00000 n +0000234947 00000 n +0000239557 00000 n +0000240690 00000 n +0000241837 00000 n +0000242984 00000 n +0000244131 00000 n +0000245278 00000 n +0000246425 00000 n +0000247572 00000 n +0000248876 00000 n +0000251292 00000 n +0000251341 00000 n +0000251391 00000 n +0000251440 00000 n +0000251490 00000 n +0000251539 00000 n +0000251588 00000 n +0000251637 00000 n +0000251686 00000 n +0000251736 00000 n +0000251785 00000 n +0000251834 00000 n +0000251883 00000 n +0000251932 00000 n +0000251979 00000 n +0000252029 00000 n +0000252078 00000 n +0000252126 00000 n +0000252176 00000 n +0000252226 00000 n +0000252276 00000 n +0000252325 00000 n +0000252374 00000 n +0000252422 00000 n +0000252471 00000 n +0000252521 00000 n +0000252571 00000 n +0000252621 00000 n +0000252673 00000 n +0000252724 00000 n +0000252775 00000 n +0000252826 00000 n +0000252878 00000 n +0000252930 00000 n +0000252982 00000 n +0000253034 00000 n +0000253086 00000 n +0000253138 00000 n +0000253188 00000 n +0000253238 00000 n +0000253289 00000 n +0000253340 00000 n +0000253391 00000 n +0000253442 00000 n +0000253493 00000 n +0000253544 00000 n +0000253592 00000 n +0000253641 00000 n +0000253691 00000 n +0000253741 00000 n +0000253788 00000 n +0000253835 00000 n +0000253882 00000 n +0000253929 00000 n +0000253976 00000 n +0000254025 00000 n +0000254075 00000 n +0000254125 00000 n +0000254174 00000 n +0000254222 00000 n +0000254270 00000 n +0000254319 00000 n +0000254369 00000 n +0000254419 00000 n +0000254469 00000 n +0000254519 00000 n +0000254569 00000 n +0000254618 00000 n +0000254667 00000 n +0000254716 00000 n +0000254765 00000 n +0000254815 00000 n +0000254865 00000 n +0000254915 00000 n +0000254965 00000 n +0000255014 00000 n +0000255063 00000 n +0000255113 00000 n +0000255162 00000 n +0000255211 00000 n +0000255259 00000 n +0000255309 00000 n +0000255356 00000 n +0000255406 00000 n +0000255456 00000 n +0000255503 00000 n +0000255552 00000 n +0000255602 00000 n +0000255652 00000 n +0000255702 00000 n +0000255752 00000 n +0000255801 00000 n +0000255850 00000 n +0000255899 00000 n +0000255948 00000 n +0000255997 00000 n +0000256046 00000 n +0000256096 00000 n +0000256146 00000 n +0000256196 00000 n +0000256245 00000 n +0000256294 00000 n +0000256342 00000 n +0000256390 00000 n +0000256438 00000 n +0000256488 00000 n +0000256536 00000 n +0000256584 00000 n +0000256636 00000 n +0000256684 00000 n +0000256732 00000 n +0000256780 00000 n +0000256828 00000 n +0000256876 00000 n +0000256925 00000 n +0000256974 00000 n +0000257023 00000 n +0000257072 00000 n +0000257121 00000 n +0000257170 00000 n +0000257219 00000 n +0000257269 00000 n +0000257319 00000 n +0000257368 00000 n +0000257418 00000 n +0000257468 00000 n +0000257517 00000 n +0000257567 00000 n +0000257617 00000 n +0000257666 00000 n +0000257716 00000 n +0000257766 00000 n +0000257815 00000 n +0000257865 00000 n +0000257915 00000 n +0000257964 00000 n +0000258014 00000 n +0000258064 00000 n +0000258113 00000 n +0000258163 00000 n +0000258213 00000 n +0000258262 00000 n +0000258312 00000 n +0000258362 00000 n +0000258411 00000 n +0000258461 00000 n +0000258511 00000 n +0000258560 00000 n +0000258610 00000 n +0000258660 00000 n +0000258709 00000 n +0000258759 00000 n +0000258809 00000 n +0000258858 00000 n +0000258908 00000 n +0000258958 00000 n +0000259007 00000 n +0000259057 00000 n +0000259107 00000 n +0000259156 00000 n +0000259206 00000 n +0000259256 00000 n +0000259305 00000 n +0000259355 00000 n +0000259405 00000 n +0000259454 00000 n +0000259504 00000 n +0000259554 00000 n +0000259603 00000 n +0000259652 00000 n +0000259701 00000 n +0000259750 00000 n +0000259799 00000 n +0000259848 00000 n +0000259897 00000 n +0000259947 00000 n +0000259997 00000 n +0000260047 00000 n +0000260097 00000 n +0000260146 00000 n +0000260196 00000 n +0000260246 00000 n +0000260296 00000 n +0000260346 00000 n +0000260395 00000 n +0000260445 00000 n +0000260495 00000 n +0000260545 00000 n +0000260595 00000 n +0000260644 00000 n +0000260694 00000 n +0000260744 00000 n +0000260794 00000 n +0000260844 00000 n +0000260893 00000 n +0000260943 00000 n +0000260993 00000 n +0000261043 00000 n +0000261093 00000 n +0000261142 00000 n +0000261192 00000 n +0000261242 00000 n +0000261292 00000 n +0000261342 00000 n +0000261391 00000 n +0000261441 00000 n +0000261491 00000 n +0000261541 00000 n +0000261591 00000 n +0000261640 00000 n +0000261689 00000 n +0000261738 00000 n +0000261787 00000 n +0000261837 00000 n +0000261887 00000 n +0000261937 00000 n +0000261987 00000 n +0000262036 00000 n +0000262086 00000 n +0000262136 00000 n +0000262186 00000 n +0000262236 00000 n +0000262285 00000 n +0000262335 00000 n +0000262385 00000 n +0000262435 00000 n +0000262485 00000 n +0000262534 00000 n +0000262584 00000 n +0000262634 00000 n +0000262684 00000 n +0000262734 00000 n +0000262783 00000 n +0000262830 00000 n +0000262878 00000 n +0000262927 00000 n +0000262975 00000 n +0000263023 00000 n +0000263071 00000 n +0000263119 00000 n +0000263166 00000 n +0000263214 00000 n +0000263262 00000 n +0000263310 00000 n +0000263358 00000 n +0000263405 00000 n +0000263453 00000 n +0000263501 00000 n +0000263549 00000 n +0000263597 00000 n +0000263644 00000 n +0000263692 00000 n +0000263740 00000 n +0000263788 00000 n +0000263836 00000 n +0000263883 00000 n +0000263931 00000 n +0000263979 00000 n +0000264027 00000 n +0000264075 00000 n +0000264122 00000 n +0000264170 00000 n +0000264218 00000 n +0000264266 00000 n +0000264314 00000 n +0000264361 00000 n +0000264409 00000 n +0000264457 00000 n +0000264505 00000 n +0000264553 00000 n +0000264600 00000 n +0000264648 00000 n +0000264696 00000 n +0000264744 00000 n +0000264792 00000 n +0000264839 00000 n +0000264887 00000 n +0000264935 00000 n +0000264983 00000 n +0000265031 00000 n +0000265078 00000 n +0000265126 00000 n +0000265174 00000 n +0000265222 00000 n +0000265270 00000 n +0000265317 00000 n +0000265364 00000 n +0000265413 00000 n +0000265462 00000 n +0000265511 00000 n +0000265558 00000 n +0000265604 00000 n +0000265650 00000 n +0000265697 00000 n +0000265745 00000 n +0000265793 00000 n +0000265841 00000 n +0000265890 00000 n +0000265940 00000 n +0000265990 00000 n +0000266040 00000 n +0000266089 00000 n +0000266137 00000 n +0000266184 00000 n +0000266232 00000 n +0000266280 00000 n +0000266328 00000 n +0000266376 00000 n +0000266423 00000 n +0000266471 00000 n +0000266519 00000 n +0000266567 00000 n +0000266615 00000 n +0000266662 00000 n +0000266710 00000 n +0000266758 00000 n +0000266806 00000 n +0000266854 00000 n +0000266901 00000 n +0000266949 00000 n +0000266997 00000 n +0000267045 00000 n +0000267093 00000 n +0000267140 00000 n +0000267188 00000 n +0000267236 00000 n +0000267284 00000 n +0000267332 00000 n +0000267379 00000 n +0000267427 00000 n +0000267475 00000 n +0000267523 00000 n +0000267571 00000 n +0000267618 00000 n +0000267666 00000 n +0000267714 00000 n +0000267762 00000 n +0000267810 00000 n +0000267857 00000 n +0000267905 00000 n +0000267953 00000 n +0000268001 00000 n +0000268049 00000 n +0000268096 00000 n +0000268144 00000 n +0000268192 00000 n +0000268240 00000 n +0000268288 00000 n +0000268335 00000 n +0000268383 00000 n +0000268431 00000 n +0000268479 00000 n +0000268527 00000 n +0000268574 00000 n +0000268622 00000 n +0000268670 00000 n +0000268718 00000 n +0000268766 00000 n +0000268813 00000 n +0000268861 00000 n +0000268909 00000 n +0000268957 00000 n +0000269005 00000 n +0000269052 00000 n +0000269100 00000 n +0000269148 00000 n +0000269198 00000 n +0000269248 00000 n +0000269297 00000 n +0000269347 00000 n +0000269397 00000 n +0000269447 00000 n +0000269496 00000 n +0000269546 00000 n +0000269596 00000 n +0000269646 00000 n +0000269695 00000 n +0000269743 00000 n +0000269791 00000 n +0000269839 00000 n +0000269887 00000 n +0000269936 00000 n +0000269985 00000 n +0000270034 00000 n +0000270083 00000 n +0000270131 00000 n +0000270179 00000 n +0000270227 00000 n +0000270275 00000 n +0000270323 00000 n +0000270371 00000 n +0000270419 00000 n +0000270467 00000 n +0000270517 00000 n +0000270566 00000 n +0000270615 00000 n +0000270664 00000 n +0000270713 00000 n +0000270762 00000 n +0000270811 00000 n +0000270860 00000 n +0000270909 00000 n +0000270958 00000 n +0000271007 00000 n +0000271056 00000 n +0000271106 00000 n +0000271156 00000 n +0000271206 00000 n +0000271256 00000 n +0000271306 00000 n +0000271356 00000 n +0000271406 00000 n +0000271456 00000 n +0000271506 00000 n +0000271556 00000 n +0000271606 00000 n +0000271656 00000 n +0000271706 00000 n +0000271756 00000 n +0000271806 00000 n +0000271856 00000 n +0000271906 00000 n +0000271956 00000 n +0000272006 00000 n +0000272055 00000 n +0000272102 00000 n +0000272149 00000 n +0000272197 00000 n +0000272245 00000 n +0000272293 00000 n +0000272343 00000 n +0000272392 00000 n +0000272442 00000 n +0000272492 00000 n +0000272542 00000 n +0000272592 00000 n +0000272640 00000 n +0000272688 00000 n +0000272736 00000 n +0000272784 00000 n +0000272833 00000 n +0000272882 00000 n +0000272931 00000 n +0000272979 00000 n +0000273027 00000 n +0000273075 00000 n +0000273123 00000 n +0000273171 00000 n +0000273220 00000 n +0000273268 00000 n +0000273316 00000 n +0000273364 00000 n +0000273412 00000 n +0000273460 00000 n +0000273508 00000 n +0000273556 00000 n +0000273604 00000 n +0000273652 00000 n +0000273700 00000 n +0000273748 00000 n +0000273797 00000 n +0000273846 00000 n +0000273894 00000 n +0000273943 00000 n +0000273992 00000 n +0000274041 00000 n +0000274090 00000 n +0000274139 00000 n +0000274188 00000 n +0000274238 00000 n +0000274288 00000 n +0000274338 00000 n +0000274388 00000 n +0000274438 00000 n +0000274488 00000 n +0000274537 00000 n +0000274586 00000 n +0000274635 00000 n +0000274684 00000 n +0000274733 00000 n +0000274782 00000 n +0000274831 00000 n +0000274880 00000 n +0000274930 00000 n +0000274980 00000 n +0000275030 00000 n +0000275079 00000 n +0000275128 00000 n +0000275177 00000 n +0000275226 00000 n +0000275275 00000 n +0000275324 00000 n +0000275373 00000 n +0000275422 00000 n +0000275474 00000 n +0000275523 00000 n +0000275572 00000 n +0000275621 00000 n +0000275670 00000 n +0000275719 00000 n +0000275768 00000 n +0000275817 00000 n +0000275866 00000 n +0000275915 00000 n +0000275964 00000 n +0000276013 00000 n +0000276062 00000 n +0000276111 00000 n +0000276160 00000 n +0000276210 00000 n +0000276260 00000 n +0000276310 00000 n +0000276360 00000 n +0000276410 00000 n +0000276460 00000 n +0000276510 00000 n +0000276560 00000 n +0000276610 00000 n +0000276660 00000 n +0000276710 00000 n +0000276760 00000 n +0000276810 00000 n +0000276860 00000 n +0000276910 00000 n +0000276959 00000 n +0000277009 00000 n +0000277059 00000 n +0000277109 00000 n +0000277159 00000 n +0000277208 00000 n +0000277258 00000 n +0000277308 00000 n +0000277358 00000 n +0000277408 00000 n +0000277457 00000 n +0000277507 00000 n +0000277557 00000 n +0000277607 00000 n +0000277657 00000 n +0000277706 00000 n +0000277756 00000 n +0000277806 00000 n +0000277856 00000 n +0000277906 00000 n +0000277955 00000 n +0000278005 00000 n +0000278055 00000 n +0000278105 00000 n +0000278155 00000 n +0000278204 00000 n +0000278254 00000 n +0000278304 00000 n +0000278354 00000 n +0000278404 00000 n +0000278453 00000 n +0000278503 00000 n +0000278553 00000 n +0000005720 00000 n +0000232382 00000 n +0000005758 00000 n +0000019489 00000 n +0000126449 00000 n +0000235047 00000 n +0000235083 00000 n +0000235243 00000 n +0000000000 00000 f +0000278603 00000 n +0000000000 00000 f +0000000016 00000 n +0000005822 00000 n +0000005849 00000 n +0000005604 00000 n +0000006052 00000 n +0000232251 00000 n +0000005896 00000 n +0000005975 00000 n +0000006270 00000 n +0000006518 00000 n +0000006822 00000 n +0000007070 00000 n +0000007318 00000 n +0000007598 00000 n +0000007846 00000 n +0000008107 00000 n +0000008349 00000 n +0000008591 00000 n +0000008833 00000 n +0000009075 00000 n +0000009324 00000 n +0000009559 00000 n +0000009801 00000 n +0000010064 00000 n +0000225305 00000 n +0000020965 00000 n +0000021714 00000 n +0000036115 00000 n +0000031500 00000 n +0000041724 00000 n +0000226036 00000 n +0000226869 00000 n +0000227665 00000 n +0000228512 00000 n +0000041827 00000 n +0000229301 00000 n +0000022181 00000 n +0000027849 00000 n +0000230118 00000 n +0000230866 00000 n +0000231693 00000 n +0000036665 00000 n +0000031933 00000 n +0000028203 00000 n +0000225564 00000 n +0000225453 00000 n +0000005662 00000 n +0000232408 00000 n +0000232552 00000 n +0000232633 00000 n +0000232726 00000 n +0000232828 00000 n +0000232929 00000 n +0000233035 00000 n +0000233147 00000 n +0000233257 00000 n +0000233403 00000 n +0000233490 00000 n +0000233575 00000 n +0000233676 00000 n +0000233776 00000 n +0000233877 00000 n +0000234001 00000 n +0000234112 00000 n +0000234218 00000 n +0000234325 00000 n +0000234433 00000 n +0000234535 00000 n +0000234630 00000 n +0000234744 00000 n +0000234852 00000 n +0000000000 00000 f +0000000193 00000 n +trailer +<<1769D7D0D11DB2110A008060C6F71A84>]>> +startxref +279025 +%%EOF diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ds057.pdf b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ds057.pdf new file mode 100644 index 0000000..ba1b111 Binary files /dev/null and b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ds057.pdf differ diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ds593.pdf b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ds593.pdf new file mode 100644 index 0000000..a48038d Binary files /dev/null and b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ds593.pdf differ diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ug445.pdf b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ug445.pdf new file mode 100644 index 0000000..4214874 Binary files /dev/null and b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/datasheets/ug445.pdf differ diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/pics/480px-Quick-start-xc9572xl-baslc.png b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/pics/480px-Quick-start-xc9572xl-baslc.png new file mode 100644 index 0000000..2505fe8 Binary files /dev/null and b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/pics/480px-Quick-start-xc9572xl-baslc.png differ diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/pics/programming_connections_are_Just_jtag.png b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/pics/programming_connections_are_Just_jtag.png new file mode 100644 index 0000000..3c5e142 Binary files /dev/null and b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/pics/programming_connections_are_Just_jtag.png differ diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/CPLD:_Complex_programmable_logic_devices b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/CPLD:_Complex_programmable_logic_devices new file mode 100644 index 0000000..96eb121 --- /dev/null +++ b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/CPLD:_Complex_programmable_logic_devices @@ -0,0 +1,518 @@ + + + +CPLD: Complex programmable logic devices - DP + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + +
+
+
+
+
+ + + +

CPLD: Complex programmable logic devices

+
+

From DP

+
+
+ Jump to: + navigation , search +
+ + + + + + + + + + + + + + + + + +
Project Summary +
+
Name: + CPLD: Complex programmable logic devices +
Buy it: + Get one for $15 at Seeed Studio +
Price: + $15 +
Status: + Mature +
Manufacturing: + Shipping +
Forum: + CPLD: Complex programmable logic devices Forum +
Xc9572-cpld-breakoutvib.jpg +

Ever get stuck choosing the right logic chip combination or voltage level translator? Give up the hunt and create your own custom logic chip. CPLDs can give you the logic you need, with the pinout you want, while saving board space and board revisions. +

Development boards from Dangerous Prototypes will help you build your first custom logic chip using simple schematic entry, Verilog, or VHDL. +

+
  • XC9572XL or XC2C64A CPLDs +
  • On-board power supply for core and pins +
  • Selectable 3.3volt or external supply for pins (1.8volt to 3.3volt) +
  • LEDs for output, push button for input +
  • Easy to program with the Bus Pirate +
  • Open source (CC-BY-SA) +
+

CoolRunner-II and XC9572XL versions available for $15. +

+

Contents

+ +
+

Downloads

+ +

Hardware

+ +

XC9500XL

+

Xc9572-cpld-breakoutvib.jpg +

The Xilinx XC9500XL family has some of the cheapest and readily available CPLDs out there. Inputs are 5volt tolerant and they can be run from a single 3.3volt supply. +

+ +

CoolRunnerII

+

Xc2c64a cpld breakout-vib.jpg +

The CoolRunner-II family is newer than the XC9500XL, and has a few extra features like multiple IO voltage banks for voltage translation, internal pull-up resistors and pin keepers and a clock divider. Requires a 1.8volt core supply and a 1.2-3.3volt IO pin supply. +

+ +

CPLD development tutorials

+

This tutorial shows how to use simple schematics to design the logic in a Xilinx CoolRunner-II or XC9500 CPLD. +

+ +

Tutorial files: +

+ +

The Bus Pirate XSVF player and a .bat file are included with every example. Modify the COM post and click to load. +

+

Schematic entry

+ +

Verilog

+ +

VHDL

+ +

Plunify

+

Plunify is a cloud-based compiler for Xilinx and Altera chips. The CPLD examples are already loaded, all you have to do is sign up for a free account and copy the tutorial from the add IP tab. Unfortunately it no longer supports Xilinx chips. +

+ +

ISE Webpack

+ +

Example devices

+ +

Schematic

+ +

VHDL

+ +

Verilog

+ +

Programming

+ +

Additional methods

+ +

Links

+

Verilog

+ +

Resources

+ +

License

+
  • Hardware: CC-BY-SA +
  • CPLD demos projects: CC-0 +
+ + + + + + +
+
+
+
+
+ + + + + + + +
+
+
+
+
+
+ + +
+ + + + + + + + + + diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/CPLD_intro_3:_Inverse_LED_toggle b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/CPLD_intro_3:_Inverse_LED_toggle new file mode 100644 index 0000000..87a6e77 --- /dev/null +++ b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/CPLD_intro_3:_Inverse_LED_toggle @@ -0,0 +1,396 @@ + + + +CPLD intro 3: Inverse LED toggle - DP + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + +
+
+
+
+
+ + + +

CPLD intro 3: Inverse LED toggle

+
+

From DP

+
+
+ Jump to: + navigation , search +
+ +

Contents

+ +
+

Overview

+

In tutorial 3 we build on the simple push button example in tutorial 2. We'll add logic that inverts the output of button 1 on LED D2. +

+ + + + + + +
Tutorial 3 truth table +
Button PB LED D1LED D2 +
Pressed OFF ON +
NOT pressed ONOFF +
+

Schematic

+

Cpld-tutorial-external-circuit.png +

In this demo we'll use both LEDs and the push button connected to the CPLD. +

+ + + + + + + + +
CPLD dev board connections +
IO pin connection +
LED D1 P39 +
LED D2 P38 +
Button BP P18 +
+
The XC2C64A CPLD has internal pullup resistors
+R1 is unpopulated on the XC2C64A development board
+
+

XC9572A

+

Cpld-demo3.png +

This designs adds a second LED and connects it to the push button through an inverter. +

+
  • Input from BUTTON enters the CPLD through an input buffer (IBUF) +
  • The BUTTON signal connects to LED (D1) through an output buffer (OBUF) as before +
  • INV is a new schematic element that inverts the BUTTON signal before it connects to a second output buffer (OBUF) and LED_INV (D2) +
+

XC2C64A

+

Cpld-xc2c-ledinv.png +

The XC2C64A version is the same, except we use the internal pull-up resistor instead of R1 on the development board. +

+

UCF

+
#PIN MAP OF DANGEROUSPROTOTYPES.COM CPLD BREAKOUT BOARDS
+#lICENSE: CC-0 (CREATIVE COMMONS 0)
+#http://dangerousprototypes.com/docs/XC9500XL_CPLD_breakout_board
+#http://dangerousprototypes.com/docs/CoolRunner-II_CPLD_breakout_board
+NET "LED"            LOC =  "P39";
+NET "BUTTON"        LOC =  "P18";
+NET "LED_INV"        LOC =  "P38";
+

Input and output markers in the schematic are mapped to actual CPLD pin numbers in the UCF file. This is an example UCF file that defines the three IO connections on the development boards. +

+
  • The Pxx numbers are the actual pin number on the CPLD. Easy. +
  • ISE has a GUI utility to assign pin numbers, but it doesn't work with CoolRunner-II CPLDs. +
+

We mapped the BUTTON input market to pin 18. The LED output marker connects to pin 39 (D1), and LED_INV connects to pin 38 (D2). +

+ + + + + +
+
+
+
+
+ + + + + + + +
+
+
+
+
+
+ + +
+ + + + + + + + + + diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/XC9500XL_CPLD_breakout_board b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/XC9500XL_CPLD_breakout_board new file mode 100644 index 0000000..7ce29a8 --- /dev/null +++ b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/XC9500XL_CPLD_breakout_board @@ -0,0 +1,557 @@ + + + +XC9500XL CPLD breakout board - DP + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + +
+
+
+
+
+ + + +

XC9500XL CPLD breakout board

+
+

From DP

+
+
+ Jump to: + navigation , search +
+ + + + + + + + + + + + + + + + + +
Project Summary +
+
Name: + XC9500XL CPLD breakout board +
Buy it: + Get one for $15 at Seeed Studio +
Price: + $15 +
Status: + Test production +
Manufacturing: + Shipping +
Forum: + XC9500XL CPLD breakout board Forum +
Xc9572-cpld-breakoutvib.jpg +

Ever get stuck choosing the right logic chip combination or voltage level translator? Give up the hunt and create your own custom logic chip. CPLDs can give you the logic you need, with the pinout you want, while saving board space and board revisions. +

The Xilinx XC9500XL family has some of the cheapest and readily-available CPLDs. This development board from Dangerous Prototypes will help you build your first custom logic chip using simple schematic entry, Verilog, or VHDL. +

+
  • XC9572XL CPLD with 72 macrocells +
  • 5volt tolerant inputs +
  • On-board 3.3volt power supply for core and pins +
  • Selectable 3.3volt or external supply for pins (1.8volt to 3.3volt) +
  • LEDs for output +
  • Push button for input +
  • Populated JTAG header +
  • Unpopulated oscillator footprint on the bottom +
  • Easy to program with the Bus Pirate +
  • Pre-programmed with LED inverse toggle demo +
  • Open source (CC-BY-SA) +
+

Available for $15 at Seeed Studio +

+

Contents

+ +
+

Overview

+

XC9572XL-CPLD-breakout-dia.png +

+

Hardware

+

Cct-XC9572XL-CPLD-breakout-lv.png +

Click for a full size schematic image. Schematic and PCB were designed with the freeware version of Cadsoft Eagle, download the latest project files from our Google Code project SVN. +

+

XC9572XL CPLD

+

XC9572XL-CPLD-breakout-cpld.jpg +

The XC9572XL (U1) is a 72 macrocell CPLD with 5volt tolerant pins. It is one of the smallest CPLDs made by Xilinx, and is readily available from Digikey for around $2.40. +

The CPLD core requires a 3.3volt supply to each VINT pin. This supply is provided by the on board 3.3volt regulator. +

The IO pins operate from a separate supply of 1.2volts to 3.3volts. An external supply can be connected to either IO pin, or place a jumper on VIO to connect the on board 3.3volt power supply. +

Each supply pin has a 0.1uF capacitor (C1,C2,C3,C4). +

The JTAG programming pins are brought to header JT. The JTAG interface is powered by the 3.3volt core supply. +

+ +

Power supply

+

A 3.3volt regulator (U2) powers the CPLD core and (optionally) the IO pins. C5 and C6 are 3.3uF input and out capacitors. Capacitor C7 is an optional feedback bypass capacitor that can be used with some voltage regulators, it is not used here. +

The 3.3volt regulator is supplied through pin V+. The supply can be up to 5volts. Up to 100mA is available from the 3v3 pin when using the on-board regulator. +

LED PWR lights if the power supply is active. +

+

Button and LEDs

+

XC9572XL-CPLD-breakout-userio.jpg +

Two LEDs (D1, D2) and a push button (PB) are included for a little user IO. +

LED D1 and D2 source current from the CPLD. Generally, designers sink current from CPLDs and FPGAs - the chip connects the LED to ground instead of power - because many parts can sink 20mA but only source a few. On this chip, however, the maximum current is a paltry 8mA for both source and sink. The LEDs have 2K resistors (R2,R3) that keep the current at an acceptable 2mA. +

A push button (PB) provides a way for user input. Resistor R1 holds the CPLD pin high when the button is not pressed. When the button is pressed the pin is connect to ground and taken low. +

+

Pinout table

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Pinout +
FB4/2 DescriptionDescription FB3/FB1 +
GND Ground connection Ground connection GND +
V+ Supply voltage (max 5volts)Supply voltage V+ +
3V33.3volt output (max 100mA) IO external supply (1.2-3.3volts) IO +
IOIO external supplyPush button 18 +
19 16 +
20 14 +
21 13 +
22 12 +
23 8 +
27 6 +
28 5 +
29 3 +
30 2 +
31 1 +
32 44 +
33 43 +
34 42 +
36 41 +
37 40 +
38LED D2LED D1 39 +
+

PCB

+

Pcb-XC9572XL-CPLD-breakout-lv.jpg +

We used the freeware version of Cadsoft Eagle to make the schematic and PCB. Download the latest board files from SVN. +

+

Partslist

+

Board-XC9572XL-CPLD-breakout-iv.png +

Click for a full size placement image. +

+ + + + + + + + + + + + + + + + + + + + + + +
partlist +
Parts Quantity Value Package +
C1,C2,C3,C4 4 0.1uF C603 +
C5,C6 2 3.3uF tantalum SMC_A +
D1, D2, PWR 3 Yellow LED LED-805 +
JTAG 1 0.1†Pin header 1X06 +
PB 1 SMD button, small TACT_SWITCH_SMALL +
R1 1 10K R603 +
R2,R3, R4 3 2K R603 +
VIO 1 0.1†Pin header M1X2 +
U1 1 XC9572XL_VQ44 VQ44 +
U2 1 3.3volt LDO voltage regulator 150mA SOT-23-5 +
+ +

The latest sources and distributors are in the master partlist. See something missing? Please let us know. +


+Q1 on the bottom of the PCB is for an optional 3.3volt oscillator. It feeds into a global clock pin. Some suitable values are: +

+ +

Programming

+

Development and programming tutorials are on the main CPLD page. +

+

Get one!

+

Xc9572-cpld-breakoutvib.jpg +

Get one for $15 at Seeed Studio. +

Your purchases keep the open source projects coming, we sincerely appreciate your support! +

+

Resources

+ +

License

+
  • CC-BY-SA +
+ + + + + + +
+
+
+
+
+ + + + + + + +
+
+
+
+
+
+ + +
+ + + + + + + + + + diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/XC9572XL_CPLD_dev-board_introduction b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/XC9572XL_CPLD_dev-board_introduction new file mode 100644 index 0000000..838cbe4 --- /dev/null +++ b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/XC9572XL_CPLD_dev-board_introduction @@ -0,0 +1,414 @@ + + + +XC9572XL CPLD dev-board introduction - DP + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + +
+
+
+
+
+ + + +

XC9572XL CPLD dev-board introduction

+
+

From DP

+
+
+ Jump to: + navigation , search +
+ +

XC9572XL CPLD dev-board.png +

The development board comes programmed with the inverse LED toggle demo. +

+
  1. Ensure that header VIO has a jumper to provide 3.3volts to the IO pins +
  2. Power up the board: +
    1. Option 1: Connect a 5volt power supply to V+, connect one of the GND pins to the power supply ground +
    2. Option 2: Connect a 3.3volt power supply to VTG on the JTAG header, connect one of the GND pins to the power supply ground +
    +
  3. LED D1 will light +
  4. Press the button (PB): LED D1 turns off and LED D2 turns on +
+

Overview

+
  • JTAG header - Program the CPLD through this header. VTG provides 3.3volt output to programmer +
  • VIO header - Connect IO to on-board 3.3volt supply +
  • D1 LED - User LED connected to pin 39 +
  • D2 LED - User LED connected to pin 38 +
  • PWR LED - Power LED, lights when the 3.3volt supply is active +
  • PB button - Push button for input, connected to CPLD pin 18 +
  • GND pin - Ground connection, only one pin needs to be connected to the power supply ground +
  • V+ pin - Power supply for on-board 3.3volt regulator (5volts max) +
  • 3V3 pin - 3.3volt output (max 100mA) +
  • IO pin - External supply for IO pins, make sure header VIO has NO jumper, only one IO pin needs to be connected to the power supply +
+

Pinout table

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Pinout +
FB4/2 DescriptionDescription FB3/FB1 +
GND Ground connection Ground connection GND +
V+ Supply voltage (max 5volts)Supply voltage V+ +
3V33.3volt output (max 100mA) IO external supply (1.2-3.3volts) IO +
IOIO external supplyPush button 18 +
19 16 +
20 14 +
21 13 +
22 12 +
23 8 +
27 6 +
28 5 +
29 3 +
30 2 +
31 1 +
32 44 +
33 43 +
34 42 +
36 41 +
37 40 +
38LED D2LED D1 39 +
+

Functional diagram

+

XC9572XL-CPLD-breakout-dia.png +

+ + + + + +
+
+
+
+
+ + + + + + + +
+
+
+
+
+
+ + +
+ + + + + + + + + + diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/Xilinx_XC9500XL_CPLD_quick_start b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/Xilinx_XC9500XL_CPLD_quick_start new file mode 100644 index 0000000..68b904c --- /dev/null +++ b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/Xilinx_XC9500XL_CPLD_quick_start @@ -0,0 +1,442 @@ + + + +Xilinx XC9500XL CPLD quick start - DP + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + +
+
+
+
+
+ + + +

Xilinx XC9500XL CPLD quick start

+
+

From DP

+
+
+ Jump to: + navigation , search +
+ +

Contents

+ +
+

Features

+
  • 2.5volt or 3.3volt IO, 3.3volt core supply required +
  • 5volt tolerant IO pins +
  • Modern XC9500XL has a 3.3volt core, older XC9500 had a 5volt core +
  • Compare Xilinx XC9500 and CoolRunner-II +
  • Unlike most FPGA, CPLDs are static and store their configuration permanently +
  • Several devices in easy-to-solder TQFP-44 packages +
  • Available at Digikey, among others +
+

Resources

+ +

Development and programming

+

Xilinx has a free FPGA and CPLD development package called ISE WebPack. This is the only development tool we're aware of. +

+

JTAG cables

+

XC9500XL uses a JTAG programming interface. +

+
  • Parallel cable and ISE +
  • FT2232 JTAG +
+

Loaders

+

Load configurations into the CPLD or FPGA by 'playing' an (X)SVF encoded file with a JTAG cable. +

+
  • UrJTAG - load SVF with a number of programmers, including common FT2232 programmers +
  • OpenOCD - detects FPGA/CPLDs, but doesn't do much with them +
+

Basic circuit

+

Quick-start-xc9572xl-baslc.png +

+

Power

+

Requires, at minimum, a 3.3volt supply. +

+
  • 3.3volts - core supply and JTAG pins (VDDINT) +
  • 2.5volts or 3.3volts - IO supply for the IO pins, use your preferred interface voltage (VDDIO) +
+

Reset

+

There is no default reset pin on the XC9500, but similar functionality can be programmed. +

+
  • GSR pins have an optimized path to the Set/Reset signal of all macrocells. These pins can be used to synchronously reset all the macrocells in the CPLS with minimum extra resource. This feature must be enabled in the CPLD design, or the pins will be normal IO. +
+

JTAG programming connections

+ + + + + + + + + + + + + + +
6x1 JTAG pinout +
Pin SignalDirection +
1 V+ +
2 GND +
3TCKInput +
4TDOInput +
5TDIOutput +
6TMSInput +
+

Common Xilinx JTAG pinout. +

+

Clock source

+

A clock source is only required if your design needs it. If you plan to use a clock, connect it to a GCK pin for best results. +

+
  • GCK pins are optimized to distribute a clock signal to all macrocells with minimum skew and extra resources. If you plan to use a clock with the CPLD, connect it to one of these pins if possible. The GCK features must be applied in the CPLD design or the GCK pin will be an ordinary IO pin. +
+

Peripherals

+

IO

+

There are also some pins with special features, though they are not used unless specifically enabled in the CPLD synthesis: +

+
  • GCK (global clock) - optimized to distribute a clock signal to all macrocells with minimum skew and extra resources +
  • GSR (global set reset) - optimized path to the Set/Reset signal of all macrocells, allows synchronous reset of the flip-flop in all cells with minimum extra resources +
  • GTS (global tri-state) - optimized to put all CPLD pins in a high impedance state +
  • More +
+

Resources

+ + + + + + + +
+
+
+
+
+ + + + + + + +
+
+
+
+
+
+ + +
+ + + + + + + + + + diff --git a/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/ise-10.pdf b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/ise-10.pdf new file mode 100644 index 0000000..01a4074 Binary files /dev/null and b/Attiny_Solar_Energy_Harvest/CPLD/xc9500/20200705_tests/resources/ise-10.pdf differ diff --git a/Attiny_Solar_Energy_Harvest/docs/58.log b/Attiny_Solar_Energy_Harvest/docs/58.log index 343fece..727f124 100644 --- a/Attiny_Solar_Energy_Harvest/docs/58.log +++ b/Attiny_Solar_Energy_Harvest/docs/58.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 6 OCT 2020 00:53 +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 14 OCT 2020 02:05 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -523,7 +523,7 @@ fonts/type1/public/amsfonts/cm/cmr9.pfb> -Output written on 58.pdf (22 pages, 846291 bytes). +Output written on 58.pdf (22 pages, 846296 bytes). PDF statistics: 124 PDF objects out of 1000 (max. 8388607) 83 compressed objects within 1 object stream diff --git a/Attiny_Solar_Energy_Harvest/docs/58.pdf b/Attiny_Solar_Energy_Harvest/docs/58.pdf index 84bebac..c0f541e 100644 Binary files a/Attiny_Solar_Energy_Harvest/docs/58.pdf and b/Attiny_Solar_Energy_Harvest/docs/58.pdf differ diff --git a/DC_Brushed_Windmill/resources/ply-prop.png b/DC_Brushed_Windmill/resources/ply-prop.png new file mode 100644 index 0000000..bca3597 Binary files /dev/null and b/DC_Brushed_Windmill/resources/ply-prop.png differ diff --git a/Edimax_WAP1750/docs/1.aux b/Edimax_WAP1750/docs/1.aux new file mode 100644 index 0000000..ec27b33 --- /dev/null +++ b/Edimax_WAP1750/docs/1.aux @@ -0,0 +1,3 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}start}{1}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/1.log b/Edimax_WAP1750/docs/1.log new file mode 100644 index 0000000..0737d8c --- /dev/null +++ b/Edimax_WAP1750/docs/1.log @@ -0,0 +1,253 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 1 NOV 2020 23:50 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/1.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/1.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./1.aux) +\openout1 = `1.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +[1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./1.aux) ) +Here is how much of TeX's memory you used: + 3496 strings out of 494561 + 53161 string characters out of 6177454 + 120288 words of memory out of 5000000 + 7146 multiletter control sequences out of 15000+600000 + 8194 words of font info for 29 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,6n,38p,365b,189s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on 1.pdf (1 page, 27985 bytes). +PDF statistics: + 20 PDF objects out of 1000 (max. 8388607) + 13 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/1.pdf b/Edimax_WAP1750/docs/1.pdf new file mode 100644 index 0000000..4ba6536 Binary files /dev/null and b/Edimax_WAP1750/docs/1.pdf differ diff --git a/Edimax_WAP1750/docs/1.tex b/Edimax_WAP1750/docs/1.tex new file mode 100644 index 0000000..9868d38 --- /dev/null +++ b/Edimax_WAP1750/docs/1.tex @@ -0,0 +1,29 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} + + + +\subsection{start} + + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/1.tex~ b/Edimax_WAP1750/docs/1.tex~ new file mode 100644 index 0000000..c2abf61 --- /dev/null +++ b/Edimax_WAP1750/docs/1.tex~ @@ -0,0 +1,37 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{60Hz Divider}} + + + +\subsection{Counting the Hz} +pseudo code goal: +\begin{verbatim} +Using 1Hz signal +Start counting 1MHz every 1Hz +when next cycle is received, + display count + start counting again +\end{verbatim} +That's all the objective is here. Easy with a micro, but goal is to complete using cmos or 74 logic. + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/10.aux b/Edimax_WAP1750/docs/10.aux new file mode 100644 index 0000000..13e7a67 --- /dev/null +++ b/Edimax_WAP1750/docs/10.aux @@ -0,0 +1,12 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.5.1}The Common IT Company Rant}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Write flash with new image and Resolder chip to board}{6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Access board via FTDI / USB-Serial chip}{7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.8}Dumb AP is Ideal AP}{7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.9}What is required for this to go right}{8}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/10.log b/Edimax_WAP1750/docs/10.log new file mode 100644 index 0000000..88e4d6b --- /dev/null +++ b/Edimax_WAP1750/docs/10.log @@ -0,0 +1,339 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 4 NOV 2020 22:03 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/10.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/10.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./10.aux) +\openout1 = `10.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +(./10.toc +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 2. +) +\tf@toc=\write3 +\openout3 = `10.toc'. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 23. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 30. + (/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 30. + [1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] +Overfull \hbox (7.96346pt too wide) in paragraph at lines 43--47 +\OT1/cmr/m/n/10.95 https://openwrt.org/toh/devolo/devolo[]wifi[]pro[]1750e dis- +cusses flash- + [] + +[2] [3] +Overfull \hbox (58.09639pt too wide) in paragraph at lines 91--93 +\OT1/cmr/m/n/10.95 this link on the fo-rum for tp link de-vices https://forum.o +penwrt.org/t/debricking- + [] + + +Overfull \hbox (393.37097pt too wide) in paragraph at lines 96--96 +[]\OT1/cmtt/m/n/10.95 sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squ +ashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc[] + [] + +[4] +Underfull \hbox (badness 10000) in paragraph at lines 109--111 + + [] + + +Overfull \hbox (6.23282pt too wide) in paragraph at lines 112--114 +[]\OT1/cmr/m/n/10.95 Ref: https://serverfault.com/questions/268542/hardware-fir +ewall- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 112--114 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 115--117 + + [] + +[5] +Underfull \hbox (badness 10000) in paragraph at lines 118--120 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 121--123 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 124--126 + + [] + +[6] +Underfull \hbox (badness 10000) in paragraph at lines 141--143 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 144--146 + + [] + +[7] [8] (./10.aux) ) +Here is how much of TeX's memory you used: + 3533 strings out of 494561 + 53692 string characters out of 6177454 + 123288 words of memory out of 5000000 + 7172 multiletter control sequences out of 15000+600000 + 10198 words of font info for 36 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,38p,1227b,209s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on 10.pdf (8 pages, 138206 bytes). +PDF statistics: + 67 PDF objects out of 1000 (max. 8388607) + 47 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/10.pdf b/Edimax_WAP1750/docs/10.pdf new file mode 100644 index 0000000..657c159 Binary files /dev/null and b/Edimax_WAP1750/docs/10.pdf differ diff --git a/Edimax_WAP1750/docs/10.tex b/Edimax_WAP1750/docs/10.tex new file mode 100644 index 0000000..431fe69 --- /dev/null +++ b/Edimax_WAP1750/docs/10.tex @@ -0,0 +1,157 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: (insertlibrebootlink) + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, the bootlog, and also the partitions page here which explains all this: +\\ +https://openwrt.org/docs/techref/flash.layout + +Another interesting, but not required reading: +\\ +https://openwrt.org/docs/techref/flash + +\subsubsection{The Common IT Company Rant} +Basically, any IT admin who sells / maintains a flash based device, and doesn't have a plan to replace the flash when it fails (which it very likely will at some point) is a hack. It's the number one cause of built in obsolescence. Even Tesla ran into trouble with their cars\footnote{Some early electric cars by Tesla in the 2020's had their onboard flash fail. Flash is a problem, and a big one for the long game. Never trust flash.}. + +I had an argument at work with a 'normal' IT company that advocated that 'Hardware firewalls' were more secure than 'software firewalls'. There's of course, no such thing as a hardware firewall. There are no dedicated ICs for firewalls. There are ARM chips tailored for firewalls (or perhaps just networking equipment), but these are just ARM chips, for the most part. One argument from this IT company was that my x86 PC was less secure than a commercial MIPS or ARM product off the shelf, e.g. Juniper, or Cisco\footnote{I will ignore the backdoors these companies load into their firewalls for the NSA, although it may be noted here. Complete security is a myth. There is no safe space in life. ``There be no shelter here'' - Popular song.}. They considered the Juniper to be a 'hardware firewall'. Bollocks. Those are also software firewalls, just as much as the x86 is. There's a whole page on stack exchange on this. It's not even an argument. It appeals to the uneducated. It's a nonsensical argument. It's like saying a hardware desktop is better than a software desktop. It doesn't make sense. +\\ + +Ref: https://serverfault.com/questions/268542/hardware-firewall-vs-software-firewall-ip-tables-rhel +\\ + +The second argument they had was that Open Source is less secure than commercial products because ``Any hacker can look at the code''. I could rebut this with the identical hyperbole of ``Any hacker can buy your commercial firewall off of ebay and hack it'', but that's childish. Let's not. Here's what matters: No one with a whit of integrity would say Free and Open source software is worse than Proprietary software. You can't. In 2020, it's 20 years too late for that. The success of Google was proof that FOSS works.\footnote{Additionally, Sophos bases its XG firewalls off of GNU Linux. So much for that argument.} +\\ + +I read somewhere the following, and it seems right:''Humans write good software, and they write bad software. Most of it is not good. Whether it's proprietary or foss has zero relation on the quality of the software. `` +\\ + +And if anything, FOSS benefits from the 'many eyes' approach, that will ensure that successful software at least has a lot of people reviewing it. Whether it's good or insane complexity is another matter. +\\ + +Anyways, my point is: IT companies can be insidious profit chasing vermin. I'm sure they aren't all bad, but the common IT company is about as good as the common hamburger (i.e. fast food). They will sell you everything Windows, and in 5-10 years, they will sell you it again, and again. The idea of updating a server without replacing hardware is almost unheard of. All firewalls are sold, and expected to be landfilled in 5-7 years. It's not sustainable business. Humans need to have a minimal footprint on planet Earth, and they need to reuse as much as possible. It's a sin. +\\ + +I know this planet appears a joke, but that's not going to stop me from doing what should be done. And a spade will be called a spade. + +\subsection{Write flash with new image and Resolder chip to board} +After dd'ing the new image bin, you write it back to the flash chip. This is not dramatic, just don't forget to do so. If you have a solid flashrom and pcb setup, it will just work. + +Resoldering the chip to the board is also trivial, assuming you have hot air and lead solder. Not all the pins have to be connected in a 16 pin EEPROM. This board happens to have two footprints. Underneath the 16 pin IC, is... surprise: a 8 pin footprint (same ic). So you can swap in the smaller package if you want.\footnote{Good design again.} + + +\subsection{Access board via FTDI / USB-Serial chip} +After that, you will again need to have serial access. FTDI is my goto as I've learned over the years that my cheapo PL2302 usb serial adapters are not reliable.\footnote{Another thing that must go right.} + +Finally, you can use the board. + +\subsection{Dumb AP is Ideal AP} +I just learned the value of a Dumb AP with this project. What is a dumb ap? It's essentially a Wifi AP with zero configuration. Maybe it can't be logged into, it has no subnet, it doesn't do anything outsde of connect wireless clients to the lan. It's like a wireless switch. It's beautiful. +\\ + +I know that it isn't 100\% future proof\footnote{WPA issues, or side channel attacks probably. However, unlikely if it's not accessible via LAN}, but the idea that Wireless APs could be as future proof as a network switch is wonderful. No more management console, no busywork interfaces... Just configure the SSID / Password, and plug it in to ethernet. That's it. It's such an obvious solution, I am surprised I didn't understand it before. It's also quite secure. +\\ + +Dumb AP is the ideal Wireless AP.\footnote{Technically, you probably still want to update them every so often, given that RF and Encryption (e.g. WPA) adds complexity to the AP, but a Dumb AP is the way Wireless Access Points should be done, if possible. Avoid configuration overhead, and have something that does what its supposed to, and nothing else. Minimize the attach surface.} + +\subsection{What is required for this to go right} +A lot is required for everything to go smoothly. I've touched on I hope most of the points, but experience flashing, soldering, soldering with hot air, proto board usage, tearing down enclosures, configuring Openwrt, using USB to Serial adapters, installing the WAP on the wall with a screw driver, and some drywall screws\footnote{This WAP also comes with separate magnetic bars that screw into the wall. The AP attaches via magnets to the bars, and is easily removable for service. Great design.}, and finally understanding this WAP was worth the trouble by reviewing the screenshots and having enough electronics experience to recognize quality when you see it. + +Not least of all, you have to decipher all the docs as I did to come to this conclusion that flashing would be viable. It is here. It may not be next time. However, with this tool under my belt I'm better prepared for next time.\footnote{A note about the current support of this device in Openwrt. I've decided to not make a wiki page, as for whatever reason no one else did, and ``When in Rome, do as the Romans do''. I don't think there are a lot of devices out there, so will avoid promoting it. As they'd follow the fate of other devices which have had internet popularity make them unobtainable (In video game world, the classic example is the SNES game Earthbound). However, I felt an article on my unknown git/book wouldn't hurt. When you browse here, you get such articles.} + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/10.toc b/Edimax_WAP1750/docs/10.toc new file mode 100644 index 0000000..667d414 --- /dev/null +++ b/Edimax_WAP1750/docs/10.toc @@ -0,0 +1,11 @@ +\contentsline {section}{\numberline {1}Edimax WAP1750}{1}% +\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}% +\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{3}% +\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}% +\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}% +\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}% +\contentsline {subsubsection}{\numberline {1.5.1}The Common IT Company Rant}{5}% +\contentsline {subsection}{\numberline {1.6}Write flash with new image and Resolder chip to board}{6}% +\contentsline {subsection}{\numberline {1.7}Access board via FTDI / USB-Serial chip}{7}% +\contentsline {subsection}{\numberline {1.8}Dumb AP is Ideal AP}{7}% +\contentsline {subsection}{\numberline {1.9}What is required for this to go right}{8}% diff --git a/Edimax_WAP1750/docs/2.aux b/Edimax_WAP1750/docs/2.aux new file mode 100644 index 0000000..518381e --- /dev/null +++ b/Edimax_WAP1750/docs/2.aux @@ -0,0 +1,3 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/2.log b/Edimax_WAP1750/docs/2.log new file mode 100644 index 0000000..d7d17aa --- /dev/null +++ b/Edimax_WAP1750/docs/2.log @@ -0,0 +1,276 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 2 NOV 2020 00:06 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/2.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/2.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./2.aux) +\openout1 = `2.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 23. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 30. +(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 30. + +Overfull \hbox (7.96346pt too wide) in paragraph at lines 43--47 +\OT1/cmr/m/n/10.95 https://openwrt.org/toh/devolo/devolo[]wifi[]pro[]1750e dis- +cusses flash- + [] + +[1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] (./2.aux) ) +Here is how much of TeX's memory you used: + 3527 strings out of 494561 + 53635 string characters out of 6177454 + 122288 words of memory out of 5000000 + 7170 multiletter control sequences out of 15000+600000 + 9890 words of font info for 35 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,38p,455b,189s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on 2.pdf (2 pages, 93806 bytes). +PDF statistics: + 43 PDF objects out of 1000 (max. 8388607) + 30 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/2.pdf b/Edimax_WAP1750/docs/2.pdf new file mode 100644 index 0000000..afd7075 Binary files /dev/null and b/Edimax_WAP1750/docs/2.pdf differ diff --git a/Edimax_WAP1750/docs/2.tex b/Edimax_WAP1750/docs/2.tex new file mode 100644 index 0000000..e3add24 --- /dev/null +++ b/Edimax_WAP1750/docs/2.tex @@ -0,0 +1,66 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it should be. + + + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/2.tex~ b/Edimax_WAP1750/docs/2.tex~ new file mode 100644 index 0000000..9868d38 --- /dev/null +++ b/Edimax_WAP1750/docs/2.tex~ @@ -0,0 +1,29 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} + + + +\subsection{start} + + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/3.aux b/Edimax_WAP1750/docs/3.aux new file mode 100644 index 0000000..518381e --- /dev/null +++ b/Edimax_WAP1750/docs/3.aux @@ -0,0 +1,3 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/3.log b/Edimax_WAP1750/docs/3.log new file mode 100644 index 0000000..0ae860b --- /dev/null +++ b/Edimax_WAP1750/docs/3.log @@ -0,0 +1,276 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 2 NOV 2020 00:07 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/3.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/3.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./3.aux) +\openout1 = `3.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 23. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 30. +(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 30. + +Overfull \hbox (7.96346pt too wide) in paragraph at lines 43--47 +\OT1/cmr/m/n/10.95 https://openwrt.org/toh/devolo/devolo[]wifi[]pro[]1750e dis- +cusses flash- + [] + +[1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] (./3.aux) ) +Here is how much of TeX's memory you used: + 3527 strings out of 494561 + 53635 string characters out of 6177454 + 122288 words of memory out of 5000000 + 7170 multiletter control sequences out of 15000+600000 + 9890 words of font info for 35 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,38p,455b,189s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on 3.pdf (2 pages, 93853 bytes). +PDF statistics: + 43 PDF objects out of 1000 (max. 8388607) + 30 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/3.pdf b/Edimax_WAP1750/docs/3.pdf new file mode 100644 index 0000000..911dd38 Binary files /dev/null and b/Edimax_WAP1750/docs/3.pdf differ diff --git a/Edimax_WAP1750/docs/3.tex b/Edimax_WAP1750/docs/3.tex new file mode 100644 index 0000000..6c4b528 --- /dev/null +++ b/Edimax_WAP1750/docs/3.tex @@ -0,0 +1,68 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + + + + + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/3.tex~ b/Edimax_WAP1750/docs/3.tex~ new file mode 100644 index 0000000..e3add24 --- /dev/null +++ b/Edimax_WAP1750/docs/3.tex~ @@ -0,0 +1,66 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it should be. + + + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/4.aux b/Edimax_WAP1750/docs/4.aux new file mode 100644 index 0000000..506c40e --- /dev/null +++ b/Edimax_WAP1750/docs/4.aux @@ -0,0 +1,7 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/4.log b/Edimax_WAP1750/docs/4.log new file mode 100644 index 0000000..6ccfd8a --- /dev/null +++ b/Edimax_WAP1750/docs/4.log @@ -0,0 +1,287 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 2 NOV 2020 01:03 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/4.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/4.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./4.aux) +\openout1 = `4.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 23. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 30. +(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 30. + +Overfull \hbox (7.96346pt too wide) in paragraph at lines 43--47 +\OT1/cmr/m/n/10.95 https://openwrt.org/toh/devolo/devolo[]wifi[]pro[]1750e dis- +cusses flash- + [] + +[1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] [3] +Overfull \hbox (58.09639pt too wide) in paragraph at lines 91--93 +\OT1/cmr/m/n/10.95 this link on the fo-rum for tp link de-vices https://forum.o +penwrt.org/t/debricking- + [] + + +Overfull \hbox (393.37097pt too wide) in paragraph at lines 96--96 +[]\OT1/cmtt/m/n/10.95 sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squ +ashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc[] + [] + +[4] (./4.aux) ) +Here is how much of TeX's memory you used: + 3527 strings out of 494561 + 53635 string characters out of 6177454 + 123288 words of memory out of 5000000 + 7170 multiletter control sequences out of 15000+600000 + 9890 words of font info for 35 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,38p,503b,209s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on 4.pdf (4 pages, 107039 bytes). +PDF statistics: + 49 PDF objects out of 1000 (max. 8388607) + 34 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/4.pdf b/Edimax_WAP1750/docs/4.pdf new file mode 100644 index 0000000..1bd5688 Binary files /dev/null and b/Edimax_WAP1750/docs/4.pdf differ diff --git a/Edimax_WAP1750/docs/4.tex b/Edimax_WAP1750/docs/4.tex new file mode 100644 index 0000000..116e8a0 --- /dev/null +++ b/Edimax_WAP1750/docs/4.tex @@ -0,0 +1,104 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: %insertlibrebootlink + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, and also the partitions page here which explains all this: + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/4.tex~ b/Edimax_WAP1750/docs/4.tex~ new file mode 100644 index 0000000..29ae47d --- /dev/null +++ b/Edimax_WAP1750/docs/4.tex~ @@ -0,0 +1,82 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} + + + + + + + + + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/5.aux b/Edimax_WAP1750/docs/5.aux new file mode 100644 index 0000000..506c40e --- /dev/null +++ b/Edimax_WAP1750/docs/5.aux @@ -0,0 +1,7 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/5.log b/Edimax_WAP1750/docs/5.log new file mode 100644 index 0000000..57dc658 --- /dev/null +++ b/Edimax_WAP1750/docs/5.log @@ -0,0 +1,299 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 2 NOV 2020 01:10 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/5.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/5.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./5.aux) +\openout1 = `5.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 23. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 30. +(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 30. + +Overfull \hbox (7.96346pt too wide) in paragraph at lines 43--47 +\OT1/cmr/m/n/10.95 https://openwrt.org/toh/devolo/devolo[]wifi[]pro[]1750e dis- +cusses flash- + [] + +[1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] [3] +Overfull \hbox (58.09639pt too wide) in paragraph at lines 91--93 +\OT1/cmr/m/n/10.95 this link on the fo-rum for tp link de-vices https://forum.o +penwrt.org/t/debricking- + [] + + +Overfull \hbox (393.37097pt too wide) in paragraph at lines 96--96 +[]\OT1/cmtt/m/n/10.95 sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squ +ashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc[] + [] + + +Overfull \hbox (77.68463pt too wide) in paragraph at lines 98--100 +\OT1/cmr/m/n/10.95 tions page here which ex-plains all this: https://openwrt.or +g/docs/techref/flash.layout + [] + + +Overfull \hbox (98.57799pt too wide) in paragraph at lines 101--103 +[]\OT1/cmr/m/n/10.95 Another in-ter-est-ing, but not re-quired read-ing: https: +//openwrt.org/docs/techref/flash + [] + +[4] (./5.aux) ) +Here is how much of TeX's memory you used: + 3527 strings out of 494561 + 53635 string characters out of 6177454 + 123288 words of memory out of 5000000 + 7170 multiletter control sequences out of 15000+600000 + 9890 words of font info for 35 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,38p,509b,209s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on 5.pdf (4 pages, 108016 bytes). +PDF statistics: + 49 PDF objects out of 1000 (max. 8388607) + 34 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/5.pdf b/Edimax_WAP1750/docs/5.pdf new file mode 100644 index 0000000..e5bf694 Binary files /dev/null and b/Edimax_WAP1750/docs/5.pdf differ diff --git a/Edimax_WAP1750/docs/5.tex b/Edimax_WAP1750/docs/5.tex new file mode 100644 index 0000000..53d7708 --- /dev/null +++ b/Edimax_WAP1750/docs/5.tex @@ -0,0 +1,113 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: %insertlibrebootlink + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, and also the partitions page here which explains all this: +https://openwrt.org/docs/techref/flash.layout + +Another interesting, but not required reading: +https://openwrt.org/docs/techref/flash + +Basically, any IT admin who sells / maintains a flash based device, and doesn't have a plan to replace the flash when it fails (which it very likely will at some point) is a hack. It's the number one cause of built in obsolescence. Even Tesla ran into trouble with their cars\footnote{Some early cars had their onboard flash fail. Flash is a problem, and a big one for the long game.}. + + + + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/5.tex~ b/Edimax_WAP1750/docs/5.tex~ new file mode 100644 index 0000000..116e8a0 --- /dev/null +++ b/Edimax_WAP1750/docs/5.tex~ @@ -0,0 +1,104 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: %insertlibrebootlink + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, and also the partitions page here which explains all this: + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/6.aux b/Edimax_WAP1750/docs/6.aux new file mode 100644 index 0000000..6abe4e2 --- /dev/null +++ b/Edimax_WAP1750/docs/6.aux @@ -0,0 +1,10 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Write flash with new image and Resolder chip to board}{6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Access board via FTDI / USB-Serial chip}{6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.8}Dumb AP}{6}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/6.log b/Edimax_WAP1750/docs/6.log new file mode 100644 index 0000000..23f10ae --- /dev/null +++ b/Edimax_WAP1750/docs/6.log @@ -0,0 +1,345 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 4 NOV 2020 21:36 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/6.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/6.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./6.aux) +\openout1 = `6.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 23. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 30. +(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 30. + +Overfull \hbox (7.96346pt too wide) in paragraph at lines 43--47 +\OT1/cmr/m/n/10.95 https://openwrt.org/toh/devolo/devolo[]wifi[]pro[]1750e dis- +cusses flash- + [] + +[1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] [3] +Overfull \hbox (58.09639pt too wide) in paragraph at lines 91--93 +\OT1/cmr/m/n/10.95 this link on the fo-rum for tp link de-vices https://forum.o +penwrt.org/t/debricking- + [] + + +Overfull \hbox (393.37097pt too wide) in paragraph at lines 96--96 +[]\OT1/cmtt/m/n/10.95 sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squ +ashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc[] + [] + + +Overfull \hbox (77.68463pt too wide) in paragraph at lines 98--100 +\OT1/cmr/m/n/10.95 tions page here which ex-plains all this: https://openwrt.or +g/docs/techref/flash.layout + [] + + +Overfull \hbox (98.57799pt too wide) in paragraph at lines 101--103 +[]\OT1/cmr/m/n/10.95 Another in-ter-est-ing, but not re-quired read-ing: https: +//openwrt.org/docs/techref/flash + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 106--108 + + [] + +[4] +Overfull \hbox (6.23282pt too wide) in paragraph at lines 109--111 +[]\OT1/cmr/m/n/10.95 Ref: https://serverfault.com/questions/268542/hardware-fir +ewall- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 109--111 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 112--114 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 115--117 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 118--120 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 121--123 + + [] + +[5] +Underfull \hbox (badness 10000) in paragraph at lines 138--140 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 141--143 + + [] + +[6] [7] (./6.aux) ) +Here is how much of TeX's memory you used: + 3527 strings out of 494561 + 53635 string characters out of 6177454 + 123288 words of memory out of 5000000 + 7170 multiletter control sequences out of 15000+600000 + 9890 words of font info for 35 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,38p,990b,209s stack positions out of 5000i,500n,10000p,200000b,80000s +< +/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb> +Output written on 6.pdf (7 pages, 118692 bytes). +PDF statistics: + 60 PDF objects out of 1000 (max. 8388607) + 42 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/6.pdf b/Edimax_WAP1750/docs/6.pdf new file mode 100644 index 0000000..32c9131 Binary files /dev/null and b/Edimax_WAP1750/docs/6.pdf differ diff --git a/Edimax_WAP1750/docs/6.tex b/Edimax_WAP1750/docs/6.tex new file mode 100644 index 0000000..ec90968 --- /dev/null +++ b/Edimax_WAP1750/docs/6.tex @@ -0,0 +1,149 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: %insertlibrebootlink + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, and also the partitions page here which explains all this: +https://openwrt.org/docs/techref/flash.layout + +Another interesting, but not required reading: +https://openwrt.org/docs/techref/flash + +Basically, any IT admin who sells / maintains a flash based device, and doesn't have a plan to replace the flash when it fails (which it very likely will at some point) is a hack. It's the number one cause of built in obsolescence. Even Tesla ran into trouble with their cars\footnote{Some early cars had their onboard flash fail. Flash is a problem, and a big one for the long game.}. + +I had an argument at work with a 'normal' IT company that advocated that 'Hardware firewalls' were more secure than 'software firewalls'. There's of course, no such thing as a hardware firewall. There are no dedicated ICs for firewalls. There are ARM chips tailored for firewalls (or perhaps just networking equipment), but these are just ARM chips, for the most part. One argument from this IT company was that my x86 PC was less secure than a commercial MIPS or ARM product off the shelf, e.g. Juniper, or Cisco. They considered the Juniper to be a 'hardware firewall'. Bollocks. Those are also software firewalls, just as much as the x86 is. There's a whole page on stack exchange on this. It's not even an argument. It appeals to the uneducated. It's nonsense. It's a nonsensical argument. It's like saying a hardware desktop is better than a software desktop. That makes no sense. +\\ + +Ref: https://serverfault.com/questions/268542/hardware-firewall-vs-software-firewall-ip-tables-rhel +\\ + +The second argument they had was that Open Source is less secure than commercial products because ``Any hacker can look at the code''. I could rebut this with the identical hyperbole of ``Any hacker can buy your commercial firewall off of ebay and hack it'', but that's childish. Let's not. Here's what matters: No one with a whit of integrity would say Free and Open source software is worse than Proprietary software. You can't. In 2020, it's 20 years too late for that. The success of Google was proof that FOSS works.\footnote{Additionally, Sophos bases its XG firewalls off of GNU Linux. So much for that argument.} +\\ + +I read somewhere the following, and it seems right:''Humans write good software, and they write bad software. Most of it is not good. Whether it's proprietary or foss has zero relation on the quality of the software. `` +\\ + +And if anything, FOSS benefits from the 'many eyes' approach, that will ensure that successful software at least has a lot of people reviewing it. Whether it's good or insane complexity is another matter. +\\ + +Anyways, my point is: IT companies can be insidious profit chasing vermin. I'm sure they aren't all bad, but the common IT company is about as good as the common hamburger (i.e. fast food). They will sell you everything Windows, and in 5-10 years, they will sell you it again, and again. The idea of updating a server without replacing hardware is almost unheard of. All firewalls are sold, and expected to be landfilled in 5-7 years. It's not sustainable business. Humans need to have a minimal footprint on planet Earth, and they need to reuse as much as possible. It's a sin. +\\ + +I know this planet appears a joke, but that's not going to stop me from doing what should be done. And a spade will be called a spade. + +\subsection{Write flash with new image and Resolder chip to board} +After dd'ing the new image bin, you write it back to the flash chip. This is not dramatic, just don't forget to do so. If you have a solid flashrom and pcb setup, it will just work. + +Resoldering the chip to the board is also trivial, assuming you have hot air and lead solder. Not all the pins have to be connected in a 16 pin EEPROM. This board happens to have two footprints. Underneath the 16 pin IC, is... surprise: a 8 pin footprint (same ic). So you can swap in the smaller package if you want. + + +\subsection{Access board via FTDI / USB-Serial chip} +After that, you will again need to have serial access. FTDI is my goto as I've learned over the years that my cheapo PL2302 usb serial adapters are not reliable.\footnote{Another thing that must go right.} + +Finally, you can use the board. + +\subsection{Dumb AP} +I just learned the value of a Dumb AP with this project. What is a dumb ap? It's essentially a Wifi AP with zero configuration. Maybe it can't be logged into, it has no subnet, it doesn't do anything outsde of connect wireless clients to the lan. It's like a wireless switch. It's beautiful. +\\ + +I know that it isn't 100\% secure, but the idea that Wireless APs could be as future proof as a network switch is wonderful. No more mesh, no more management console, no busywork interfaces... Just configure the SSID / Password, and plug it in to ethernet. That's it. It's such an obvious solution, I am surprised I didn't understand it before. +\\ + +Dumb AP is the ideal Wireless AP.\footnote{Technically, you probably still want to update them every so often, given that RF and Encryption (e.g. WPA) adds complexity to the AP, but a Dumb AP is the way Wireless Access Points should be done, if possible.} + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/6.tex~ b/Edimax_WAP1750/docs/6.tex~ new file mode 100644 index 0000000..53d7708 --- /dev/null +++ b/Edimax_WAP1750/docs/6.tex~ @@ -0,0 +1,113 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: %insertlibrebootlink + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, and also the partitions page here which explains all this: +https://openwrt.org/docs/techref/flash.layout + +Another interesting, but not required reading: +https://openwrt.org/docs/techref/flash + +Basically, any IT admin who sells / maintains a flash based device, and doesn't have a plan to replace the flash when it fails (which it very likely will at some point) is a hack. It's the number one cause of built in obsolescence. Even Tesla ran into trouble with their cars\footnote{Some early cars had their onboard flash fail. Flash is a problem, and a big one for the long game.}. + + + + + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/7.aux b/Edimax_WAP1750/docs/7.aux new file mode 100644 index 0000000..6abe4e2 --- /dev/null +++ b/Edimax_WAP1750/docs/7.aux @@ -0,0 +1,10 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Write flash with new image and Resolder chip to board}{6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Access board via FTDI / USB-Serial chip}{6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.8}Dumb AP}{6}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/7.log b/Edimax_WAP1750/docs/7.log new file mode 100644 index 0000000..985171e --- /dev/null +++ b/Edimax_WAP1750/docs/7.log @@ -0,0 +1,345 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 4 NOV 2020 21:37 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/7.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/7.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) +No file 7.aux. +\openout1 = `7.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 23. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 30. +(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 30. + +Overfull \hbox (7.96346pt too wide) in paragraph at lines 43--47 +\OT1/cmr/m/n/10.95 https://openwrt.org/toh/devolo/devolo[]wifi[]pro[]1750e dis- +cusses flash- + [] + +[1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] [3] +Overfull \hbox (58.09639pt too wide) in paragraph at lines 91--93 +\OT1/cmr/m/n/10.95 this link on the fo-rum for tp link de-vices https://forum.o +penwrt.org/t/debricking- + [] + + +Overfull \hbox (393.37097pt too wide) in paragraph at lines 96--96 +[]\OT1/cmtt/m/n/10.95 sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squ +ashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc[] + [] + + +Overfull \hbox (77.68463pt too wide) in paragraph at lines 98--100 +\OT1/cmr/m/n/10.95 tions page here which ex-plains all this: https://openwrt.or +g/docs/techref/flash.layout + [] + + +Overfull \hbox (98.57799pt too wide) in paragraph at lines 101--103 +[]\OT1/cmr/m/n/10.95 Another in-ter-est-ing, but not re-quired read-ing: https: +//openwrt.org/docs/techref/flash + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 106--108 + + [] + +[4] +Overfull \hbox (6.23282pt too wide) in paragraph at lines 109--111 +[]\OT1/cmr/m/n/10.95 Ref: https://serverfault.com/questions/268542/hardware-fir +ewall- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 109--111 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 112--114 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 115--117 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 118--120 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 121--123 + + [] + +[5] +Underfull \hbox (badness 10000) in paragraph at lines 138--140 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 141--143 + + [] + +[6] [7] (./7.aux) ) +Here is how much of TeX's memory you used: + 3525 strings out of 494561 + 53623 string characters out of 6177454 + 123288 words of memory out of 5000000 + 7170 multiletter control sequences out of 15000+600000 + 9890 words of font info for 35 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,38p,990b,209s stack positions out of 5000i,500n,10000p,200000b,80000s +< +/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb> +Output written on 7.pdf (7 pages, 119533 bytes). +PDF statistics: + 60 PDF objects out of 1000 (max. 8388607) + 42 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/7.pdf b/Edimax_WAP1750/docs/7.pdf new file mode 100644 index 0000000..8775cc9 Binary files /dev/null and b/Edimax_WAP1750/docs/7.pdf differ diff --git a/Edimax_WAP1750/docs/7.tex b/Edimax_WAP1750/docs/7.tex new file mode 100644 index 0000000..5243eaf --- /dev/null +++ b/Edimax_WAP1750/docs/7.tex @@ -0,0 +1,149 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +%\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: %insertlibrebootlink + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, and also the partitions page here which explains all this: +https://openwrt.org/docs/techref/flash.layout + +Another interesting, but not required reading: +https://openwrt.org/docs/techref/flash + +Basically, any IT admin who sells / maintains a flash based device, and doesn't have a plan to replace the flash when it fails (which it very likely will at some point) is a hack. It's the number one cause of built in obsolescence. Even Tesla ran into trouble with their cars\footnote{Some early cars had their onboard flash fail. Flash is a problem, and a big one for the long game.}. + +I had an argument at work with a 'normal' IT company that advocated that 'Hardware firewalls' were more secure than 'software firewalls'. There's of course, no such thing as a hardware firewall. There are no dedicated ICs for firewalls. There are ARM chips tailored for firewalls (or perhaps just networking equipment), but these are just ARM chips, for the most part. One argument from this IT company was that my x86 PC was less secure than a commercial MIPS or ARM product off the shelf, e.g. Juniper, or Cisco. They considered the Juniper to be a 'hardware firewall'. Bollocks. Those are also software firewalls, just as much as the x86 is. There's a whole page on stack exchange on this. It's not even an argument. It appeals to the uneducated. It's nonsense. It's a nonsensical argument. It's like saying a hardware desktop is better than a software desktop. That makes no sense. +\\ + +Ref: https://serverfault.com/questions/268542/hardware-firewall-vs-software-firewall-ip-tables-rhel +\\ + +The second argument they had was that Open Source is less secure than commercial products because ``Any hacker can look at the code''. I could rebut this with the identical hyperbole of ``Any hacker can buy your commercial firewall off of ebay and hack it'', but that's childish. Let's not. Here's what matters: No one with a whit of integrity would say Free and Open source software is worse than Proprietary software. You can't. In 2020, it's 20 years too late for that. The success of Google was proof that FOSS works.\footnote{Additionally, Sophos bases its XG firewalls off of GNU Linux. So much for that argument.} +\\ + +I read somewhere the following, and it seems right:''Humans write good software, and they write bad software. Most of it is not good. Whether it's proprietary or foss has zero relation on the quality of the software. `` +\\ + +And if anything, FOSS benefits from the 'many eyes' approach, that will ensure that successful software at least has a lot of people reviewing it. Whether it's good or insane complexity is another matter. +\\ + +Anyways, my point is: IT companies can be insidious profit chasing vermin. I'm sure they aren't all bad, but the common IT company is about as good as the common hamburger (i.e. fast food). They will sell you everything Windows, and in 5-10 years, they will sell you it again, and again. The idea of updating a server without replacing hardware is almost unheard of. All firewalls are sold, and expected to be landfilled in 5-7 years. It's not sustainable business. Humans need to have a minimal footprint on planet Earth, and they need to reuse as much as possible. It's a sin. +\\ + +I know this planet appears a joke, but that's not going to stop me from doing what should be done. And a spade will be called a spade. + +\subsection{Write flash with new image and Resolder chip to board} +After dd'ing the new image bin, you write it back to the flash chip. This is not dramatic, just don't forget to do so. If you have a solid flashrom and pcb setup, it will just work. + +Resoldering the chip to the board is also trivial, assuming you have hot air and lead solder. Not all the pins have to be connected in a 16 pin EEPROM. This board happens to have two footprints. Underneath the 16 pin IC, is... surprise: a 8 pin footprint (same ic). So you can swap in the smaller package if you want. + + +\subsection{Access board via FTDI / USB-Serial chip} +After that, you will again need to have serial access. FTDI is my goto as I've learned over the years that my cheapo PL2302 usb serial adapters are not reliable.\footnote{Another thing that must go right.} + +Finally, you can use the board. + +\subsection{Dumb AP} +I just learned the value of a Dumb AP with this project. What is a dumb ap? It's essentially a Wifi AP with zero configuration. Maybe it can't be logged into, it has no subnet, it doesn't do anything outsde of connect wireless clients to the lan. It's like a wireless switch. It's beautiful. +\\ + +I know that it isn't 100\% future proof\footnote{WPA issues, or side channel attacks probably. However, unlikely if it's not accessible via LAN}, but the idea that Wireless APs could be as future proof as a network switch is wonderful. No more mesh, no more management console, no busywork interfaces... Just configure the SSID / Password, and plug it in to ethernet. That's it. It's such an obvious solution, I am surprised I didn't understand it before. +\\ + +Dumb AP is the ideal Wireless AP.\footnote{Technically, you probably still want to update them every so often, given that RF and Encryption (e.g. WPA) adds complexity to the AP, but a Dumb AP is the way Wireless Access Points should be done, if possible.} + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/8.aux b/Edimax_WAP1750/docs/8.aux new file mode 100644 index 0000000..e11c072 --- /dev/null +++ b/Edimax_WAP1750/docs/8.aux @@ -0,0 +1,12 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.5.1}The Common IT Company Rant}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Write flash with new image and Resolder chip to board}{6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Access board via FTDI / USB-Serial chip}{7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.8}Dumb AP is Ideal AP}{7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.9}What is required for this to go right}{7}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/8.log b/Edimax_WAP1750/docs/8.log new file mode 100644 index 0000000..f3549ae --- /dev/null +++ b/Edimax_WAP1750/docs/8.log @@ -0,0 +1,351 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 4 NOV 2020 21:48 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/8.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/8.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./8.aux) +\openout1 = `8.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +(./8.toc +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 2. +) +\tf@toc=\write3 +\openout3 = `8.toc'. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 23. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 30. + (/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 30. + [1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] +Overfull \hbox (7.96346pt too wide) in paragraph at lines 43--47 +\OT1/cmr/m/n/10.95 https://openwrt.org/toh/devolo/devolo[]wifi[]pro[]1750e dis- +cusses flash- + [] + +[2] [3] +Overfull \hbox (58.09639pt too wide) in paragraph at lines 91--93 +\OT1/cmr/m/n/10.95 this link on the fo-rum for tp link de-vices https://forum.o +penwrt.org/t/debricking- + [] + + +Overfull \hbox (393.37097pt too wide) in paragraph at lines 96--96 +[]\OT1/cmtt/m/n/10.95 sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squ +ashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc[] + [] + + +Overfull \hbox (77.68463pt too wide) in paragraph at lines 98--100 +\OT1/cmr/m/n/10.95 tions page here which ex-plains all this: https://openwrt.or +g/docs/techref/flash.layout + [] + + +Overfull \hbox (98.57799pt too wide) in paragraph at lines 101--103 +[]\OT1/cmr/m/n/10.95 Another in-ter-est-ing, but not re-quired read-ing: https: +//openwrt.org/docs/techref/flash + [] + +[4] +Underfull \hbox (badness 10000) in paragraph at lines 107--109 + + [] + + +Overfull \hbox (6.23282pt too wide) in paragraph at lines 110--112 +[]\OT1/cmr/m/n/10.95 Ref: https://serverfault.com/questions/268542/hardware-fir +ewall- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 110--112 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 113--115 + + [] + +[5] +Underfull \hbox (badness 10000) in paragraph at lines 116--118 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 119--121 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 122--124 + + [] + +[6] +Underfull \hbox (badness 10000) in paragraph at lines 139--141 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 142--144 + + [] + +[7] [8] (./8.aux) ) +Here is how much of TeX's memory you used: + 3533 strings out of 494561 + 53681 string characters out of 6177454 + 123288 words of memory out of 5000000 + 7172 multiletter control sequences out of 15000+600000 + 10198 words of font info for 36 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,38p,990b,209s stack positions out of 5000i,500n,10000p,200000b,80000s + + +Output written on 8.pdf (8 pages, 137137 bytes). +PDF statistics: + 67 PDF objects out of 1000 (max. 8388607) + 47 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/8.pdf b/Edimax_WAP1750/docs/8.pdf new file mode 100644 index 0000000..4aa3880 Binary files /dev/null and b/Edimax_WAP1750/docs/8.pdf differ diff --git a/Edimax_WAP1750/docs/8.tex b/Edimax_WAP1750/docs/8.tex new file mode 100644 index 0000000..41128cd --- /dev/null +++ b/Edimax_WAP1750/docs/8.tex @@ -0,0 +1,155 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: %insertlibrebootlink + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, and also the partitions page here which explains all this: +https://openwrt.org/docs/techref/flash.layout + +Another interesting, but not required reading: +https://openwrt.org/docs/techref/flash + +\subsubsection{The Common IT Company Rant} +Basically, any IT admin who sells / maintains a flash based device, and doesn't have a plan to replace the flash when it fails (which it very likely will at some point) is a hack. It's the number one cause of built in obsolescence. Even Tesla ran into trouble with their cars\footnote{Some early cars had their onboard flash fail. Flash is a problem, and a big one for the long game.}. + +I had an argument at work with a 'normal' IT company that advocated that 'Hardware firewalls' were more secure than 'software firewalls'. There's of course, no such thing as a hardware firewall. There are no dedicated ICs for firewalls. There are ARM chips tailored for firewalls (or perhaps just networking equipment), but these are just ARM chips, for the most part. One argument from this IT company was that my x86 PC was less secure than a commercial MIPS or ARM product off the shelf, e.g. Juniper, or Cisco. They considered the Juniper to be a 'hardware firewall'. Bollocks. Those are also software firewalls, just as much as the x86 is. There's a whole page on stack exchange on this. It's not even an argument. It appeals to the uneducated. It's nonsense. It's a nonsensical argument. It's like saying a hardware desktop is better than a software desktop. That makes no sense. +\\ + +Ref: https://serverfault.com/questions/268542/hardware-firewall-vs-software-firewall-ip-tables-rhel +\\ + +The second argument they had was that Open Source is less secure than commercial products because ``Any hacker can look at the code''. I could rebut this with the identical hyperbole of ``Any hacker can buy your commercial firewall off of ebay and hack it'', but that's childish. Let's not. Here's what matters: No one with a whit of integrity would say Free and Open source software is worse than Proprietary software. You can't. In 2020, it's 20 years too late for that. The success of Google was proof that FOSS works.\footnote{Additionally, Sophos bases its XG firewalls off of GNU Linux. So much for that argument.} +\\ + +I read somewhere the following, and it seems right:''Humans write good software, and they write bad software. Most of it is not good. Whether it's proprietary or foss has zero relation on the quality of the software. `` +\\ + +And if anything, FOSS benefits from the 'many eyes' approach, that will ensure that successful software at least has a lot of people reviewing it. Whether it's good or insane complexity is another matter. +\\ + +Anyways, my point is: IT companies can be insidious profit chasing vermin. I'm sure they aren't all bad, but the common IT company is about as good as the common hamburger (i.e. fast food). They will sell you everything Windows, and in 5-10 years, they will sell you it again, and again. The idea of updating a server without replacing hardware is almost unheard of. All firewalls are sold, and expected to be landfilled in 5-7 years. It's not sustainable business. Humans need to have a minimal footprint on planet Earth, and they need to reuse as much as possible. It's a sin. +\\ + +I know this planet appears a joke, but that's not going to stop me from doing what should be done. And a spade will be called a spade. + +\subsection{Write flash with new image and Resolder chip to board} +After dd'ing the new image bin, you write it back to the flash chip. This is not dramatic, just don't forget to do so. If you have a solid flashrom and pcb setup, it will just work. + +Resoldering the chip to the board is also trivial, assuming you have hot air and lead solder. Not all the pins have to be connected in a 16 pin EEPROM. This board happens to have two footprints. Underneath the 16 pin IC, is... surprise: a 8 pin footprint (same ic). So you can swap in the smaller package if you want. + + +\subsection{Access board via FTDI / USB-Serial chip} +After that, you will again need to have serial access. FTDI is my goto as I've learned over the years that my cheapo PL2302 usb serial adapters are not reliable.\footnote{Another thing that must go right.} + +Finally, you can use the board. + +\subsection{Dumb AP is Ideal AP} +I just learned the value of a Dumb AP with this project. What is a dumb ap? It's essentially a Wifi AP with zero configuration. Maybe it can't be logged into, it has no subnet, it doesn't do anything outsde of connect wireless clients to the lan. It's like a wireless switch. It's beautiful. +\\ + +I know that it isn't 100\% future proof\footnote{WPA issues, or side channel attacks probably. However, unlikely if it's not accessible via LAN}, but the idea that Wireless APs could be as future proof as a network switch is wonderful. No more mesh, no more management console, no busywork interfaces... Just configure the SSID / Password, and plug it in to ethernet. That's it. It's such an obvious solution, I am surprised I didn't understand it before. +\\ + +Dumb AP is the ideal Wireless AP.\footnote{Technically, you probably still want to update them every so often, given that RF and Encryption (e.g. WPA) adds complexity to the AP, but a Dumb AP is the way Wireless Access Points should be done, if possible. Avoid configuration overhead, and have something that does what its supposed to, and nothing else.} + +\subsection{What is required for this to go right} +A lot is required for everything to go smoothly. I've touched on a lot of points, but experience flashing, soldering, soldering with hot air, proto board usage, tearing down enclosures, configuring Openwrt, using USB to Serial adapters, installing the WAP on the wall with a screw driver, and some drywall screws\footnote{This WAP also comes with separate magnetic bars that screw into the wall. The AP attaches via magnets to the bars, and is easily removable for service. Great design.}, and finally understanding this WAP was worth the trouble by reviewing the screenshots and having enough electronics experience to recognize quality when you see it. + +Not least of all, you have to decipher all the docs as I did to come to this conclusion that flashing would be viable. It is here. It may not be next time. However, with this tool under my belt I'm better prepared for next time.\footnote{A note about the current support of this device in Openwrt. I've decided to not make a wiki page, as for whatever reason no one else did, and ``When in Rome, do as the Romans do''. I don't think there are a lot of devices out there, so will avoid promoting them. As they'd follow the fate of other devices which have had internet popularity make them unobtainable. However, I felt an article on my unknown git/book wouldn't hurt. When you browse here, you get such articles.} + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/8.tex~ b/Edimax_WAP1750/docs/8.tex~ new file mode 100644 index 0000000..996f4a2 --- /dev/null +++ b/Edimax_WAP1750/docs/8.tex~ @@ -0,0 +1,149 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: %insertlibrebootlink + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, and also the partitions page here which explains all this: +https://openwrt.org/docs/techref/flash.layout + +Another interesting, but not required reading: +https://openwrt.org/docs/techref/flash + +Basically, any IT admin who sells / maintains a flash based device, and doesn't have a plan to replace the flash when it fails (which it very likely will at some point) is a hack. It's the number one cause of built in obsolescence. Even Tesla ran into trouble with their cars\footnote{Some early cars had their onboard flash fail. Flash is a problem, and a big one for the long game.}. + +I had an argument at work with a 'normal' IT company that advocated that 'Hardware firewalls' were more secure than 'software firewalls'. There's of course, no such thing as a hardware firewall. There are no dedicated ICs for firewalls. There are ARM chips tailored for firewalls (or perhaps just networking equipment), but these are just ARM chips, for the most part. One argument from this IT company was that my x86 PC was less secure than a commercial MIPS or ARM product off the shelf, e.g. Juniper, or Cisco. They considered the Juniper to be a 'hardware firewall'. Bollocks. Those are also software firewalls, just as much as the x86 is. There's a whole page on stack exchange on this. It's not even an argument. It appeals to the uneducated. It's nonsense. It's a nonsensical argument. It's like saying a hardware desktop is better than a software desktop. That makes no sense. +\\ + +Ref: https://serverfault.com/questions/268542/hardware-firewall-vs-software-firewall-ip-tables-rhel +\\ + +The second argument they had was that Open Source is less secure than commercial products because ``Any hacker can look at the code''. I could rebut this with the identical hyperbole of ``Any hacker can buy your commercial firewall off of ebay and hack it'', but that's childish. Let's not. Here's what matters: No one with a whit of integrity would say Free and Open source software is worse than Proprietary software. You can't. In 2020, it's 20 years too late for that. The success of Google was proof that FOSS works.\footnote{Additionally, Sophos bases its XG firewalls off of GNU Linux. So much for that argument.} +\\ + +I read somewhere the following, and it seems right:''Humans write good software, and they write bad software. Most of it is not good. Whether it's proprietary or foss has zero relation on the quality of the software. `` +\\ + +And if anything, FOSS benefits from the 'many eyes' approach, that will ensure that successful software at least has a lot of people reviewing it. Whether it's good or insane complexity is another matter. +\\ + +Anyways, my point is: IT companies can be insidious profit chasing vermin. I'm sure they aren't all bad, but the common IT company is about as good as the common hamburger (i.e. fast food). They will sell you everything Windows, and in 5-10 years, they will sell you it again, and again. The idea of updating a server without replacing hardware is almost unheard of. All firewalls are sold, and expected to be landfilled in 5-7 years. It's not sustainable business. Humans need to have a minimal footprint on planet Earth, and they need to reuse as much as possible. It's a sin. +\\ + +I know this planet appears a joke, but that's not going to stop me from doing what should be done. And a spade will be called a spade. + +\subsection{Write flash with new image and Resolder chip to board} +After dd'ing the new image bin, you write it back to the flash chip. This is not dramatic, just don't forget to do so. If you have a solid flashrom and pcb setup, it will just work. + +Resoldering the chip to the board is also trivial, assuming you have hot air and lead solder. Not all the pins have to be connected in a 16 pin EEPROM. This board happens to have two footprints. Underneath the 16 pin IC, is... surprise: a 8 pin footprint (same ic). So you can swap in the smaller package if you want. + + +\subsection{Access board via FTDI / USB-Serial chip} +After that, you will again need to have serial access. FTDI is my goto as I've learned over the years that my cheapo PL2302 usb serial adapters are not reliable.\footnote{Another thing that must go right.} + +Finally, you can use the board. + +\subsection{Dumb AP} +I just learned the value of a Dumb AP with this project. What is a dumb ap? It's essentially a Wifi AP with zero configuration. Maybe it can't be logged into, it has no subnet, it doesn't do anything outsde of connect wireless clients to the lan. It's like a wireless switch. It's beautiful. +\\ + +I know that it isn't 100\% future proof\footnote{WPA issues, or side channel attacks probably. However, unlikely if it's not accessible via LAN}, but the idea that Wireless APs could be as future proof as a network switch is wonderful. No more mesh, no more management console, no busywork interfaces... Just configure the SSID / Password, and plug it in to ethernet. That's it. It's such an obvious solution, I am surprised I didn't understand it before. +\\ + +Dumb AP is the ideal Wireless AP.\footnote{Technically, you probably still want to update them every so often, given that RF and Encryption (e.g. WPA) adds complexity to the AP, but a Dumb AP is the way Wireless Access Points should be done, if possible.} + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/8.toc b/Edimax_WAP1750/docs/8.toc new file mode 100644 index 0000000..6ee46f7 --- /dev/null +++ b/Edimax_WAP1750/docs/8.toc @@ -0,0 +1,11 @@ +\contentsline {section}{\numberline {1}Edimax WAP1750}{1}% +\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}% +\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{3}% +\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}% +\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}% +\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}% +\contentsline {subsubsection}{\numberline {1.5.1}The Common IT Company Rant}{5}% +\contentsline {subsection}{\numberline {1.6}Write flash with new image and Resolder chip to board}{6}% +\contentsline {subsection}{\numberline {1.7}Access board via FTDI / USB-Serial chip}{7}% +\contentsline {subsection}{\numberline {1.8}Dumb AP is Ideal AP}{7}% +\contentsline {subsection}{\numberline {1.9}What is required for this to go right}{7}% diff --git a/Edimax_WAP1750/docs/9.aux b/Edimax_WAP1750/docs/9.aux new file mode 100644 index 0000000..13e7a67 --- /dev/null +++ b/Edimax_WAP1750/docs/9.aux @@ -0,0 +1,12 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {1}Edimax WAP1750}{1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.5.1}The Common IT Company Rant}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Write flash with new image and Resolder chip to board}{6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.7}Access board via FTDI / USB-Serial chip}{7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.8}Dumb AP is Ideal AP}{7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.9}What is required for this to go right}{8}\protected@file@percent } diff --git a/Edimax_WAP1750/docs/9.log b/Edimax_WAP1750/docs/9.log new file mode 100644 index 0000000..2f47102 --- /dev/null +++ b/Edimax_WAP1750/docs/9.log @@ -0,0 +1,339 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex 2020.10.1) 4 NOV 2020 22:03 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/ +Edimax_WAP1750/docs/9.tex + +(/home/layoutdev/Desktop/code/documentation_general/Electronics_Projects_2020/E +dimax_WAP1750/docs/9.tex +LaTeX2e <2018-12-01> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2018/09/03 v1.4i Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2018/10/06 v3.3-154 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2018/09/12 v1.8c caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 64. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@caption@flags=\count88 +\c@ContinuedFloat=\count89 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 +\Gm@bindingoffset=\dimen112 +\Gm@wd@mp=\dimen113 +\Gm@odd@mp=\dimen114 +\Gm@even@mp=\dimen115 +\Gm@layoutwidth=\dimen116 +\Gm@layoutheight=\dimen117 +\Gm@layouthoffset=\dimen118 +\Gm@layoutvoffset=\dimen119 +\Gm@dimlist=\toks15 +) (./9.aux) +\openout1 = `9.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 12. +LaTeX Font Info: ... okay on input line 12. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count93 +\scratchdimen=\dimen120 +\scratchbox=\box27 +\nofMPsegments=\count94 +\nofMParguments=\count95 +\everyMPshowfont=\toks16 +\MPscratchCnt=\count96 +\MPscratchDim=\dimen121 +\MPnumerator=\count97 +\makeMPintoPDFobject=\count98 +\everyMPtoPDFconversion=\toks17 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +))) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +)))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 456. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. + +*geometry* detected driver: dvips +*geometry* verbose mode - [ preamble ] result: +* driver: dvips +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* vratio: 1:1 +* modes: +* h-part:(L,W,R)=(54.2025pt, 325.215pt, 54.2025pt) +* v-part:(T,H,B)=(79.49689pt, 491.43622pt, 79.49689pt) +* \paperwidth=433.62pt +* \paperheight=650.43pt +* \textwidth=325.215pt +* \textheight=491.43622pt +* \oddsidemargin=-18.06749pt +* \evensidemargin=-18.06749pt +* \topmargin=-29.7731pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 14. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 14. +(./9.toc +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <10.95> on input line 2. +) +\tf@toc=\write3 +\openout3 = `9.toc'. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 23. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 23. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 30. + (/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd +File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 30. + [1 +Non-PDF special ignored! + papersize=433.62pt,650.43pt + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] +Overfull \hbox (7.96346pt too wide) in paragraph at lines 43--47 +\OT1/cmr/m/n/10.95 https://openwrt.org/toh/devolo/devolo[]wifi[]pro[]1750e dis- +cusses flash- + [] + +[2] [3] +Overfull \hbox (58.09639pt too wide) in paragraph at lines 91--93 +\OT1/cmr/m/n/10.95 this link on the fo-rum for tp link de-vices https://forum.o +penwrt.org/t/debricking- + [] + + +Overfull \hbox (393.37097pt too wide) in paragraph at lines 96--96 +[]\OT1/cmtt/m/n/10.95 sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squ +ashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc[] + [] + +[4] +Underfull \hbox (badness 10000) in paragraph at lines 109--111 + + [] + + +Overfull \hbox (6.23282pt too wide) in paragraph at lines 112--114 +[]\OT1/cmr/m/n/10.95 Ref: https://serverfault.com/questions/268542/hardware-fir +ewall- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 112--114 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 115--117 + + [] + +[5] +Underfull \hbox (badness 10000) in paragraph at lines 118--120 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 121--123 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 124--126 + + [] + +[6] +Underfull \hbox (badness 10000) in paragraph at lines 141--143 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 144--146 + + [] + +[7] [8] (./9.aux) ) +Here is how much of TeX's memory you used: + 3533 strings out of 494561 + 53681 string characters out of 6177454 + 123288 words of memory out of 5000000 + 7172 multiletter control sequences out of 15000+600000 + 10198 words of font info for 36 fonts, out of 8000000 for 9000 + 14 hyphenation exceptions out of 8191 + 41i,8n,38p,1226b,209s stack positions out of 5000i,500n,10000p,200000b,80000s + + +Output written on 9.pdf (8 pages, 138192 bytes). +PDF statistics: + 67 PDF objects out of 1000 (max. 8388607) + 47 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/Edimax_WAP1750/docs/9.pdf b/Edimax_WAP1750/docs/9.pdf new file mode 100644 index 0000000..ef31e31 Binary files /dev/null and b/Edimax_WAP1750/docs/9.pdf differ diff --git a/Edimax_WAP1750/docs/9.tex b/Edimax_WAP1750/docs/9.tex new file mode 100644 index 0000000..431fe69 --- /dev/null +++ b/Edimax_WAP1750/docs/9.tex @@ -0,0 +1,157 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: (insertlibrebootlink) + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, the bootlog, and also the partitions page here which explains all this: +\\ +https://openwrt.org/docs/techref/flash.layout + +Another interesting, but not required reading: +\\ +https://openwrt.org/docs/techref/flash + +\subsubsection{The Common IT Company Rant} +Basically, any IT admin who sells / maintains a flash based device, and doesn't have a plan to replace the flash when it fails (which it very likely will at some point) is a hack. It's the number one cause of built in obsolescence. Even Tesla ran into trouble with their cars\footnote{Some early electric cars by Tesla in the 2020's had their onboard flash fail. Flash is a problem, and a big one for the long game. Never trust flash.}. + +I had an argument at work with a 'normal' IT company that advocated that 'Hardware firewalls' were more secure than 'software firewalls'. There's of course, no such thing as a hardware firewall. There are no dedicated ICs for firewalls. There are ARM chips tailored for firewalls (or perhaps just networking equipment), but these are just ARM chips, for the most part. One argument from this IT company was that my x86 PC was less secure than a commercial MIPS or ARM product off the shelf, e.g. Juniper, or Cisco\footnote{I will ignore the backdoors these companies load into their firewalls for the NSA, although it may be noted here. Complete security is a myth. There is no safe space in life. ``There be no shelter here'' - Popular song.}. They considered the Juniper to be a 'hardware firewall'. Bollocks. Those are also software firewalls, just as much as the x86 is. There's a whole page on stack exchange on this. It's not even an argument. It appeals to the uneducated. It's a nonsensical argument. It's like saying a hardware desktop is better than a software desktop. It doesn't make sense. +\\ + +Ref: https://serverfault.com/questions/268542/hardware-firewall-vs-software-firewall-ip-tables-rhel +\\ + +The second argument they had was that Open Source is less secure than commercial products because ``Any hacker can look at the code''. I could rebut this with the identical hyperbole of ``Any hacker can buy your commercial firewall off of ebay and hack it'', but that's childish. Let's not. Here's what matters: No one with a whit of integrity would say Free and Open source software is worse than Proprietary software. You can't. In 2020, it's 20 years too late for that. The success of Google was proof that FOSS works.\footnote{Additionally, Sophos bases its XG firewalls off of GNU Linux. So much for that argument.} +\\ + +I read somewhere the following, and it seems right:''Humans write good software, and they write bad software. Most of it is not good. Whether it's proprietary or foss has zero relation on the quality of the software. `` +\\ + +And if anything, FOSS benefits from the 'many eyes' approach, that will ensure that successful software at least has a lot of people reviewing it. Whether it's good or insane complexity is another matter. +\\ + +Anyways, my point is: IT companies can be insidious profit chasing vermin. I'm sure they aren't all bad, but the common IT company is about as good as the common hamburger (i.e. fast food). They will sell you everything Windows, and in 5-10 years, they will sell you it again, and again. The idea of updating a server without replacing hardware is almost unheard of. All firewalls are sold, and expected to be landfilled in 5-7 years. It's not sustainable business. Humans need to have a minimal footprint on planet Earth, and they need to reuse as much as possible. It's a sin. +\\ + +I know this planet appears a joke, but that's not going to stop me from doing what should be done. And a spade will be called a spade. + +\subsection{Write flash with new image and Resolder chip to board} +After dd'ing the new image bin, you write it back to the flash chip. This is not dramatic, just don't forget to do so. If you have a solid flashrom and pcb setup, it will just work. + +Resoldering the chip to the board is also trivial, assuming you have hot air and lead solder. Not all the pins have to be connected in a 16 pin EEPROM. This board happens to have two footprints. Underneath the 16 pin IC, is... surprise: a 8 pin footprint (same ic). So you can swap in the smaller package if you want.\footnote{Good design again.} + + +\subsection{Access board via FTDI / USB-Serial chip} +After that, you will again need to have serial access. FTDI is my goto as I've learned over the years that my cheapo PL2302 usb serial adapters are not reliable.\footnote{Another thing that must go right.} + +Finally, you can use the board. + +\subsection{Dumb AP is Ideal AP} +I just learned the value of a Dumb AP with this project. What is a dumb ap? It's essentially a Wifi AP with zero configuration. Maybe it can't be logged into, it has no subnet, it doesn't do anything outsde of connect wireless clients to the lan. It's like a wireless switch. It's beautiful. +\\ + +I know that it isn't 100\% future proof\footnote{WPA issues, or side channel attacks probably. However, unlikely if it's not accessible via LAN}, but the idea that Wireless APs could be as future proof as a network switch is wonderful. No more management console, no busywork interfaces... Just configure the SSID / Password, and plug it in to ethernet. That's it. It's such an obvious solution, I am surprised I didn't understand it before. It's also quite secure. +\\ + +Dumb AP is the ideal Wireless AP.\footnote{Technically, you probably still want to update them every so often, given that RF and Encryption (e.g. WPA) adds complexity to the AP, but a Dumb AP is the way Wireless Access Points should be done, if possible. Avoid configuration overhead, and have something that does what its supposed to, and nothing else. Minimize the attach surface.} + +\subsection{What is required for this to go right} +A lot is required for everything to go smoothly. I've touched on I hope most of the points, but experience flashing, soldering, soldering with hot air, proto board usage, tearing down enclosures, configuring Openwrt, using USB to Serial adapters, installing the WAP on the wall with a screw driver, and some drywall screws\footnote{This WAP also comes with separate magnetic bars that screw into the wall. The AP attaches via magnets to the bars, and is easily removable for service. Great design.}, and finally understanding this WAP was worth the trouble by reviewing the screenshots and having enough electronics experience to recognize quality when you see it. + +Not least of all, you have to decipher all the docs as I did to come to this conclusion that flashing would be viable. It is here. It may not be next time. However, with this tool under my belt I'm better prepared for next time.\footnote{A note about the current support of this device in Openwrt. I've decided to not make a wiki page, as for whatever reason no one else did, and ``When in Rome, do as the Romans do''. I don't think there are a lot of devices out there, so will avoid promoting it. As they'd follow the fate of other devices which have had internet popularity make them unobtainable (In video game world, the classic example is the SNES game Earthbound). However, I felt an article on my unknown git/book wouldn't hurt. When you browse here, you get such articles.} + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/9.tex~ b/Edimax_WAP1750/docs/9.tex~ new file mode 100644 index 0000000..41128cd --- /dev/null +++ b/Edimax_WAP1750/docs/9.tex~ @@ -0,0 +1,155 @@ + +\documentclass[11pt]{article} +%Gummi|065|=) +\usepackage{graphicx} +\usepackage{caption} +\usepackage{xcolor} +\usepackage[vcentering,dvips]{geometry} +\geometry{papersize={6in,9in},total={4.5in,6.8in}} +\title{\textbf{}} +\author{Steak Electronics} +\date{} +\begin{document} + +\maketitle + +\tableofcontents +\textcolor{green!60!blue!70}{ + \section{Edimax WAP1750}} +\begin{verbatim} + From: + https://openwrt.org/toh/devolo/devolo_wifi_pro_1750e +\end{verbatim} +\footnote{Always type out full URL in links. Don't put hyperlinks. This is done, so that when you print out a webpage, the URLs are still readable.} +The devolo WiFi pro 1750e is a wall mountable access point with: + + +Dual band 2.4 and 5 GHz WiFi (3 by 3 IEEE 802.11n 450Mbps, 3 by3 IEEE 802.11ac 1299Mpbs) + +\begin{itemize} +\item 2x 1Gbit ethernet ports (with Power over Ethernet support) +\item 1x USB 2.0 port +\item External serial console port (Currently unsupported but internal 4-pin internal Dupont connector is functional) +\item 1x GPIO attached piezo beeper +\end{itemize} + +The access point is manufactured by OEM Acelink Technologies Co., Ltd. as a EW-7679WAC and was originally sold by Edimax as a WAP1750. The Edimax unit was reviewed by SmallNetBuilder. + + + + +\subsection{Flashing Openwrt on to the WAP1750} + +At the moment, this page: +\\ +https://openwrt.org/toh/devolo/devolo\_wifi\_pro\_1750e +discusses flashing new firmware via SSH. However, the WAP1750 has a custom console, and while it's running GPLv2 GNU Linux, somehow it managed to lock down the software, so that simply shelling into it, is no longer possible. I'm sure that is a sin. GPLv2 does not mean people can take it and then abuse it for commercial use. It's a community good. + +None the less, it can be turned into an upgradeable router via the following means: +\begin{itemize} +\item Teardown enclosure +\item Remove flash chip by desoldering with hot air +\item Read flash with appropriate tool (Flashrom, TL866A). +\item Patch existing image sysupgrade for Devolo 1700 series. +\item Write flash with new image +\item Resolder chip to board +\item Access board via FTDI / USB-Serial chip +\end{itemize} +Simple enough, right? It is simple. But it's not simple. At least 5 years of hobbyist electronics and I'm able to do this, but for the layman... Only with a guide. And let's also talk about the issues that arose during the above steps. It's never as easy as it would be in a normal world. Earth is not normal. Earth is tilted. + +\subsection{Teardown Enclosure} +The first time, I went careful with a plastic spudger. This device is actually well designed as far as teardowns go. The second time, I got angry and snapped off the front plate with a screwdriver. In fact, the screwdriver approach (here) was superior. Much faster. Although scratches are left. Scratches only hurt those who favor form over function. Fools. + +\subsection{Remove Flash chip by desoldering with hot air} +Once you teardown into the board, you'll examine the ICs. The flash is nowhere to be seen. Is it onboard the CPU? No, it's on the bottom of the board. So it must be lifted out of the enclosure. With hot air desoldering, you must also use lead solder first on the pins. This guide is not a tutorial on hot air soldering. I assume you know this kind of stuff. I won't go into it, unless notable. + +Not all tweezers can grab these large chips easy. I have one pair that fits them, and about 3 that don't. Can't have enough tweezers, it seems. + +\subsection{Read flash with appropriate tool} +I have a new rule. Every EE should have a toolbox of flash reading / writing equipment. It's necessary. + +My weapon of choice for this project was the Beaglebone black with flashrom. A TL866A could also work. Flashrom is compatible with lots of hardware. An RPI can be used. Doesn't matter, but you must set it up. And when you have the chip, you will need: +\begin{itemize} +\item Breakout boards for the IC, as those clips are useless \footnote{I have two of those flash-in-place clips. Pomona used to sell them for \$40 each, then China came in and sells them for less than 12 dollars each now. Some for 5. They can work, but the one I had barely reached to all the pins. It wasn't big enough. Not worth it. Get breakout pcbs unless you do this a lot.} +\item Soldering Iron +\item Hot Air station +\item Lead solder +\item Tweezers +\item Experience to not damage pins during the operation +\item Short wires between breakout and BBB + \item Proper connecting of wires to BBB +\end{itemize} +I got a tote/toolbox of a few pages of documentation on flashing via BBB, and also the pinouts of the P8 and P9 headers of the BBB. Printouts help. + +A guide on the BBB flashrom setup is here: %insertlibrebootlink + +BBB SRM manual has the P8 and P9 headers. + +Since I've used flashrom in the past to flash Libreboot, this was not new territory for me. Experience with this helps. \footnote{Such as, keep wires short, make multiple reads, and compare with md5sum afterwards, don't fry chip.} + +\subsection{Patch existing image sysupgrade for Devolo 1700 series.} +This was easy enough (what I tried worked the first time). Based on this link on the forum for tp link devices https://forum.openwrt.org/t/debricking-tl-wr1043nd-v4-hard-way-by-external-flashing-solved/7675/6 +So the command was similar. + +\begin{verbatim} +sudo dd if=lede-17.01.4-ar71xx-generic-tl-wr1043nd-v4-squashfs-sysupgrade.bin of=dump.bin bs=1 seek=$((0x20000)) conv=notrunc +\end{verbatim} + +Except I knew the proper directory was at 0x70000 on my chip, thanks to the partition map at the devolo page, and also the partitions page here which explains all this: +https://openwrt.org/docs/techref/flash.layout + +Another interesting, but not required reading: +https://openwrt.org/docs/techref/flash + +\subsubsection{The Common IT Company Rant} +Basically, any IT admin who sells / maintains a flash based device, and doesn't have a plan to replace the flash when it fails (which it very likely will at some point) is a hack. It's the number one cause of built in obsolescence. Even Tesla ran into trouble with their cars\footnote{Some early cars had their onboard flash fail. Flash is a problem, and a big one for the long game.}. + +I had an argument at work with a 'normal' IT company that advocated that 'Hardware firewalls' were more secure than 'software firewalls'. There's of course, no such thing as a hardware firewall. There are no dedicated ICs for firewalls. There are ARM chips tailored for firewalls (or perhaps just networking equipment), but these are just ARM chips, for the most part. One argument from this IT company was that my x86 PC was less secure than a commercial MIPS or ARM product off the shelf, e.g. Juniper, or Cisco. They considered the Juniper to be a 'hardware firewall'. Bollocks. Those are also software firewalls, just as much as the x86 is. There's a whole page on stack exchange on this. It's not even an argument. It appeals to the uneducated. It's nonsense. It's a nonsensical argument. It's like saying a hardware desktop is better than a software desktop. That makes no sense. +\\ + +Ref: https://serverfault.com/questions/268542/hardware-firewall-vs-software-firewall-ip-tables-rhel +\\ + +The second argument they had was that Open Source is less secure than commercial products because ``Any hacker can look at the code''. I could rebut this with the identical hyperbole of ``Any hacker can buy your commercial firewall off of ebay and hack it'', but that's childish. Let's not. Here's what matters: No one with a whit of integrity would say Free and Open source software is worse than Proprietary software. You can't. In 2020, it's 20 years too late for that. The success of Google was proof that FOSS works.\footnote{Additionally, Sophos bases its XG firewalls off of GNU Linux. So much for that argument.} +\\ + +I read somewhere the following, and it seems right:''Humans write good software, and they write bad software. Most of it is not good. Whether it's proprietary or foss has zero relation on the quality of the software. `` +\\ + +And if anything, FOSS benefits from the 'many eyes' approach, that will ensure that successful software at least has a lot of people reviewing it. Whether it's good or insane complexity is another matter. +\\ + +Anyways, my point is: IT companies can be insidious profit chasing vermin. I'm sure they aren't all bad, but the common IT company is about as good as the common hamburger (i.e. fast food). They will sell you everything Windows, and in 5-10 years, they will sell you it again, and again. The idea of updating a server without replacing hardware is almost unheard of. All firewalls are sold, and expected to be landfilled in 5-7 years. It's not sustainable business. Humans need to have a minimal footprint on planet Earth, and they need to reuse as much as possible. It's a sin. +\\ + +I know this planet appears a joke, but that's not going to stop me from doing what should be done. And a spade will be called a spade. + +\subsection{Write flash with new image and Resolder chip to board} +After dd'ing the new image bin, you write it back to the flash chip. This is not dramatic, just don't forget to do so. If you have a solid flashrom and pcb setup, it will just work. + +Resoldering the chip to the board is also trivial, assuming you have hot air and lead solder. Not all the pins have to be connected in a 16 pin EEPROM. This board happens to have two footprints. Underneath the 16 pin IC, is... surprise: a 8 pin footprint (same ic). So you can swap in the smaller package if you want. + + +\subsection{Access board via FTDI / USB-Serial chip} +After that, you will again need to have serial access. FTDI is my goto as I've learned over the years that my cheapo PL2302 usb serial adapters are not reliable.\footnote{Another thing that must go right.} + +Finally, you can use the board. + +\subsection{Dumb AP is Ideal AP} +I just learned the value of a Dumb AP with this project. What is a dumb ap? It's essentially a Wifi AP with zero configuration. Maybe it can't be logged into, it has no subnet, it doesn't do anything outsde of connect wireless clients to the lan. It's like a wireless switch. It's beautiful. +\\ + +I know that it isn't 100\% future proof\footnote{WPA issues, or side channel attacks probably. However, unlikely if it's not accessible via LAN}, but the idea that Wireless APs could be as future proof as a network switch is wonderful. No more mesh, no more management console, no busywork interfaces... Just configure the SSID / Password, and plug it in to ethernet. That's it. It's such an obvious solution, I am surprised I didn't understand it before. +\\ + +Dumb AP is the ideal Wireless AP.\footnote{Technically, you probably still want to update them every so often, given that RF and Encryption (e.g. WPA) adds complexity to the AP, but a Dumb AP is the way Wireless Access Points should be done, if possible. Avoid configuration overhead, and have something that does what its supposed to, and nothing else.} + +\subsection{What is required for this to go right} +A lot is required for everything to go smoothly. I've touched on a lot of points, but experience flashing, soldering, soldering with hot air, proto board usage, tearing down enclosures, configuring Openwrt, using USB to Serial adapters, installing the WAP on the wall with a screw driver, and some drywall screws\footnote{This WAP also comes with separate magnetic bars that screw into the wall. The AP attaches via magnets to the bars, and is easily removable for service. Great design.}, and finally understanding this WAP was worth the trouble by reviewing the screenshots and having enough electronics experience to recognize quality when you see it. + +Not least of all, you have to decipher all the docs as I did to come to this conclusion that flashing would be viable. It is here. It may not be next time. However, with this tool under my belt I'm better prepared for next time.\footnote{A note about the current support of this device in Openwrt. I've decided to not make a wiki page, as for whatever reason no one else did, and ``When in Rome, do as the Romans do''. I don't think there are a lot of devices out there, so will avoid promoting them. As they'd follow the fate of other devices which have had internet popularity make them unobtainable. However, I felt an article on my unknown git/book wouldn't hurt. When you browse here, you get such articles.} + + + +\end{document} + diff --git a/Edimax_WAP1750/docs/9.toc b/Edimax_WAP1750/docs/9.toc new file mode 100644 index 0000000..667d414 --- /dev/null +++ b/Edimax_WAP1750/docs/9.toc @@ -0,0 +1,11 @@ +\contentsline {section}{\numberline {1}Edimax WAP1750}{1}% +\contentsline {subsection}{\numberline {1.1}Flashing Openwrt on to the WAP1750}{2}% +\contentsline {subsection}{\numberline {1.2}Teardown Enclosure}{3}% +\contentsline {subsection}{\numberline {1.3}Remove Flash chip by desoldering with hot air}{3}% +\contentsline {subsection}{\numberline {1.4}Read flash with appropriate tool}{3}% +\contentsline {subsection}{\numberline {1.5}Patch existing image sysupgrade for Devolo 1700 series.}{4}% +\contentsline {subsubsection}{\numberline {1.5.1}The Common IT Company Rant}{5}% +\contentsline {subsection}{\numberline {1.6}Write flash with new image and Resolder chip to board}{6}% +\contentsline {subsection}{\numberline {1.7}Access board via FTDI / USB-Serial chip}{7}% +\contentsline {subsection}{\numberline {1.8}Dumb AP is Ideal AP}{7}% +\contentsline {subsection}{\numberline {1.9}What is required for this to go right}{8}%