--- src/app/stylesheets/custom.scss | 18 +----- src/app/stylesheets/layout.scss | 76 +++++++++++++++++++- src/app/views/layouts/_admin_header.haml | 46 +++++-------- src/app/views/layouts/application.haml | 4 +- src/public/images/administer-tab-active-left.png | Bin 0 -> 887 bytes src/public/images/administer-tab-active-right.png | Bin 0 -> 4910 bytes src/public/images/administer_nav_bg.png | Bin 0 -> 2008 bytes src/public/images/administer_nav_bg_hover.png | Bin 0 -> 496 bytes src/public/images/administer_nav_content_icon.png | Bin 0 -> 1010 bytes .../images/administer_nav_environments_icon.png | Bin 0 -> 722 bytes .../images/administer_nav_providers_icon.png | Bin 0 -> 1070 bytes src/public/images/administer_nav_users_icon.png | Bin 0 -> 552 bytes 12 files changed, 93 insertions(+), 51 deletions(-) create mode 100644 src/public/images/administer-tab-active-left.png create mode 100644 src/public/images/administer-tab-active-right.png create mode 100644 src/public/images/administer_nav_bg.png create mode 100644 src/public/images/administer_nav_bg_hover.png create mode 100644 src/public/images/administer_nav_content_icon.png create mode 100644 src/public/images/administer_nav_environments_icon.png create mode 100644 src/public/images/administer_nav_providers_icon.png create mode 100644 src/public/images/administer_nav_users_icon.png
diff --git a/src/app/stylesheets/custom.scss b/src/app/stylesheets/custom.scss index fae47c7..a81a508 100644 --- a/src/app/stylesheets/custom.scss +++ b/src/app/stylesheets/custom.scss @@ -1,19 +1,3 @@ -#admin_subsections { - height: 2em; - display: block; -} -#admin_subsections li { - list-style-type: none; - float: left; - margin-right: 1em; -} -#admin_subsections li.selected { - font-weight: bold; -} -#admin_subsections a { - color: blue; -} - #user-menu.nojs a { margin-left: 1em; } @@ -77,4 +61,4 @@ footer.standard{ height: 30px; display:block; background: url(../../images/loading.gif) no-repeat center; -} \ No newline at end of file +} diff --git a/src/app/stylesheets/layout.scss b/src/app/stylesheets/layout.scss index 0d345f3..506726d 100644 --- a/src/app/stylesheets/layout.scss +++ b/src/app/stylesheets/layout.scss @@ -981,17 +981,28 @@ nav#primary { } } li.active{ - margin-top: -5px; - background: url('../../images/tab-active-right.png') no-repeat right top; z-index: 1000; height: 43px; a{ - background:url('../../images/tab-active-left.png') no-repeat left top; padding: 12px 20px 12px 20px; font-size: 16px; color: #666; } } + li.active.monitor{ + margin-top: -5px; + background: url('../../images/tab-active-right.png') no-repeat right top; + a{ + background:url('../../images/tab-active-left.png') no-repeat left top; + } + } + li.active.administer{ + margin-top: -6px; + background: url('../../images/administer-tab-active-right.png') no-repeat right top; + a{ + background:url('../../images/administer-tab-active-left.png') no-repeat left top; + } + } li + li{ margin-right: 6px; } @@ -999,6 +1010,65 @@ nav#primary { }
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Administer section navigation-- v.0.0.2 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +nav#administer_nav { + background: transparent url(../../images/administer_nav_bg.png) left bottom repeat-x; + -webkit-border-radius: 7px 7px 0px 0px; + -moz-border-radius: 7px 7px 0px 0px; + border-radius: 7px 7px 0px 0px; + padding-top: 7px; + + ul{ + display: table; + margin: 0 auto; + } + + li { + float: left; + text-align: center; + list-style-type: none; + + a{ + text-decoration: none; + display: block; + color: black; + + div{padding: 45px 10px 12px 10px;} + div.users{background: transparent url(../../images/administer_nav_users_icon.png) center 16px no-repeat;} + div.environments{background: transparent url(../../images/administer_nav_environments_icon.png) center 14px no-repeat;} + div.content{background: transparent url(../../images/administer_nav_content_icon.png) center 13px no-repeat;} + div.providers{background: transparent url(../../images/administer_nav_providers_icon.png) center 13px no-repeat;} + } + a:hover{ + background: transparent url(../../images/administer_nav_bg_hover.png) center bottom no-repeat; + } + a.selected{ + background: transparent url(../../images/administer_nav_bg_hover.png) center bottom no-repeat; + } + } +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Admin Page Header -- v.0.0.2 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +#admin_page_header{ + background: #e7e7e7; /* Old browsers */ + background: -moz-linear-gradient(top, #e7e7e7 0%, #dadada 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e7e7e7), color-stop(100%,#dadada)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #e7e7e7 0%,#dadada 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #e7e7e7 0%,#dadada 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, #e7e7e7 0%,#dadada 100%); /* IE10+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e7e7e7', endColorstr='#dadada',GradientType=0 ); /* IE6-9 */ + background: linear-gradient(top, #e7e7e7 0%,#dadada 100%); /* W3C */ + border-bottom: 1px solid #C4C4C4; + margin: -7px 0px 0px 0px; + padding-top: 7px; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Breadcrumb Navigation -- v.0.0.2 [nav_hist_bar] (nav_hist_bar.scss) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
diff --git a/src/app/views/layouts/_admin_header.haml b/src/app/views/layouts/_admin_header.haml index fb4a8e0..262182f 100644 --- a/src/app/views/layouts/_admin_header.haml +++ b/src/app/views/layouts/_admin_header.haml @@ -1,29 +1,17 @@ --#We'll figure out a better way to deal with this later. -%noscript - %nav#admin_subsections - = render_navigation({:expand_all => true, :level => 2}) - --# TODO: Actually design nav for the Administer section. --# Ugly hack to avoid moving files around for the moment.. Abs position the nav :/ -#tab_actions{:style => "position: absolute; top: -32px; right: 0px;"} - %label.label.small{:for => 'admin-section-select'} Control Panels - %select#admin-section-select - %option{:value => users_path} Choose section... - - if check_privilege(Privilege::VIEW, User) - %option{:value => users_path} Users - %option{:value => roles_path} Roles - %option{:value => providers_path} Providers - %option{:value => provider_accounts_path} Provider Accounts - %option{:value => hardware_profiles_path} Hardware Profiles - %option{:value => realms_path} Realms - %option{:value => pool_families_path} Pool Families - %option{:value => catalogs_path} Catalogs - %option{:value => catalog_entries_path} Catalog Entries - %option{:value => settings_path} Settings - -:javascript - $(document).ready(function() { - $('select#admin-section-select').change(function() { - window.location = $(this).val(); - }); - }); +%nav#administer_nav + %ul + %li + - link_to users_path do + %div.users Users & Groups + %li + - link_to users_path do + %div.environments Environments + %li + - link_to users_path, :class => "selected" do + %div.content Content + %li + - link_to providers_path do + %div.providers Cloud Providers + .clear +#admin_page_header + this is admin_page_header diff --git a/src/app/views/layouts/application.haml b/src/app/views/layouts/application.haml index 102c31a..f2391f4 100644 --- a/src/app/views/layouts/application.haml +++ b/src/app/views/layouts/application.haml @@ -50,9 +50,9 @@ - # NOTE this is a hack to implement switching between the top-level - # navigation before the proper wireframes exist for all the sections. - # Then we'll want to switch to the simple-nav gem or something else. - %li{:class => "#{'active' unless [:design, :administer].include? controller.top_section}" } + %li{:class => "#{'active' unless [:design, :administer].include? controller.top_section} monitor" } = link_to 'Monitor', pools_path, :id => 'monitor' - %li{:class => "#{'active' if controller.top_section == :administer}" } + %li{:class => "#{'active' if controller.top_section == :administer} administer" } = link_to 'Administer', catalog_entries_path
#content diff --git a/src/public/images/administer-tab-active-left.png b/src/public/images/administer-tab-active-left.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca0c5993ac106b82fed308ec4080060b98d65c8 GIT binary patch literal 887 zcmV--1Bm>IP)<h;3K|Lk000e1NJLTq000XB001ip1^@s6t^jfn00004b3#c}2nYxW zd<bNS00009a7bBm000W>000W>0fLJSS^xk56m&&cbVG7wVRUJ4ZXi@?ZDjyCFETGN zF*QUv#{d8T9CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?ocW-iQb09-gHF34$HUIzu(Md!> zR5*=|l*?|@Koo}0oEe+M^(B*W9HpsZ5+Er_MUyl|6>5Y;D^(O;p$`Ht!!z(MbkhwR zkXRuWNJU~UEW&Xd<pS9_$NoJ2&wnlq{^OVD`J;=Ai+Ai_;Cw!Rb9Hs~p;oKi?t~8y z4~I85Hy@9Wk8Qu-@8d4``uh5PyWRdW7!3M|2x1r9?RH<!W;2iCt+13bjG`#2R4N`K zf^!bG%9u<hQ_lG(L<Ft%Zuscv=&IRlqShJ^5v;Y_;a02lTuK=+#(*&fob&CPlO%Z@ z$8nvpg}cU>?QjqT`=00d007on0D#Rhrqk&N5pT=)IOm(;larIzS(c$O2Ap%i7~7uU z!NI|cdc7WzUH|~b*k;X2sc{&F31bY5F@=nc@ZR3uzVG`F2xN?HF3NB?>>=W3L<B?x zAq0?|wUcMF*`-qI9$;yib8fR6d7huw>-9iuUEJfGgE3|uPSbRfB#9!(Ik&J4aTP{H z48yQfsZ>%*jB~y@!A_@>an8R|A+**&a@HngKA*o;O8qK*37m7_oLj_YxZCYs)@rpX z#RP7g6e;D?BuOM`B+y#B3j4k<;yBKOAV|xWkrOL$p64wg#1BN|&N&cbna)~2PbQP| zD2l!tV~S5xndyH4_j<jTN-2+XUN}KgC@$beqcM?EHpnJx?aJvZGNLGYSglr5(nnXV zb&;q508mQBp6A^&#yG%Yk{M%#3)b3Y*PWf6orhuglOB|9BUu1{`*|=JypmG>rY<9$ z<$@G@Bg?XJnx+jpnO>ktq45#`0C5~Y34%ZwV^)em5{d++lu-}_6(K~$Iag#)r>&HI zJRU#ueg9jrRuRD%Qxro8v2<fJ8eL{tX6YdTG$rM&gza|wR4LUc+hmLZt#y$ktuN7R zHc!JajLSu!olH$dFR;72J4a1ptpy<jl>4LT3q(N5l#&2|mF6kOe*jNhI)s4t3g`d; N002ovPDHLkV1nQoe$xN|
literal 0 HcmV?d00001
diff --git a/src/public/images/administer-tab-active-right.png b/src/public/images/administer-tab-active-right.png new file mode 100644 index 0000000000000000000000000000000000000000..424e063b989eb405cd222fdc9310997d7553ea02 GIT binary patch literal 4910 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
literal 0 HcmV?d00001
diff --git a/src/public/images/administer_nav_bg.png b/src/public/images/administer_nav_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..493dd6528c138ed95872a5514a9342f096474a11 GIT binary patch literal 2008 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 WUxdJ(l=H{UZ!JG4oOgwjaO^*1FH;Wy
literal 0 HcmV?d00001
diff --git a/src/public/images/administer_nav_bg_hover.png b/src/public/images/administer_nav_bg_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..9ebd5d07e10577dce892c8b298f7afb02c6b6064 GIT binary patch literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^IY4a7!3HEfw)D&gQY^(zo*^7SP{WbZ0pxQQctjR6 zFmMZjFyp1Wb$@_@G9|7NCBgY=CFO}lsSJ)O`AMk?Zka`?<@rU~#R|^BriEJ{n*r5{ zfYdn`r6!hS=I1GdWag$aSn3<<8yc#AoTkaZ!06@a;uumf=j|;+FXljz)`!B9+}hh8 z32hSDeS6nj&AXj<x11EZ(-?VhbAV$&;S3eyKmGrkr!b52Jui|^G55V3+hSPrkHv7y zwY=?ePM;+u&RmEpR&BarAi>;RsCo!Ye|*T3d^o|zDj`Rrr}5wpp+qqKgRgmGq5&J* z<Eb1#S)dSav!Q{+{X_#Zo?{0R_JCFKf|NK5F*5^=0_x-8IR;h?rXO2_c#pkWfJ%T` z+73!c^!%UIgk)w}H2;Px7JdAlag*-o|M;_Wm7KoS1+NW_s@=|q+or0RNAnl-t+G<N zscw1p&yyKXUS=_`Ww^UR-*|SJ&!+XOwuiRunxx0%{f~ET_l8M*KnBm-Dg7JxX7iLL x#<EWP!?AYt2B9ApKhDl?Kap+4t?hY_v7l*NTWxWr2{6<dJYD@<);T3K0RRKty($0z
literal 0 HcmV?d00001
diff --git a/src/public/images/administer_nav_content_icon.png b/src/public/images/administer_nav_content_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..78df8abd0e6022e1e7a14fbef0d8105eea593976 GIT binary patch literal 1010 zcmV<O0}cF%P)<h;3K|Lk000e1NJLTq001Qb000^Y1^@s6FtU|<00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|9CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHF34$HUIzs6m&&cbVG7wVRUJ4ZXi@?ZDjyCFEKAMF(>hsDF6TiOi4sR zR7i=vm(Ob(M-<0DyN)F#R-Is+P{)v81R6+8bFxpR@u8Q-w8!QUU2@ewV1fiC_#pBR z6ne`cketkbeCj#^9}-N8d=d&sNP*gzxM=a(VpYl6P7nK*sIFvbS56-c%P#Z2^Vv6V zX5JW_jv2rhV9L{w?|)14<f#V<X+5yZP%vkJbG2ISq2o9&kB*MEwOG5|F4?yIYq?xr z0?tZb<0QdRp-dpYxw-j`>$-3B0CQdUO)i(a0>s4k)S*luQ79Ddd7gJL2q-Ym^A0vP zHogVo{lJESGVwzm6QP*ACoIca3<J~+w!FN2L$v-gl_x<3xiYc0xA(Z!YQ1i?TCWce z4`0Zie(AdIyRblk?eFjZ2As!V6hlLu0Vdn+cBz+Wy<UGF6(}&J)OSGQc(nRKnZQK7 zUjKR2flspS?d@m1qNTO&nQSHypPHJw-#3n@V98|iHhmKQ_y+?&0VfQ@xbQilOw&A% zKYinzuy>h2+_J32QIa@}xvu-pvaChABBr}?D$>4l8s>T4L7`B%Cs8xIp<<a#=KB8) z)D4!&WUd3T0LlcC)oS(0D8iLW<@ZtitJUfgAQ?>KI56!v&fBPhrBdk?@I$Ru+l;E= zIL=#OT6jnRvr)xt+paAvEPM~l&(F`_Z#J7BqG|!N!oxY>Y7~)9r_;=4vyXtUfGfbQ zY&QF71gNXR<3l-)Qwb}glzIx>1};iITmtT_udn|SR?BgmN&sadmErF0?pBDs58Jli z@9gaSv9`AMHP8k=uB@z_RZ870m&;|_w%>=*lktNJl^Ad-olY->{ky<`DImGEwe@3E zjdVJ_B$1ARe;`f*H}m;?E+W({Fl|}ZPf`5y`FswzDI8<qpF44(oKs3YjR186xV*Z$ znhNVHc{wNJ$LTr;P5gwP0p?Pv)PrKNs2Yt%eMqQlz>HGr;V}IhjYhp#EUHv0^+14T zWPDR={jbw`Oh}Uw#!37eNKokaI?4Y69N<r&Bf=MfFM`}SW?B-t1GInxX-)ja;vI(y zA~r5?2|m^2Mjxn;0_NhcoN)n*)1%ZCC@p>+@ofV~0!uF_WboipY0^JR!62SA&8OOa gkWb%Bs@9r+0LulbP0&3zeE<Le07*qoM6N<$f-Y9n8UO$Q
literal 0 HcmV?d00001
diff --git a/src/public/images/administer_nav_environments_icon.png b/src/public/images/administer_nav_environments_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..16c23e1fc3c07f046ff85beb666218a27e3eab87 GIT binary patch literal 722 zcmV;@0xkWCP)<h;3K|Lk000e1NJLTq000yK000{Z1^@s6eBZCw00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|9CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHF34$HUIzs6m&&cbVG7wVRUJ4ZXi@?ZDjyCFEKAMF(>hsDF6ThEJ;K` zR7i>KmcNeLKoG{i{c8gX2w`#sx(cLJ$pa*9Djt9$W!@y!JwaX}k3fIuPEjOM9ZiIV zkV3G?K>>Ft@!qaC1vav510qtoj5N*c%+E9Xt#(ZS(3D#MQS27Sjil;Gst(R(v$+bx z@Kz~x1E2(eoq!?EDJi9H!Z5sDuh&-q91cKiHXEnaYQ2sVYXBYqgz2vy09J$$Zvf!_ z{{9O9L1Ms#we}kTOeT|$)oS%uxm;G2O63CpeE?bl(6H8i2LM9I3jhm_%wBD`TS+N3 zaa_h>Qvl=uoJ`E}>{x@rVAN<d9-GbPb~qfqt=H>HN}20$u~@j%>9m##MF66t!+k-o z*LyF7(5uzzvy@VE&LcudPVr{5$z9hiWq_7v6Rowx7(<m(+!#X{V}+t<t(j6PSDy=v z$K#Rfx=KpP68IsY);f2*a=>=G{faSWD5cSSJ|9v_3lF%pmRM^^HeUGkbkVW(BFlB? z`~IB}LJJ`@=egzcft^n0C1cFYX0xwF>YlRP$O+`o-ksgycsw3Cj-#ZMMfv9glaUjZ z&jtQh`5&n4`~IDj^68YyhxRuC?z{0k?}9OAIOitaan_<JqM6HKpH~8K83e(#{Ywji z;2OXsfD*y(ny&$P-tYI{d7jrgI%~$3%jJ)5xBCgePXKFz-RtE7cow^Z6X!EMId-q( zL+rl^c8@dzAYvFl6R2b869AJ|D)|#2DL-a5<@-O4KlK+V#sK;b-2eap07*qoM6N<$ Eg4$a-y8r+H
literal 0 HcmV?d00001
diff --git a/src/public/images/administer_nav_providers_icon.png b/src/public/images/administer_nav_providers_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..20dd41f9a12512c2c68c0e4f1bccdf7e5184546b GIT binary patch literal 1070 zcmV+}1kwA6P)<h;3K|Lk000e1NJLTq001KZ000{Z1^@s6_V6~D00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|9CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHF34$HUIzs6m&&cbVG7wVRUJ4ZXi@?ZDjyCFEKAMF(>hsDF6Tih)G02 zR7i=nmtANaRTRg6v$J3MurB!3mLMgPHM%JxYTA9#M2plU77=}r79li^wS|J92z`i9 zu*A>@MOuk(MPCF#EDh;GAi)wQA}(PGfyE|Kx+$(Cn~d2k)18m&!`vlnyPIa)**~1O z;m+^=@44rkt5CZXzz3)@6d3>luw^(h?kOR}ePFmh508zF?bmhv2h%h&;tu8W`D@F| z%cp@RAW#OnEle#yid?ukm&<*7CqN|`hA}@qJ^eBe!gbOU7zGFn4-Y?S7{>fgKuWT0 z``?L)iEbdg9Z)SWeqh(?>gtcRfRqDGPEK}7hbkV~PGNjNV=|dMem@{3<@5Ppfr#8# z%`ggXvNi%w7>04{L12UsVrpvYUAf*}?%WGT1sW~Ox~c2>Zx0G0gb>+m_9y9%S}RNl zc+3lkk_^MR1?&cb)nKY+xDWRRc&1P&v<J65RJ~O`8Nq?u7r&PPeq@!kENjzCAPG}i zzaoquXz&I7NBi}!F5^~C6);CeMotzAg@3#vNhA_|<KyE8a5r7ir3PU4pcoZ{VpJSA zF3vyq$?H!6j|0(oJbpNr%Po1CKbB?PoSU0_Q$nfbIiuhvEC6cA|ICZ$j$DnM?uq~# znx-xF_V#|bwzl@CR}QJF+7gS!t}HApd;o+LMe!kRDs|zlkHdlXgBRZUx#P^M&48|H z+M?G$0IjX9UnUZXgFsLz5m6zb)Nr8vz!z^{+5gd@W?)^@w1u9Yo>N`}b#`{1MIP6- z-Bb+++F$sr?>tZh)@NpBGAk=9H@t+2L?W+A7~i%q=7w?OmlNNe$92w5rBX-R+S(3z z2_qE*)QXJ@ptxRGx_0E!$-l4vu?G0l>GZK^H2P^BKtN866=59HE{ykleJZOhW&ksl zO1&SAMlaNZLKap56^f2y+J)cGT|JZ47XJb^XJ=>M>*(mH3kX0alex~;%uExoZ%~Yi z0rOJ+`Lk~f05PB?nM{7{IF6U~?td~(GvD3a{R(b@4T3vkw4AWM*?8&mw~hhN0(*fy zwr$r9q*yF&4h;?U1FgU=<Y*BF9__l^-v{iIln(=Y>jjZcrzhg^_+j8_;1TJHqTn{l zpbQ7MrT{!t2G+n1o*X++Y5fAQ4(LE0Foh6KwIBF#`&AQLV}%!TaFg{mV92n95Drw| oZD|HBe>Hj`!QHP;A>_#UAA8GXy&%m~=l}o!07*qoM6N<$g7a9_wEzGB
literal 0 HcmV?d00001
diff --git a/src/public/images/administer_nav_users_icon.png b/src/public/images/administer_nav_users_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4b33879b365e51f054af4c70fcdc552f104cc066 GIT binary patch literal 552 zcmV+@0@wYCP)<h;3K|Lk000e1NJLTq001BW000#T1^@s6C(Z2Y00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|9CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHF34$HUIzs6m&&cbVG7wVRUJ4ZXi@?ZDjyCFEKAMF(>hsDF6Tgf=NU{ zR7i=vm9b94Fcd}4LzU=)+Kp^v?1GvJvC&WH$Y<~=jEt}`@&ia^>llfpZ0Xi+Wh>KV zr~@Xole9pu6v=shzV}3l9oR#XGD%PRRxWA0kJmooeMu{YH97>qZ6sWh^1lp9B&C6R zQ3IgrnwU?iP9%H`4BdEXW_RB7Sp$0t6fJxJI0}R(<szq3NrQ&aEw%O80sy*!TCyuZ zTc5T7zKVwVRZE{Jz$#E%c;lBEzrxJQozUbH1~9WlrEzU$Gw=Ss2H;@_pD=*an>Suo z04Ky>LlrLS69sTzZ|ar$uI6hVGBdL;u$DfUw;%&D;`@9K<YtyjngCY;0Ncd}z}zWy z4ID=n`04}azy)v;n12Rd34ef9eE^Rp=?3UEG^cEyDr;d3kh`mB=zH(fgm-}faLMim zQ3<;MroaqX2l{%!e*rLZ!L1IH8YRHkg-?M=wIQ?(GY9b7a9>^Lx%CRIT5$jLVYU88 qnwweL1fYKk-vpZd$c&wY2h%5x6!$=@*)N9x0000<MNUMnLSTZ;(ch2&
literal 0 HcmV?d00001