diff options
author | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-22 00:03:07 +0000 |
---|---|---|
committer | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-22 00:03:07 +0000 |
commit | c5b90374f3e454dbc5d5f2a4f23c49e7cba93147 (patch) | |
tree | 5d7980ec19bf794793fc31dcb1aa1245bc29f897 | |
parent | a32abb551892ef6a9987a5372b3c9896adb7a55e (diff) | |
download | chromium_src-c5b90374f3e454dbc5d5f2a4f23c49e7cba93147.zip chromium_src-c5b90374f3e454dbc5d5f2a4f23c49e7cba93147.tar.gz chromium_src-c5b90374f3e454dbc5d5f2a4f23c49e7cba93147.tar.bz2 |
Temporarily revert certain Omnibox, toolbar, tab animations, and other
UI changes for purposes of testing and merging into mstone-5.
Also ++kThemePackVersion and regenerate the cached theme pak.
Reverted changes:
r45213: GTK: Override cursor colors in chrome-theme mode.
r45103: Support drawing nano tabs in the tabstrip.
r45084: GTK: Position the EV certificate stuff inside a green bubble.
r44979: Subclassing the InfoBubble to handle anchoring bubbles basedon...
r44957: GTK: Tint the geolocation icons in gtk mode.
r44943: Changes FormatURL to not strip http if the host starts with ft...
r44930: Remove an icon that is no longer used.
r44929: SSL UI changes, Windows, code side (images are separate).
r44859: SSL UI changes (icons). TBRed since trybots hate binary patches.
r44822: GTK: Select better greens in the native omnibox popup.
r44814: GTK: navigate to URL on PRIMARY when middle-clicking the locat...
r44789: [Mac] Bookmark star missing on NTP and BMM.
r44775: [Mac] Centralize hack to make tests work with AutocompleteClas...
r44678: Display the SECURITY_WARNING status in the location bar for the
r44648: [Mac] Add an arrow cursor rect for the location image.
r44615: Revert r44611 because it may have broken "unit_tests" on "Vist...
r44611: Display the SECURITY_WARNING status in the location bar for the
r44577: Revert 44572 - [Mac] Update locationbar icon as user types.
r44572: [Mac] Update location-bar icon as user types.
r44555: GTK: Use correct button mask on reload button.
r44545: [Mac] Omnibox text drag drag URL when select-all.
r44523: GTK: Prevent inappropriate drag of location bar location icon.
r44519: GTK: make the primary selection include the url's scheme when ...
r44492: [Mac] Fix search icon in keyword search to be right-side-up.
r44415: GTK: Update top padding on icons in the autocomplete popup.
r44401: GTK: Tint omnibox icons in GTK mode differently.
r44380: GTK: Move reload in gtk mode and fix omnibox popup location.
r44282: Fixes crash in autocomplete when typing some URLs. The problem
r44273: [Mac] PDF icons for omnibox nits.
r44269: Fix build break due to bad merge resolve
r44268: Shift omnibox dropdown in and up on Windows, and square off th...
r44178: GTK: fix TTS padding.
r44177: Round the top left and right edges of the toolbar.
r44171: Images only checkin for try server goodness.
r44163: GTK: fix padding of autocomplete popup.
r44152: [Mac] PDF icons for omnibox.
r44145: GTK: Theme the icons in the location bar and use GTK colors fo...
r44140: Strips http from the omnibox
r44131: Fixes bugs in new tab strip animations where they weren't doin...
r44116: Change the default theme colors.
r44117: Add newline to EOF to fix CrOS builder.
r44115: Make the bottom edges of the opaque frame rounded.
r44091: [Mac] No star icon or page actions in omnibox on popups.
r44087: Don't allow drag or click on location icon when editing in omn...
r44021: [GTK] Add TTS lens graphic to linux TTS box.
r44008: [Mac] Tweak location icon spacing in omnibox.
r43977: GTK: don't show the star or page actions in ShouldOnlyShowLoca...
r43972: Make the firstrun bubble point at a better spot now that the l...
r43971: [Mac] Location icon in omnibox as drag source.
r43970: Make the star and page action icons not appear on popup windows.
r43954: Fixes bug in TabStrip where dragging tab out then back in rapidly
r43864: Tweaks to BoundsAnimator/SlideAnimation and TabStrip:
r43787: Allow location icon to be dragged & dropped. This also fixes ...
r43759: Changes end cap of tab-to-search images.
r43740: Change bookmark bar toggle to ctrl-shift-b.
r43723: Show Page Info dialog on mouse up, not mouse down.
r43677: Fix Mac build failure.
r43676: Replace omnibox icons with new set that are all the same size ...
r43596: Fix browser test TestStarButtonAccObj.
r43593: Disables TestStarButtonAccObj.
r43582: Changes tab strip to use BoundsAnimator for tab strip animatio...
r43563: GTK: don't show reload button for popup/app windows.
r43562: Star/reload shuffle, Windows version.
r43540: [Mac] Magnifying glass in keyword-search bubble.
r43482: Adds images needed for new tab animation. I'm separating this ...
r43422: Add reload mask resource.
r43392: GTK: make the location icon a drag source.
r43376: [Mac] Move star button into page-actions area of omnibox.
r43357: [Mac] Line up omnibox popup under field.
r43290: gtk: fix display of icons in omnibox popup
r43269: GTK: fix reload button.
r43249: [Mac] Rearrange SSL status icon/label in omnibox.
r43248: BrowserThemePack: Adds persistant ids for the reload endcaps.
r43241: GTK: more location bar updates.
r43191: Fix memory leak in BrowserThemePack.
r43154: GTK: set the new star button's ID
r43151: Fix bad conflict resolution for r43146.
r43146: GTK: toolbar reload/star shuffle.
r43025: Show the location bar icon (almost) all the time, and have its...
r43023: Add new images for new reload button. No code change.
r42782: Remove this icon, now that it's no longer used (due to my secu...
r42502: Omnibox M5 work, part 1: Security changes
r42245: Check in new icons for omnibox security changes alone, so that...
BUG=none
TEST=Eyjafjallajokull
R=pkasting@chromium.org,beng@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45267 0039d316-1c4b-4281-b951-d872f2087c98
250 files changed, 9249 insertions, 12414 deletions
diff --git a/app/app.gyp b/app/app.gyp index 23e31c3..86afe36 100644 --- a/app/app.gyp +++ b/app/app.gyp @@ -45,7 +45,6 @@ 'l10n_util_unittest.cc', 'os_exchange_data_win_unittest.cc', 'run_all_unittests.cc', - 'slide_animation_unittest.cc', 'system_monitor_unittest.cc', 'test_suite.h', 'text_elider_unittest.cc', diff --git a/app/resource_bundle.cc b/app/resource_bundle.cc index a2058ec..1793073 100644 --- a/app/resource_bundle.cc +++ b/app/resource_bundle.cc @@ -16,9 +16,9 @@ ResourceBundle* ResourceBundle::g_shared_instance_ = NULL; // TODO(glen): Finish moving these into theme provider (dialogs still // depend on these colors). const SkColor ResourceBundle::frame_color = - SkColorSetRGB(66, 116, 201); + SkColorSetRGB(77, 139, 217); const SkColor ResourceBundle::frame_color_inactive = - SkColorSetRGB(161, 182, 228); + SkColorSetRGB(184, 209, 240); const SkColor ResourceBundle::frame_color_app_panel = SK_ColorWHITE; const SkColor ResourceBundle::frame_color_app_panel_inactive = diff --git a/app/resources/frame_default.png b/app/resources/frame_default.png Binary files differindex ca9bcb2..3f4f7e9 100644 --- a/app/resources/frame_default.png +++ b/app/resources/frame_default.png diff --git a/app/resources/frame_default_inactive.png b/app/resources/frame_default_inactive.png Binary files differindex 348e2ce..a1eff41 100644 --- a/app/resources/frame_default_inactive.png +++ b/app/resources/frame_default_inactive.png diff --git a/app/resources/window_bottom_left_corner.png b/app/resources/window_bottom_left_corner.png Binary files differindex 88c420c..1d3c066 100644 --- a/app/resources/window_bottom_left_corner.png +++ b/app/resources/window_bottom_left_corner.png diff --git a/app/resources/window_bottom_right_corner.png b/app/resources/window_bottom_right_corner.png Binary files differindex 2595f0c..83cf5b9 100644 --- a/app/resources/window_bottom_right_corner.png +++ b/app/resources/window_bottom_right_corner.png diff --git a/app/slide_animation_unittest.cc b/app/slide_animation_unittest.cc deleted file mode 100644 index 8bc947f..0000000 --- a/app/slide_animation_unittest.cc +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "app/slide_animation.h" -#include "app/test_animation_delegate.h" -#include "testing/gtest/include/gtest/gtest.h" - -class SlideAnimationTest: public testing::Test { - private: - MessageLoopForUI message_loop_; -}; - -// Tests that delegate is not notified when animation is running and is deleted. -// (Such a scenario would cause problems for BoundsAnimator). -TEST_F(SlideAnimationTest, DontNotifyOnDelete) { - TestAnimationDelegate delegate; - scoped_ptr<SlideAnimation> animation(new SlideAnimation(&delegate)); - - // Start the animation. - animation->Show(); - - // Delete the animation. - animation.reset(); - - // Make sure the delegate wasn't notified. - EXPECT_FALSE(delegate.finished()); - EXPECT_FALSE(delegate.canceled()); -} diff --git a/app/text_elider.cc b/app/text_elider.cc index ccdb3e33..1098f82 100644 --- a/app/text_elider.cc +++ b/app/text_elider.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -37,8 +37,8 @@ std::wstring ElideUrl(const GURL& url, const std::wstring& languages) { // Get a formatted string and corresponding parsing of the url. url_parse::Parsed parsed; - std::wstring url_string = net::FormatUrl(url, languages, - net::kFormatUrlOmitAll, UnescapeRule::SPACES, &parsed, NULL, NULL); + std::wstring url_string = net::FormatUrl(url, languages, true, + UnescapeRule::SPACES, &parsed, NULL, NULL); if (available_pixel_width <= 0) return url_string; @@ -363,8 +363,7 @@ SortedDisplayURL::SortedDisplayURL(const GURL& url, string16 host_minus_www = WideToUTF16Hack(net::StripWWW(host)); url_parse::Parsed parsed; display_url_ = WideToUTF16Hack(net::FormatUrl(url, languages, - net::kFormatUrlOmitAll, UnescapeRule::SPACES, &parsed, &prefix_end_, - NULL)); + true, UnescapeRule::SPACES, &parsed, &prefix_end_, NULL)); if (sort_host_.length() > host_minus_www.length()) { prefix_end_ += sort_host_.length() - host_minus_www.length(); sort_host_.swap(host_minus_www); diff --git a/app/text_elider_unittest.cc b/app/text_elider_unittest.cc index caf619d..d976333 100644 --- a/app/text_elider_unittest.cc +++ b/app/text_elider_unittest.cc @@ -55,7 +55,7 @@ TEST(TextEliderTest, TestGeneralEliding) { const std::wstring kEllipsisStr(kEllipsis); Testcase testcases[] = { {"http://www.google.com/intl/en/ads/", - L"www.google.com/intl/en/ads/"}, + L"http://www.google.com/intl/en/ads/"}, {"http://www.google.com/intl/en/ads/", L"www.google.com/intl/en/ads/"}, // TODO(port): make this test case work on mac. #if !defined(OS_MACOSX) @@ -73,7 +73,7 @@ TEST(TextEliderTest, TestGeneralEliding) { {"http://subdomain.foo.com/bar/filename.html", kEllipsisStr + L"foo.com/" + kEllipsisStr + L"/filename.html"}, {"http://www.google.com/intl/en/ads/?aLongQueryWhichIsNotRequired", - L"www.google.com/intl/en/ads/?aLongQ" + kEllipsisStr}, + L"http://www.google.com/intl/en/ads/?aLongQ" + kEllipsisStr}, }; RunTest(testcases, arraysize(testcases)); @@ -83,7 +83,7 @@ TEST(TextEliderTest, TestGeneralEliding) { TEST(TextEliderTest, TestMoreEliding) { const std::wstring kEllipsisStr(kEllipsis); Testcase testcases[] = { - {"http://www.google.com/foo?bar", L"www.google.com/foo?bar"}, + {"http://www.google.com/foo?bar", L"http://www.google.com/foo?bar"}, {"http://xyz.google.com/foo?bar", L"xyz.google.com/foo?" + kEllipsisStr}, {"http://xyz.google.com/foo?bar", L"xyz.google.com/foo" + kEllipsisStr}, {"http://xyz.google.com/foo?bar", L"xyz.google.com/fo" + kEllipsisStr}, @@ -91,11 +91,11 @@ TEST(TextEliderTest, TestMoreEliding) { {"", L""}, {"http://foo.bar..example.com...hello/test/filename.html", L"foo.bar..example.com...hello/" + kEllipsisStr + L"/filename.html"}, - {"http://foo.bar../", L"foo.bar../"}, - {"http://xn--1lq90i.cn/foo", L"\x5317\x4eac.cn/foo"}, + {"http://foo.bar../", L"http://foo.bar../"}, + {"http://xn--1lq90i.cn/foo", L"http://\x5317\x4eac.cn/foo"}, {"http://me:mypass@secrethost.com:99/foo?bar#baz", - L"secrethost.com:99/foo?bar#baz"}, - {"http://me:mypass@ss%xxfdsf.com/foo", L"ss%25xxfdsf.com/foo"}, + L"http://secrethost.com:99/foo?bar#baz"}, + {"http://me:mypass@ss%xxfdsf.com/foo", L"http://ss%25xxfdsf.com/foo"}, {"mailto:elgoato@elgoato.com", L"mailto:elgoato@elgoato.com"}, {"javascript:click(0)", L"javascript:click(0)"}, {"https://chess.eecs.berkeley.edu:4430/login/arbitfilename", @@ -105,13 +105,13 @@ TEST(TextEliderTest, TestMoreEliding) { // Unescaping. {"http://www/%E4%BD%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0", - L"www/\x4f60\x597d?q=\x4f60\x597d#\x4f60"}, + L"http://www/\x4f60\x597d?q=\x4f60\x597d#\x4f60"}, // Invalid unescaping for path. The ref will always be valid UTF-8. We don't // bother to do too many edge cases, since these are handled by the escaper // unittest. {"http://www/%E4%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0", - L"www/%E4%A0%E5%A5%BD?q=\x4f60\x597d#\x4f60"}, + L"http://www/%E4%A0%E5%A5%BD?q=\x4f60\x597d#\x4f60"}, }; RunTest(testcases, arraysize(testcases)); @@ -229,7 +229,7 @@ TEST(TextEliderTest, ElideTextLongStrings) { // Verifies display_url is set correctly. TEST(TextEliderTest, SortedDisplayURL) { gfx::SortedDisplayURL d_url(GURL("http://www.google.com/"), std::wstring()); - EXPECT_EQ("www.google.com/", UTF16ToASCII(d_url.display_url())); + EXPECT_EQ("http://www.google.com/", UTF16ToASCII(d_url.display_url())); } // Verifies DisplayURL::Compare works correctly. diff --git a/chrome/app/chrome_dll.rc b/chrome/app/chrome_dll.rc index c9322d3..794bb1d 100644 --- a/chrome/app/chrome_dll.rc +++ b/chrome/app/chrome_dll.rc @@ -120,7 +120,8 @@ BEGIN VK_NUMPAD7, IDC_SELECT_TAB_6, VIRTKEY, CONTROL "8", IDC_SELECT_TAB_7, VIRTKEY, CONTROL VK_NUMPAD8, IDC_SELECT_TAB_7, VIRTKEY, CONTROL - "B", IDC_SHOW_BOOKMARK_BAR, VIRTKEY, CONTROL, SHIFT + "B", IDC_SHOW_BOOKMARK_BAR, VIRTKEY, CONTROL + "B", IDC_SHOW_BOOKMARK_MANAGER, VIRTKEY, CONTROL, SHIFT "J", IDC_SHOW_DOWNLOADS, VIRTKEY, CONTROL "H", IDC_SHOW_HISTORY, VIRTKEY, CONTROL "F", IDC_SHOW_APP_MENU, VIRTKEY, ALT diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 1329f1b..dd7d155 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -3780,6 +3780,9 @@ Keep your key file in a safe place. You will need it to create new versions of y Pa&ste and Search </message> </if> + <message name="IDS_OMNIBOX_EMPTY_TEXT" desc="Text shown if omnibox is empty"> + Type to search + </message> <message name="IDS_OMNIBOX_KEYWORD_HINT" desc="Shown to the user when the url in the omnibox has a keyword associated with it. $1 is replaced with an image showing the tab key and is labelled with IDS_OMNIBOX_KEYWORD_HINT_KEY. $2 is replaced with the description of the keyword."> Press <ph name="SEARCH_KEY">$1<ex>Tab</ex></ph> to search <ph name="SITE_NAME">$2<ex>google.com</ex></ph> </message> @@ -4979,10 +4982,14 @@ Keep your key file in a safe place. You will need it to create new versions of y Secure connection to <ph name="DOMAIN">$1<ex>paypal.com</ex></ph> </message> - <message name="IDS_SECURE_CONNECTION_EV" desc="Short text shown in the location bar when the connection is secure with an EV cert."> + <message name="IDS_SECURE_CONNECTION_EV" desc="Short text shown in the location when the connection is secure with an EV cert."> <ph name="ORGANIZATION">$1<ex>Paypal Inc.</ex></ph> [<ph name="COUNTRY">$2<ex>US</ex></ph>] </message> + <message name="IDS_SECURE_CONNECTION_EV_CA" desc="Info popup text showing the certification authority's name when hovering the mouse over the EV label ie., we have a secure connection to the site with an EV cert."> + Verified by <ph name="ISSUER">$1<ex>VeriSign</ex></ph> + </message> + <!-- Page Information Window --> <message name="IDS_PAGEINFO_WINDOW_TITLE" desc="Title of the page info window."> Security Information diff --git a/chrome/app/nibs/BookmarkBubble.xib b/chrome/app/nibs/BookmarkBubble.xib index 1574949..87e4b56 100644 --- a/chrome/app/nibs/BookmarkBubble.xib +++ b/chrome/app/nibs/BookmarkBubble.xib @@ -8,7 +8,7 @@ <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="34"/> + <integer value="50"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -956,6 +956,13 @@ <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> + <string key="minorKey">../third_party/GTM/Foundation/GTMNSObject+KeyValueObserving.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> <string key="minorKey">browser/cocoa/status_bubble_mac.h</string> </object> </object> diff --git a/chrome/app/nibs/Toolbar.xib b/chrome/app/nibs/Toolbar.xib index 4acd5df..2525a8c 100644 --- a/chrome/app/nibs/Toolbar.xib +++ b/chrome/app/nibs/Toolbar.xib @@ -1,11 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">9L31a</string> - <string key="IBDocument.InterfaceBuilderVersion">677</string> - <string key="IBDocument.AppKitVersion">949.54</string> - <string key="IBDocument.HIToolboxVersion">353.00</string> + <string key="IBDocument.SystemVersion">10C540</string> + <string key="IBDocument.InterfaceBuilderVersion">761</string> + <string key="IBDocument.AppKitVersion">1038.25</string> + <string key="IBDocument.HIToolboxVersion">458.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="NS.object.0">761</string> + </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> <integer value="1"/> @@ -16,7 +20,7 @@ </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys" id="0"> <bool key="EncodedWithXMLCoder">YES</bool> </object> <object class="NSMutableArray" key="dict.values"> @@ -49,7 +53,7 @@ <object class="NSTextField" id="535508469"> <reference key="NSNextResponder" ref="928520650"/> <int key="NSvFlags">266</int> - <string key="NSFrame">{{130, 5}, {376, 27}}</string> + <string key="NSFrame">{{165, 5}, {341, 27}}</string> <reference key="NSSuperview" ref="928520650"/> <int key="NSTag">33004</int> <bool key="NSEnabled">YES</bool> @@ -59,7 +63,7 @@ <string key="NSContents">chromium.org</string> <object class="NSFont" key="NSSupport"> <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.300000e+01</double> + <double key="NSSize">13</double> <int key="NSfFlags">16</int> </object> <reference key="NSControlView" ref="535508469"/> @@ -87,7 +91,7 @@ <object class="NSButton" id="368496192"> <reference key="NSNextResponder" ref="928520650"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{66, 5}, {31, 27}}</string> + <string key="NSFrame">{{101, 5}, {31, 27}}</string> <reference key="NSSuperview" ref="928520650"/> <int key="NSTag">33003</int> <bool key="NSEnabled">YES</bool> @@ -97,7 +101,7 @@ <string key="NSContents"/> <object class="NSFont" key="NSSupport" id="64724822"> <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.300000e+01</double> + <double key="NSSize">13</double> <int key="NSfFlags">1044</int> </object> <reference key="NSControlView" ref="368496192"/> @@ -113,21 +117,50 @@ <int key="NSPeriodicInterval">75</int> </object> </object> + <object class="NSButton" id="559273956"> + <reference key="NSNextResponder" ref="928520650"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{136, 5}, {29, 27}}</string> + <reference key="NSSuperview" ref="928520650"/> + <int key="NSTag">35000</int> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="960568152"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134250496</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="64724822"/> + <reference key="NSControlView" ref="559273956"/> + <int key="NSTag">-1</int> + <int key="NSButtonFlags">-2030812929</int> + <int key="NSButtonFlags2">6</int> + <object class="NSCustomResource" key="NSNormalImage"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">star_Template</string> + </object> + <object class="NSCustomResource" key="NSAlternateImage"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">starred</string> + </object> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">400</int> + <int key="NSPeriodicInterval">75</int> + </object> + </object> <object class="NSButton" id="458854861"> <reference key="NSNextResponder" ref="928520650"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{101, 5}, {31, 27}}</string> + <string key="NSFrame">{{66, 5}, {31, 27}}</string> <reference key="NSSuperview" ref="928520650"/> <int key="NSTag">33002</int> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="386107000"> - <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags2">134250496</int> <string key="NSContents"/> <reference key="NSSupport" ref="64724822"/> - <int key="NSTag">-1</int> <reference key="NSControlView" ref="458854861"/> - <int key="NSButtonFlags">-2033434369</int> + <int key="NSButtonFlags">-2033958657</int> <int key="NSButtonFlags2">6</int> <object class="NSCustomResource" key="NSNormalImage"> <string key="NSClassName">NSImage</string> @@ -151,8 +184,8 @@ <int key="NSCellFlags2">134250496</int> <string key="NSContents"/> <reference key="NSSupport" ref="64724822"/> - <int key="NSTag">1</int> <reference key="NSControlView" ref="781044416"/> + <int key="NSTag">1</int> <int key="NSButtonFlags">-2031861505</int> <int key="NSButtonFlags2">6</int> <object class="NSCustomResource" key="NSNormalImage"> @@ -177,8 +210,8 @@ <int key="NSCellFlags2">134250496</int> <string key="NSContents"/> <reference key="NSSupport" ref="64724822"/> - <int key="NSTag">-2</int> <reference key="NSControlView" ref="634265909"/> + <int key="NSTag">-2</int> <int key="NSButtonFlags">-2030812929</int> <int key="NSButtonFlags2">6</int> <object class="NSCustomResource" key="NSNormalImage"> @@ -203,8 +236,8 @@ <int key="NSCellFlags2">134250496</int> <string key="NSContents"/> <reference key="NSSupport" ref="64724822"/> - <int key="NSTag">1</int> <reference key="NSControlView" ref="480525277"/> + <int key="NSTag">1</int> <int key="NSButtonFlags">-2031861505</int> <int key="NSButtonFlags2">6</int> <object class="NSCustomResource" key="NSNormalImage"> @@ -356,6 +389,14 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> + <string key="label">starButton_</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="559273956"/> + </object> + <int key="connectionID">34</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> <string key="label">homeButton_</string> <reference key="source" ref="1001"/> <reference key="destination" ref="368496192"/> @@ -379,6 +420,14 @@ <int key="connectionID">41</int> </object> <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">commandDispatch:</string> + <reference key="source" ref="1003"/> + <reference key="destination" ref="559273956"/> + </object> + <int key="connectionID">121</int> + </object> + <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> <string key="label">owner_</string> <reference key="source" ref="1044322163"/> @@ -424,28 +473,26 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBObjectRecord"> <int key="objectID">0</int> - <object class="NSArray" key="object" id="349743695"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="object" ref="0"/> <reference key="children" ref="1000"/> <nil key="parent"/> </object> <object class="IBObjectRecord"> <int key="objectID">-2</int> <reference key="object" ref="1001"/> - <reference key="parent" ref="349743695"/> - <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> </object> <object class="IBObjectRecord"> <int key="objectID">-1</int> <reference key="object" ref="1003"/> - <reference key="parent" ref="349743695"/> + <reference key="parent" ref="0"/> <string key="objectName">First Responder</string> </object> <object class="IBObjectRecord"> <int key="objectID">-3</int> <reference key="object" ref="1004"/> - <reference key="parent" ref="349743695"/> + <reference key="parent" ref="0"/> <string key="objectName">Application</string> </object> <object class="IBObjectRecord"> @@ -459,11 +506,12 @@ <reference ref="781044416"/> <reference ref="368496192"/> <reference ref="480525277"/> + <reference ref="559273956"/> <reference ref="602421009"/> <reference ref="571076484"/> <reference ref="421615633"/> </object> - <reference key="parent" ref="349743695"/> + <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> <int key="objectID">2</int> @@ -550,6 +598,20 @@ <reference key="parent" ref="634265909"/> </object> <object class="IBObjectRecord"> + <int key="objectID">32</int> + <reference key="object" ref="559273956"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="960568152"/> + </object> + <reference key="parent" ref="928520650"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">33</int> + <reference key="object" ref="960568152"/> + <reference key="parent" ref="559273956"/> + </object> + <object class="IBObjectRecord"> <int key="objectID">36</int> <reference key="object" ref="571076484"/> <object class="NSMutableArray" key="children"> @@ -580,12 +642,12 @@ <object class="IBObjectRecord"> <int key="objectID">122</int> <reference key="object" ref="1044322163"/> - <reference key="parent" ref="349743695"/> + <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> <int key="objectID">130</int> <reference key="object" ref="306232897"/> - <reference key="parent" ref="349743695"/> + <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> <int key="objectID">144</int> @@ -597,7 +659,7 @@ </object> <object class="NSMutableDictionary" key="flattenedProperties"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>-1.IBPluginDependency</string> <string>-2.IBPluginDependency</string> @@ -623,6 +685,10 @@ <string>2.IBPluginDependency</string> <string>3.IBAttributePlaceholdersKey</string> <string>3.IBPluginDependency</string> + <string>32.IBAttributePlaceholdersKey</string> + <string>32.IBPluginDependency</string> + <string>33.CustomClassName</string> + <string>33.IBPluginDependency</string> <string>36.CustomClassName</string> <string>36.IBAttributePlaceholdersKey</string> <string>36.IBPluginDependency</string> @@ -649,7 +715,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{322, 542}, {618, 36}}</string> + <string>{{196, 720}, {618, 36}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> <string>ClickHoldButtonCell</string> @@ -684,6 +750,16 @@ </object> </object> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSMutableDictionary"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>ToolbarButtonCell</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>MenuButton</string> <object class="NSMutableDictionary"> <string key="NS.key.0">ToolTip</string> @@ -736,9 +812,7 @@ </object> <object class="NSMutableDictionary" key="unlocalizedProperties"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="dict.sortedKeys" ref="0"/> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -746,9 +820,7 @@ <nil key="activeLocalization"/> <object class="NSMutableDictionary" key="localizations"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="dict.sortedKeys" ref="0"/> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -824,7 +896,7 @@ <string key="superclassName">NSObject</string> <object class="NSMutableDictionary" key="actions"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>commandDispatch:</string> <string>commandDispatchUsingKeyModifiers:</string> @@ -845,7 +917,7 @@ <string key="superclassName">NSObject</string> <object class="NSMutableDictionary" key="outlets"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>otherObjectToLocalize_</string> <string>owner_</string> @@ -934,7 +1006,7 @@ <string key="superclassName">NSViewController</string> <object class="NSMutableDictionary" key="outlets"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>backButton_</string> <string>browserActionsContainerView_</string> @@ -945,6 +1017,7 @@ <string>pageButton_</string> <string>reloadButton_</string> <string>resizeDelegate_</string> + <string>starButton_</string> <string>wrenchButton_</string> </object> <object class="NSMutableArray" key="dict.values"> @@ -958,6 +1031,7 @@ <string>MenuButton</string> <string>NSButton</string> <string>id</string> + <string>NSButton</string> <string>MenuButton</string> </object> </object> @@ -983,9 +1057,705 @@ </object> </object> </object> + <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">NSActionCell</string> + <string key="superclassName">NSCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <string key="superclassName">NSResponder</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="680097003"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSApplication.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="214330444"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="568897720"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSButton</string> + <string key="superclassName">NSControl</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSButton.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSButtonCell</string> + <string key="superclassName">NSActionCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSCell</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSControl</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="636973055"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSController</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSFormatter</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSMenu</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="662735041"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSMenu.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AddressBook.framework/Headers/ABActions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSAlert.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSAnimation.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="680097003"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="214330444"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="568897720"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSComboBox.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSComboBoxCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="636973055"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDatePickerCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDragging.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSImage.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <reference key="sourceIdentifier" ref="662735041"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSRuleEditor.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSSound.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSSpeechRecognizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSSpeechSynthesizer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSSplitView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTabView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTableView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSText.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTextStorage.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTextView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTokenField.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTokenFieldCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSToolbar.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1021231619"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSWindow.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSConnection.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSError.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSMetadata.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSObject.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSPort.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSSpellServer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSStream.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSThread.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURL.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Print.framework/Headers/PDEPluginInterface.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">SecurityInterface.framework/Headers/SFAuthorizationView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">SecurityInterface.framework/Headers/SFCertificatePanel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">SecurityInterface.framework/Headers/SFChooseIdentityPanel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSResponder</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSResponder</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSResponder.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTextField</string> + <string key="superclassName">NSControl</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTextField.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSTextFieldCell</string> + <string key="superclassName">NSActionCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSUserDefaultsController</string> + <string key="superclassName">NSController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSUserDefaultsController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSView</string> + <string key="superclassName">NSResponder</string> + <reference key="sourceIdentifier" ref="1021231619"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSViewController</string> + <string key="superclassName">NSResponder</string> + <object class="NSMutableDictionary" key="outlets"> + <string key="NS.key.0">view</string> + <string key="NS.object.0">NSView</string> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSViewController.h</string> + </object> + </object> + </object> </object> <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> + <integer value="1050" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> + <integer value="1050" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string> + <integer value="3000" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> <string key="IBDocument.LastKnownRelativeProjectPath">../../chrome.xcodeproj</string> <int key="IBDocument.defaultPropertyAccessControl">3</int> + <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>back_Template</string> + <string>forward_Template</string> + <string>go_Template</string> + <string>home_Template</string> + <string>menu_chrome_Template</string> + <string>menu_page_Template</string> + <string>reload_Template</string> + <string>star_Template</string> + <string>starred</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>{19, 19}</string> + <string>{19, 19}</string> + <string>{19, 19}</string> + <string>{19, 19}</string> + <string>{30, 19}</string> + <string>{30, 19}</string> + <string>{19, 19}</string> + <string>{19, 19}</string> + <string>{30, 29}</string> + </object> + </object> </data> </archive> diff --git a/chrome/app/theme/content_top_left_corner.png b/chrome/app/theme/content_top_left_corner.png Binary files differindex c5659fb..2baaf4e 100644 --- a/chrome/app/theme/content_top_left_corner.png +++ b/chrome/app/theme/content_top_left_corner.png diff --git a/chrome/app/theme/content_top_left_corner_mask.png b/chrome/app/theme/content_top_left_corner_mask.png Binary files differdeleted file mode 100644 index 3506317..0000000 --- a/chrome/app/theme/content_top_left_corner_mask.png +++ /dev/null diff --git a/chrome/app/theme/content_top_right_corner.png b/chrome/app/theme/content_top_right_corner.png Binary files differindex b5eafce..25fd15a 100644 --- a/chrome/app/theme/content_top_right_corner.png +++ b/chrome/app/theme/content_top_right_corner.png diff --git a/chrome/app/theme/content_top_right_corner_mask.png b/chrome/app/theme/content_top_right_corner_mask.png Binary files differdeleted file mode 100644 index b2091e8..0000000 --- a/chrome/app/theme/content_top_right_corner_mask.png +++ /dev/null diff --git a/chrome/app/theme/ev_secure.png b/chrome/app/theme/ev_secure.png Binary files differnew file mode 100644 index 0000000..f504dff --- /dev/null +++ b/chrome/app/theme/ev_secure.png diff --git a/chrome/app/theme/geolocation_allowed_locationbar_icon.png b/chrome/app/theme/geolocation_allowed_locationbar_icon.png Binary files differindex ce795ac..f2d500b 100644 --- a/chrome/app/theme/geolocation_allowed_locationbar_icon.png +++ b/chrome/app/theme/geolocation_allowed_locationbar_icon.png diff --git a/chrome/app/theme/geolocation_denied_locationbar_icon.png b/chrome/app/theme/geolocation_denied_locationbar_icon.png Binary files differindex 8758205..c8a6c44 100644 --- a/chrome/app/theme/geolocation_denied_locationbar_icon.png +++ b/chrome/app/theme/geolocation_denied_locationbar_icon.png diff --git a/chrome/app/theme/location_bar_keyword_search_c.png b/chrome/app/theme/location_bar_keyword_search_c.png Binary files differindex 9ab374c..7ee83e2 100644 --- a/chrome/app/theme/location_bar_keyword_search_c.png +++ b/chrome/app/theme/location_bar_keyword_search_c.png diff --git a/chrome/app/theme/location_bar_keyword_search_l.png b/chrome/app/theme/location_bar_keyword_search_l.png Binary files differindex 39e640c..841d7c8 100644 --- a/chrome/app/theme/location_bar_keyword_search_l.png +++ b/chrome/app/theme/location_bar_keyword_search_l.png diff --git a/chrome/app/theme/location_bar_keyword_search_r.png b/chrome/app/theme/location_bar_keyword_search_r.png Binary files differindex 5428e06..2646a30 100644 --- a/chrome/app/theme/location_bar_keyword_search_r.png +++ b/chrome/app/theme/location_bar_keyword_search_r.png diff --git a/chrome/app/theme/lock_small.png b/chrome/app/theme/lock_small.png Binary files differnew file mode 100644 index 0000000..02646d9 --- /dev/null +++ b/chrome/app/theme/lock_small.png diff --git a/chrome/app/theme/o2_globe.png b/chrome/app/theme/o2_globe.png Binary files differnew file mode 100644 index 0000000..0fc4331 --- /dev/null +++ b/chrome/app/theme/o2_globe.png diff --git a/chrome/app/theme/o2_globe_selected.png b/chrome/app/theme/o2_globe_selected.png Binary files differnew file mode 100644 index 0000000..70617cd --- /dev/null +++ b/chrome/app/theme/o2_globe_selected.png diff --git a/chrome/app/theme/o2_globe_selected_dark.png b/chrome/app/theme/o2_globe_selected_dark.png Binary files differnew file mode 100644 index 0000000..cf28c10 --- /dev/null +++ b/chrome/app/theme/o2_globe_selected_dark.png diff --git a/chrome/app/theme/o2_history.png b/chrome/app/theme/o2_history.png Binary files differnew file mode 100644 index 0000000..72af696 --- /dev/null +++ b/chrome/app/theme/o2_history.png diff --git a/chrome/app/theme/o2_history_selected.png b/chrome/app/theme/o2_history_selected.png Binary files differnew file mode 100644 index 0000000..9a2502b --- /dev/null +++ b/chrome/app/theme/o2_history_selected.png diff --git a/chrome/app/theme/o2_history_selected_dark.png b/chrome/app/theme/o2_history_selected_dark.png Binary files differnew file mode 100644 index 0000000..54c2073 --- /dev/null +++ b/chrome/app/theme/o2_history_selected_dark.png diff --git a/chrome/app/theme/o2_more.png b/chrome/app/theme/o2_more.png Binary files differnew file mode 100644 index 0000000..61dfd29 --- /dev/null +++ b/chrome/app/theme/o2_more.png diff --git a/chrome/app/theme/o2_more_selected.png b/chrome/app/theme/o2_more_selected.png Binary files differnew file mode 100644 index 0000000..bb9616c --- /dev/null +++ b/chrome/app/theme/o2_more_selected.png diff --git a/chrome/app/theme/o2_more_selected_dark.png b/chrome/app/theme/o2_more_selected_dark.png Binary files differnew file mode 100644 index 0000000..30989eb --- /dev/null +++ b/chrome/app/theme/o2_more_selected_dark.png diff --git a/chrome/app/theme/o2_search.png b/chrome/app/theme/o2_search.png Binary files differnew file mode 100644 index 0000000..441001e --- /dev/null +++ b/chrome/app/theme/o2_search.png diff --git a/chrome/app/theme/o2_search_selected.png b/chrome/app/theme/o2_search_selected.png Binary files differnew file mode 100644 index 0000000..4727ab6e --- /dev/null +++ b/chrome/app/theme/o2_search_selected.png diff --git a/chrome/app/theme/o2_search_selected_dark.png b/chrome/app/theme/o2_search_selected_dark.png Binary files differnew file mode 100644 index 0000000..51bdca5 --- /dev/null +++ b/chrome/app/theme/o2_search_selected_dark.png diff --git a/chrome/app/theme/o2_star.png b/chrome/app/theme/o2_star.png Binary files differnew file mode 100644 index 0000000..5919bb7b --- /dev/null +++ b/chrome/app/theme/o2_star.png diff --git a/chrome/app/theme/o2_star_selected.png b/chrome/app/theme/o2_star_selected.png Binary files differnew file mode 100644 index 0000000..3e84497 --- /dev/null +++ b/chrome/app/theme/o2_star_selected.png diff --git a/chrome/app/theme/o2_star_selected_dark.png b/chrome/app/theme/o2_star_selected_dark.png Binary files differnew file mode 100644 index 0000000..c68cf4d1 --- /dev/null +++ b/chrome/app/theme/o2_star_selected_dark.png diff --git a/chrome/app/theme/omnibox_ev_bubble_background_c.png b/chrome/app/theme/omnibox_ev_bubble_background_c.png Binary files differdeleted file mode 100644 index 9210180..0000000 --- a/chrome/app/theme/omnibox_ev_bubble_background_c.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_ev_bubble_background_l.png b/chrome/app/theme/omnibox_ev_bubble_background_l.png Binary files differdeleted file mode 100644 index f393ea7..0000000 --- a/chrome/app/theme/omnibox_ev_bubble_background_l.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_ev_bubble_background_r.png b/chrome/app/theme/omnibox_ev_bubble_background_r.png Binary files differdeleted file mode 100644 index addddaf..0000000 --- a/chrome/app/theme/omnibox_ev_bubble_background_r.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_history.pdf b/chrome/app/theme/omnibox_history.pdf deleted file mode 100755 index 9b7e3f6..0000000 --- a/chrome/app/theme/omnibox_history.pdf +++ /dev/null @@ -1,1301 +0,0 @@ -%PDF-1.5
%����
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 30 0 R 63 0 R 93 0 R]/Order 94 0 R/RBGroups[]>>/OCGs[5 0 R 30 0 R 63 0 R 93 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 47877/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdf:Description rdf:about="" - xmlns:xmp="http://ns.adobe.com/xap/1.0/" - xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> - <xmp:ModifyDate>2010-04-05T10:47:43-07:00</xmp:ModifyDate> - <xmp:CreateDate>2009-11-11T14:17:05-08:00</xmp:CreateDate> - <xmp:MetadataDate>2010-04-05T10:47:43-07:00</xmp:MetadataDate> - <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool> - <xmp:Thumbnails> - <rdf:Alt> - <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>256</xmpGImg:width> - <xmpGImg:height>256</xmpGImg:height> - <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FUBquvaNpMXq6leRWq0qokYBm/1U+030DJwxylyCDIDmwnVvzs8v2xZNNtpr9x0dv3MZ+RY
M/8AwmZUNDI8zTSc46MS1H86fNdxVbSO3sl7MqGRx9MhZf8AhcyY6KA57tRzyY9eefPON2T62r3I
r1ET+iPuj4DLhp4DowOSR6pVPqWoz1M91NKTWvORm69epywRA6MbKGySHAkGo2I6HFUXBrGrW5rb
3txCfGOV1/URkDCJ5hIkU4svzE862ZHpatM4HaYiav8AyND5XLTYz0ZjLIdWR6b+d3mGAgX9pb3i
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
FLsVdirsVdirsVdirsVdirsVf//Z</xmpGImg:image> - </rdf:li> - </rdf:Alt> - </xmp:Thumbnails> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" - xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" - xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> - <xmpMM:DocumentID>xmp.did:F77F1174072068119B30B52A3A51FD83</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:3774efba-f592-5340-898c-c1bd3d17e978</xmpMM:InstanceID> - <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> - <xmpMM:OriginalDocumentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</xmpMM:OriginalDocumentID> - <xmpMM:DerivedFrom rdf:parseType="Resource"> - <stRef:instanceID>uuid:cb58d661-cdc7-e34a-aa9f-b935d8a59714</stRef:instanceID> - <stRef:documentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</stRef:documentID> - <stRef:originalDocumentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</stRef:originalDocumentID> - <stRef:renditionClass>proof:pdf</stRef:renditionClass> - </xmpMM:DerivedFrom> - <xmpMM:History> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:F77F1174072068119B30B52A3A51FD83</stEvt:instanceID> - <stEvt:when>2009-11-11T14:16:58-08:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - </rdf:Seq> - </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <dc:format>application/pdf</dc:format> - <dc:title> - <rdf:Alt> - <rdf:li xml:lang="x-default">o2_mag</rdf:li> - </rdf:Alt> - </dc:title> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> - <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" - xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" - xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> - <xmpTPg:NPages>1</xmpTPg:NPages> - <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> - <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> - <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>19.000000</stDim:w> - <stDim:h>19.000000</stDim:h> - <stDim:unit>Pixels</stDim:unit> - </xmpTPg:MaxPageSize> - <xmpTPg:PlateNames> - <rdf:Seq> - <rdf:li>Cyan</rdf:li> - <rdf:li>Magenta</rdf:li> - <rdf:li>Yellow</rdf:li> - <rdf:li>Black</rdf:li> - </rdf:Seq> - </xmpTPg:PlateNames> - <xmpTPg:SwatchGroups> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Default Swatch Group</xmpG:groupName> - <xmpG:groupType>0</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>White</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>255</xmpG:green> - <xmpG:blue>255</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>Black</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>27</xmpG:red> - <xmpG:green>24</xmpG:green> - <xmpG:blue>24</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Red</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>7</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Yellow</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>242</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Green</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>157</xmpG:green> - <xmpG:blue>62</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Cyan</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>160</xmpG:green> - <xmpG:blue>239</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Blue</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>35</xmpG:red> - <xmpG:green>28</xmpG:green> - <xmpG:blue>129</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Magenta</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>120</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>199</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>26</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>16</xmpG:green> - <xmpG:blue>29</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>55</xmpG:green> - <xmpG:blue>10</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>123</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>157</xmpG:green> - <xmpG:blue>32</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>251</xmpG:red> - <xmpG:green>237</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>202</xmpG:red> - <xmpG:green>221</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>101</xmpG:red> - <xmpG:green>192</xmpG:green> - <xmpG:blue>39</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>173</xmpG:green> - <xmpG:blue>54</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>136</xmpG:green> - <xmpG:blue>51</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>89</xmpG:green> - <xmpG:blue>42</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>173</xmpG:green> - <xmpG:blue>94</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>155</xmpG:green> - <xmpG:blue>140</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>154</xmpG:green> - <xmpG:blue>221</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>96</xmpG:green> - <xmpG:blue>176</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>29</xmpG:red> - <xmpG:green>36</xmpG:green> - <xmpG:blue>128</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>30</xmpG:red> - <xmpG:green>21</xmpG:green> - <xmpG:blue>80</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>91</xmpG:red> - <xmpG:green>18</xmpG:green> - <xmpG:blue>128</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>141</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>126</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>158</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>79</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>235</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>69</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>101</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>184</xmpG:red> - <xmpG:green>165</xmpG:green> - <xmpG:blue>135</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>142</xmpG:red> - <xmpG:green>113</xmpG:green> - <xmpG:blue>100</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>97</xmpG:red> - <xmpG:green>82</xmpG:green> - <xmpG:blue>69</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>75</xmpG:red> - <xmpG:green>57</xmpG:green> - <xmpG:blue>50</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>192</xmpG:red> - <xmpG:green>134</xmpG:green> - <xmpG:blue>85</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>162</xmpG:red> - <xmpG:green>103</xmpG:green> - <xmpG:blue>58</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>128</xmpG:red> - <xmpG:green>73</xmpG:green> - <xmpG:blue>42</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>105</xmpG:red> - <xmpG:green>58</xmpG:green> - <xmpG:blue>27</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>84</xmpG:red> - <xmpG:green>41</xmpG:green> - <xmpG:blue>11</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>49</xmpG:red> - <xmpG:green>26</xmpG:green> - <xmpG:blue>15</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>R=104 G=127 B=173 1</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>104</xmpG:red> - <xmpG:green>127</xmpG:green> - <xmpG:blue>173</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Grays</xmpG:groupName> - <xmpG:groupType>1</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>27</xmpG:red> - <xmpG:green>24</xmpG:green> - <xmpG:blue>24</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>49</xmpG:red> - <xmpG:green>49</xmpG:green> - <xmpG:blue>50</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>70</xmpG:red> - <xmpG:green>71</xmpG:green> - <xmpG:blue>73</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>89</xmpG:red> - <xmpG:green>91</xmpG:green> - <xmpG:blue>93</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>109</xmpG:red> - <xmpG:green>111</xmpG:green> - <xmpG:blue>114</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>128</xmpG:red> - <xmpG:green>130</xmpG:green> - <xmpG:blue>133</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>149</xmpG:red> - <xmpG:green>152</xmpG:green> - <xmpG:blue>155</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>173</xmpG:red> - <xmpG:green>176</xmpG:green> - <xmpG:blue>178</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>197</xmpG:red> - <xmpG:green>200</xmpG:green> - <xmpG:blue>202</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>224</xmpG:red> - <xmpG:green>225</xmpG:green> - <xmpG:blue>226</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>237</xmpG:red> - <xmpG:green>238</xmpG:green> - <xmpG:blue>239</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Brights</xmpG:groupName> - <xmpG:groupType>1</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>7</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>68</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>216</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>151</xmpG:green> - <xmpG:blue>56</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>17</xmpG:red> - <xmpG:green>43</xmpG:green> - <xmpG:blue>137</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>118</xmpG:red> - <xmpG:green>35</xmpG:green> - <xmpG:blue>135</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - </rdf:Seq> - </xmpTPg:SwatchGroups> - </rdf:Description> - </rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[95 0 R]/Type/Pages>>
endobj
95 0 obj
<</ArtBox[2.07227 2.0332 16.9282 16.9668]/BleedBox[0.0 0.0 19.0 19.0]/Contents 96 0 R/LastModified(D:20100405104742-07'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 97 0 R>>/Resources<</ExtGState<</GS0 98 0 R/GS1 99 0 R>>/Properties<</MC0 93 0 R>>/XObject<</Fm0 100 0 R/Fm1 101 0 R>>>>/Thumb 102 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
96 0 obj
<</Filter/FlateDecode/Length 310>>stream
-H�lRKR�0����˿�[Z�Ô.8@�iaZ�?��ؙ�0NI�{ҳ4�nq8l->��7��E#����u��0�O�?p��b,�Q���x�]�x�N,�����إ�Ȟ2�P]���������1�:�z�u��[��pK��^���&��^ -ْT�PK}>.�|RR
�g��V��Pe4k����=���*f1J(�y�Q��~�%6���%��+�/e��pe �fHM�q�N���uz�)a����jq��_�����!�W
�jR���ī9����n��8 ��A��� -8;V'g&!$eu0E;4r!KR~>
endstream
endobj
103 0 obj
[/Indexed/DeviceRGB 255 104 0 R]
endobj
104 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 -VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< -PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
100 0 obj
<</BBox[6.82129 3.875 6.82129 3.875]/Group 105 0 R/Length 0/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<<>>/Subtype/Form>>stream
-
endstream
endobj
101 0 obj
<</BBox[9.23193 8.42871 9.23193 8.42871]/Group 106 0 R/Length 0/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<<>>/Subtype/Form>>stream
-
endstream
endobj
106 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
105 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
93 0 obj
<</Intent 107 0 R/Name(Layer 1)/Type/OCG/Usage 108 0 R>>
endobj
107 0 obj
[/View/Design]
endobj
108 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
98 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
99 0 obj
<</AIS false/BM/Normal/CA 0.539993/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.539993/op false>>
endobj
97 0 obj
<</LastModified(D:20100405104742-07'00')/Private 109 0 R>>
endobj
109 0 obj
<</AIMetaData 110 0 R/AIPDFPrivateData1 111 0 R/AIPDFPrivateData10 112 0 R/AIPDFPrivateData11 113 0 R/AIPDFPrivateData2 114 0 R/AIPDFPrivateData3 115 0 R/AIPDFPrivateData4 116 0 R/AIPDFPrivateData5 117 0 R/AIPDFPrivateData6 118 0 R/AIPDFPrivateData7 119 0 R/AIPDFPrivateData8 120 0 R/AIPDFPrivateData9 121 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 11/RoundtripVersion 14>>
endobj
110 0 obj
<</Length 945>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (o2_history.pdf)
%%CreationDate: 4/5/10 10:47 AM
%%Canvassize: 16383
%%BoundingBox: -7 -7 8 8
%%HiResBoundingBox: -6.92773 -6.9668 7.92822 7.9668
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -9 -9 10 10
%AI3_TemplateBox: 32.5 15.5 32.5 15.5
%AI3_TileBox: -305.5 -395.5 306.5 396.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -14 19 24 1283 726 90 0 1 113 121 0 0 0 0 0 0 1 1 1
%AI5_OpenViewLayers: 7
%%PageOrigin:0 0
%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
111 0 obj
<</Length 12160>>stream
-%%BoundingBox: -7 -7 8 8
%%HiResBoundingBox: -6.92773 -6.9668 7.92822 7.9668
%AI7_Thumbnail: 128 128 8
%%BeginData: 12018 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD35FFA9A97E847E7E535A535A535A535A537E5A847EA9A8FD66FF
%A8A87E5A535A2F532F5A5353535A5353535A53532F5A2F532F5A535A59A8
%A8FD5EFF8484535A2F5A535A535A535A535A535A535A535A535A535A535A
%535A535A535A2F5A537E7EFD58FF7E7E53532F5453532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A2F532F7E7EA9FD51
%FFA884535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A537EA8FD4DFFA853542F53535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A53532F535384A8FD48FF7E7E535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A7EFD44FFA9A853532F5A53532F5A
%53532F5A53532F5A53532F5A53532F542F532F532F532F532F532F535353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F84A8FD40FFA87E535A
%535A535A535A535A535A535A535A535A535A535A535A597E7E847EA87EA9
%FD047E5A5A535A535A535A535A535A535A535A535A535A535A535A535A7E
%FD3EFF7E532F5A5353535A5353535A5353535A53532F53535A598484A9A8
%FD0DFFA9A984A87E5A53542F53535A5353535A5353535A5353535A535353
%A9FD3AFFA9535A535A535A535A535A535A535A535A2F5A537E7EFD1BFF84
%84595A2F5A535A535A535A535A535A535A535A5384FD37FFA87E2F532F5A
%53532F5A53532F5A53532F53537E7EFD21FFA87E53532F532F5A53532F5A
%53532F5A53532F5AA8FD34FFA87E535A535A535A535A535A535A535A537E
%84FD27FFA87E535A535A535A535A535A535A535A535A7EFD32FF7E532F5A
%5353535A5353535A53532F5A59A9FD2BFFAF7E5A2F53535A5353535A5353
%535A535359FD30FF7E5A535A535A535A535A535A535A537EA8FD2FFFA984
%5354535A535A535A535A535A535453FD2EFF53532F5A53532F5A53532F5A
%2F5353A9FD34FF7E532F5A53532F5A53532F5A53532FA9FD2BFF595A535A
%535A535A535A535A535A84FD37FFA87E535A535A535A535A535A535A53A9
%FD28FFA953545353535A5353535A53532F7EA9FD3AFFA85353535A535353
%5A5353535A2FA8FD27FF535A535A535A535A535A535A53A9FD3EFF5A5453
%5A535A535A535A535A53A8FD24FFA92F5353532F5A53532F5A535353FD41
%FF7E532F5A53532F5A53532F5A2F84FD23FF535A535A535A535A535A535A
%7EFD43FFA85A535A535A535A535A535A53A9FD21FF5353535A5353535A53
%592F5A84FD45FFA85A2F53535A5353535A53532FA9FD1FFF595A535A535A
%535A535A535AA8FD47FFAF7E535A535A535A535A535A53FD1EFF7E532F5A
%53532F5A53532F5AA8FD49FFA87E2F532F5A53532F5A535353FD1CFF845A
%535A535A535A535A535AA9FD4CFF7E2F5A535A535A535A535A5AFD1AFFA8
%5A5353535A5353535A5359A8FD4EFF7E2F5A5353535AFD04537EFD19FF5A
%535A535A535A535A535AA9FD50FF7E2F5A535A535A535A535AA8FD17FF7E
%2F532F5A53532F5A535384FD22FF7E597E597E597E59A8FD26FFA95A2F5A
%53532F5A53532F5AA8FD15FFA9535A535A535A535A535A84FD23FF535A53
%5A535A53547EFD27FFA95A535A535A535A535A5384FD15FF535A5353535A
%FD04537EFD24FF5A2F5A5353535A2F7EFD28FFA8545353535A5353535A2F
%A8FD13FF7E54535A535A535A535A59FD25FF535A535A535A535A7EFD29FF
%7E5A535A535A535A535A59FD12FFA85353532F5A53532F5353FD25FFA85A
%53532F5A53532F84FD2AFFFD04532F5A53532F537EFD11FF7E535A535A53
%5A535A53A9FD26FF595A535A535A535A7EFD2BFF535A535A535A535A535A
%A9FD0FFFA82F5A5353535A53532F7EFD26FFA95A5353535A53532F84FD2B
%FFA92F53535A5353535A2F7EFD0FFF595A535A535A535A535AA9FD27FF53
%5A535A535A53547EFD2CFF7E535A535A535A535A53AFFD0DFF7E5353532F
%5A53532F537EFD27FFAF5A2F5A53532F5A2F7EFD2CFFA85A53532F5A5353
%2F5359FD0DFF7E535A535A535A535A5AFD29FF535A535A535A535A7EFD2D
%FF7E5A535A535A535A535AA8FD0BFFA82F5A5353535A53532FA9FD29FF5A
%2F5A5353535A2F7EFD2EFF5353535A5353535A2F7EFD0BFF5A5A535A535A
%535A537EFD2AFF535A535A535A535A7EFD2EFFA9535A535A535A535A53FD
%0AFFA85353532F5A53532F53A8FD29FFA85A53532F5A53532F84FD2EFFA8
%5A2F532F5A53532F537EFD09FF84535A535A535A535A5AFD2BFF595A535A
%535A535A7EFD2FFF845A535A535A535A537EFD09FF535A5353535A53532F
%A9FD2AFFA95A5353535A53532F84FD30FF5353535A5353535A2FA8FD07FF
%A854535A535A535A537EFD2CFF535A535A535A53547EFD30FF84535A535A
%535A535A7EFD07FF7E2F532F5A53532F537EFD2BFFAF5A2F5A53532F5A2F
%7EFD30FFA85353532F5A53532F5AA8FD06FF535A535A535A535A53FD2DFF
%535A535A535A535A7EFD31FF7E5A535A535A535A53A9FD05FF8454535353
%5A53532F7EFD2DFF5A2F5A5353535A2F7EFD31FFA82F53535A535353547E
%FD05FF842F5A535A535A535484FD2DFF535A535A535A535A7EFD31FFA95A
%535A535A535A537EFD05FF53532F5A53532F5A53FD2DFFA85A53532F5A53
%532F84FD32FF595353532F5A53532FA9FFFFFFA95A535A535A535A537EFD
%2EFF595A535A535A535A7EFD32FFA9535A535A535A535A84FFFFFFA92F53
%535AFD04537EFD2DFFA95A5353535A53532F84FD32FFA85A5353535A5353
%2F7EFFFFFF7E5A535A535A535A53AFFD2EFF535A535A535A53547EFD33FF
%535A535A535A535A53FFFFFF7E2F5A53532F5A5359A8FD2DFFAF5A2F5A53
%532F5A2F7EFD33FF7E2F5A53532F5A5353A8FFFF535A535A535A535A5AFD
%2FFF535A535A535A535A7EFD33FF845A535A535A535A53A9FFA853535A53
%53535A2F7EFD2FFF5A2F5A5353535A2F7EFD33FFA92F5A5353535A53537E
%FFA9535A535A535A535AA8FD2FFF535A535A535A535A7EFD33FFAF5A535A
%535A535A537EFF7E5353532F5A53532FA9FD2EFFA85A53532F5A53532F84
%FD34FF53532F5A53532F5359FFA8535A535A535A535AAFFD2FFF595A535A
%535A535A7EFD34FF7E535A535A535A537EFF595A5353535A535353FD2FFF
%A95A5353535A53532F84FD34FF7E53535A5353535A53FF7E535A535A535A
%537EFD30FF535A535A535A53547EFD34FFA9535A535A535A535AA953532F
%5A53532F5359FD2FFFAF5A2F5A53532F5A2F7EFD34FF7E5353532F5A5353
%2FA95A535A535A535A537EFD30FF535A535A535A535A7EFD34FFA9535A53
%5A535A535AA85353535A535353547EFD30FF5A2F5A5353535A2F7EFD34FF
%84545353535A53532FA95A535A535A535A2FA8FD30FF535A535A535A535A
%7EFD34FFA9535A535A535A535AA82F5A53532F5A53537EFD2FFFA85A5353
%2F5A53532F84FD34FFA8532F5A53532F5A2FA85A535A535A535A53A9FD30
%FF595A535A535A535A7EFD35FF535A535A535A535AA8535A5353535A5353
%7EFD2FFFA95A5353535A53532F84FD34FFA853535A5353535A2FA85A535A
%535A535A537EFD30FF535A535A535A53547EFD34FFA9535A535A535A535A
%A853532F5A53532F5359FD2FFFAF5A2F5A53532F5A2F7EFD34FF7E535353
%2F5A53532FA97E535A535A535A537EFD30FF535A535A535A535A7EFD34FF
%A9535A535A535A535AA95953535A5353535A53FD30FF5A2F5A5353535A2F
%7EFD34FF7EFD04535A535353FF7E535A535A535A535AFD30FF535A535A53
%5A535A7EFD34FF842F5A535A535A535AA97E5353532F5A535353FD2FFFA8
%5A53532F5A53532F7EA8FD33FF59532F5A53532F5453FFA9535A535A535A
%535AA8FD2FFF595A535A535A535A535AA9FD32FF7E535A535A535A537EFF
%84545353535A53532FA9FD2EFFA95A5353535A5353535A2F53A8FD31FF53
%53535A535353547EFFFF535A535A535A53547EFD2FFF535A535A535A535A
%535A535AA8FD2FFFA85A535A535A535A2FA9FFA9592F5A53532F5A2F7EFD
%2FFF842F5453532F5A53532F5A2F537EFD2EFFA82F5A53532F5A53537EFF
%FF595A535A535A535A53FD30FFA9535A535A535A535A535A535A7EFD2DFF
%7E5A535A535A535A53FFFFFF7E2F5A5353535A5353A8FD30FFA95353535A
%5353535AFD04537EFD2CFF5A2F5A5353535A535AA9FFFFA854535A535A53
%5A53A8FD32FF535A535A535A535A535A535A7EFD2BFF535A535A535A535A
%7EFD04FF53532F5A53532F5359FD33FF53532F5A53532F5A53532F5353FD
%29FF7E5353532F5A53532FA8FD04FF7E535A535A535A535AA9FD33FF5A5A
%535A535A535A535A535A53FD28FF7E535A535A535A535AA9FD04FF7E5353
%5A5353535A2FA8FD34FF59FD04535A5353535A535353A9FD26FF535A5353
%535A535353FD05FFA9535A535A535A535A7EFD35FF7E5A535A535A535A53
%5A535A53A9FD24FF8454535A535A535A537EFD05FFA85A53532F5A53532F
%5AA8FD35FF7E532F532F5A53532F5A53532FA8FD23FF7E2F532F5A53532F
%5384FD06FF7E5A535A535A535A53A8FD36FFA85A535A535A535A535A535A
%5384FD22FF535A535A535A535A53FD07FFA92F53535A5353535A53FD37FF
%A8532F5A5353535A5353535A2F7EFD20FF7EFD04535A53532F7EFD08FF7E
%535A535A535A535AA8FD37FFA95A2F5A535A535A535A535A537EFD1FFF5A
%535A535A535A5354A8FD08FF7D5353532F5A53532F7EFD38FFA85A2F5A53
%532F5A53532F5A2F5AA8FD1CFFA82F532F5A53532F5353FD0AFF535A535A
%535A535A53AFFD39FF7E535A535A535A535A535A2F84FD1CFF595A535A53
%5A535A53A8FD0AFF7E2F53535A5353535459FD3AFF7E2F53535A5353535A
%2F5AA8FD1BFF7EFD04535A53532F5AA8FD0AFFA85A535A535A535A535AA8
%FD3AFF84535A535A535A535AAFFD1CFF5A535A535A535A53547EFD0CFFFD
%04532F5A53532F7EFD3BFF842F532F5A2F53A8FD1CFF842F532F5A53532F
%5A2FA9FD0CFFA9535A535A535A535A53A9FD3BFFA9535A535AA8FD1DFF53
%5A535A535A535A537EFD0EFF7E5353535A5353535A53FD3CFFA92F5384FD
%1DFF59545353535A5353535AA8FD0EFFA85A535A535A535A535A7EFD3CFF
%A97EFD1DFFA854535A535A535A53547EFD10FFFD04532F5A53532F537EFD
%59FFA85A2F532F5A53532F5A53AFFD11FF535A535A535A535A535AA9FD58
%FF7E535A535A535A535A53A8FD12FF842F53535A5353535A2F7EFD57FF84
%2F5A5353535A53532F5AFD13FFAF5A535A535A535A535A5384FD55FFAF53
%5A535A535A535A5354A8FD14FF845353532F5A53532F5A2FA8FD54FFFD04
%532F5A53532F537EFD16FF7E5A535A535A535A535A53AFFD52FF595A535A
%535A535A535A53FD18FF5353535A5353535A53532FAFFD50FF5953535A53
%53535A53532FA9FD19FF535A535A535A535A535A53FD4FFF5A5A535A535A
%535A535A5384FD1AFFA82F532F5A53532F5A53532FAFFD4CFF59532F5A53
%532F5A53532F7EFD1CFF842F5A535A535A535A535A53FD4BFF7E5A535A53
%5A535A535A537EFD1EFF7E2F5A5353535A5353535A53A9FD48FFFD05535A
%5353535A5353A8FD1FFF5A535A535A535A535A535A53A9FD46FF5954535A
%535A535A535A535AA8FD20FFA8532F5A53532F5A53532F542F7EFD43FFA8
%2F5353532F5A53532F5A53537EFD22FFA85A535A535A535A535A535A2F7E
%FD41FFA8535A535A535A535A535A535A7EFD24FFA85A2F53535A5353535A
%53532F5AA8FD3DFFA87E2F53535A5353535A53532F537EFD26FFA85A535A
%535A535A535A535A535A7EFD3BFF845A2F5A535A535A535A535A535A7EFD
%28FFA85A2F532F5A53532F5A53532F5353A8FD37FFA9FD04532F5A53532F
%5A53532F5384FD2BFF7E2F5A535A535A535A535A535A537EA8FD33FFAF84
%535A535A535A535A535A535A535AA8FD2DFF7E2F5A5353535A5353535A53
%532F545AA9FD30FF7E5A2F53535A5353535A5353535A2F5AA8FD2FFFA853
%5A535A535A535A535A535A535A537EA8FD2BFFA8845354535A535A535A53
%5A535A535A2F7EFD32FFA9FD04532F5A53532F5A53532F5A2F5353A8A8FD
%25FFA8A959532F5A53532F5A53532F5A53532F532F84FD35FF7E5A535A53
%5A535A535A535A535A535A535A7EA9FD21FFAF7E7E535A535A535A535A53
%5A535A535A535A59AFFD37FF845A2F5A5353535A5353535A5353535A5353
%2F5A59A8A8FD19FFA8A87E5A53532F5A5353535A5353535A5353535A2F53
%7EFD3BFF7E2F5A535A535A535A535A535A535A535A535A535A537E7EA9A8
%FD0FFFA8A9847E535A5354535A535A535A535A535A535A535A535A2F7EA8
%FD3DFFA953532F532F5A53532F5A53532F5A53532F5A53532F532F53535A
%537E59FD047E84597E535A53532F532F532F5A53532F5A53532F5A53532F
%5A53532F535384A9FD40FFA87E535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A7EFD45FFA853532F53535A5353535A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A53532F53537EA8FD48FF847E5354535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A7EFD4DFFA97E532F5353532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F532F5353
%A8A9FD50FFA9A97E5A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A5AA8A8FD56FFA8A8595A53532F
%5A5353535A5353535A5353535A5353535A5353535A53532F5A2F532F5A59
%84A8FD5EFF8484535A53542F5A535A535A535A535A535A535A535A2F5A53
%5A537E7EA9A9FD64FFA8A98484597E535A2F5A53532F5A5359537E7D7E7E
%A9A8FD34FFFF
%%EndData
endstream
endobj
112 0 obj
<</Filter[/FlateDecode]/Length 15493>>stream
-H��W�R�����Sl� -r*,�˳V�g�W-��q����E�\�`�
1-��Q^�B�H��X���`]�1T�,��~7�~� WZ�j\�~�f�s��n�2��kۖ8��
�Y�L%ꪧ�������Da�� -������0�D1*cKw���ʞ�Q\`3���E��\���<T4zB]��Vm��rt�P"��
��
�Y�56ٶ: -۶z���s8�dS�M�ƻ�����Z��'�]��E��6�ԕ����`�'�0Ƽ�رU9���\<� ��1#�6)f�z�džȫz(%�n�<�*q/���X[x~���L�d���{
H���F2F/I�ƞ���b����EI67�qD=��� -�<��9�r�Te�t#�Q���r'm���6�!��a]�G5C<Px��0k$[N����`G��H��t<��5uvF`+��P%\�xUnG�vbG�2T�>G>0P��^�q��41� �#��E����
�"E�U�'#}�>ұ2K���\�S��tJ�?�2�E��k1��ʫ`���t����=k�!�q��q���>�lf9)���/�V��BC��#��M7�A4c�0{l�\y`mKI���)aƓ:�W1�M�����B27
���Z��[��$�tl���ձkL�G�X��+��uh�1(�����AxrY��"",�li'cX��JGk��,�%���\�<�d��2�`t�&�B+�>��z�!$lA��S_.�TL=��@�V�TBגqQ˃���D��
��[s�\4$�2� -�ɟ����`�\*p�i[������o��=`{�Vk0��!��l\L+����f�Pv�{�.�����V����bJ��7���������vI��RT�Z��!���W���r_]�#I� �����@e�09�L�����[� �=sfg����QWW�+g�n������#�����Q�-�۞j������f�n0(C��K4�Cն&Na�BVh��%2��|�"��Gq��)�2/�"yr���B����Z'�#��\�#�, t�$������5^->�W6=]�ȓW��_EHXR�H(^��)���M�Y}K8i���f_�8է��)- I�������q��T��_���7��2��B��b0�Դ/�D[�w��"-;Cq��"i}�6QD�̈����M^�qب|�P�?U16�q��O�p�ȶ?ؠ������3�,���M{@ֆ��ݣ�ª�SOOn�?u���H�{A!��XE�� a�}u��ݱG���ο�%�ŎS����(��اG�OW�<�6�1�k�bE���uf��<{�8��+�(��[�B�vf�i�S3B9H��Ls�Ec.��I����X�����}��9'��c�'�0��*>���۔� -�a$��[��-����z�I#��X.��=rNU�_]�)я��(���VMtE��@�*mTp��|;��J��> ,OӍ�w|s�u��2���]9�xB������}x�(�q��K�7O���9��r����p�~4_�x�~$����rO���<|�����u�E��@��~W$Ya��/6��j{���c��V����,�^�[�y��H��hԛ5��'GD��CŞ8B����ƨ(Z�?�ؼ�Q�@�#D��!�87�[Du>l��$���g��f+▦�O'Y<i��62�LR�Ny|*�^8u3�퓳�zR씟�C�g���K8��*~c���|0��t�:��&���X�U=���I�H�,l�__WS���d*����l&�h*����Y����!���(��Z� -������M�����78
� -C��\��dS���\N� �l���~��Ͷ�U8� ���7��B�4J�譗R�0t1r6N%/�>��EZqg��!'OVne�q"q��������������d��Y<�U��[��۶H'���q~��%U=v��ጯo� -��0���M�^ -�v�T�\��H�=�F��,���< 6#��l{cT�, �o��9)��
k -{OVl��}�����m�����x��A7�B��[��7��I ��D��,'����ҿ\N�`5���k��L��x�uьN�k�;��ۆ�\��y�-�ʚ��E��7�n���6��p�.�T�]R��c��i���8�q�,��8�w�J
K�%�y�
68~~����R���Tw�N�7E~[*0�� -\ '�)CC����6�WtV�r+�ҫ6���)x���C���{��_�+L�o�9^�褞�ĸ���6�f``��f��~ϫX���(<^��sÐ��ꍀE��ǯ �2�����:n�`'S�͚4�T��g�%(���r���G����3de��l�8������'��P�r��)[��{n�Vn��?�\t�/�;I���*Yڇ���� �����k�O�kH*��8o�So�,�&�鑹݉�Έ��^��@F��/ǝ�Ϥ����?�<��� w|.敀?�rՁ�&8�Bw�+����p�x��:5��4?f���V�+��j���L�P��T<F8ƾG�C�`�k��1���Q�u@�����I'��?�^�"f��*����ׂ���C��A|�Ȭf�hK�\���f9F�r�G�5t�K��Ds��F$�h�Q�����'^�E�؍�jy*M7L�|�gI�fII�;q3 -��p8�oQ�2�K�f#���)_��p= -L[4v<���r+�!n
�7�A��k~�;����
H0���8�_��0�bkT����uɀI�����S��<���f��Ypt�<!�w>�cjP�:I<X�_��my��f� �v7��U��7 �ŝ���Utz��*���F��V -��F�@uf?)�lz\
e���$��IWP*��>4�\sM�{1�<�uWc���84���L(���L_�k�N�����pP����h�CwW^Y�r����_M�SoK]O-��7邼"��L��KO���N{�+�v�.Oҕ��l�_��\�J���B���*�NTm�O�w0g�8����5FE�&�AQe��\���8aڤ��M������v�ڥN����8�O������s����"����:�2�Z�>W��O�@=9|P+i�o ��=(2�w�ã)��;��ysK���F
�?�(Z���)��|,��sO���Z��i -3kU0×�>|�E��@0���#PE�5щW�3,o�Bi�q��I�/>��"�G&hi���t�ٵ�"�����N07g��n)�V�s�1x#Y~�i����P 1p�d����D -���|���lN�$�#41�H�LwTs���Z�����pD�z -��!�C������c�K���t�ͬ�t�):��[=/�|[�s/��\�omiqr����$2���1lt�:h=ɋ��}�^5D�_�� 4w^t��Ao�i_��&�������y���6�g� -?�b������,��g`N�=��[�_��x�����h�k^�06"��\r�����|;r��C��#Q;D'����Қ�dU��I1�7+D&Ұ��$��ݫgA�U�O�9*< -�T�#:�:p9�� -��� ��ّ���5F��4�U%j�� -�x���.\��!���"Y�
�"�ð�+�P���ҿ��T��8���t�\�g�� ���o�F�b�ah��4=&)Y79�T���C qWCٸZ�n�,�du�z+_;�l���GGu��5uKh�?���I���n"����˪*������v'�-�����x���>��&�:�5YY2~��ך���;�/�L�~���h�?M?|�bE�T^��w�� ;W��3
p (Ƌ���,<�ۣ��7�۪�r+ȱ�tSR��_�Qw�^6q��^C�d�r��������(�A4�j��.��ԍ��M��0����b�+($�Ϭ�PW��
A��e-��z��ʦ���~/5���R�x�VW~��n�������/Z�Y#;z����Z�2�p߷�w v��%��#i������+� ���'4��/�[���o�پ }H%��������z�����{g
�l�<DM2h�P1��{���FD�d�?<��VUW]%�����G���߹�n#X<��?��~����_��V�%_���e��� -ج6������]�?�;YdP-��s��?lÂ��X���S(P�����9�lv'��a����Z�5k]�V�P����5�Y%�� -U̢d��}\��p���o��S���Y��ֺ��ˌuǀM�2� -q�9��t��B%��Zc������N�n�z�0G��sr��ϙ�8�]�LaD�~�x�^-7�� -�U>��~2�ZH�2W0����kqP���g���*�w���@�ZHc�e�?�B�!��v$���<�V.��4ՌB�5@-�d��|��h��c�6?��Ƿ��-Q-�8�@Q�b����v�ڻw���G��̠H�#�7���b�l�5��1��M��.���;����ױ~T��G!mm�ɗ�C:c63(h2¾N�6���'�-�X2�����3�B�OۺE��u�_�貂���X�̡�/a��L�
P�(�i=�a,�=��^��f�0�&��0��6�m<4�i|�B�a���x�Mƫ@iW�]���Iͼ�<��5(P���>�~F4B%ޙQ�r�g��1�#�0�/��/J/Y(�
^�R=�� -Т|%�5[�ͅ!���� ;R�G�(*�!�̜CP� -�8Z�F��S����e�0�D������G� ��B�K�"z�)��yz;j��c����6ڕy�zs�E?���]�ac��
4��N�]+��`�}?��ڜ�[��<��&3��:���a\ȭh��V�t0И�9���`���%�2�c�X�IEW�]ꡑ��B갉v���.�N�U��34lH/��ϑVwP�@�^�؋gh,T��1P����hP��"�1 - �"x(���P����y�i"x�ta�JO�A�ٿ������l�W�R7�S.��yor�s���y3f���ߟ~|/�V�NU��<ʫjyutg�=�N�\� ᕃ�����`8�w{ʯ=��{ ��p5 %�BfOZ8��V��&k�/ŋl��Q�bʈ֤I�gˤ��x���'��� ��p|�}���ݚ-��GW�1�:��/���w��)ʯ���?8QC{�s��U9�E��L`i�%�jDIRy��|���̜�&���.M.(ݖ�v�:ʧ��JG+%堖�C���|����"��Y��z�n%�4�'�CpI -b1�p1l�5���1����MN�r�,��@-�S��b�=v&��J�L�
� -�p�>�.���w���މ�h�,>� {��sC=?�����M��� -��p�1��a�gA�ŶCQ�$�ؓ -���G��E�OXQ�V��SK�p6G`�]wA�a����ԗ��TC��|�
�,~eF���X�������B�{�z���߭YZV�`���^N�`�(���j��*��0�=+�{�r�Ȫ�X�ܭ#�!���
����ۨjhW_K�Xmkeq���8��� �Ӎ�%8�V�p�����n�x�'�`Q�ˋ����r-����u: _�]D���=G�8��9�\��剉`�TJ܉���-L�B�'K�BQꮔ�r}��㹧��|;,�����ǫ�Ud��F�,��r=���q�K�߹����z��oX��v���$�����#!b��Y�Y|kp:9-&��Y� :q����LH%%9���Z]O�N��ߙ��݃��fS6�����Xn�Њ�Tb�n�ۀ?Mb���o���߶c��U~�*?�I������t+<�g���.6��npKTR�ߺ�B�<��˵*쾃r���*�ǻ��{\�|w�K@P3�؉�6��B�������K�Q���ٯ����[�����f���s-�_~]��+V�ׄ�w���}�=�Nb���_c�>kZ��X�=�P� -pR�$_=?v�$l�/e�U�^7�'�T���+L_w���ۦw�Ȧd�/��J�sX��@���M��9���W�Z̛ ���N���(�K� -+�S�[�w'�}��>%K+�I5 -�{�DrME��8lB<�H�a�f�i��
/M�}�
���t���$�[R�Z��!��A�n�9SD����J;���b��ӆ--����b�AA�]� -Q�ϦCv�ٶ��{�MK���X�ZlO����5 -uJ�G�> -ä��/0��,�D.s�� p:�Mɺ�DI5 -�{�d���b��I�:!�]ҙ1n:b�Zwomƌu��Č�������3)8��(D�\Q%ΆJ�V��vw��h��\���qJ�8ףG(-�*
�>q��0o�Z -(�z�V{���=�f��˺v�T�����+%v裷f4Z4�:v�[���F�WJ��Q�QҪ)t�1ل�����$��WŁ�J�e�eǰk��0<�T1�,3�ǔo�����J�.��'��%��zj�^fô�,�Z,%��{���I]eq���0 ��ˢn�sK��Hh���g����ٰ�4@�F�d���h'&��9vr�*/QI��(}��"����"Y�L=����EϾl�J�c��Sf ��C�1\6{g츂S~�1z��p;c�1��q�w0��m4���]��� -�"�x9��l.;��鴅���J 6S&/�nԠM�%�G�������� T(�";ύ�Z���M�f��B����M-�+H��{+���S���ܬ�� Ԝ&� -�!��j9sC�p�;f�!��������W��� 0M�������
���o�3ƹ ~�Ew<r����r]��� -p��w�q��D��G��@3%jO֏��49��)�Ӿ�����%Y����7�S��2&��Z@c�u<1_���S�M!&'����4o�h�z����{�5� S��R�K��du� �d���Ep�
��\oT��00��
-u���g��c1?���>��F� -� -�c��SV -��<Y'�"���V�h��a$8_u;�ʄW�VD5�l�(��veL�}�?�_c�����+�[��h'�A�pJ�֛hG%��E���ш�V��
c���ժ��oA]��(F��9C*�lA�� +ˎiQ�5�7P+�3���J�8�2�nKQ��CES��Y0x��JI�a :; -�0���oL��z��!���z�%w�)�uJ��ئ�g��B���j�������72�yb(�;/�'l�t�[�O���0�v���e�$U���cl(,�^cpAōT��I�����ZS����r+�ܱ
�|T�~�@�#'��@;Y0�4���z�r�e� -���j}�N^���w��*��x+4�ǦS�nt���&4V�c
g����-���CY��W���
VI����X�%��-;�wK�2c4[��r�e����0 -H��W�Z�J}�<�@��VZ�RA�\>�Xi ����\g��$�?�����Ŝ\n)���@���Y%+w��w9��\�?���ż��eM��i-m<��TM����vvRK�z>�'�Վ��@0 -z!=� -q��nϒ~��~�*���j��m�գ��� �+��mi3����f�Gv/��i�)'�#uc��Q���) -���GDӿ���Fg�p�w*��/��GG��+��h^������r��0qZ)���&)�������L���;���0/��L��*
%�e=�ƾ����)�(�%��晱*����iT�\f���6���~?I:FA,�1b���r.�O�x�1�K_�;�h3z��LT�Ҍ -"L�;V�h���0�*�����yT,��ϑQS�� �ym���F���=ͨ �V��t�&�ѯ�:#�QM6�Qk#�1��������*e��3���)��!�[���O�rq�ל5 b�H�i}�Pn�Lv/Ϛs@$k�1�'�dI=K¹�˥a��n&�R�`��n!wsT�����$��A�uR�z�;��TmG8���F��-}��� 2oB�z+]��Ձ� R���Ԩy"6��ҙs�&�)y�8+ݪ>�ԁ?.1�n��͛�KF���m��'���=�M��,>\wS��;����$�^N-���0-��)ӟ�=��i9�ƕ�F+G�W��rǿ�⨹�����1���{Mgח'�'Ą�߬�1C�I#�I��k��1C�����Y5���W겟�V�L�%�#�Z��Q��Hy���ܓ*G#�)���P�lj�M���H��Ǯ�2sL@ "
�̼F -A`*d�P�������&LC.�/.=j0;H�e�*�(�ANF!�cf����o�{g��p��g������ ��jz�������"�oڈ[�T,�C{��믻�z���@Tc���A���)�m"�f^,E⳾OM�f�R��� /Y�2"\�Ü�U�/ڌ��U�KQ�%�1�SN�|(J��u�{i����Q�J��
S?3�,e��
?����j���P`��·_���[%\ƞ���2�\L�Zƈ�2cW�)�z@LZ�:43���'��>l}�1��֮�*a�/'> -��'�[P�$��Gb��~K2��_+�ֹ��@A$� -WOE�TO�D}�]5��,2�^�.�4�s�9��b�����p1n�ܣ���3�R|-phd��{�94|��q �1�@,��� -١���%ˑS� B��%{�w��T��k�{9���3�:g:e��xl�Wn�����FW���~�\֕�Fw�ǕH��X2��C=*j'�i���ģg,+f��`�� -��<؆~]�9 -���ޡϪ��&� e���Ǐ*nDE�JPs�� c�jqj�Ep�9�iv�+�]y̶|��<1�i19�0��ڜ���!8��dH]�.�%;��|�v����C -vҀ5,5Β���P��l�m�5�X@K���F�b_bV��/��=�Ah�D��`�a�ᢛӡGD����/�;�|� ��}�Zʳ�>�nNq��u�Z�C)}01�>��V��l������a���`��HR����Uv������q%�7ry}qɬ�1a$���v� 6�[�mqt��z��`=��P��=�ݤ�2� �<q�T��f A��������qx��jls�.�I -�c;a���RSM�N�����(�<���R�P���R���e|3�]X��T��R�R ���;�b%�kI0�jn+�Z�e��"���`�C���ц�.��{<T;~�la��Ǿu��qV_�1�P�����F���xb�pN?%**}�[,N�}�l��C�!D�,Ap�܅OW�v-u�>�<�h�IC�;N!�ih�p�Hh*���p��!��
X$�o1,<
A��k�j��]�3< ��P2�����Ÿ8 -����g -{k� -b���ސ]�9%�'����a�y����w!�&@�eLCA=G�L�{CLK�SLܻI<oW,���@�y(�V���*�/�k���/"b !+��jWK�R[����5���ެ��m�|�{c�3gf��-���|���,��ޘ���4D���$�k�o�0Bqg�)���A�B9T.L[VpJ�.�`���p�b�q��ťM'�l�"b*Y��s_0Ɨ�׳��:bb��Z�̕KƸ�Ucg -*��:.��S�J�s�bnd{wrB;��>ӌ�0L3W��)����4�\�Ϭ��l(:��jψs=���5(ӌxM��0�'��nS��ь�\�sƂ7�I����y�k��+1D2_[���;����R�;�,��ĥ��M���ԾϞh�K���W=�rM��a)��l�.�8ꕰ:q��g�Y5K㩦�v -�s -��=���x$�{!n��y��W?�o��-H���Wg�N�/���P�o��\��
���wj���e��#��sd��i;CN���{��V�[��E���v���Z�-) -��K"�+x�� .(8�
�Ƽ�.�b=Ҍ���� -��-pt����B��{]�ev<���w㋢˽�4���o���-#{:v�з�>sKHu� }�Ț����Q�x捍�[>�1�̓Q�ϧ��-t�f'YHx��>�|v��o(���_�D���ZҴ=��װ��O<|�?Ma�e� -�P��π]��^8@��Skb��^��'�����}��8%�.
0K��MX>�S> -Jp�~��g�BO%�o��Nw'��U�e���n@�k�ca�ς�A0�VM�ނ�@���cڱ��}���~�X�Y%�������^'��0A �۞� -ڠ�ezll��������/��[6�)�Q�Xך��\�Z7��c��8��R�'9�#_��D��c�B��^�V������8�c�}D������Ǿ�J�,���q���K]3;�7�Y�!�$ -
#��X����&���$��|2OaT��L2D"*��Z���짺3�Q?�s�՝J�����aG��"2�n\��l.�NIJٛC��d�t^}x�/kD\d��e���z� e��G�F���S����>�'��i[c!zP�z����G�s�?Syt+�F�D�?�r&�z#��Ѝ�/�!����6X�"b�Z�Ж��~��{ -��w"�{�V���
�����1_Ћ�|��K��W.��q�lYӗ܂��_zXl�<�x�wA�Ay#jgĬY�����+�"J�h�
�m}����)�^�� -��]i� -���G����R�C�V�9����yE-c��Bi�0и�qA�NL�z�Z�ɡ���~�v�Z��$��^��|ø��,��B��G�C'�)�(��i*�����r�$�������^vb���5�0�G�G��$��b0�-Z���u<V)��M�6K&�z]����H-�>^��l_}ꆗ��N=_��Ù����k��Yi�����D��6�PF7�3�0C�ha�pz2��˙/��9h��`��1�Y�$�`DHc�nZ'�-��bz%.%B+�,8P��E.�i��O3([B�A�$�V�5rMx�i~�f�<���!Y�T��~U�T�=�/K� -4���,�rF.��r�FH��P)r[z�����r�4֕�.ͽ`�����(��7�BH�W�k~F����q�S� �mc�PQ�ٷ*�2�1]���} -�c�
V�>x;5>�/\�"zǗRMC��D�_�[��j�ꦊ�Z��U,|%Bz� <U�b�w~}���6D��i�c��T��G�)b8��v�IZ������o
!o��V$�:S�'2uo4-�x&�|m�N �f|� ��\���cĥ@]���ܳޗ�ϔ�P���`{�Pv�t��.I�Λ�Kw�ȕ:�k��l �{-k�7h���$�rBBp�@)���r���yk�`�v�8��]�w\ -1���4�}(� -��|�B۟F����f�/��7��4dK��w�Vǟ�⻮T���-?��w��*��k��6���l��k��:*�j�����7���s�/�W[�0�������d��mX'c�vu2�z���+�v6ƾ�H��k<}ە�blq<-������>�ė*��e>T�ޫ�w�E���)�c�Uo�`{�7*V���#>b�/߿���K�>�������~� ��Om�
��y
pU�<���Sl@�R{:T�bj��V����/됶=���Q|cN��,
_��ݲq���\w�xH�xLsMrS����0���xąQq����9zF�{���!SB�v5h����q�f[ڙm�.0��a7l� -�Z�*k��1��nY3�����5�!{��7�:<�zHgfuDb0[�X�2��G9KP����J���s2�K%�8#.>���q��`�R���(�~k��'G��T:"�M���!n*P}�Y�ΟC�Skk�<��`��Y����-5�<fh�5�J���q�(?K���z5I8E���zM�"bR,���G��O�YX�|1���% -�,8Pe�V�#��R���kq�>�_h����?�tB�wɉ�t~����Ww�� -� U����{�+ No�x-�R5� �z -���*��HVPr��EJ�1���U��m�؎ x�v� -�B�S��X��>Q�c����)�_�"�yY��S
G�~���&$���}�bN[h��!��A�.+���o��`.��j�G�D-����V6�(E���g���DO+�������Pq-!��0"0<I�*���Ձ%����p�B]�߈]�A�0��C2l��Y��X��`�LӣE2��,�.��)M�l�JV�(t�H���"�˳��F R�㫰�K~ 0 -H��W�n����� �z���Mv7� -ciwج��}����?3�g}���6W��xV����Z[�໕���+�ɻ��c��_��m��e]���?�Rm���=f*��u�v��i[�~���hU6m�7~��X,��F�Uzh�������P�аZ��_w��tM�f��#��~����|x�:].��W���������`�ﶏU� Ϟ��ǎss7�㶅G�J�G��p������K*��3�]��s���f՟����]����~��&�����ա��_7���4;G���u����˶��g���n����z�m��Þ#Ύp�/�vK8���zs���k<�/b_�,���~�l�0&ƑW�K"#db��]<��V���fs1�̬^��z�>#�?6}n�x��u���z3����]Bp����f�u����<"`��h�{77]�?l���� -[t�7�����l�z�w���]�r�~�W�������;�Wׇf_�W������Z}��I<�_���~:��P��n��|��n�0;�T������~��e[m������/�g�T��l{�/�V�HB�Y�&���=7�m{����݃�u�d�xj�>�(��cp\�����L�
O� ?��cL��ֳ�m����>4�/�0?1���%��<~��f�8��b����m[_���ǯY#o�5�5�Eg^m�����_?Tۚm�J��z2� �K�;;��&*������Z7�[�)Y��b W��S��w|�k��g/�C -��J%�B��08ka�H)�9� -��E�/�#��"0�2CƀU��lΙ"#V�@"S��\��!�N)�HtnV�*Q��T�rU�A"T�;thB�@�a�a�p���xyQ��D6J�Ȣ<*�Sr��J�� /�7d^��7����WO�3��K�xm3/��J�JGZk���u�3��B��ca� �6�X��d&7�)����rBYm��6���lnK���^?r����A~�����2 fX�04!C�Aq��$3Nt�@�H��0lDEv�@d��\��rwd@ -$�����5~��1���N�g������!����%������<�#͒,�l��tea�2�r-�� -ZR��i��q�PIM��a�`N%2>�#�$���,I�$��Tb�DI� � qp�A���Ώ�g�wd��X�I�M�3�a_�~���8�mlbGn� q�=/��o��i`��
)7$T-@8p~fR$O�$2H��P����*�)�I�KX�)9�IyĤ<�q:`X bV�k�B�4�8,��� P�A,�`8ăh9�������((��Mi -)����G�"YW"V�Q[fup�R\b����X(@b�11�(�Hņ��: ��{hص��[�a���D����#�E@X�F� �,EZf�G!�Is@[X���Z�$F�L��<b�8��sd,NI�LxD�9�#^b�9��w�@/�o��'B6Zdf��/�2Z ���t)m��)�z �Q�"����1�8������,����\��z(����%x,�)�������]��r�~5F��!��oY��G�Y�% -+ɖdk.�g�5�ǨK���[��$#��,��<�.���@Q�AR�r$+Kaq�B��P��kӋ��\��cuBrJ$)v���3�ol��R[�m:@�+P2dR���hk4ڌ�C�!�x���B:�`�,ki���0�RQ��k
��=0?�~���Z-�V��^Zց�Jg$��%��@H�=Df�M�M��s"vCD�D�(�T�sO�8��]���ԏ9p��=!�U9�0j�bn�\�H��7��1�C�(�..�����u"�2"B�ņ˻�$%��G>4<���6�Éh5�'�ԗ��/��=���\e��I�Y@�4+)7(�kQ��C��2,��Z"�sN�)�~ -C6�G�e0��^hA�'f���k��y�J@���(V��UR#��A\\HDcL�ġ���� -��@�bK& -L��� -g���o-@�c''£�:�1�Y�4� � �'y⤁�p(/q��>�ؑ�X�f��G�Q�j�ZƑ�|�gj)xW�Z*Y�/i-��F|3n����JTyj@*�nh��П�H��Ȳ��}�|�[/��g�����0�0� -��+(X-F0�2%e g(*6�1TGS�1��%l$�_9�(�9�!_0߽���`��~,�Ϩ� -�����^���c��~"vb� -�����Wr@��@ ��j�䒐�O�2�%X��J�IJ2K��*�l�\�\f%�����Y�"3�p�T[����Cg���9P�"�zı�����r��h�r��0=�R='C�,6���2�]I��#�RW@��ӗ��k��_���y�F6~;�a3�m�3nA��ag}�ɉ�.��9(Ӈ�[�zW -�������N$�D�8Gd�K�|A�N��3gN#�{���Z��`��7�h�6�&�����]�Qpi�� -�xPDn������u����29�+l���-�%~٣r�%�#v!�������1J$��bq�`�d��@'wO���c�p���d�ꙕL��x[��Ƨ�<d��Ho����q$$��V�b����Js�{��b�4 ��86�d-��`̢�R�M1�����������b�V��`? �*�����٥ -������Fe��m]�V7�+W���nYU*�zeU75���?^Sx��^ٯ���ʢ��YԜeQ����s�F�K��|�KR�?q��a�2����)�2�)�2�)�2o��=e�S�=e�W�E��Z+�I�4�����N���2�����&x�����O�O���#��w�N�&6���-n��@u�Q��&zO�����>ЍGy;��tH�j7Yd�KS�i�2M]���4u��.�c�8�6@�����i7���"��-���lg�ծ���9�n���p���pI�7\�K�_��������Vc��o��^����Q���EQ����q�q(���D��O�IZD��<�OߣG��@��-�7֘�
����L���{�p��3��g�����hEg�|��y����:�4ٌ5���H�j�o��v!��<}S����Ɏ������Pɦ�y�!5YYea�
Ë�'{H�����]1��y��4ܢ(��� ��=���=�5H�/ű7��ޘ$��ތ@�7�/�A�
� � =���xo��M�NFh�M���(���TE<���יP?t�[9�,�����x��P<TQ������}A�����6������鳹N�-1�A�ԩ���6��B�a���"��my<���Wx�i���?���T��=�s��N�|#@�q7���%YL�p��3��~>㩟=��$��$)2IU7��������oꠧ�3�A�}R��� �BO��7�����1oH��y���j9�ܦ�ڮ����] -�4�0$��
�͐���-���$)JBDfe(Qq -��e'�R�'wJ�PiJ-B�yȩf��t]�g�p]�J5�P}u�J^+kY�dSi8YJ.��/����m��r�1���&�x�)50MN)����qA*��m�G5��9�PC -�����+F�)_<2��H�ڭ�� -|8 X���m��F��V�OH���A�[t�E�_��qz��'O��3�4��M�I~�7U_Q9K��|�t����&�ͱ��ȇ=�ٵ!�̲u�*Yly>i؎kT��g�$e -��r� -P_vNZ_[ -�����+f9�|���儥a
�Uq�W�����4 -���ɺQ�N�3,.I% -�7乌�?�ҰκV!��g�π��� �J���5Q@�5��&8C���V@�i��g�,eIjIP�k�0O#���6��� -XpѼX"y�X&����`�i�W&{9$��K�K�+�K�k���*Nt�"v���0^3�k{ y������� -�˓�,,if���<^��Z}����_+}��l�h�V�n��LW\ᆕ6��s��]�G��ϏK�d�Ŕ�P���� -qzE�,5v�Pݕ�N -'�L�r\e��Mf�u-Y�R�LC(�IdJm�T�C��xn� -sGq]�n�oTN��骸�vͻ�]�},�f�6�}(��Pw��m��t�Tc�$�Ƶ���8�=�U,�1O��,�mu��ƺnb�'�J�'U o�5�g�k��*����X�.�|5����4`��ɾ� -�i`��/�Hy#�q�����BH4����
t��B�@�K��� ���I5���B����j��Y�;W�E7=�,�Lky��x�]�% -�o�k?�*s����%^�������7�ݟh�W�����v�;nO�����K�����n��b��\~���x\�b�t�ӸS���Cl�勸��Y%X����� ;&c�_��F��8���X�����������_���O?|�O?�~��ۡ�\��_���_.?�CT2V�#4�^ᷪ�[�J-ݷ�u1��8�Ǩpq�D�t��s�ÃK/�B(�`��&$� -�H��2�}��e ��Q$^��V�l����{�c�}���o��#�}��4�Vq��Ǟo�����.�E$���2r�%�1<����1�DŽQK�{��]�H�g[���bF$`dF��'�zy~���G�����߯�����>�=�yػ����0E-.�5���5e�X�9V���t�َ�g�`�K�9K�kO>��杏���e�ǖ�2�fZ�INHrD�?=��>��O>�,����Ȳ�6;ٙdf9�"<���)�$��H�L�}O���]Rz�|a�{gWL��KR����q�r�T�Z��Z'jE5�Þ�{�P"��ۢ1���<צ�ךu�n���c���7d[_����d�;������-���ە~td~�S��� -�Q�9��Թ�;�vRD��^������g���̵��1Iή0����3�a�|[20&��^Öڒ�-I9�li�$�E/Q�YiJݐ2+� -X�fC���͎��� ߡ.ؗ�HQ�d�E)�g�'�`��a���#3I�R��g�ˋA��*�~(J��!ԡ-�42 0��*f��+�4�1ٕX�CCUz��W�I��1�(�abA�`�+��M�B⒤����yc@��9���GV�2Ź�OI#Y-r��I�tQ:�)}��W����a��Ab�- L���V?�[���!���v�"m�_�$Z�i��'��Y��u�{e��[*uW�Ipu^��x���4����zs�һ����4a�Fx&6�]����K~�������1!9j�������EqJM�IC�H!�#F�K�(ۡUh�<r$˯���G���q��H��,�I!��#�L�� g�ON#pð�5SW(3 -efP��2�*���*��Ix�Ē��cHԘ)�ƜQeB����+��˧O��妵�51-#�z��>-�͋�7�"�fLZU[:
��,�*�ںw���[G�r���n*���;�.ȿ+��\_ɢ�v���CG��6���Az7n`z��=�$+j��N��s �<�|����M���p���R}�"�T/���vd��i��\�g6#n��f�j�do�ݝ-�3;�-pr�T���l;��s�����T�!�Qw
�V�m�%!��S6�=��Y˴e�����I��X�{�B�/xSm��"%�� l���(�Z�D��L��kj��n�� -qT��4�cD����u(`Z�5 -�����!�=y�� (* -0��P@P�G�����u�D�M����h3MB��%���0S�D�L�Q"�t -��R�>�*�l��c��J(t2q�7m�5�3�0�!���ْ�R1%�d#Ib� -;6bԜP:�@ؗ���K����Eő��J[ �� -R��٫Y��DM����D:��L��n��{��`r�O_�ߩyj��楆�������ci��`�h�L��=0O�E�:ԊG��17���]�,�_�K�\P ����ӗ�:����_pagp�0�{���?��手�Һ'���;?c�G���/�yj��O�?�Q��^��_��ƙs�O�ߺ/���_���oߞ��;�o����w���<?��o_/��]c�?��nt�^��&�"NV�698SV���·����7-3��P��e[dw2'jn�n�EKY'�d�N��Xd���Hu��9�3�B����o��ؐ6� �Zc����*�г߷?ѭ�$Ç��*!� *Ÿb�k�R:x�yMZ��W,{�#+��nv(�Og�{ \�f��8�r������6���f.�M��w4Q�Rݰ�z�8՜4U��hk�%��ij���9=b�Ϙ�s/�oPVj��4�q)��g�}y0�2.�J������hsI�jvC�ކ,ښ{����y)�ħlY�mK`�Ү0��q��^�<���7�EۺX{���9:��=m���w�t��ND7�U�����L�;'�*�{(3+ϭ��I/Yg��{�B+ -2��``�8
��B�=�b� -�����|X��L�A�8`���cP2��A�2�e���3�D���*@r�x #�D� -3�d(d~&��ӂ܅��c�H�<�n��40�dO�n&��)!�!�T)+����4��A��xlEu_A��d�!
Y�A.t�
��J���&��}�U!RR�t計��kA�l�ɦ�I-�ǽ&�-H�
��]u�l���+E���p�f
z�����|����
��K��?������ 1�a� ��b-�p ��J�|��
:3fZ2��,�� -�Ql;�� -Iխs�횿�E�fq��5{��X���J"���fa:Vdb1�;�P�=�/��`���p��HkP�>#����bd0��"se�tB²�U�� -� -����͊*�'Ս���LZ")�U`!5֑�>�/�w�&9�]��������W���|G�s�ݼ1��Ҝ���<m��.��L���A�B��K{�2qG�9Y�s���n��;�o�G�(]�v±;)�Ѵ
�#J�c�v�vY��a�XU%c��.�pM��<�_܇��������7��O���M?M?���������4)�7�4���� W����+�3K_j��4�GB3k�6�c+j�#�M�i�Cg���=Z���Ɍ��</��E;NPp��.t�~�g�J��y�0�q��n��[ϯʡ�#�n[���CKmv�[� -��� -�����r�o~��W1ѫ�6��WVf���7k�i�~_��ׂW&r/C��������R�ܿ�r/x/��.��hꁲ!�}F�Y�� -b`*�x�B[LQy�;*�\�ȑw�-K -�6�$q�14#�z^��*q)�5"�ZDY���ȸy�z��HY�伳Nc��0e�p歱wZM6�8���=W�5��6�46UTDH�J�.�L2 @|�� -��?+���T�x�fq�ŲY�a�$1�L0�X$�+��(O�V�\���hD
�@Q � -|DF -R"-i����멨E�!)j�hMƗ�-~2�Y[�8���,�ݧv���������LARX��˽��Z���� -����%����F��5�X1_�^ŝ#���@�@<#m����P7�N�uL�ﳰo\P݆��n�*!�?W�Wq����"l�� yE���h���@_�bY��p~��g� 2��e���1���ԅsm-� -�?�p'�$�l�sJ���ƪ�(�t�[㼥�����П�������_��������ߞ�?���8}�&e~�����#]�Ā�JBW9��
����S��
�5-MF�����M&�N~CR�A�~��7VO����ƓT�
�_*�x~��C�[�?*�v~��3��-��_sI�����^ە#ol}���f��n� -7�{U��uq�G/�;{Y��̜�,ߨ�>����R�(S������M�tB�*�{��m��^oP+��CP�X�v�ȃ�D&<�,�<�ƴ�R�$��犭UPLM1�$0����c��0��/���0��.����Ǿ���H�v�E�U+ -�a�(�+�{u -�/y�\�+T -�B�eHU1^�L�;{OX�
���rx�ij�;�;��aa�*��q��}��s� =�V!i@�!�'��Pw�����{��&���^`��]�a��W�?��B����JTH��B�f�9���:b�"�tK!��(�p�~���QB��:y���cɐ.�T�U�#� -$���o���Y�]o�{�K����_U����J?�ɿ�-ydN�ҳƭvk�U.�S�3�������O7m�bʦh:=���L�#��:�\��;G���������К�z�� E���:��������eK\-��:���vL��昵���ŝ��c�=_���px����|���9�O -H��I����Cmp6�L� -�+��RJ��, �(��?H
�-}� /��-��C-R,��_�g����c�g oE����2����\x
{b̈�a˓�<�wD3��b�և���i��A�=��fb�p<�q)�_�aΟ���[���K�*�x���=��nT��s�?|)�\�
���靻,v��M���e��C5�
V���v.���ǀ~�4 �����e��&����3�kb^�>�ʝ�x �Ȅ/nu�M�ʖ�d\̺B 6��L`"�� -SAc��8J��@���n�A2PAC��3$�J�O��x@� d[�����˵D5��o:�]p$�]q�5ױ�K��.�x��>��Ͼ��{XD���Ɖ���1��C 54d���h1��!��c�-vdR�J��O1�TRM=/�Zd�]9�KneA���-���J.��*q�Lu5�Ts��7�"��[l���њ�n��g�k��/ϻ��o@-�~G̘�o�싸;b��Es&\�'��Z[);�F��+��/'�Ȅ�61�~�����%��)]/Q��&:)YL1Kv��>C�$k6I{7ɛ>$��̇Ч���}�}(�4_��ߥ�C����j���@�NP�Hv�n�2;B�#H����WS�� ���0�!� -{�o���F�C���A���H��6=���CO{���}��ފx�W'�e�eWy��M`._�W0����P�V�5�
��o� WD�˺�I��I�t�[X���8�� -<
[bG!��D˔���VX��-�s�zI��SE!�S��� -|����x�ϥ�����Y���!uC~Ȃ���eO�W�Ac�/�<��� -O+���'��{���7���O��7��,R~��0~�<Ÿ��0xpF)�7�G�f���!����F���3��~�Q��m5y��pf��O�o�K���������o��=v�o?��}���������}�z�i�I�'�p/!�M�,�qk��s b.8��������0o2fP�lr�WsL֎9W1���Ĵ�TU���0���<7���,�D�H$�!#u�,���ɟ�� -v�|`MLq؎tuk��=�!{�nE~E�E�UF���`�\,�.F�W�ep3��.7�ju8�`s�}���(0ltdudv�;^���p����,���M�{g��-wř��|����m�zrW���uk���U��PF�*��qB��(�E�=nB�Mɸ]��"N���"bI�C���D2�,�r�<���̳s����~�r���ͳ��b6�hjgGf7[�Nv��k{�a�ھ��W{�`9C�=�ݺش�����������l���Ϩ�9�q)�N�}K�#�z1c�j/�vhg��,xb���*�`��mv�Q��u�vi�i�� -�^������_�V:,v��0岹�p�.h%��I~�����"4�&��-f�SW���9�5��ˈ.b���B=i���g�A��ӗ�6��1p��&�qE�P�V?>��n�����.��˵��O붖a0n��*;�b.�aVe��<)L�4���B����䐖t�0��hPb�T�M��eP.��\\�UD��h�eE[�Z�wK��b��|��#2��
X��F��h�Ϭ��^��βv�]�f`t -��K0��!��7ԙ�ƣ䌐��g��FPh -���Ƞ�?AMDg QI���2����U�Z�E���FO?��n~� ����j��� ���<Y[";E����K)���`�Ȭ�h�f�e�>��!��[�E�U2X��"��D��P�>iZ��/V�>����1�,�e�� -���G�ߊ8� -�(��@��dJbST/H��jURzٹھu��I���v����� [s^zԽ�/��,s�j�֭TzV� -�ڭJ�2m���2�u@��' (2���J(9�Y�e�6���%䯨6!����V�zSPNʾA��Ak@�"5��fj6hЭ -�3�Iwh� -Kн��6)�
�
2�Jm�s��H�T*Po��~��|r�J�a��]g-5�AQ4��E��龭+�]��tEIV�t�r���hc��N�Z\����l� -T���ղuԪZ�jk:�Q~j�1�'4��^��J��f:��E&�}�����f41� Q� ;D�V��"GD��"'!����A�e�4 -�ء������
hA�R�H/;�Ԃ�2�m=�A�"�P�kA�$w��G@� ~B�Z!���Zh� -�,l9XYh��P����{Ll�x�1�B�LɃ������� '�Ivf~f������� -�ѕ�%eIZҖ�%u��J��x�9r�Ѭ��F�C���U��M�.GC�+G���~��J��J��)3��Jތ%k�%k6G� �kI�[ɚ]~/�Ӗ��+�8�Ox�9e�'��p�o"|V�Y��*įZ����;%Y��� .�
4�ɀ��Aj̢nj�NJO����5���p9���C��@��d�F&��|�å�*��F�n�����{t>ҍ�#�H�`���$�ԣސ��ն��4��4��D�?��n�m-I�������'4���'�%LA��R.V�t��fu_{��z��S���c�U�E��k癛�36�g+�gf���NG�1x��
h)(��҃��Ц.� �b�ՈFu"�V��%?U#�r4�Y�
���@ؑ�Z�+=ɪ)m�+�jK��rc2���M�)�8U'��ԫ>�*P�*TT��T�l�U�ڤ��!,T[7HW:ժUJ4c�$�I�z�]8�����Q�LiZ?�����}T�^ (����,m�Qy���㍼�
�<�&,q]��&t�L�,K���.�h(b�A��v��MNI-r�YH"��&�i�Ŏ�A�"��!�T�6��0[5��p#���{�<B�C��f�0Hn�����G��@IX��&�Ix��҄%�U�6��p%`������K��D�(��c�uDMp��i�:����<� -nV6u O��4�A��4���2�FX�v0�L�� +ÅZ�G2+~�BbE`g�6���1Q�AuA�%�Y,�d��������P��n�r�/֎[�ӿ�͔\Ae]����3��:��;�O�p),I �6G�s(t��;j�L9�#u����e���'�p��p-�Xap�w�� t�L!���^�3���:��&3L4S�c~�܌�[m�^ڹo,��_�ϒ� -��+zl��m�s#:ϣ�",�Wt���E����0��3k)E��X��O�\�������Kkє#���D�*�,� lÁ� ������5�L'���%Wr���A*�$i%vqm��d=�,I�־|g��?DeE�D/�_� -\i��Y\�BX�}�x�n>tp��8�4�.+��r=�b���:�*� -dT��Z=��(6=��ѠƋT���`�xjE)P�G�w�ӂ�&p\�- �[���zV>��R�ð��YV)��J�5�\Y�ljN��Xή����-7~9k��g^�l�?��[b<��{��&W~v���}L�A��|/�.U-U��"�_���|�+����ZūA<��'
�p1�_���b�����䣽�7�<?��=UjfK
֮j�ËL�v��K -�YQ{髉���q���[��M3ʷ -���抯��ꅣ�����:߫���.'��>&�˼�3i,� {3�%'���7(�Nm_��{9bG{��18���Q�~���P��E�-��^�i�"}��=c��;4`��c6X���h��a���:X��:��J{��C�T�7�4K�D[�;c��<��5ߝ�N���:Mug�c�3%�i�;s�/�k����Zj�UպJeY[Sʫ�K���Zh-���l�8jޫ̍�w��� 31�z�����
���1� -%"Xz���1Ӏ{�t(��Y�����z�%����-g�Vr�gT5��Rx˒�؆u�SZ��
�b��ڌR8-�������\а ���5�X��~�|�[o�[O��v��j�Ն�ƒ��!����� -0�)��c.��t�TD�ғ�6 -�^#)@m�J�Z�\3�+3�r�J������g��z0�!�QO�e�Iu��eCGg�.G� j�P m���7�Au�)p�
�E�����o�i��FDU2-��)`���j�T?�S��T�G��$U�~T�=IP��j��X@��A�!+A�g�� -�G�2Xe���噺����J�Bj�D�����s�f^ͻ�Y�D1Ð;�4��d�N"�J/���w<���z���w�<�]{�j�;���>AK'��'H�'L��O����0m3�xgKs%�?�;��&e��qN�GE���0O��[1�0�_��:����g��^emG�2�fo_��å������;�ݿ��~���.������vCM~�I.,b��Wڷ]���=� �!� q *�}�.�{�:E��������=����0B�eP�9P��͜ -�q��0���I�QB�$?:�Gk8xT���'�j�Jʓ�rc��n:�=ȏ�}�V0��I���P�{[M�W�P���^6���W�����_����?���X>����z��/���/�����ʭ��yv�3�,��Ś'uō����ZE^�ė���Dk��Ň,>ֹ�8:f`����Xp+\�7�Շ��`2�Ɛ��CŖҔ>q��J�[�Z��K0͚]$�Ԕ��%�r�Ō:u��N���_���-��&�8�;��V>E�o�j�i�W:w�u��;����zK��4ш�b�ҕ�tcw)gQYK�괔��ޏ{q����[\nd�� �@��Fϻk����~S���~�(jZ --I��El5�W ��ɭ5��{3[6׳i�*]]�������}��W�zK������9��"���`���a�=�=b
-�'�Msn�4�ŠQ2&�q<�7�N�����olᯋe����;n+
Ԓ�iQ����V|��~��^s�zW_���p��H�.O�Ʌ��T��`J�_U����:�)����G��2��c
�[Dzة����n�?�Մ�g�c�h�p�d0Bv��@{DL2���%Cҽ1H�X�2v��nj��6��u�1��W�K�x��t�6�8�Nft�����?���-�5Ö����x�T�fD��� �NH�Y4�lg����^8jt�)$��v$5�Hj�hj,R��}:�4ΐ�<�*��/~�;#�c\�!bIs��ְA�@?3��}1Ƅŝ�h��hE�(n��]7P��U��R'b����>���j�w";�xd0h -�X�� -y�CK�#��Dk�-�7�k"ܙ��1�f����l��a�b��oXa3Æ�
&�֓ -O�) -�p2D>��8l�-ΦH���@M���j���Hci�rvL��� -���O�F���֍j���'�����z�se�YyVL�.V��4.C���V���ZI,����\á�&���y����
p���I���Dԇ��V.a1�.,<:���}��Gxۃ/3��S��A!��� -'Xx��'X���X�0NXHL -?��� -?�p�¨��w�JT[�����I��/:|^L�q�KG�E����C~���>��ߩ;��|��h�d���Y|���������o���巯��)o,_��u{�//����/��������Ko�,w�ʼn�����:y�ONx� i9忡I����=��-_!?,���D
�'I�,��LU���$�J�*_����B��Y_X+;n ܊��so�nC�{�z�\,l^*�}Ep�00 -�J�Rؓ�ర�t�6�C�#�֤�OFQYa8�ظ�(]}j> q�v&V6G$[ y`��eU"�#[�~���1R�bZ@꾬��j�NƪR��߬�r��]�!�a��������D�
aE��@˛����[ӻIn����J�y#����Mr���h��V́eӱnN,�Z9KgWk����u04��4!���82��"�17�-��B��"@>?���y=҈�zF6ђ�Qe��B1G�bX��"�gF�Y0N �'��*
No�`�ty����\�����UG��;��`[���}P"`� !�eu -�i�(�+�f�fO����@��$�&�#g$�@C
�B��R�YE�]Ӭ�R���\����2�d�[q��o8U����Ƴ��f��;��[��~���[2�%o��;��ɝ��Gj��k�>��h��7*�R�"����]�窉q�P�0����@�z�}R��a|���NX&�c�,R��G���c�Z#Q>� -qC�+�� -n�vOd{�uE5A��VD+��+�\��@.0V+����^�na��� -P��]���V��5 -���Ġ%�fR.ͫc=B��{�xB��+lf�B�4�A� \\�2�4i�*�K���7�4�� �&�QX�0��) �Z� �-�zf�Ք��UD�a&�l�-Uw�m��lP��m�27�jx��^~��\� �Hs��0NU5�K;����P�4S�7"�� +�˛��VK��ی�Mf�1G��L�_���U�^���F��2���js�kkɵ�̵�8��b@���,�*�Ų��%�X2˂��0x�g�Xzm,X�̲�Ԫ�YTF�)��-%��,�'��IJ���(��dV��$�zX����`��D��Y�� -X��]�`�4 -MX��R�c���,&,,�OM?#ӏ��F��]Po�=S�w�v��rBM8��f��� �&�l35������F�
u�W�H����Ja.�/�Ƹ[ً�E�����j�h�h�(��=N�u=.ae�.�>Xc%m�q��r0Y`�1����;��g(9����5�'ܫ.r'�eI�M���>#Ē��:X��^S�#x��aM���'���fO��j�g{u��������_r�������/��5�ȿ��mJ�u�$l�P���f���S��%o}.n�5o}.n�5o}.n�5o=�[�=A���(U�� -�A�N��ӓOWu�ϓN �TţX@���ĭ�;0w{z��9��]�O�A�D��5�a"/����6�����l~xE.f��ʣ\^\�ydw��"�A��Ps�$����B=Qaꆺ��^Za3�������c�98[���?i�+�{U�i���x0��9��E�)�p�EB�y#5G���~Z�@M��+�� -j���4T��U���U�N=Z�[�[�*}{!��ʃqU�b�Er,+9Wݮ�y%C#Oʴj�I��κ��Fjɢ����X�ܺl�UQ�:^�]�R�8�w��p�!M�ϢD,n���w�]��]#u��8Lɦ*S6�\!�f���W�K����+�m��#}�3���ڿYp�y�����O���x_���'����dǛ��Zl����u�6��ݮ�R#
��Z�1�Nʈ�\���D�{�&8w���:O�` ��Űx�Ҍ1������T=&w�4;��D(�p� -A�ЖH��H!��N){rׁ���]��~���m3Q� ���7���dd�a`�����GN)����L���?��ՒH����s6���LW�tV��Y�կ�իV��V���j��~���bKEs�fu�qE�LV��h��n��ՀΫ�ԫ��2+q�U-gY��Rn�}��+�Z��KnU��F�҃my�`���pP��x��i����K�ޖ��h'� �U(;�y+��Ɲ���N��>D8~'wP�}�"x6�g��s.I��#�6�+7�k$.ܰ��xvɼMb�C�D�b䣐�4A����h ��)��
�$�08�)J��:�|�d��A��*�}z['�b�p -���?7*_��~���e�k7_�{����� Lb��x��,P��ݢL�Lkk��,i4�W� 3��)P͂j�����H�`� -��wN -�Ѻ@k�6��-9>�;z��Z�AiX� -+C=��W�]���A��*&2,t����������YV���rON�F9 -��ںʹS<(���;+{Q�D;�7I]��v�nN���=��vxG�aw���/����;���#�_��O�v�>�߄��Q�N���q=8�U'{@(�'э�$���d�o�;�9�a�P�_ŻO�m>�!��2�S�n�N��Y���
�z�Bgl��]��O������N�L��k�� ���2�g�n��}�O?�������za|���i��c��oOO�|辴K�I��8�S�����\�wWN�4�|��=��=-��{���Ժ�z=�g���M�aϭ�}�ں'�܄�اdF���OK���<Q<D��x@N��^����H���͂�jB��c��!Q���A�r~u�]�aנZ��ޡ -Z?�=�c;����
��L�����<R�WJq�k���r,H� -������‡NrN��NY�Y�:�4��aP�1�������� -�3x��W��M|�OU����oH��W��Ǽfa܄�W[Lzp��vղaU�2�M�Ķ5�q�l]
�W���}Ml`��0����dݲ��F��.gL�8X�rZ$"�+�1��Z)t���F/1��!�U��{��?!��=0��� -�n��O�����N�u�.�Sk�����N�m���{�c'`#��k�|k���n�Fؼ����U����r�lS��S�����Mv��v�3� �Q zc%YĸhSȡ�VU�\�����(��+�-�&"���V!��EɆt��T����Z�,uW8[4qy���R��3#�քOYs� -���� jP'N -x>t���xQ��k1��&&f<8fG�ؤ\���;��1��|��\ɒ� /cy��
��������E���(>��Ƚiu�0~��B�6��?���|�]���$N:�m���?�6o�W>uԿU�h���N5�T����ywvfE�5q���^;4p�A�� �yGy�8�T۴ -��~>�(��>H���]��"t��p?���R{�`ݑ�}��ء��K��~"��{�J�$*gk�ҳSs1A(P�t��QFa�0�o���3�0 �J��G;��~HJ9�ԾB��TugY�2�o�ڮ3@��[�CPF�η��$ -���ljW5N�#Iu��c��(ڳ����ְ�"R�,���>�����^r�%LVIZ�@=�f-Ȩ2�3���J���V�� -p_�U�rŅ-S�LxiY�V���
�m���^z.I�RS�6}<K�R/R�кP�T�M-�A�@]��&Cs���J�6A�������F�w��z�#�� -h:�n���'����u5F
����9!�k��4�;��[(^:���XE��HV�TF* U�U�vTV+`���`V��xJ8�*�U �j1*��� -n������+�����MgW�f�ʷr!%ɯ�^#����$c�>�f0jk�����=�Z�+�]������@�����Xz<}g4��O/��?-�������[�����L��8� �����DPrRC�C���$��#�Q�6L�ҤI����]��F����bB�[�^�J -X���&�K�� -H��ˎ#�E����M�����h �����,tc0�b���o�)�J�W &ow�JJ1��8q�����˿��B>����"}Ȱ,�I/���2AYh�j��tie�U�*���UQTUS�*M��V[��P� *z����B -P4*P��i<9<�n��Za=+@ *P��ls���v<�����PfmP���� -/]wݫ)i�?'@t%Yyj;4�7�]"�Ev�_O*'ճDĉ�N?黲�<M�/�BL7���YUV����m���|���2|zﵗ�z@���Zo���Zh��j����j��ڪ���V��%���azS��Z��K*A �l�E�[�r� g�`&�,SO-m���p �!Y
`!c�
s*8��Q��&����!�7�@BD��C��� -�w�YE���#e&e)�+e.�1�4%7�y�����
�"�A��I�b3�8G���E��i�[�"S��1��RXx�[�
"}�.�+�s���¶27�[�hL3�6<�'L��z\jjr\��&��:�*��(. -Cb��7r�d���J��+��K�|����?S�����&�4Y[�j|��A�ʭmۖ����M��W���{� H|��R -�d�n���k�ݧٔX��P������I�!IP������g���~�lm(¼�4D� � -b��BMFՃRĩa��Y�̒������ �[�\�]�^���ʍKa���v���g�A�Xy)�Gb�q�t�P�i��´\~6_��g&�� 1z5�bÏ� �:��6���q�q�����������˜�O� #�����V{�z�X�8�}��*q��w������= �c/�>�߄|����ҋ���?���*�/�����oC�8�
x!]��>�!Z��B�`���]�_���3��/��ÓG-���e.N�H�p֝O��_��^�P�p1�-�=}�����괿h�bt -w�{����"��Kqg��]����>��o?������7ʧ_~������_�����������|�����.6��ǫ��I�Z��`�����.�B����w������[�I\�g���I
�<*�6k����#v����гx�5�ZEn��]��Uƈrh0��*����:���14p�乲P���u� -̀�GEd�>�6/A�Hí�z�p��ް����n�Wo�[{-�m\u�64�2��.��Ӝ`�@�MV٠�$�Q�;��ۢ�j���6�/=$u�{������O�����H.xw�D,�qU��c�8{g*���Um*CD���Z4VӰ U�
�Eq��%��
���v�=���^�t -D����d� �מ��D��]��O�{�O�x�h;�P�,ʂ�4��A�&ɍ �9�e(�1t)�Ğ0�13�Ѩ[8b�&��0�+j�����:�z�a����>�>3�������_4�J�k^n�n����t -�7r$�D��fX�Q,�-�k�[\|��f(R -G�(��:1����x���In>"����α`�ϟz�w8�$|�7L��E��q�
g�q��)�P5Y�EFL9m�a�:[I�9$B/��b�e��r���2����{ �@X��S�U|��@�*���l�7*��a�*v�`�v.`�ve�+6@���@j����Wq|�8��G][Z�6q�qC��ġo5 Ŏ��<k`�c���������qG`t둆K:���S�݇[b�WH�S������kyͩ��W�t�����*���_.;��f~��7
L6�"E*hu ��ʢ1@7�H/f���9���.����`::�,��o]�<g��%A
�X�I���G_�<%��܊K��s�Ԍ��������ws���ڣ�b�g�kY����]X�a`�n�����t 'n���2�S���e�����tc+����7� ����VF+uw��?cWGt4�j�4��E�h:h�/��*/~m�S8��� ����x^�Q�����o�s����#WB3�Y�����yB�J�Mͭ�V���1�;d��[r5�u[��|8�<'���.K����h�s~)�ß}Oe��(��視��[z���Sg����1�7�b��~�c���C��Ӄ���P�0(z��Cf-凍�GИ�8�x��Լk1J���)N?N �F�$+Q1����u�s�
Ӎ�7w����kVF�?��
��1�D[�N8*�x�A��t� �gG��J���2�P����8ǶN�
}ҡ��%f���M��r��}b��W���C.����O���؋�a�|����^q�Ìݼ���3�Q�V�TE�k�rJZ��70:�Y�<���� -�J��y�:Q]�)�<Ֆ<�uFy*)O&e*�*&+��f5���H�蕵�🦼��u�z����z�ZK�n�j*�3p��%�纞uռ�����d�jܶ�����~ļ\��3�gw�t�z�M�8�t{s����Ug�
�V8l��ӽTo���R0?N��~��{�J�DR���oR�&X[a� (�@�:"�V�fP�ϥC>d�`�C�]�C�8A�Ke��K%��c�G��"�L��=�N�.!�����8ؑV涫�$ÖL����/�'Ck�����C��a�^�0�5ޗ� �����a\|q�:������\F��<���ի�,��3�^�|�z\�:r�c]��Z�q}wrˮ�����d�7��f}�V���֪=������۴��\+�Ug�� -��.��*���<��R��$�A) K�>��~�AS���,|��&�������<
|�rIV.�) R����TU�C��%�ӱۘ4o�Y==�Ep���5F��i�`5C;��b�"�<����J6��ؕ%�/�na�#�5����V\9�r�N -�CUA�(�!&R�2�
~S0�]�b�h,VJ
2i�t��(�Q2�Py+G�]Es���A���:<V����n�=��BҲ,���^��*~qK3/�4���{tR7�����L�4ad�;�X75��8�ڀ��cg�GZe�F�'�Asv��[�����(�4DtKP���h�?�jt%��Q�i 204306h�buF�WvX���j��������� -�����������٣$�g�v�1��i�<K�{�ݓ����2w��d>'L�2�4/���L�=&�iy�b�rЛ -���a�-���>tp�4c�l�F�pa�K���R3.�˵��0���},���?��13t�]�k�7���I+��0v9ͺK�849&��6���x�)�qZ���MU�A���Uf�Nc��(�g�c�g�� �t
d�-�?��^��pw��7υ�Ň -s��9 -�]�K -U�A�@���= ����]����pD�ŝ(~�����V�̹ -!�B�W%�Z�S%�:�Jm���놂ҽ_����{�)*�U��~)öj]�E���B�$; Ͳ�>�4��D��%��z/����=Ɛm��Ң9D_5�J����z�E��HY� -��K�N�6�a���$���Ѵ���II���_��{��䈜��MU#��bX����Ed��X���)'-B��]U�3��JDǫ���C?��e� -��� -��&�
E��".��$��4s�G�����E0mC6�����,�cz�s�O���]��<Ѕ1� -�+�0�a -R�9�]��'��t!�KT�� �.��Q�o��I��}�� ���g� -�����a�N��d��Kc~.$��wOe��+Co3�qN��}��7�b��R� -&�Q�V4/���q;�j3&M��4��to���{qtF����p��H�BWb�P�<~��ӎ�'s�kW,j���j"��G�5e{ |���9"0<��C�㘑P�)[��= -ut��XiS�[�UIi��"��Q -C654�(�Q<8�(D��i���/O����/^}��۷�x��&����W�[D��3��x��_�?�^�C�2�/_���=��|x����W(��O�}����O�<��������W@?�ԛ����O�������.DU�SZ�3�YA@�?�s�P�J -��k�q����MC�fe�M�^�"�EB�\hU��������4K������Ѥ�J#��v�Oao��0P�T� ]���^9��),�����]�=32�!�%��c����9��_�йg�~f��j��ә,Z%6S����g�s" -Yy���Æ�����������i�|����/�i�YF��DW�06������;d/B���Z*������2�`=u��)���O��%�a\� -��S��Q�"�q\| -�p�uYӂn讅)�ZЭH����
Y�^
)??��+mك��
������5���#YKv`{�� -/���zy���<��ϫS��|�ʲ��!��c��&�5HM��"�?b���w>�֠DO�*��l!�yS����v��~���ex�����0�g%wqB_�s`�w��|��!ӹ�qdm۰� -�<�����/I���sj �ӬA����W^����+�m�ݎ�-�/� -���W^��5D�_5�����ב��ɟ�^�E�̋B����#gő?Q]䋒�1/�>_GΊ ������H���`�ۘ���FW7L(���=���p�mJ> -���:��Ue�[穵)��|�v^��c��@F��dT <Xs~H�,2
EN��Q;���� -"�p:�R@��6�7�p�1XE�. -�J/AQ�Z�_O!x�~��Ϋ�B`Љ-ْ��Z���0x���~�]�f�$�S:|*�Y��(3|5���V�� �
7uu� -�J]��j��׳c����s������5���矧��Ek�g��C3�w�N���-<�h44��S��|p:�0��\�5��N��i�s�� -��ֱ�kAZ���;J��@���d��m��v�:g���f/�o����'(��w�v�y�0 -Hz�I��2�$�����Ds�mF\����� -��68s�E�`���~' -~�[�����+���_�c7�_:�إ�w�PG;�suZEi�D�$��Z\�;�}����I�W��������S�.��"�l���>��^�y�%ð�s -8���z����@�bJ.��n<XR���0\r��cԴQv0�s�!���/� G�4������+f�M�� -tz^5V�f����$���(�$l�Ft�8���#���~���V��o�Y� -;,>k���hF��Y��{V�e��������J��<�k�HpĻ������V���K8���k� EKw_��I�S��P���o�;� -m� �n�e�|̋�۸G->�!�9�����T�~.�*�*7|h��De���6V�*����P��>Q� �n���� �+�*���,��pJ{�-@�`��T�띭)��g;� ?5��W~^ -����ެr���NO�ơI�Y� �"�O�#@��%� -��u�
Nx�A�|� -�������-�������>��J_�F=Jl��x��U�l�����6����ܣ+���uJU�����V#Wܮ -pG5zs{l�!l:�g0E�g�I�� -���0f/My��{��gc��g��/]����Ѝ5��e�%u�_]^�-7��jʰk�������BZ�d~r��>�>�:$���}G -�����hm�S7���/uf�&�,+\����7���B�+@�O -�Q]s+�-=��(�k���VUӘqgtK<Oyݥu������dk��r��>�y%����P�{>�5.� ��=t[@�X#8�6{ p[��'"tP^�R}w���aD�;��c��Ќ�n
-L<y�Dp����
L��G[ή�S�ꓺa@��y^p���]pA�,�T-����=|��0|æ�<ױ�Vo�U�4�v���oe���*mA%� x�A�nw^��N���]La��D؞V�����ͼ�MaA� -;:0u���W�H��3�����\��cf��l�*raw<͜��C�% -�rE�t@[�:|Mk�k��U�6�`3�2�{u�7��7��xܣl� -PLq�[1�OS����Z���je'Z*��xژ ��MM�S���O_�h�A�� �^��wV���~�=��γY�CE��g�� j��:�h8.V[�
�s�N��>� -i�nW��y\|�8���ج7G� -0+���b<�v�A�D���S�(PH]�L���C��B�Y��bK�q�n�� -cR�2V#F%�`I�����c�RC -��d����sFwq����j[���_p�a���З����$���(����3�f���{W�z�sf�K�>+����U�V I�s8�f��K�-�� ��y�I�� -��jT�IJ1ڃ`���'�7J���@����g\03��:`�c@F���s#r�7��^|ÿ~�p����~���Ç��|���?��gon߽��� -!A�#��Ш Eʯ��`��*���͋S����t`J��=r��N?�О�� -}`<),Q�'E�B'�EX -"� -��������l�������1�D3��8� �]�h���l��N"oĄk�I���ǀd���S��x��x��Z�
dhz�@�c��P(~ۜR���Z�(��4���G5�
�4_�0��6�^]nhB������B�r���>C��%t9�e@���*ް�232���ɣ0����A�v����dd-��V:9�5H=���7譚��,ÂXl�1���Up@^���=��6�9RcY�2s��@Dk�B�#F���Ւ�c�� -yy^�"=F��r��Aj�"�{�2���kK˕����RY���'�^KT�-� [�Dt�# <�C��ݸVg��O��,!��
�:Zx���3 -���܃���Z�G�?��%�L�}z"F���%ىG� �V�#�s9���c6w@5Y80� -��`g��9��㙋��%�[ꠁ���N�tȢ5�k[�g�R4�ى���m-\�A<,]9�SN{�h���1ب_��]���4�����xmU@����m�t��Y��,���'b�[��_D�9�%�zB˭�h�LHby���\� -�+4�e@�9L�Q#����%ul��@ � -��������QmSl�� Qk{ww���A�XG��y�d��mQ��@�c�f�Ӣ����3⪥��;�y��p���DT(���ɋ�[3"k�=dˌv�s�`y��9Q[T���z�}ß�Y�;��r`rd�?�����W�2G�`){?�9�0�M;gܟg ���퇆��pt��"Rƌ�ʝ/��ښF�c"�E�P�͘���n�S��LPX�1�������e���*iT����R��}d�� -H���� -%�
Ɵ�ù)��lɲ��
�E˖��@����?�KI�
y�~�$�gfۛ����ƖeY�T����Ss����_h.����0�<�u�2Xy�ڛC�P���R��S�g2H�)`.�`V�k��m�aq[&ͶYk�&�f���A}io�V�O��*��`Y������:�֞�*��V_�Q��p�p���m�� �^mn��p ����%��*�^��fMj!(��k���4ȍ�ǚ�`'��yB����"kվӾ%�%�T��-��P�O��8�)� 1�2.0yb���j��3l�b��*�SH�M��8c�E�R�~����s$P�N�B-,ލ�L���#����q���2m�j�+��L�5?�>V�s��B} -R�_me�F�K�����Uc���1:��$��r9މ�~��wg[����8���'�K*ѯ����ޡ�U%w\yi8k����\��0���o���B���"K��!p�U����.���&r�D��'�P�<���s�K����0q�-��s`�8DY�W��.7[��i/r��v�,0p%�AuMN���zrk�%����a+��b�q��}m��g՝����CP�� -W�� �֒�c��z���yjN2%��] n��Zm�d�Z�.5����F�h^�m�>�jEz�]0����Ul��%�AWÀ��êq��6��G`V��#Dْ�:�Z��d���L�Ѻ���a�'�mYҧQshӔ;>g6�1=gϢ.a���76�����Z��m�����6�O���%��B�"^��M)���hߏ*o�{���|)�`j��F��x$���<e9��1*Y?H�D*���ѝlQ�RԲ� O�同F0�c����h�Y��I�:�W�r����K�l�6�~�39m���5~����<��I��*��zj��>E�ϯ�B0�ԃ��9�b��F��O�Q�ü�g���dy��]l�A��Aq㩚6C"�@_0^7�7[�E�Bʫ�XȔ
<H%�5S��V;�"C�X[G&���oJ� - �p-p�A��?a ��D�P��C� -�
�2 �z_o���ErQ�J�D���RF!��'ڼT<�h'%��A�D�kh���GfA:k����XA.�������T��DD"U����v�?��\�����p�X��"�Zq@�a�b�nU;`<�b��m�_����g\T�؊�a�:���q�EZ�k�{?hT�#Ң���_K7X{o7�Zt��C9D��2��U[�A�>J�>Wy�q��ԈT��r<��B})���"$��a��k�����{����l\�9����$ٺ�+���6`�@��މ#jT�V�w_� -���~�$}��0ק�e�h�y��{-'��ƿ�.x�z@:|�c=B�q�J�""�,���0���7�L���ڗ�r�'�;���!%ƼB�G��'6k���W��&#�ҽ�>���r�����Br��S�q.;1N�]>�Z͙a�2�_�0���٫�X�+�l���`5���Z����a��)`Y�f��z��ҩ��B�/H��q�k�� ���t -ٟ0^�p�O,R�%~z� /��陈yb]V�Z��QU�z��)�Lf&k���y�E�XOa��ZS"�[�q1%�����zU�x�jp"�B���DF,�0�9��;
��������xHĖu�/>��ǂ)T��4k\���:l�1h�1f�Q^M�ENU�;��_�L�O,*�������B<G\�mU����{?a�U��+ִiN��1'��օ�sl`P�R`� -���/Ο�
K�9�N���� -�� �Kc�i��z'�>;xnJ�f��.����ފ�C��^�<`, -�1Sp.PqY��ۭ��ئ.Qi������V��)��X��N�Pi���Kt��ce����Ap6� �3������W�%����턱���;v�ن�����-��\��IS7�C��v�E%�Y�)��FQ�X\{(G��(�^�
\��س�ơ�����wh=ko'\iЧ�=c�6�h��1��|��U5��6���/�"\iL̟X4�X��(\p��X 0T�r�!:��}\�� ���(��n㥮�酸��v%l\�&��m���`�R��;����"�ْ�jr�9aW��^�1�(.�0 Z�8�@��F"G��XM.o���c�-<�7>U��jgLŜ�w���L���ܛ� -0��dt�Z�j�������B��,{������2(Ç�30�s�'v)Yݲކ8��q¸�������A?0����#�|�E͡- -G:a,���O,�P���!:�����odC�:��<���Wi�9�h�����l��6U��LK�\� -�h�y֜B�CS��!��0_��K���M�L6 �;()�5���41.k1���0��*�~���q�C��Zs������.�����y6١
D�zk~_�=���:Z�A�x�����ؤf�3�I�fK�.���%O9��� -3p�u@,��V�����3�V-CW����.M8)���42[C� �l�q�gA�����c2U�c�FlXw��O���'vCTB��=+]8���^L��Wu$�H���ĕ{xV�Џ�!��p���;R��;��=�-�w���6 ����ϓ��z����ϯ������+��+N'|w{��v+1�27R�g����k�Hk��rQ�����/�|{�QX��?�已Gn��+���=)�l˲��lۃ���-��RJH�$e�i����%y<3{VB��/Y�e��`�1�p��/�f�Y�T�;\p��b��cDX��Á�����j DȰ����q�N��N�2�`o��������G�����n�h݅=��}��rڡ9h�j!�6[�?�E{�M�@�c�m�m����������Z)/���a|_���m��s�1؋�
��O��+lw(9��:�-�R���^�1�vq�s�Q ��o�1�� �p�(v�vަ�(�>l�sk�$���F����U�
�j����IF؊M�C[����3Ն�%�
���M�(�አ�~��Im�bj���a%f�y�� -:0z��R³�Ր��������5�z@�<U���������m��r���[��K�Pl��u�.A��zV�[�K����9�0���m��s�\�e��'��-T�o6�"7��W��B'���G��'��5�2�4�+YW��w��C�+���G�˶��U_���ܡ$9�w��g^2P����\�{��K�΄�3�-�Ļ��[;�>����O�x�����>�������ǟ���Ӈ�
~����|>�_�~~~����Ǥ�˯ �^��/O������;?����+��{��ЗG}����_�㽚?�I�KP=��DrO�KL���9�_���y���1i �?%�$h�d��q����Y ��Z�T�rm��K��x�����e�5/�xU1���O�g::�mw�h�������[gh(KM#jZ�H�zT�!���p��?*F)
Q��#D)&���c�NU6�!B�Q����C�k!�c���r��Y UH@Ƞyj�e�TL0�A�����y��`�����lbj2����
��r����BG8���o^�o������L����ŷ��/��MC�@BM�q�yu' �
e*���>[������8$��߭��|���&�a�����Y����b9��d�7Ζ�����w��j%�������Ν���|��5�y! 6�)�ZV����d��ˢ�zv��:��$��a�`�&�C,2d��@Eǔ�g�2$`3�}����`a�dH�BJ��
N��,s -�H�V.��y�����_�#���b�z�.6J=�KsT��.�
�j��=,��MI�b�-lL�`.}�3��a:�LY^J��2g:��h�G0ӫ���%��b��Y%{aN���?�2jt�^�'�#���b�x���7.��=���y�&9.�{��B0Utvx��'�LΨb��-nl��Cm�:��9��ī�V�Qtf���P��8�6+��}1�Dl��o���2;*���&��j��G -�Yl�u�s��bӸ�y�/D�)�8�@H<h�V��������Õ�nַ��p�'V�8A��J��y��5�i��+��͟�fɔ���8A&�^x�b� -�F~1�0p����?p4���X���Xn��ڭ�|�k�l�掭PY�0@�=�S�z�"o��͎�8L�=�ʱ5��42[�C�Ƚ���":�wU��H{Kn���`���0�Ƿ��j��9�K2�:�X���l��/t[M��j�8��5���ᐵ�+,W,�; �c��G����Z -P�\>6�憀�@O����!9�7� M���bS�K6)�#�G?�1m,�-�Um�̸��O��a��Nb��T(r l�^Xd6@����8��& -��Ǽ�P��%T�V0`�#6pƮ��U�O�U�Se����VCV��d\yj�N��l���j��kl#��m}`����B����`��;W��NĎp�B�8���?��W�n�8}����.�)�E��Jڙ��L[l���B��ZSG��r�����KRR6Vv1��I���%�K^�{� IZB����5Ӛش�����X��8�J� �bW@�G��1��N�:�=�I@!Q'r�X[]�%j�X+���и�2H=�KF�\A��@�X�pm2oU@��քV
i�*Wq��B4�c\�2���s˂v��`h -��a,APf�A�i_�� �z�m���!��_�x"�f櫓�Lc!� "^�N,Sm��+���h�:p�U����!�D^�L��"�����@]�O���IƊ����#}�JA-
�*=y����N�ZJ��lA���7'��
�̕1#���@ȱ��bT�_z�0CE���P -�M·T���l��Rg��*AI�Ļ�e�bA��[�h;p��^Q"d3�^=��#f�$�9�rh�@#
Z��o���K#(d6Y��s�c��� - ��� |��ƂL� �4��!�H��~7V��$f�L�V��O.'t��o�/�6��� -V�6@F���삠J������t��n - -'�0�N�[�H_4�0�[�A�@I���� - \�V;3�V�8�;� -� ݠPԃB����+��)(����>� 4 -JA[ʌu��wy����'Z�3�ڷȠc��`��E\�
��`�0#�WP�y��Na���AvR��������ev�!5jk�'"���K�`_CJ�E�+[t�=8s:#I`� -^�����mSlO�L����y/b�(��uQ��l��e��w���zU�w�(!�=�>}[�3�/`��c7�s�ܺ�EQ~\4�G[���r�9})��btJ>��3����\�:�������<N_�?]��{:6�r�;2�1��J��b֜��jk;�wl|�貥2m6�Ϫ3�Ɉ��&����vYT�b����#�������.6��x������cs��o���ſ�p�㉳7��3�ꋦlf;�V�r�F�Z.���3��3dcS��W�gM����C�0�Y?�e�7}ů)�ܾ�[6��٢�v�a��l���E�]ϊ�|�(g�ӺCV{Hj��b&��X�M��O��[�Z՛�si����e緟>/.�?>��C����fG��ă��S���uq��.7~���}�{�m�F���;P�x�{v�����ߠݻCN�a�Nطb����[���s��X������s��;7�Z��r�ȿ���a��� -���Vћf���\�vAwp頽i��v�)����h��g3O��}���D�w��>Z�]��٬�����}pڞ���6�#��K��a�'�zY���p6f$?_/ww���~�@�G.�U1{��q�O�V�6��2_?��M�W�S��$�]���몮��!�8����ܮ/�Yq1���!�A��MN(�?c7g�&ه$9�wHe�N܇L<aw9��G���5ț���s��G�?d��ν�8"=tQo׳�t�Z��E��j`�/T�^TЮm�իb�7�Y��썕��W�z��ű�����i��M��{i�OD�OD�S�4��?탒�'��'����Y:�b����[i�˲y��������|]6���R�{��v���Mќ-�;�?엱N�0���w`a�6��PC�PĊ�����84<=!%R�%Z������w���#��R!��yI�����b-����B�j={tG����h�|?�3z �z|��dJ<I�߬ 7�z��O�t -K��6��C�JXMiC�����-�>��J)|E�E0�Y+,��jd�J��e���n�ly�}V�:�˵��|\���U�������I�p������S�JqI=w��Wl&�"�0,]��s�V�2)�&�Z8�
fpEN0;��(�����N�ٰJ�7��4�;���L1K���㜴Cs� ҁx�<�!�IKҜd���]��S���c��ǎ,/c|���f���"����2.0�K�u��*�:�����N�q�TZV�-*T~tP���w_ҷ -H���r;Ɵ ��e��d�9I-W�9q�*8)�M흫�4�D#�j$l��+f����"�ҌC��`�6�M�����T �e����������.�ެ�Y���ǯ����(�{��KH�������{��W�!g�+ z���g�����k0_����� �H4���G��iv���z}���oə{�i�������|��'8�gB�� f��L"kB�(���,}:�J���� -C�ل':�-/� %�1 -dFi2������TȻ}!'��?K� ��94�y&�a�Ҍ k�0J���;j��4b}6�������<z��yI�.^�d�Mxx�<y1���)�>��5�{zEҼ%�m�-z79}1=B�����&mqxd�d���7��$� -�)�|��M� -]���e:�1�-���#s�1Ӧ�I�}m������h������go�����z�a�Z�P�p�0 �|�D�r.�o��!N;�W�����EF���ه����g˛�qV��I-t\?��2s��L������,�59��vr����:�d?\�}�˃�Gk5�j��E�<�a�j���I,���82�g#pޯ�[X����4��lhG\G��Qo�%4�+��l -.j�eK�@�Q�qh\ۄ�dD�����Uq~"წ��RI��c6��^%%8��L -�n�|����}��)���aeb5eZhLU��Q�\�c)����Ӝܲ�IR�$�azd� �<��::8�[X���v�^����3��F�gYp�e�gj��J�hLJ���[�xU�*����K�Csc���;d�mB2�4�� b>� -�*�$�L`̦V�����gӘ g �xI�
���U����hNdp�%�+EUR33�|���� F� �N��"���m{��O<���]�|�~�Ԛ9��m�_�?�L(��㐩*�.���X�>�d�pמ��2�q=zZt��!�H�ť�27��'[�=w��[s}�j~;"7��!\(Y���qb�З��Y�=(��M��z�,�عi���M�`�*��S� -�k�'X -���˫�'V�`����3�T��a�$(��J~�����F�?�V���RBO�S�YV�����wx[�c����aXp��k;)���5'Y�,��{���8eE�T��:�{��AVx�U� -���$�`�_Bk��{k[��?.H��ؿ��� �R�r)2O9��9Z��Y�}�m��c�W�M������gZrfR4�k�w��.��D�ء�����km��a�&�hřS+����� ��K���n}�x�]�C�Fk+3�b��r��Z���{�����
������X�I�֮�Zs����*|��
Ë?��x�<f!r�]�d�h0�/��5�齵-������g��_�������]��)y�����~�|�^��γ[HN�OZ��ѰȈH1�����/��쐍Y�5D�J��@e2�e6'y��)�!��v>ˎ����;�g��y�4%� -�-d�kv��frb��)�R�w\ -=1O �":<ؖG���$�nw]��H�1�_��@�5��r6����\Pγ[HN�OZ��ѰȈ�du��3l���S��� ���M�������ߡ�y�c�e5���% -��k+�`�_g��],Ӕh*x�ya�깓�0��
u���R�w\ -H��WkO������J���_��$�+(UC{����Ğ�:?�r��c�&��L8;�qƳ���c�5� -�Ȣ���� |���D\�W�u���+t�9��G6&b^�{�����������T"�[��vi' -xФ,d^Y�L��̢8�d��St�>)��Zܦ�w��חe6)c������KPQ;7��{ǣ&ʠ�2 �����%�i2��En��5���
F�Q�f"(D�AE�4
Pml�ś�U@)���d^ƅ1����1a��B��\�d�����=��&j\DE03E�W�/�X�w�M�����h�o[ [51��G�'���a�_�N�!��o��pVƪ�9�ә0{ 5NL�w�0J� -��Ak\7R�T�Q!;�wa4�������{I�{��t�lc)ZfS�q �Q�kF��#���;RI^��<m���.ĺ¶KߚM�о�j�6�G7���
4� -��f&�jW�a��+���bf���Oz��
:�;���Hd_�;ƀV,Z�X�Q�{g:i2�|�8�쮓;��^�<�S���.�
ӳ{�x�.b����հy��L�p�ݏT%� (��{���K{�����^.�咩�;�^�2� Ng�\6m8K��&�
�ׂ�i�M�_"R��D��h]��O#5OU^������:��a�J*���K�x�}��@�N1��mP�9f�� -a�����Ҵjc�rX��a\cUf�|^�i�e�M�X&�q��2�-l�B��\�d��pk��U� -xe�j�#��)�h����G-����`�g���A϶��ËO�7����w�y�)�lδ��a_[R˃�->��6v���� u�� H[��*Cj�S
r -9����J94�s\'��%�p��d��#B,�2���d�.��I-���N�c�7�Eą��AC�[�@!Ql�$::���E�o��O���|"���� �fh��-�mG�M�����-d����5��.D�a -�`�6l96�����9��y����v��!>v����w=�Ԇ�����sh�G,1w���X�����R�K��@���'��`���E�{5��V�A[�8��A��}�&U�8���^�}��{�*Ơ���cBx��3�j���G�����g���F�9a>�*/�n�س5�2�A�@�mk<��v����auuW�M�{ԫ=�z�"t�_����K�0�����Y����&����5K���]�~��a{Iw�R׳i�����lϯ#n��z���6u9�8�jX�(��!�����Y��s�b ���5�1#US�%���p���"\G嗸���C�:�b� -���so�.��PM$�8����Y�aV�3t��tS@ ^}�`v���;���;���}ɀ���l��~��7���3�.�a�������9���6�p)֎Z�K�\y~]9+�돢�i�|p
����}�_�h�{��Z�~Z�߇2��Ւ��B]nW4�?�m��c ~�a_�<���y"E)�� -q�|�>l@ -Y����S����k�h -��E�V��A8�Q����ϩ]�Na�t�W�{����k�;�v���;��aQ8�����g���3x�����;pYI���X�u��H.A��9��Zj�8ſE�Ti$��2���P~(� ��� ��A������(�����B�*�Ph�_p�Wu��0a0:)���78*�z� -|�^9�7JCaAhY�@�`ƍD� -+VɓawM�ݯ ����I�A6��!m���RW;�<�L����!�.M�U�U������FH�����٨�~���:t�G��l7��"�Z^y9M��v,���Q4��]ʑ��=W��K�[krx�8�`����NN`љ�M��@�lS�t�{�Z�^)��~Pd,�����h�+�r�vAB�x�m������-B�y�o21�5V���d����W�'6�ӄ -;|�P��q��<|�SM�m�z����ɥo����r5�-������Β�M�_��Z~���F��Ӻ�IIs� ���U��i�ÏE4&h�(Ih4�@�8qΣ�������
_����7�5R� ���+t������T�Q����FZ���!�R02�ʇ�#�-��� ��1�Aa�����������XIo�q�ɛ���(RWCV -?��\C.L��� ����?ܬ����8����pU@�I��Q�"x:��]��KD5��Hkj�$A�qԆq��J�&^y&�HE���L��B��s�;� �F!��@� �Ȑ�����P*�v���I~�Z pK,���rϨѣʰ�T�w���G)d�� - �pO,8��"?�Ēw`)�HJY - yU�|�x?H����� U!W�2��@�M:� D�` -�����3d��~��.
��]��HxAd�����B� -ǹ��,�qLe�;t���u�͐^����9j�]+b�1�$��Y�^��t�"gp�1SV����I%��5%�EDR�{�L�۞|I���zK�Gb)FKέ˸}Y��O)P���f�u'=��`U��E[�Z7�6z�v�$ճY~]���������FjH] -_h� -lÀ��ݹuWwU� |eU#%�����$�·v�*m?�c=�X#��� -hp)g�cI���\�������X�$bb���]QKj=+�ؾ�x�!���Ή�U����p��`��|EBiaRo9 %*� -��ȫF\+�{���]7�VN���-�}�� -Z��4UO�$x�Ur��'&_�h���g\�W-6
�-��խ��i��VO��XMB�v�KG�����A�$7�����L���H6�����57�q�u�`d+{�:�(g�&��ܜ�KO�5[�&�t���d�V�P}�֘���a��c0,��z���6��#D� -|S*��V!]�����"��g��N�M�ԩN�2mԕ�8�p)4�ɶSu�ک2���l%M%�5�(��ZX��
�5����d�8Q/h%�U����v��S4ӾgMq�b|�!V�wvn� - -Yn��7���P�}�����zy�0[�Ӌ��lz}1}9�{����N/�^�?�� -�"Ô�6ℭp��&�4/�.��%N\�������z�D�o;\�����?Z5�df�����oɓRЉ�.Ny�z���*]GN����VFھԭ~�LD�0��a �I���C�C@�~��q�pA�h���a������U<��#� ��{`�8�'����Q���N0u�H����C��㓦�6���@z� f�o -ʓ��L���xKJ������E�=��(�z�<��j��� -��3�>��(��Q2!�̃k�B8d�V��1'����!�P(�ȣL��"�^��D���t��|t"�#&�u�%�0��H�Ot��(�Q�)ؑ�%ZM����Ě!�p�Q(jv/��&Nl^����Ҥ��nz���m�xh���jc��I�廗��H���i����I@Ȧ�{��bo��b���0�^ p -��r� -�#�ե�I ���Hi��d��m���>A�mF孮�y,��Z�yLQX�8�ř0��&�v����ш�l#*�[PM���h�"Z*�6;�;j1Z� - z���쁑�;1$$��̓⯂���ewp�M�Y�.t/f%T`A[>څ�F�~B�^�q:GBup�!u{8�}��"��6����,:�gbWo�h�����D��cĸ��hy����V��ҿ�W�n���ü�}�Lr�>y,�0����}TYM��v����Z����Jpb�7�e]t-fzNlD��A�E�Ipَ��
s��WǛ@���6 PA#)�����ϻ��i��( -�q�]����@�z�p�>tt��]YN@����\�m���x���D\ m;�=�}��F=O�z�S誏G�� -C���^��N>#��P��T�(\q�gZ��P�H)%X;�B�E�\| ���HS#�k5��w�|��R_Q� -i��HjN��j�us*y�� �'�����F�VD�*q�$rT 1�*�'L٭�U -�.U��"2�By��ڮ���ю�b���d$���ȍ��lR��kS��M>H���<57��g�~�a���������o�_���U#�U�;�[�n�8 -�
�^"�����n��P)�-W���|�g�88�JǛK�B��2b,m -�+Z�8, �Q=��+�.��?�R�ar9�,�\$�a�u� �hW8s��0,��� -(>v� - r�����l͟v9�'v���{۷���>K ��^t��b#:�$�� 8�
։����EF��3"M��B. -� -�6T�%dL<�c.��h�-gB���zcBZ��� -�鰯�o��B��#u5����#ޭ���TKd��auՀt ST�����-�ڟ�XLo�σO�����K�|��DOK���W��Y#��MJ`Pv�>
�����?���(�ӳ<�YCl��ёs�v7����,�� -�H�������� -sE˗�2�X�ς�L՛&;�O��'�'[B,�;e���-����/<���� � -�8s�(��yj.n`���������Ӈ�O?�7�j����kbnw�5.����v�8��v>�Ԝ�~���u�������� ���}���i����b0k�ϗ݇O��o�7g~ -�ov_�f��ʃ�w�~���w�h������C�����Z�e�,�:�����l""��S"d��Ȫ2�X���Ї��f -e@ �p{6�6�IY��fz��QI:AƎ;��8bcNh:�\A�Pm�;"R�!#��?��n2�~�7WF��Le��e���L��ފ�w����ZH�V�]��������N�V����tg.p,�&���=I��;!I��W����*8hx�n����3�jו�2lDl�x�7\&���'���.��#�`\(��%� - ���0���Wrx:��n��Y�����K�`k��B0�ڹl��҂�;�5ڕ`S�%C���-)�{� NEP3�/2ڈ��RС�E�ڞu���[�U���i/{�(� ?�p ���鞿��� �!H� ��|ճ���!�`�;3�_U -u�� -f�^Զ�Ҭ���n{���:�t0ړ5��3�;.�ӝ����t���~���L�6��X�K �������N��ĕ�m�m��\#�Y(�}�f9��Z��Z���VS�T��w�9�.�=��ݫ}Q�Ih�����^3��$�s=�e;ߕrg;?�QӴ�t�������;���n��Y嬕��[�3/��C�,��~������_��1 �WBW2W���b@\4f�i%g��8v�0�v�'��� -:I?f�]A�˅
��Qʆ@��}�!� �u� �Nͦ(f�r��.�b|� -y������=����;������|_���.�-l�٠��8=���]�� -�2,, ltd�!��#l -0 -H��WmO#I����H ]��]�;�¬8��V03��t�2I/� aw������$!a���f����\vُ�RC\sv�8��Ǩ�>�Y�s���foߜ�T�
�ןs8���8���|�����������rߐ��{s�c��&m�~�g�#k�G�坸d�Q��~�֭>Zho|F���x����[�a��Tgr0�]�/f���vz�`����.n/�s�y>)�6�ɏ�ŗ}��x���[�����*��U��q�����w������M���Yەvn�fBf���g�l�Thkk�o��.{2?@�Bv���p���OX�}��nl���Շ8�X��l���O���;��o�msww��;}[sr�|?��^5��v�5r������e����s��1>kT\xΨ��;���F��(�~���h���q{����f2�.�������fc��8O�~kf���� -�Hw�I��� -����P[P�.�mXx�*���$�)�&�) Д:I����<��ϗN[�,6FԶ����=�Ց����R-%/l6�:]հ���)��
0D�EWm$���%��� -ڍ#�R�$� ���k[,È5'���)�����9�Z)
6P -Pr��+��Y�U�x`��5�s� -8dd�,�f����R&�G�+�p&2��E�H�JN�9��lV���<���qi�#�i����p��h���Q���q��{���'a��Z/6�*y��_���Ӣ^H�$V�]g%�� ��������`��Eq�ƫ�fρ���H�D?e
ZY�!�U���_��mK?�ra�v�����-�m ������G���A��\h0(k�l�%�����At+q C���X,�<���y]+2��ja(�
�c�R�V�H{�\p�8�� -L�
�*Yy�2�Jm�d(`� -�*���d��_�����R�,�0���,)
` �2����H�TՔ���`�p��۰x5�y��q��6龨� -��"b��8л @�.T��ϩN��#��t@�&�29����Pa_���yX9ԛ����Y��cX��~��A�x�i�0h�� �@�����ym��C�땍;C��x©���� -��f���kZ��뇓��cv�e[�"KX���C���J⺏�l��X�t,��X}�mėZ��/��=8�]�3_�:v�f~��)ӌ�y�d��M��}��B�D��>߷xF�5�`�#��Pܼ�\��8�9N����}�0���#�Ky��;Ե:Y��9�:�+�5*ŻFw Y�H��3t�>�%��)w����5f�_'\q���d��y@`�ozC���ns����b�����MN<�2VP����K=}Q�}�@W��W���F�qE��Q��bA�`����o���?_���ӹ�v�K���o�g�"{|yA�ͦZ��?�θ6��� -y�2@���uC��Ĕ� -��)7(��nm_(n�%e��V��.��<����_��ε@�^(�uDa�~��N�O�^��A7خ\Nİ�;�f�J&�͝�����'��ʸ���2nqyev[�r
���<�u��ʖ��ܢ�(�+]��=k����0�2;�9���W��kG�8+�6��j`�䟽�@頔�ġJ��&����&�*��EpڔҍEny����?eV�n�U־adV(��+���d�5x�,�����ƣ�ޛ���9��O���Ǜk�_����e�ۛF�*�Y��UΑ���ҧБ���$�v��VY� -ƨp)�I��Y;C��n����Z�$L�%�*�?�[ݹЯ�V�==���*�d{�|�QL2$�����{�)>��� -�������4���|�$������5�y*i�)7oؕ�~ly����Y���+�8�?�B��t�:�&nh��S�>�2 ->CxCn 1���ԛl��C�W�?l(S�y�5�JW��d+iP��l����L
��/z�X&�Nѡ]A����êp�Дr<��)���gB��p��x�����w�G �?�{�K?f$�4�ŗ�]��e��䄓R��#�$��ۜJ���s3��BK�ͬ2N{`k�7���/�o�Ut*w?���P`��t�K-GZ��_rJ��k��q�!�mfNph�����K��"��G��]+D�kG0�dat�l�jy�������w�)�|��(��Nօ�9����j�5�6���9ʑ�}��*�Jq��.n��l�Mo"��0M�|�����ޑ[�y\���R -YZ�U˯]R�>:����7���Б��7���!x�Y�M��M��w8��42� -����Q���<X��QT�mg
�DU[V;�_�K�P��}�^����dKmA!>��z�1�-���uE=�Y�ln
։���Y�^� -ą -a�v]!N��s�O��o�~/���z�A����D�W -���CR,�-$0mpxV��9<��� �B�齣�j�m\{�W1�{I���)f]H���Ҟ���}���Ne�q͕�^A�svu]gWxt���cQ����(�vg���U>�/�e�j�U��_����"��.�f�ˬ�-(�bL)zR���Pl%����N%��5��s��f�Y���B��74��w��3�Wņ%`Lr\���Hgܕ�Jo�� -� -��$�Xe1�0�h ��J��h��O@yn\��E������E:?�@�x��|�3܇���Q����.z��5��р��M���y9�L~G��p��qڴ�, ���R]Q��� x��H&#����O/L�3ř-<� -X{�T�^ -= O����<��� -���G���dR� -\��Z�r�;F��n�K8��8�J�Qv�MLϒ2�Kb��A-�oa�,߃ES"��;O��1&hml,^�K(� �-��n��'�[��4+�{�u-�lc����?^υ��b�kT�����L��
���|V7��8)��z�&�q�~��t��o�2ܺ֨�ր�h���р��j7L�^��;��;B(�:Z��� �xu�[|NB�1Q��M�Cew��9�u��KJ��4I������CqV���N������"��dž��;�Jw~'pnS����E789��»v���3�9�;�,���c��ص<�^�s�j�.�f���ddx�⟄�lt����t�U��H�2��]�|w!R3����w���#
��'�݄�=�� 4�+
eK�J�$��`eX{�g�+ uC}V-���S��2ve��t�V������. -���=�=�U��Z!g��d�4����U�K(z�`�'*k��0�"N&�/�e'��C��ΐ]��L ��C]6���آ����Ի�?����#G�0>���L��k -��עM֦����5?�~��tw&��o�����1�g�;9��!�:QG����U�H���j�(ޔS]�P�RR�,E�LK�؋��5����!��
��X��)�ֺDI����i�:��,�����L�c) -��V `Q��H�'�s��l;��T���+t�p;r�뻺���;�DU���ݩCw -
���k/�ΞD2l���m�N�M)_E���E�2�Gd�3�#P˯�/��]�F\�}�/�?H��s5j�;����L���Bp�U�#�����M�g��eg%�w -���yB����F�8:u|�� -?��K0l;f��ּ�D���"ՍlL&Y�r�>q�7�\�a?QK/x�"� -E�;�����{�#-��J�T}U�W֢+aŚ"��^��S���'��hdZn�.�n��R�.����c�k.��2AtK����Y���L��09�!��i �Ү��䱔��i7ۖt_*��tE��!"�,�e����gj�y���YS̴�W�Po�����҈���ۂ � 8&{���nk�S�>@e��3(؝��0����U�'+�B�����6N?j����b�����7�K��Ф����-��Q�V�T�
PƟ<xjv�o�����=!筂�`r�0����J�m�����.�J�<�ve�%)�ު
�cW�KM�f߲���-M[ݳi��a���-/S��qq�,oq8�'U������>,���D0�����y�c�_FqN�`GL�Ik:3{��Q* �����p��V5���H~�Ʒ_�X-��e^?�������]����}��~ ��~�G?�E�>��W�?}���_�����~�/��G>�����|������7z��u���˷�����g|����θH�3��n 2��@B -�#��%< -
�9;��8wI}���:��~��!$ 3��� -,Zu4��5��J�6Vd�|���.J��ֹf�����^'�[��E2�1Ȍ�w���&��s���"N�7�eGZ�7�8��Nԣ����ˈ��iYQ/2�W�~�̬�i�|�K��U�����'�1t;��.�Y�T�B��!֩��/L[.�9��N=O�&c� W-�'�[�pO�������_y��RkG��@�b�B�������{a�ot;O�%v((n�
�@/��}foAc�Bh��:�ש�sP�.*l -qԥ�ȅ���J��{�j�h߬1)������O���n\ �ȇv���u���|���9u��$�Zr����獬�F�{"g��m�B���� -e�TM;�0,h #J��6LJW��e��~_���EU�#�`�4>}I�x*�ٖ{g�>�� -�{�~9w�{`p�͒�U��F ]ǔ���H�!r�0J"%�}��;yW�A�"nc5�PyV���g����q��.����B[�?�O��!����\��2@�X���H ����� -E!������}�k`�U�\sy[���3����DI|T���ވ6���y���8�:5`�JC�h��;�������+k'�c*��ʩ���"�N����O -�7_��{vZ��`0M��s�"Mr����tU�6\�H�����T���Е��� -��~�y��{��� -�\s�DM���ɒ�v�.6�/V/��L�:���(�>P)�f2oL�������v%�?���?\�X�}��Fov%����ܩ�.D���X�36��eLƳkؘ�}e?�����6����~�|N���SF�dj9DJ|6�]��� -ܭ�[QN��'�}E�&'ƫ���Е��'��6x������=�z�n.���E��i4kJ"��U��k�s�M~e���1�,PC�`BbS���ΉN�#y�\<Ì8�;����3�%Y�:"ʼ!�H�K -=��3���R5! v�AT�ַ�ni��? -ǝ�s�+�2��p��Uy}��eűz£��t"���]��t@��7 -�
՛s����dZ�+�ek�X# -Sc;��Ak,�ʺ</�ϕCh.�bن]�-�6���Cv`��?�@�)��x�����p �b���o -�D���]L�I�%�ު�`O��I�+�q5p�nT�P���z -.�@N�� �s}��tR��[qx�x�4[�ֶa�>����+����)O��M��3H_KD+f[��-0uπ�W -������4��uD�ŦhSKDZ/���J��+���nE��7����ִ�q���C-��� ӧ�d��'�}L�Z]y#��[�/�ɼ��0��g�I-W� -Aj��V�-� ���(W}�Vࡈ�� �F���\�z@j�k��ý��mE�v���CqGQ�bo�&�Jj��DoT���|ɡ �U|X��=�4~M_�҃Iw)���.Q����;ㄦ0BH�c�_.�[,a -��&�>�Ve65���K�|ϗ�e�ݙ�����:!��6�QAx��$- -(18E���]♻փݽ��P_Z\�Z�k�4��pR�gʰ���r���S���Ղ[c�C[����jI���h�}�3����/e�bh��d��c�Mٔ�
lT1�9yA7\�(-G/ -3A�&;���KdD�}�����S`6����Bf�n��S�T������[���uC��Z -ZXj��kZ�����YJ*hԂd�5�>�~� -�+PvN�罗�\2��E�gvf
��mz*�u� �m(� -چ -� -�a�6��AV�y�c��X���I
����Hx�{P -6mw�A�]���%Q�<���E�GZ�(�������[�(�����`�4���TPc�Ao�� -�|�6�v���x
�C���G]��1՞
����^-g�]��ፅ� <��c��嬓v͵HR��wO~����0o�[ı�GV����k��"�S�BM�./!�"�Y���ۭ�?�ӵ�������� -75��k\YΑf�sH@�o8���SxM
V;�HJ���ߑ=B�^�.���k��T�Y���{�)��/�2����`t��]���]���z��?���_>~�����~���Ǐ -}w�Jz��?~�Ǘ���㻟��Ç?>���/�����_��o��t?~yr����������h% G�B�WOk�I3"����*��ߑ"��#���4�����s����<��%Ր��i=�� ��
�����b)�- ��( -z��Z��ӭ(�/A�aj��Dd��'���<�n8�� c��A��N{k��÷��j�Q�5�Ym�{�R�ee�:[k(���w�^5��@����hJ;�e��K��Z`�d�tu�[%v������~L���P6RKu�n��Hۻ[�}*�V����Hm��V~n^�q��X��jj��cΐ��]��~�tA�!TP����n��;�"�����
�"�&�D�Vu,����P$+�� ���f��#�����dd�%�{��:�W���T=��_�
�SO����V��ؠ��8Yq�U�����1�z�cyF�����0hA>���(���R���� ��RYL?�-m�P�n ���]����N���Czo����M�2���V�Z�Y�zN�-�rg��+f��xƵɝ�{c{%�Ď�봷e䇧��i@}M��I���Ҫ��QH��D�`o������9��R/�"����4sR��yD�vK�*��ht2,V{�R�ş�T��Y/@l̇�G���7�._�ޚ��FKdl��etO���=�A#�qr��`����4ٵNQ�ȳAwm���9�|�e�a���? -����!�6[rf6�$��]�!u~�x�4B-�Bk���\��ѰZ�]��*W��ԉC����d�ߪv���N�Kx�߱憻9�nc�G�#M&�b���[ �4�5@E3�����/�e�\�nD�p�@+06]���ރ֯s.^+d����r��~��D�?��S],���D��y��O��"��UoKh)|���4� -�x���&8��XDH0��pZ0����l[Z��K5wRz��2��>Zd�8�Ai�ϭ����i�n��_��b.��Թފ���E�S�*�S��L8$�`<��/y��E���WOA��y�]d�{�9dED��a�hs_Q��{���!���Kv���0!��9�')�r��)_�E h�����ߩdz��Րy��R;�����]r*� -��� G�)n���W�V�2�c��]�=�5�/�l���gf�
i�)g��8Vj&��R��a��xA�>6�RS ���BB��*� C�}�^����5���D���<��lj����5o�CYk1+yg��ߛf�ҡ2�����**[ -��r;�0{�e���ȷ�ج�0nw�a���M�;���E�ȴ@:<h{�J�d�E�n$H7�%�ᮜ���F�u7F�����i���~:J���3�i�Т����@i�Y�Y�-N� }�\1dZV;��bk�:)vg���V�K{�tf -Nx�j5���(aGod�W��0>����H�]�Ґ�"t+�ċ -٧�`$C�K��f�7�!d7}��J���Op����o��H�m;� m_oݽ�Nk.��mހ�|��f��؟EԢ��s���.ͯ���Qꑂ��RR������%��Ӯ�����B��Gy"iqaZ�uc��S��i�����P�ȣ�}a{��\oK��H�ų[����1$l?�Y.����<��1�(3��+
�*�n`1E��}C+$T�h�x��4qv�:�pu3���os�`+ީ�>y.�Ip�}��~� -fE%@�s<��?#�� -��f���YN�w��I�W�H�D�w|�h9Ⱥ=��� �s�zB|3 -�6��q�i�%�5����gH��@���W��t��2����>�%L����X'�Vk���b�/���/rR��vM!R�� �ǥ��V'�P��{�P�ҕ'������K�\�8��+�����H|1D��l�v�ϗ��ub��{��KN����u���QL��H|�J�DP8�QP��%9�-�
���Qr�����x���+�)�]I�Z0�r�����}��e�Ig"L���4��~õ&���,4b��~�A{�׆�N�&�*I�h_q6⋦GQ�n$0lj�����}8.x��pUr+���j� ��������[�w8m���h���vNA���A�گ!���3���ɭ)zy WA&S�H)��֊��:m�g2%ޙE�ܪ�������K>�F3V�Z��&)&�w�%�Р��3��K -P��r;e���XgO'�~F�! Q�U!.<W��������d����a��>n����y� -s;n%9>���
K���ʖt�����D�A���B^dGE1���;P�42���"�JӿMyěLCk`����yl�����$�A�æNBx�撿[n�D��2�r\(!3We�iOps>����6T�|#��[?;;�����7��3�vg���E�*},]a�b��y�/H�>�y8b�`Doy����:D�W��7Q�ú�3snя��v� �&��F��G�X�&���B���$f�g�e��rJٲ�c��K�Z��[uG��WT�;0�[a����Q�D�����CQ��ǫb�O84����RD=-��y� �J
��9��\���� -��o��L����1����S-I`��ⲟ@ }�[Gf�I>�7e��Τ�f�o - -<����e����rK�5�6��dۿ7�~�㣣Y!a[��>߈e�[\r@7U9<wW!�m���)�GT}���5��$��=�����D�`U��g#��Ƴ�kY���#l2���>7Z9ϱ�r�e�z{���u���4�5�C[���L�h"$�:�3���ܿ#��F�S��r_����Mʚ2��:�g��;jZs���^��E���hQ_(ؔl�od@���i:�l��_wc?�'�P�������qcA�3O�Riv�g�w�h�{"ON����v����^�������'�tA�S}�_�[�h^o�BY��{�K6Zk���n���+��+��"pz�m��~r����)>k�r1d�.`��2]�F��X��>�9����Ȍ(�>��9�"�1R����l���&L-Wv- -�5Kz����m�^O����@֊�})!h>�����-��_f@����o����Y@b�4��&* Mc7��"��@?��P��6��vQ�!#Ʒ��*HA7EBd-��S�0� -2�������7�a�ԃy+ޮv8@\54�[ɇ�H�%�^z�I�������G>e�X�[� -��JրZƥNA��w�d�\U�<������_ʭ�HP>��q[z����yM]�3�%HX�o��1�K^iJ� -�S�AɊ�� �Q�ˆ{��.� -���j ���gU:"?�7�N(��TYz�f!�>/�;��Z�<����X�K����bѮ��}(�=o�εH�� {�(}�$ի��PU��2�mJd�f�'I�.�:QbG�=>���u�T�{O�?�V/ݰ$��uA����V�j�b7��6%�R�SA/�+8i��-ڂ��T=��ج�����K�_k�G� -�&���/��QΡ"!.�TFk�V -����1����К�����k�SP��U��;^g��'��ˤ� -e��h��L�O��cfx0�w��N�����|klj��8�_1���d���c5h� �LZYAt��JQ0/�]��NT���)nt3C� -} -u���L7@OSLkpP�ܶ���}�� -_mݸ�OGљ��R'c7c_9
�mr���GCZG ��/��|F�S'u첣��?�P��Mz��F� -�[����ھ�� -��s%��\o�5&�{*~�<]�9c�x��u��U��[HaEh��]�Q�4�6 -]��9�ɕ�z�림[�`���ZE/%C:��;�b�L�� +o��˂�r"X���j����������$��A�(`˝W��@ -D�iZ�U�=�8�)���U1���ΛsO��#.D�] ��T�y��(����7��7�R�п�0'P��Z�6�C_j�A�rB�Bƌ����y�o�� a��kv$mߚ��%��1�6�m��s�E�\)�u��P��?��d�H�\ �N�xQ��9�>�C�o_���r{\aOӌ@�t -Ԉo4�^=�2���~�a������$/^�O��/^��{N8����>GA;{��������g'a�2�Km@Z*�3���cM31��U��o(��
�-�^�MLپ1���V�q��ݗ)^�]�F�P`~��Oh��1Ԇ���0Э22�v11�~�C ��;\���|r� -��_h���[?�B�e'��C����9$�k�����?�2O���]�5�K��Bs�R -���As���Z&�)i�C�+�z�{��P�-s0ӟ�iX\h���ٌ,h��9o'[4� -���8�;�PM����ue
����B?#��i -�GVp�D;B�9������y��:v��.��� -�#w�w�ہ��.N���o'ܭXlnob)_ѧ���tK� -�6�l�ZI���)��~4�\s"�}�ʚ^�����R*�۟+���Ϧ$'�O��+N��F��W�n���ü��pշ���>qt1��XC�wA�c� 5( -��>����)����� �]�ꮮ˩S$�|���@��<̠�5X�4T�#�4?�<0�;(r��
"�c�VD�A�dp"�F@�+C���h�6d��������R�L�hд�k�2�� -b�Ä� -�[O~!A�0z1=�l�g��v��g���/�T������v��o������wW��[��?c���j�5�($�)��F�3�,ћ��$����ݐ��}APX%=��A&'@�Uxu��W?�����g�tv&�����ϛ�D_j�����&N�o�"#�0j�R`�%{����hhSy%Na�� s�}`�@3��H�؈-R -~,̱<
�N����/oY�@Ty���AJ�����R��g�w#�v���"�*e�E�FكG�s�����~Ӎ�7ݨ�ip��"�"����D� -��
�ol�x4NØk�&�%��~�&Eè�ApTБ� -t��[罘> -|\���#�W>4?�QT��T>A��19��C b -����j�N���k�Ē�i�K�
���6�2d&�C="zH:H��QR�Pm>� ѐ����֧#�E�;��.H@�F�T�E�9���tB� ���]�)�a�3�{��E�M�� -&/�ؿi�̚���O���C�=9��
����>�mԻ{ZA�Wj��0-�&��M���V�%�����<+7��w ���R�<�~3z� -:�q�ݍ�X�~�?��O=� -�
�՜�Ơf��Tv��ZS -�#�n������=t�����o���*}���{���� �{�@�ұ��a��v���){�'��'�|�G}���J���tb�V�?���v�~M��zδ��/z
��;+�A��H@�����je�L&�^@�@�6����:�u�;�@�>��=����$��I�R�5ai-+�!3$¡~�XY."P�ϑ�ӡHZEV���Ps�ʘ�Ru�@�������d�p݀�,��v��ݺ�V'�]�$�ۓ��M��: -qU�"~���)@��lʢ�Q�߾�c���8��GU�l�N -Q���֡�zG��x���aM/�q��oʏ��A���2;�z�.�W���$�-�� -���L3BhEn�2K�î��U�D��y2aa2�{�!�%�@
��@P(��ޓNG���;M5�[%�@����K��#h�˒d?�������5��Sn��ll�k�6"�Ӛ��Z4�h5whRxl@�1g�Hn -��[m�L�#h�t���m�J �%o$$��Q�wsY�G�?ȢΒ�0�p��G7 ��f�};]-5#F�%�ߢYry0>�t@�b��"���,�Y���xi-a��k�S�nwH��j�M1�Ѭ�>����M�J]^�S{Q���ii��م5绔m�l�\y�"e{��#`�����,'�����z;�֝;�/��<�w:�dOq��1��\U�Uvt�~�u��pU/}+"Q���rvWm���k�-�}=�oWU�����6��@S�ʥ���K# -�]�7t -��i�ҝȆW���!>�� -|ZD)lM��&!����y
~5,Y8~�XB.�c�L3����;�e��m���o/#`��H��iT���#1�
^��r��I��Z���WR��E�;6.�LL���F-JW�bc���4J��a�� >訒ʑ�c��Aɪ -�c��4C}lήM���2J3�Il���N=�y -XY��4O�h]����6/SGb��k'Ay���뱬�<�$u�}�Z�ޜm�;�:�/�Ƈ0�Q�
x��5F�)u�g����7�v��^�N�,�N��;ƈ�X�GkȼTo���!�r�l3@���M�d��] C��ђ:�:#2\��>��<J���%a��3 - -tơ�bvj{]�Me��.z.%��8�Df�(�������1O�ʈ�eg������0%�j�ڤ`(b�������H���y���&���i�9]h���:�\��t �Us���ׇ�|�l��&An��/��V@��j�!�Zkm�I`e(K*��_ߛh�>��ShP�+�j��@�!>tsb#��(�@����������3�E7�51u�z�]U�� JcPȥ+)��mN�TN���#�nMȻf@C-wTJ�d�>�3���d�L/���\�.9�q�l�z's9�p۬��a�L�lD����l�;�7�`7��d�Q6-��p��۬�%\.ns���n���W߾������W�7�n����rˋ�߽{�|���>���������۫��\������ϖ_��//>������������$i�@9�7"�]K���� &��ŗ�Wo�������-��zs����WWonn���������ǿ�������+��|������]�+��o?�}����������l�]#|��տ����ޛ�SK9��j���J��kL?��DC.�]��~Ϗ����/����-����<�Z,�m��2y0_�Ë�&��#�&���\\��2撬%��� }`M��Du�8 -�T5��d�g����*�!��S�~`�k��̿:�9-��m�{z��~�.ƛ��>J��=)]j�&Ɋ�v���Ni0��*2�6�q�V���.���p�Mln�K\�bdDYQM��[���zy ���]�틼\�xd,A��2,�pn�ѿ"Z���ٞ4ę��?�� �(k,��i�D��Yf\���H.yGtz�HƉ�����e��4�'�;(<�����Ω#(���pU�=_�R�J2�Kt#yzfz���&[�->�9_�,O//������o?�ޔ?�-�Gc���l���X��s�C�p�C �'B���S�Fz�~��J�}[�)���@��.A�]�Y -�\]r�z+1�,�f<���>�����PǴI�l -�2�@�әH�)���DW�EGDAϼ$W�1�d�X���H��c�ј��f��������=�I\�G���sʐ\r*#I�t�P�YV�����&t���&�@��4 hֵ�����\�n�� -��<���5S�s���2D ;���\��_��]�χ��2�qaw%��ٹ���Ms%F�}���LէAcRa���¬Q�0fF�^�������Je���0��^��+�˲���0TH���ptvF��>�j����)��(j-��J �����yj��U*�QѽNN8�k��aM�K�?!��S
���knp���z���I�w[U������z�+��[� -H��W�n�H~�C�1`��1�e;�`v�8������H�� - ����~�jJ�ĦlK�,�� ��u|uts�VVeB��j�D�/��U�x:5�χ�Q1�c��t��`�R�#ֽ�O��kvxrr�������x��p����c����gv�q��x�B�7x����]�<�&fs'D�$�ሤ�՞u$ϭU��ؠ�b߳����>0re�f-���`���;� Z��[�k� G��{'��"ʁz0���u����)̈́ɕ��R��>�g o�b~i^Ӆ�l��W�u�̍p��1�!T��8(���AoaؿR<βG���\*"�\x�4p�HMK�2`�7��� -p9$`Nkc�>�;�o䁡X� -�VH�N��0������zz�o���b:�G��s>�I&��������~ڇ�]���_�*g,Ec%45Kqj���� -�cࠇx���Kh��
���eu�Fn�<���N��@�/ıBMBs#��)��}q�:��(<�Et���j�����ko�5�vYD��9]�7u,%#�X%t�/��S7DKw�J
0��ط�1u�k,2DLW��eĖuM���jYk�d�A�&�
��
��&ҚN��}�ל�Ws-KR$n�&��ɢT�]����D��%��.L����Ԃ��>o�:�+��Ƈ����p���/ٽ�������+fts�s�;�>qBhVnY�b�&��,g�M5׳�dAkQ��rN�4ВE�hsU�����\��Z�b��o�ɺ�o�>�����{���r~����˸�+���r�����G��F�_/�1`��w7���z�z7�Gz̡�ө�'7Z�����_y_�������yvx<.���v���-F�u9e��A9=z��?�U5��������p�2�&�/��D��G�[X���U1�_E���v4X�"Z�MR��a�����uM���b�?8 �(���C1)�倡����G��V���Ӣb��E����A��t:�QS���O�ρ -;dU
�� z]d��ۂ�� -h�wص�#1���hTܠ�k�3�e�!�e�ܚ�ev���V��F��l7��(�_��{h�,ɟ0��M��
w#�ƴR]��{�dk�Q@��ͣ���V�5���H��X����ju0%F[��Ye
v� �!���wΝ�J�-��:3B�9|1���Y��}4�1�/�^》=��d�=�d��\~힎o&ԭ^+`M�h��j�Q=�.X^`j�~ΆI`*�b^��m!ᤘ
�+�G����9G_f��������֓�����
��C����b8A�P�H��a*l��(EF�����?d��^���署?�L=�ǰX)h�����}���_h�[���S�uW����i/2���j"�/�{������5���O��b�˫rR����K���H���O�J��
kU���~�^���5�G��x��A^��٤*���y�E}!Ez���K�v&^KZ�9�N�~y���vy����bPNk�~��[���p6���^F̗$���e�pE=��Ŝa���H� -PlQ%��`7 -{p��O��C�������
�?�ʢP��˖��bx�R�'�?� ��2+�t�}}��Ռķ������j�mG�_��cG�_�-�d�,� �w�,w�ؔѦ7��-R�7Gّ���h��"U�:ujGv�O��}4v�n�ʌ]-ӕ��B�1���l��
�$�C�'#ɿ��+������け<���LwI�s�K���v]B6g�6��3��}��O�?<fo#��9;���;$�Y�u@���B��*Q�j�ݿ�?`���G���)bD�!�K�P4�����8`�sOo��: -�E=��w��M����zw��~���X��g��G��`��W����k�zi���o�w����ooݝ��w���o&��yr�`�T�t��R �4���N$�j��r�y�N%�� -�@2F�@��V�(��i|�#��M�1�i�J�#� -��B�TFT2F&���q��W$J��aa��V���mG$8[,6�
n#�PO|����伽�vdW��H�Gc������2]��)㺜��0�G�?$y2��{H�r�����,8ɻF������D��ٕc��"j�!=@;Zq���Q�[���ڂp���/I�u.��wޘ���g`�*%�g�E��Gi���po���t*���|��&[{�F��Z)�Q)���)ǂ�d<W#��VJ���&��f8�TΝ�fA�W-���с�g�.�z�{E�4�ˑi�&�Xh�!���o��z) -V2V�� -���WM\`����U9��$��9m��&<wu*Q�R�A"��'F�pc�7{�v��`!&m�A]B@O��$�:���; oL�l���3�J�*_��"v���h�JO��Q�t:]ef�Mm��=4�X~-��(�O�J0*0>V\jx�� ���#(a$��X -^����сifE�c�+��]�L� -� "b)�9ČI���@6�X#�i�(q�Xl�F���sCgWɀ{g�����I�̏Ʈ��Y���e�rSxo�u9�-6�a��H�d��(��$P5��D���][�t�\�:�
�1�X箶��#r�^B����o� -!O���Z��Bi�3�TR`����+EX�zFT2F�����^�<��rdֽ��FC�pNA -�0,�Yx;�QZ��$�'��(~:���23ߦ���Z�Q*���|��'He�4�N+�9�N!c�)ɥ2��i�&�VțB9�5�Q��|F���^�<��rd�U��sP#&���q.���H�;�Sĕr����5xk�@H;xwD���b���6���:�Jn�;kG��`�"��]���2�W�t�&�|��r:[llÌ��a1 c18� -壅���Z J(�R�ќW�fP�`����6�Ռ�d�L5#W�T���Ț�w92�*�VZ��Es�|+�%�h����J��Q]��FZ����l��$6���C='�ή�����`-���Gc���L��2]��)<3㺜��0F�?�2�����( -��f�����2nW ���&��)a��t -NI�fr���aw.
{���s -%��-�/p��jgp�Dh�^�M� -�@-�B�}�R0�+�nɬ�LЧ�1�@�6��E��N�'��jɫ�"F�2>M�2�P��N����� -Ύ�e�Z��� -�����X�vdz�9<.n���!�� -�Z#�#&�]��D���ӆ�ʸՐ�҂ �t�hT�4�J����z5�eL(��쵁�Z��+h��4��� -c Aۜ' i����d��.���Άd�1 -,P�2a�T�j�ea.D��x"��9��yR��#�i�q�0�8�!q���N���.��$�Fc2�D�0�D˕�F�DwC�Q�Xi%�e��^ei�G9醅R�E�X��ɬ�ʵ����4!���#-Au��-<'B -Z'M�ډ�; -������`��On��`�m��E-���*��}B1:�������U�-cIf|H/Q$� �ȟ,a.D$T��$[����:l��VUz.�%M��":5iW�� -ꡥ���Cs��V]:��)zJ繖�"f��m �ц��2n���=�Ih%{xb����5�|���@� �c�Z]GX�N-&m
� -MV�>|M�]����)-
1FbCw��\�l�U7�ɰ.50d T^�E#�;�:J��5@u��w�����1���3���(�2D��k�?M �T��� �7������ �{T����qUT�ډ�#��Q+g�a��.��S�$�\�-������� -��]6�p=?���r���g��!5R�x5�6�q�Fׅ[�А�!�@ I
��>�[��U -m�Vu9����wx -כ�pci~��4�$Q�G��pNv�ªU�3<�-����-�_ z���a����4Ëە��ִ�~�̓��/�yr����+M��g����q���F�ͧ��,�`f�m�V��w���laA�@*�Շ�/�z7����h��sQ��펐v@d���A �;ԝW�|"�i���N�C
5�.��<�ŗ{O�*��Ն� ~����7��B�}�Y[
��@�Yσ��k�MS�jֵ
�gԫB9��M1"��ng�Evu�k�p�oS�+jF��A�������V5�J�2�i`�P�sJ@_�*.XR5#��]�֡UiN��ۈ�R�0SRзPQE�&��S_m;j�@�?�?�e+���BH� JW]i�H�JU�Lb��q�c���;���pY��m�3���d�9A��F��*�2�`�Ǹ�"�����B�c� -=TTQ����t[������W0}d�Z ��,����tÅ
,��zH3,)��@hE.nφ۳��w���t0�"�'�Q#ͻH��R�T��V�Ŋ���
�@]��~��`qG �����t���TAz�P`,��AJ�@��W�>>����U����ԡu�B���^����#0���buđ�7�_���&�%�蘌����T��)}�������y�(��^��*�o�H4�{q<�����G��1S�ΜdI�l��\R���6�K_ȩ�1�HsY���2���s���<L�-O���D�Tg�3�&d�H"����h,�'�2�i�}��H -��XO�J�r��؍��|9p�t��gL��Q1&��b��,WD���h��+0��k�=DJӊ͠���z��k�O0�s]���B�L���L�B�d�~3��nf-{���M$�8;s~��8ʀj�2�y��k��܄�/�|+ �r��߁x|�+YQ� -��x��LiUr�!�Z���3�]�kM�/��Ϙm���>?���p+"�+���:\M���051�5�����6�9�)�_�4ǔȑN�r~��+��߬��b%�ʟ�9#�4�ŷ���%� -0000000016 00000 n
-0000000187 00000 n
-0000048141 00000 n
-0000000006 00000 f
-0000202607 00000 n
-0000000007 00000 f
-0000000008 00000 f
-0000000009 00000 f
-0000000010 00000 f
-0000000011 00000 f
-0000000012 00000 f
-0000000013 00000 f
-0000000016 00000 f
-0000203051 00000 n
-0000203082 00000 n
-0000000017 00000 f
-0000000018 00000 f
-0000000019 00000 f
-0000000020 00000 f
-0000000021 00000 f
-0000000022 00000 f
-0000000023 00000 f
-0000000024 00000 f
-0000000025 00000 f
-0000000026 00000 f
-0000000027 00000 f
-0000000028 00000 f
-0000000029 00000 f
-0000000031 00000 f
-0000202677 00000 n
-0000000032 00000 f
-0000000033 00000 f
-0000000034 00000 f
-0000000035 00000 f
-0000000036 00000 f
-0000000037 00000 f
-0000000038 00000 f
-0000000039 00000 f
-0000000040 00000 f
-0000000041 00000 f
-0000000042 00000 f
-0000000043 00000 f
-0000000044 00000 f
-0000000045 00000 f
-0000000046 00000 f
-0000000049 00000 f
-0000202935 00000 n
-0000202966 00000 n
-0000000050 00000 f
-0000000051 00000 f
-0000000052 00000 f
-0000000053 00000 f
-0000000054 00000 f
-0000000055 00000 f
-0000000056 00000 f
-0000000057 00000 f
-0000000058 00000 f
-0000000059 00000 f
-0000000060 00000 f
-0000000061 00000 f
-0000000062 00000 f
-0000000065 00000 f
-0000202748 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000202819 00000 n
-0000202850 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000050119 00000 n
-0000203167 00000 n
-0000048193 00000 n
-0000048572 00000 n
-0000050546 00000 n
-0000050310 00000 n
-0000050423 00000 n
-0000049675 00000 n
-0000049831 00000 n
-0000048951 00000 n
-0000049111 00000 n
-0000049161 00000 n
-0000050055 00000 n
-0000049991 00000 n
-0000050192 00000 n
-0000050224 00000 n
-0000050621 00000 n
-0000051020 00000 n
-0000052016 00000 n
-0000064229 00000 n
-0000079796 00000 n
-0000088775 00000 n
-0000102862 00000 n
-0000118580 00000 n
-0000137134 00000 n
-0000151107 00000 n
-0000155025 00000 n
-0000167319 00000 n
-0000193710 00000 n
-0000203192 00000 n
-trailer
<</Size 123/Root 1 0 R/Info 122 0 R/ID[<F744BDF41FE14BC9945784F7EE756AD5><63A25CD788C54777A520AA0BCF45A62A>]>>
startxref
203363
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/omnibox_history.png b/chrome/app/theme/omnibox_history.png Binary files differdeleted file mode 100644 index 1466879..0000000 --- a/chrome/app/theme/omnibox_history.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_history_dark.png b/chrome/app/theme/omnibox_history_dark.png Binary files differdeleted file mode 100644 index f9071ec..0000000 --- a/chrome/app/theme/omnibox_history_dark.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_history_dark_transparent.png b/chrome/app/theme/omnibox_history_dark_transparent.png Binary files differdeleted file mode 100644 index 2edc8d8..0000000 --- a/chrome/app/theme/omnibox_history_dark_transparent.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_history_selected.png b/chrome/app/theme/omnibox_history_selected.png Binary files differdeleted file mode 100644 index 972be77..0000000 --- a/chrome/app/theme/omnibox_history_selected.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_history_transparent.png b/chrome/app/theme/omnibox_history_transparent.png Binary files differdeleted file mode 100644 index 4b0fc77..0000000 --- a/chrome/app/theme/omnibox_history_transparent.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_http.pdf b/chrome/app/theme/omnibox_http.pdf deleted file mode 100755 index 2055179..0000000 --- a/chrome/app/theme/omnibox_http.pdf +++ /dev/null @@ -1,1335 +0,0 @@ -%PDF-1.5
%����
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 30 0 R 63 0 R]/Order 64 0 R/RBGroups[]>>/OCGs[5 0 R 30 0 R 63 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 50444/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdf:Description rdf:about="" - xmlns:xmp="http://ns.adobe.com/xap/1.0/" - xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> - <xmp:ModifyDate>2010-04-05T10:18:41-07:00</xmp:ModifyDate> - <xmp:CreateDate>2009-11-11T14:17:05-08:00</xmp:CreateDate> - <xmp:MetadataDate>2010-04-05T10:18:41-07:00</xmp:MetadataDate> - <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool> - <xmp:Thumbnails> - <rdf:Alt> - <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>256</xmpGImg:width> - <xmpGImg:height>256</xmpGImg:height> - <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FVK5u7W1hM11MkEK/allYIo+bMQMIBPJBNMQ1f83PJ9hVIZpL+UbcbZKrX/AF34L91cyYaO
Z8muWaIYjqP556m5I07TYYB0Dzs0p+dF9MD8cyY6EdS1HUHoGO3n5qeeLmo/SHoIf2YY41/4biW/
HLo6TGOjA5pJRP5u80z/AN7q94w/l9eQD7g1MsGGA6BhxnvQh1jVySTfXBJ3JMr/ANclwR7kcRcN
Y1cEEX1wCNwRK/8AXHgj3LxFFwebvNMH91q94o/l9eQj7i1MicMD0CeM96b2f5qeeLag/SHroP2Z
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
AP/Z</xmpGImg:image> - </rdf:li> - </rdf:Alt> - </xmp:Thumbnails> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" - xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" - xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> - <xmpMM:DocumentID>xmp.did:F77F1174072068119B30B52A3A51FD83</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:d720c1ca-e29f-fb43-b38d-203a5694e1f5</xmpMM:InstanceID> - <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> - <xmpMM:OriginalDocumentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</xmpMM:OriginalDocumentID> - <xmpMM:DerivedFrom rdf:parseType="Resource"> - <stRef:instanceID>uuid:cb58d661-cdc7-e34a-aa9f-b935d8a59714</stRef:instanceID> - <stRef:documentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</stRef:documentID> - <stRef:originalDocumentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</stRef:originalDocumentID> - <stRef:renditionClass>proof:pdf</stRef:renditionClass> - </xmpMM:DerivedFrom> - <xmpMM:History> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:F77F1174072068119B30B52A3A51FD83</stEvt:instanceID> - <stEvt:when>2009-11-11T14:16:58-08:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - </rdf:Seq> - </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <dc:format>application/pdf</dc:format> - <dc:title> - <rdf:Alt> - <rdf:li xml:lang="x-default">o2_mag</rdf:li> - </rdf:Alt> - </dc:title> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> - <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" - xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" - xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> - <xmpTPg:NPages>1</xmpTPg:NPages> - <xmpTPg:HasVisibleTransparency>True</xmpTPg:HasVisibleTransparency> - <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> - <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>19.000000</stDim:w> - <stDim:h>19.000000</stDim:h> - <stDim:unit>Pixels</stDim:unit> - </xmpTPg:MaxPageSize> - <xmpTPg:PlateNames> - <rdf:Seq> - <rdf:li>Cyan</rdf:li> - <rdf:li>Magenta</rdf:li> - <rdf:li>Yellow</rdf:li> - <rdf:li>Black</rdf:li> - </rdf:Seq> - </xmpTPg:PlateNames> - <xmpTPg:SwatchGroups> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Default Swatch Group</xmpG:groupName> - <xmpG:groupType>0</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>White</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>255</xmpG:green> - <xmpG:blue>255</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>Black</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>27</xmpG:red> - <xmpG:green>24</xmpG:green> - <xmpG:blue>24</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Red</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>7</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Yellow</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>242</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Green</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>157</xmpG:green> - <xmpG:blue>62</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Cyan</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>160</xmpG:green> - <xmpG:blue>239</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Blue</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>35</xmpG:red> - <xmpG:green>28</xmpG:green> - <xmpG:blue>129</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Magenta</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>120</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>199</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>26</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>16</xmpG:green> - <xmpG:blue>29</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>55</xmpG:green> - <xmpG:blue>10</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>123</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>157</xmpG:green> - <xmpG:blue>32</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>251</xmpG:red> - <xmpG:green>237</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>202</xmpG:red> - <xmpG:green>221</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>101</xmpG:red> - <xmpG:green>192</xmpG:green> - <xmpG:blue>39</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>173</xmpG:green> - <xmpG:blue>54</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>136</xmpG:green> - <xmpG:blue>51</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>89</xmpG:green> - <xmpG:blue>42</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>173</xmpG:green> - <xmpG:blue>94</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>155</xmpG:green> - <xmpG:blue>140</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>154</xmpG:green> - <xmpG:blue>221</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>96</xmpG:green> - <xmpG:blue>176</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>29</xmpG:red> - <xmpG:green>36</xmpG:green> - <xmpG:blue>128</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>30</xmpG:red> - <xmpG:green>21</xmpG:green> - <xmpG:blue>80</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>91</xmpG:red> - <xmpG:green>18</xmpG:green> - <xmpG:blue>128</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>141</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>126</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>158</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>79</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>235</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>69</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>101</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>184</xmpG:red> - <xmpG:green>165</xmpG:green> - <xmpG:blue>135</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>142</xmpG:red> - <xmpG:green>113</xmpG:green> - <xmpG:blue>100</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>97</xmpG:red> - <xmpG:green>82</xmpG:green> - <xmpG:blue>69</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>75</xmpG:red> - <xmpG:green>57</xmpG:green> - <xmpG:blue>50</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>192</xmpG:red> - <xmpG:green>134</xmpG:green> - <xmpG:blue>85</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>162</xmpG:red> - <xmpG:green>103</xmpG:green> - <xmpG:blue>58</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>128</xmpG:red> - <xmpG:green>73</xmpG:green> - <xmpG:blue>42</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>105</xmpG:red> - <xmpG:green>58</xmpG:green> - <xmpG:blue>27</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>84</xmpG:red> - <xmpG:green>41</xmpG:green> - <xmpG:blue>11</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>49</xmpG:red> - <xmpG:green>26</xmpG:green> - <xmpG:blue>15</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>R=104 G=127 B=173 1</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>104</xmpG:red> - <xmpG:green>127</xmpG:green> - <xmpG:blue>173</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Grays</xmpG:groupName> - <xmpG:groupType>1</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>27</xmpG:red> - <xmpG:green>24</xmpG:green> - <xmpG:blue>24</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>49</xmpG:red> - <xmpG:green>49</xmpG:green> - <xmpG:blue>50</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>70</xmpG:red> - <xmpG:green>71</xmpG:green> - <xmpG:blue>73</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>89</xmpG:red> - <xmpG:green>91</xmpG:green> - <xmpG:blue>93</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>109</xmpG:red> - <xmpG:green>111</xmpG:green> - <xmpG:blue>114</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>128</xmpG:red> - <xmpG:green>130</xmpG:green> - <xmpG:blue>133</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>149</xmpG:red> - <xmpG:green>152</xmpG:green> - <xmpG:blue>155</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>173</xmpG:red> - <xmpG:green>176</xmpG:green> - <xmpG:blue>178</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>197</xmpG:red> - <xmpG:green>200</xmpG:green> - <xmpG:blue>202</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>224</xmpG:red> - <xmpG:green>225</xmpG:green> - <xmpG:blue>226</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>237</xmpG:red> - <xmpG:green>238</xmpG:green> - <xmpG:blue>239</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Brights</xmpG:groupName> - <xmpG:groupType>1</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>7</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>68</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>216</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>151</xmpG:green> - <xmpG:blue>56</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>17</xmpG:red> - <xmpG:green>43</xmpG:green> - <xmpG:blue>137</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>118</xmpG:red> - <xmpG:green>35</xmpG:green> - <xmpG:blue>135</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - </rdf:Seq> - </xmpTPg:SwatchGroups> - </rdf:Description> - </rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[65 0 R]/Type/Pages>>
endobj
65 0 obj
<</ArtBox[2.00146 2.0 17.0 16.999]/BleedBox[0.0 0.0 19.0 19.0]/Contents 66 0 R/Group 67 0 R/LastModified(D:20100405101840-07'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 68 0 R>>/Resources<</ExtGState<</GS0 69 0 R/GS1 70 0 R>>/Properties<</MC0 63 0 R>>/XObject<</Fm0 71 0 R>>>>/Thumb 72 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
66 0 obj
<</Filter/FlateDecode/Length 276>>stream
-H�\R;n�0�y -^@2Q���I;EС0�Li���@HIV�@6��#߃=��8g��p� �8}o_��?���������M�(>Q���1��ft��4�Kݮ�_���3�z1���l!���[�+n�,S�Y]m��jH��ʌo8aE@0��p��y�2�V��d:�T��%��!Qi�(��n�J{�W�F��J9M�
T�D6p��V������,�H�ܢOɼ�6N��`����
;��h)8������P��رeb����a'�0 -8;V'g&!$eu0E;4r!KR~>
endstream
endobj
73 0 obj
[/Indexed/DeviceRGB 255 74 0 R]
endobj
74 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 -VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< -PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
71 0 obj
<</BBox[5.04639 15.8926 15.5459 3.04297]/Group 75 0 R/Length 1668/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 69 0 R>>>>/Subtype/Form>>stream
-0.416 0.494 0.675 rg -/GS0 gs -q 1 0 0 1 5.3018 14.0254 cm -0 0 m -0.19 -0.893 l --0.064 -1.34 l --0.064 -1.787 l --0.255 -2.745 l --0.191 -3.318 l -0.127 -3.703 l -0.575 -4.531 l -0.957 -5.236 l -1.532 -5.236 l -2.361 -6.064 l -2.81 -6.318 l -3.128 -6.705 l -3.128 -7.09 l -2.874 -7.535 l -2.874 -8.109 l -3.128 -8.686 l -3.894 -9.066 l -4.088 -9.896 l -3.767 -10.666 l -3.575 -10.982 l -4.043 -10.942 l -5.132 -10.942 l -5.833 -10.686 l -5.747 -10.344 l -5.811 -10.09 l -6.513 -9.642 l -7.088 -8.686 l -7.472 -8.046 l -7.536 -7.598 l -6.834 -7.215 l -5.747 -6.577 l -5.556 -6.193 l -4.661 -6.002 l -3.703 -6.002 l -3.063 -5.938 l -2.488 -5.428 l -2.043 -5.108 l -1.532 -4.469 l -1.277 -4.404 l -1.277 -3.894 l -1.277 -3.383 l -1.596 -3.383 l -2.235 -3.383 l -2.619 -3.446 l -2.619 -3.894 l -3.128 -3.957 l -2.936 -3.191 l -2.936 -2.872 l -3.321 -2.68 l -3.575 -2.488 l -4.088 -2.107 l -4.596 -1.34 l -4.854 -1.083 l -4.278 -0.639 l -3.703 -0.383 l -3.449 -0.639 l -3.192 -0.668 l -2.81 -1.083 l -2.81 -1.403 l -2.297 -1.147 l -2.841 -0.445 l -2.361 -0.063 l -2.745 0.129 l -3.192 0.449 l -3.513 0.769 l -3 0.832 l -2.555 0.832 l -2.106 0.576 l -1.66 0.896 l -1.341 1.152 l -0.702 0.959 l -h -f -Q -q 1 0 0 1 8.5698 15.2539 cm -0 0 m -0.639 -0.319 l -0.957 -0.894 l -1.532 -0.83 l -1.786 -0.319 l -1.532 0.191 l -0.894 0.639 l -0.05 0.637 l --0.562 0.521 l -h -f -Q -q 1 0 0 1 12.7896 14.8984 cm -0 0 m -0.446 -1.342 l -0.829 -1.787 l --0.008 -3.109 l -0.281 -3.438 0.616 -3.5 v -0.83 -3.541 0.868 -3.094 1.085 -3.145 c -1.424 -3.225 1.886 -3.516 1.91 -3.587 c -1.974 -3.779 0.471 -5.025 y -0.95 -5.984 l -1.723 -6.754 l -2.17 -6.322 l -2.49 -6.77 l -2.756 -5.703 l -2.718 -4.786 l -2.642 -3.982 l -2.49 -3.193 l -2.131 -2.605 2.067 -2.414 v -2.004 -2.223 1.34 -1.305 y -h -f -Q -
endstream
endobj
75 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
69 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
63 0 obj
<</Intent 76 0 R/Name(Layer 1)/Type/OCG/Usage 77 0 R>>
endobj
76 0 obj
[/View/Design]
endobj
77 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
70 0 obj
<</AIS false/BM/Normal/CA 0.5/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.5/op false>>
endobj
68 0 obj
<</LastModified(D:20100405101840-07'00')/Private 78 0 R>>
endobj
78 0 obj
<</AIMetaData 79 0 R/AIPDFPrivateData1 80 0 R/AIPDFPrivateData10 81 0 R/AIPDFPrivateData11 82 0 R/AIPDFPrivateData2 83 0 R/AIPDFPrivateData3 84 0 R/AIPDFPrivateData4 85 0 R/AIPDFPrivateData5 86 0 R/AIPDFPrivateData6 87 0 R/AIPDFPrivateData7 88 0 R/AIPDFPrivateData8 89 0 R/AIPDFPrivateData9 90 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 11/RoundtripVersion 14>>
endobj
79 0 obj
<</Length 941>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (o2_http_selected.pdf)
%%CreationDate: 4/5/10 10:18 AM
%%Canvassize: 16383
%%BoundingBox: -7 -7 8 8
%%HiResBoundingBox: -6.99854 -7 8 7.99902
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -9 -9 10 10
%AI3_TemplateBox: 32.5 15.5 32.5 15.5
%AI3_TileBox: -305.5 -395.5 306.5 396.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -14 19 24 1283 746 26 0 1 115 112 0 0 0 0 0 0 1 1 1
%AI5_OpenViewLayers: 7
%%PageOrigin:0 0
%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
80 0 obj
<</Length 18246>>stream
-%%BoundingBox: -7 -7 8 8
%%HiResBoundingBox: -6.99854 -7 8 7.99902
%AI7_Thumbnail: 128 128 8
%%BeginData: 18114 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD37FFA8AFA8A87E847E7E7E847E7E7EA884A9A8FD6AFFA884597E
%53532F532F532F5A53532F5A53532F532F532F5A537E7EA9A8FD5FFFA97E
%7E535A535A535A535A535A535A535A535A535A535A535A535A535A535453
%5A5A84A8FD58FFA8A959592F532F532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F532F53537E84FD53FFAF7E7E535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A5384A8FD4EFF7E7E2F532F5A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%53532F5459A8AFFD49FFA95954535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A7EFD46FF7E5A2F5353532F5A53532F5A53532F5A53532F5A53
%532F5A53532F532F532F532F532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A2F5353A8FD42FFA95A5A535A535A535A535A535A535A535A53
%5A535A535A535A535A537E5A7E5A7E5A7E537E535A535A535A535A535A53
%5A535A535A535A535A535A535A537EA8FD3EFFA87E2F5A5353535A535353
%5A5353535A53532F5A2F53537E597E7E847EA8A8A9A8A9A8FFFFFFA8FFA8
%A87E7E595A2FFD04535A5353535A5353535A5353535A535359FD3CFF7E5A
%535A535A535A535A535A535A535A535A535A59A984A87EA9A8A984A984A8
%7EA984A9A8FD0AFFA97E7E53542F5A535A535A535A535A535A535A535453
%A9FD39FF53532F5A53532F5A53532F5A53532F532F5359A8A8FFFFFFA884
%7EA87E847EA87E847EA87E8484FD0DFF7E7E2F532F532F5A53532F5A5353
%2F5A53532F7EA8FD35FFA9535A535A535A535A535A535A535A535A5AA9A9
%FD07FFA8A984A984A984A984A984A984A9A8FD0FFF847E535A535A535A53
%5A535A535A535A535A84FD33FF7E2F5A5353535A5353535AFD05537EA8FD
%0BFFA8A87EA87EA87EA87EA87EA87EA87EFD10FFA9595A2F53535A535353
%5A5353535A53537DFD30FFA97E535A535A535A535A535A535A535A7EFD0F
%FFA8A97EA87EA984A87EA984A87EA9A8FD11FFA8845354535A535A535A53
%5A535A535459FD2EFFA8592F5A53532F5A53532F5A53532F7EA8FD11FFA8
%A97E847EA87E847EA87E847E84A8FD12FFAF59532F5A53532F5A53532F5A
%535353A9FD2BFFA85A535A535A535A535A535A535A53A8A8A97EA9FD12FF
%A8A984A984A984A984A984A9FD14FFA87E535A535A535A535A535A535A53
%A9FD29FF7E545353535A5353535A53532F5A59A87EA87EA87EA8A8FD11FF
%A8A97EA87EA87EA87EA87EFD15FFAFA85353535A5353535A5353535A2FA8
%FD27FFA854535A535A535A535A535A537E7EA984A87EA984A87EA9A8FD05
%FFA8A9A8A9A8A9A8FFA8FD04FFA984A87EA984A87EA9FD18FF5954535A53
%5A535A535A535A53A9FD25FF7E5353532F5A53532F5A53532F84A8A87EA8
%7E847EA87E847E8484FFFFFF7E847EA87E847E847EA9FD04FFA8847E847E
%A87E84A8FD15FFA8A8FFFF7E532F5A53532F5A53532F542FA8FD23FFA85A
%535A535A535A535A535A53AFFFA984A984A984A984A984A984A884A984A9
%84A984A984A984FD07FFA8A984A984A884FD17FF7EA9FFFFA85A535A535A
%535A535A535A53A9FD21FFA8532F5A5353535A5353535453AFFFA87EA87E
%A87EA87EA87EA87EA87E847EA87EA87EA87E847EAFFD08FF7E847EA87EAF
%FD17FFA87EA9FFFFA85A2F53535A5353535A53532FA9FD1FFFA85A535A53
%5A535A535A535459FFFFA97EA984A87EA984A87EA984A87EA984A87EA984
%A87EA984FD0BFFA9FFA9FD19FFA9A87EA9FFFFA97E535A535A535A535A53
%5A53FD1EFFA95A2F5A53532F5A53532F5359FFFFA97E847EA87E847EA87E
%847EA87E847EA87E847EA87E8484FD29FF7E847EA8FFFFA87E2F532F5A53
%532F5A535353FD1DFF7E535A535A535A535A535A7EFFFFFF84A984A984A9
%84A984A984A984A984A984A984A984A9A9FD2AFFA97EA984A9FFFFFF7E2F
%5A535A535A535A535A7EFD1BFF842F53535A5353535A535359FFFFFF84A8
%7EA87EA87EA87EA87EA87EA87EA87EA87E847EFD2DFFA8847EA87EA8AFFF
%FF7E2F5A5353535AFD04537EFD19FFA92F5A535A535A535A535A5AFD04FF
%A97EA984A87EA984A87EA984A87EA984A87EA984A9AFFD2DFF84A87EA97E
%A9FFFFFF7E2F5A535A535A535A535AA8FD18FF53532F5A53532F5A535353
%FD05FFA8847EA87E847EA87E847EA87E847EA87E847EA87E84A8FD2CFFA8
%7E847EA87EA8A8FFA95A2F5A53532F5A53532F5AA8FD16FF7E5A535A535A
%535A535A53FD07FF7EA984A984A984A984A984A984A984A984A984A97EA9
%A8FD2BFFA9A884A984A97EA9FFFFA95A535A535A535A535A5384FD15FF84
%545353535A5353535A53A9FD07FFA87EA87EA87EA87EA87EA87EA87EA87E
%A87EA87EA87EA8A9FD05FFA8A87EA9A8FD21FF7E847EA87EA87EA9FFFFA8
%545353535A5353535A2FA8FD14FF5A535A535A535A535A2FA9FD08FFA8A8
%7EA984A87EA984A87EA984A87EA984A87EA984A8A8FD05FFA9A87EA984A8
%A8FD21FF84A87EA984A87EAFFFFF7E5A535A535A535A535A59FD13FF842F
%532F5A53532F5A2F7EFD09FFA97E847EA87E847EA87E847EA87E847EA87E
%847E84A8FFFFFFA9A87EA87E847EA87E847EA9FD20FF7E847EA87E847EFF
%FFFF595353532F5A53532F537EFD12FF535A535A535A535A535AFD0AFFA9
%A884A984A984A984A984A984A984A984A984A9A8FD04FFA97EA984A984A9
%84A984A984A9FD20FF7EA984A984A984FFFFFF535A535A535A535A535AA9
%FD10FF59545353535A53535354A8FD0AFFA97EA87EA87EA87EA87EA87EA8
%7EA87EA87E847EFFFFFFAFA97EA87EA87EA87EA87EA87EA87EA8A8FD1DFF
%A9847EA87EA87EA8A8FFFFA92F53535A5353535A2F7EFD0FFFA85A535A53
%5A535A53547EFD0BFF7EA984A87EA984A87EA984A87EA984A87EA984FD04
%FFA97EA984A87EA984A87EA984A87EA984A8A8FD1CFFA984A87EA984A87E
%A9A9FFFF84535A535A535A535A53AFFD0EFF7E2F532F5A53532F5453FD0B
%FFA8847EA87E847EA87E847EA87E847EA87E847EA8A8FFFFFF7E847EA87E
%847EA87E847EA87E847E8484FD1CFFA97EA87E847EA87E847EA8A9FFA85A
%53532F5A53532F5359FD0EFF535A535A535A535A53A9FD0AFFAFA884A984
%A984A984A984A984A984A984A984A984A884FFFFA97EA984A984A984A984
%A984A984A9A8FD1DFF84A984A984A984A984A984A9FFFF845A535A535A53
%5A535AA8FD0CFF59545353535A53532F7EFD0BFFAF7EA87EA87EA87EA87E
%A87EA87EA87EA87EA87EA87E847EA87EA87EA87EA87EA87EA87EA87E847E
%FD1DFFA8847EA87EA87EA87EA87EA87EFFFFFF5353535A5353535A2F7EFD
%0BFFA95A535A535A535A535484FD0BFFA8A984A87EA984A87EA984A87EA9
%84A87EA984A87EA984A87EA984A87EA984A87EA984A87EA984FD1DFFA8A9
%84A87EA984A87EA984A87EA9A8FFFFA9535A535A535A535A53FD0BFF842F
%532F5A53532F5353FD0CFFA97EA87E847EA87E847EA87E847EA87E847EA8
%7E847EA87E847EA87E847EA87E847EA87E847EA9FD1DFFA87EA87E847EA8
%7E847EA87E847EA8A8FFA85A2F532F5A53532F537EFD0AFF535A535A535A
%535A53A9FD0CFFA8A984A984A984A984A984A984A984A984A984A984A984
%A984A984A984A984A984A984A97EA9FD1DFFAF7EA984A984A984A984A984
%A984A984A9FFFFA85A535A535A535A537EFD09FF84FD04535A53532F5AFD
%0DFFA97EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87E
%A87EA87EA87EA87E84A8FD1DFF7EA87EA87EA87EA87EA87EA87EA87EA87E
%FFFFFF5353535A5353535A2FA8FD08FF7E2F5A535A535A53547EFD0DFFA8
%A87EA984A87EA984A87EA984A87EA984A87EA984A87EA984A87EA984A87E
%A984A87EA8A8FD1DFF84A984A87EA984A87EA984A87EA984A87EA9A8FFFF
%A9535A535A535A535A7EFD08FF53532F5A53532F5A53FD0DFFA8A87E847E
%A87E847EA87E847EA87E847EA87E847EA87E847EA87E847EA87E847EA87E
%847EFD1DFFA8847EA87E847EA87E847EA87E847EA87E847E84A8FFA85A53
%532F5A53532F5AA8FD06FFA85A535A535A535A537EFD0EFF84A984A984A9
%84A984A984A984A984A984A984A984A984A984A984A984A984A984A8A8FD
%1EFFA97EA984A984A984A9A8A984A984A984A984A984A9FFFF7E5A535A53
%5A535A53A9FD06FF7E2F53535A53535354A8FD0DFFA8A87EA87EA87EA87E
%A87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA8A8FD1FFFAF
%A87EA87EA87EA9FFFFA8A97E847EA87EA87EA87EA9FFA92F53535A535353
%547EFD06FF535A535A535A535A53FD0EFFA97EA984A87EA984A87EA984A8
%7EA984A87EA984A87EA984A87EA984A87EA97EA9FD23FFA97EA984A8A9FD
%05FFA8A87EA984A87EA9A8FFA95A535A535A535A535AFD05FFA8532F5A53
%532F5A2F7EFD0EFF84847EA87E847EA87E847EA87E847EA87E847EA87E84
%7EA87E847EA87E847EA9FD26FFA8A8A8FD07FFA8A87EA87E847EA9FFFF59
%5353532F5A53532FA9FD04FFA82F5A535A535A535AA8FD0EFFA984A984A9
%84A984A984A984A984A984A984A984A984A984A984A984A8A8FD34FFA984
%A984A984FFFFA9535A535A535A535A84FD04FF5953535A5353535A53FD0F
%FF7E847EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA9A8
%FD35FF7EA87EA87EA8A9FFA85A5353535A53532F7EFFFFFFAF5A535A535A
%535A537EFD0FFFA984A87EA984A87EA984A87EA984A87EA984A87EA984A8
%7EA984A8A9FD35FFA8A87EA984A87EFFFFFF595A535A535A535A53FFFFFF
%A92F5A53532F5A53537EFD0FFF84A87E847EA87E847EA87E847EA87E847E
%A87E847EA87E847EA87EFD35FF84847E847EA87E84A8FFFF7E2F5A53532F
%5A5353A8FFFF845A535A535A535A53A9FD0FFFAF84A984A984A984A984A9
%84A984A984A984A984A984A984A984A9A9FD33FFA8A984A984A984A97EAF
%FFFFA85A535A535A535A53A9FFFF842F5A5353535A5353A8FD0FFFA8847E
%A87EA87EA87EA87EA87EA87E847EA87E847EA87E847EA87EA9FD32FFA884
%7EA87EA87EA87E8484FFFFA9535A5353535A53537EFFFF7E5A535A535A53
%5A53FD11FF84A984A87EA984A87EA984A8A8FFAFFFA9FFFFFFA8FFA8A97E
%A9A8FD31FFA8A984A87EA984A87EA984A9FFFFFF5A535A535A535A537EFF
%A97E2F532F5A53532F7EFD12FF7EA87E847EA87E847EA87EFD0BFFA8847E
%A8FD30FF84847EA87E847EA87E847EA87EFFFFFF59532F5A53532F5353FF
%FF535A535A535A535A7EFD13FF84A984A984A984A984A9FD0CFF7EA984FD
%2FFFA8A884A984A984A984A984A984A9FFFFFF84535A535A535A535AFFA8
%5A5353535A53532FA8FD13FFAF7EA87EA87EA87EA87EFD0BFFA8847EA8A8
%FD2DFF7EA87EA87EA87EA87EA87EA87EA87EFFFFFF7E53535A5353535A53
%FFAF535A535A535A535484FD14FFA984A87EA984A87EA9FD0CFFA8A97EA9
%FD2CFF84A87EA984A87EA984A87EA984A87EA9A9FFFFA9535A535A535A53
%5AA9A8532F5A53532F5A2FA8FD14FFA8847E847EA87E847EFD0FFFA8FD2A
%FFA97EA87E847EA87E847EA87E847EA87E847EFFFFFF7E5353532F5A5353
%2FA9A9535A535A535A535AA8FD15FFA8A984A984A984A9FD39FFAF7EA984
%A984A984A984A984A984A984A984A9A9FFFFAF535A535A535A535AA8A853
%535A5353535A53A9FD16FF7EA87EA87E847EFD39FFA8847EA87EA87EA87E
%A87EA87EA87EA87EA87EFFFFFFA85A5353535A53532FA9A9535A535A535A
%535AA8FD16FFA984A87EA984A8A9FD39FF84A87EA984A87EA984A87EA984
%A87EA984A8A8FFFFAF535A535A535A535AA87E5353532F5A53532FA9FD16
%FFA8847E847EA87EA884FD38FFA97E847EA87E847EA87E847EA87E847EA8
%7EA9FFFFA8532F5A53532F5A2F84A9535A535A535A535AA9FD17FFA8A884
%A984A97EA984FD38FFA984A984A984A984A984A984A984A984A8A8FFFFFF
%535A535A535A5354847EFD04535A53532FAFFD18FF7EA87EA87EA87EA884
%FD37FFA8847EA87EA87EA87EA87EA87EA87EA87EA9FFFFA853535A535353
%5A2FA8A9535A535A535A535AA8FD18FFA97EA87EA984A87EA9A8FD37FF84
%A87EA984A87EA984A87EA984A87EA9A8FFFFFF535A535A535A535AA88453
%2F5A53532F5A2FA9FD18FFA8A87E847EA87E847E84A8FD36FFA97E847EA8
%7E847EA87E847EA87E847EAFFFFF845353532F5A53532FA9AF535A535A53
%5A535AA8FD19FFA8A884A984A984A984A9A9FD36FFA97EA984A984A984A9
%84A984A984A9FFFFFFA9535A535A535A535AA8A853535A5353535A2FA8FD
%1AFF7EA87EA87E847EA87E84A8FD35FFA8847EA87EA87EA87EA87EA87E84
%7EFFFFFF7EFD04535A53532FAFFF535A535A535A535A7EFD1FFFA9A87EA9
%84A8A8FD35FFA9A87EA984A87EA984A87EA984A9FFFFFF842F5A535A535A
%535AA9A85A53532F5A53532F7EFD20FFA8847EA87E847EFD35FFA8847EA8
%7E847EA87E847E84A8FFFFFF7E532F5A53532F5A53FFFF5A5A535A535A53
%5A5AFD21FFA8A984A984A984FD35FFA8A984A984A9A8FF84A984FD04FF7E
%535A535A535A537EFFFF7E2F53535A53532F5AAFFD21FFA8A87EA87EA87E
%A9FD34FFA8A87E847EFFFFFF7EA9FD04FF5353535A535353547EFFFF7E5A
%535A535A535A53FD23FFA8A984A87EA97EA9FD34FFA8A8A8FD04FFA9A8FF
%FFFFA85A535A535A535A2FA8FFFFA82F5A53532F5A53537EFD23FFA8847E
%847EA87EA8A8FD33FFA8FD05FFA9FD04FFA82F5A53532F5A53537EFFFFA8
%5A535A535A535A53A9FD24FFA9A87EA984A97EA9A8A9A8FFA9FFA8FFA9FF
%A8FFA9FD31FF7E5A535A535A535A53FD04FF535A5353535A535353FD25FF
%A8A87EA87EA87EA87E847EA87E847EA87E847EA87EA87EA9A8FFA9FD2AFF
%7E2F5A5353535A535AA8FFFFFF7E535A535A535A535AA9FD27FF84A984A8
%7EA984A87EA984A87EA984A87EA984A87EA984A8A8FD29FF535A535A535A
%535A7EFD04FF7E532F5A53532F5A2FA8FD28FF7E847E847EA87E847EA87E
%847EA87E847EA87E847EA87E84A8FD27FF7E5353532F5A53532F84FD04FF
%AF535A535A535A535A7EFD29FFA8A884A984A984A984A984A984A984A984
%A984A984A97EA9FD27FF84535A535A535A535AA8FD04FFAF5A2F5A535353
%5A535AA8FD29FF7E847EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87E
%AFFD26FF535A5353535A535353FD06FF7E5A535A535A535A53A9FD2AFF84
%A87EA984A87EA984A87EA984A87EA984A87EA984A87EA9FD24FFA854535A
%535A535A537EFD06FFA82F532F5A53532F5359FD29FFA8A87E847EA87E84
%7EA87E847EA87E847EA87E847EA87E847EA8A8FD22FF7E2F532F5A53532F
%537EFD07FF5A535A535A535A535AA9FD29FF84A984A984A984A984A984A9
%84A984A984A984A984A984A984A884FD21FF535A535A535A535A53FD08FF
%5A53535A5353535A2F84FD28FFA8A87EA87EA87EA87EA87EA87EA87EA87E
%A87EA87EA87EA87EA87E847EA9A8FD1DFF7EFD04535A53532F7EFD08FFA9
%535A535A535A535A59FD28FFAF7EA984A87EA984A87EA984A87EA984A87E
%A984A87EA984A87EA984A87EA9A8FD1CFF5A535A535A535A5354A8FD08FF
%A85A2F532F5A53532F537EFD27FF7E847EA87E847EA87E847EA87E847EA8
%7E847EA87E847EA87E847EA87E847E847EA9A8FD18FFA82F532F5A53532F
%5353FD0AFF7E5A535A535A535A537EFD26FFA8A884A984A984A984A984A9
%84A984A984A984A984A984A984A984A984A984A984A97EA9A9FD17FF5A5A
%535A535A535A53A8FD0BFF5353535A5353535A2FA8FD24FFA8A87EA87EA8
%7EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA8
%7EA884AFFD14FF7EFD04535A5353535AA8FD0BFF84535A535A535A535A59
%FD25FF7EA984A87EA984A87EA984A87EA984A87EA984A87EA984A87EA984
%A87EA984A87EA984A87EA97EFD14FF5A535A535A535A53547EFD0CFFA853
%53532F5A53532F537EFD23FFA8847EA87E847EA87E847EA87E847EA87E84
%7EA87E847EA87E847EA87E847EA87E847EA87E847E84A8FD12FFA82F532F
%5A53532F5A2FA9FD0DFF7E5A535A535A535A535AA9FD23FF7EA984A984A9
%84A984A984A984A984A984A984A984A984A984A984A984A984A984A984A9
%84A984FD13FF535A535A535A535A537EFD0EFFAF2F53535A5353535A2F7E
%FD22FFA8847EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87EA87E
%A87EA87EA87EA87EA87EA87EA8FD12FF59545353535A5353535AA8FD0FFF
%7E535A535A535A535A53A9FD22FF84A87EA984A87EA984A87EA984A87EA9
%84A87EA984A87EA984A87EA984A87EA984A87EA984A8A8FD11FFA854535A
%535A535A53547EFD10FFA85353532F5A53532F5353FD21FFA8A87E847EA8
%7E847EA87E847EA87E847EA87E847EA87E847EA87E847EA87E847EA87E84
%7EA87EFD11FFA85A2F532F5A53532F5A53AFFD11FF7E5A535A535A535A53
%5A7EFD21FFA9A884A984A984A984A984A984A984A984A984A984A984A984
%A984A984A984A984A984A984AFFD11FF7E535A535A535A535A53A8FD13FF
%5353535A5353535A53537EFD21FF7E847EA87EA87EA87EA87EA87EA87EA8
%7EA87EA87EA87EA87EA87EA87EA87EA87EA87EA9FD11FF842F5A5353535A
%53532F5AFD14FFA9535A535A535A535A535AA8FD20FFAF7EA87EA984A87E
%A984A87EA984A87EA984A87EA984A87EA984A87EA984A87EA984A8A8FD10
%FFAF535A535A535A535A5354A8FD15FF7E2F532F5A53532F5A2F53A8FD1F
%FFA8A87E847EA87E847EA87E847EA87E847EA87E847EA87E847EA87E847E
%A87E847E8484FD11FFFD04532F5A53532F537EFD17FF5A535A535A535A53
%5A537EFD22FFA8A984A984A984A984A984A984A984A984A984A984A984A9
%84A984A984A984FD11FF595A535A535A535A535A59FD18FFA853535A5353
%535A53532F7EFD22FFA8A97E847EA87EA87EA87EA87EA87EA87EA87EA87E
%A87EA87EA87EA87EAFFD10FF5953535A5353535A53532FA9FD19FF7E5453
%5A535A535A535A2F7EFD24FFA8A87EA984A87EA984A87EA984A87EA984A8
%7EA984A87EA984A9FD10FF5A5A535A535A535A535A53A8FD1BFF59532F5A
%53532F5A53532F7EFD23FFAF7E847EA87E847EA87E847EA87E847EA87E84
%7EA87E847E84A8FD0FFF59532F5A53532F5A53532F7EFD1DFF535A535A53
%5A535A535A537EFD23FFA984A984A984A984A984A984A984A984A984A984
%A984A9A8FD0FFF7E5A535A535A535A535A537EFD1EFFAF535A5353535A53
%53535A2F5AA8FD21FF7E847EA87EA87EA87EA87EA87EA87EA87EA87EA87E
%847EFD0FFFFD05535A5353535A5353A8FD1FFFA9535A535A535A535A535A
%535AA8FD20FFA984A87EA984A87EA984A87EA984A87EA984A87EA97EAFFD
%0EFF5354535A535A535A535A535AA8FD21FFA82F5453532F5A53532F5A2F
%537EFD1FFFA8847E847EA87E847EA87E847EA87E847EA87E847EA8FD0DFF
%A82F5353532F5A53532F5A53537EFD23FFA9535A535A535A535A535A535A
%7EFD1FFF84A984A984A984A984A984A984A984A984A87EFD0EFF84535A53
%5A535A535A535A535A84FD25FFA92F53535A5353535AFD0553A9FD1CFFA9
%A87EA87EA87EA87EA87EA87EA87EA87EA884FD0DFFA87E2F53535A535353
%5A53532F5484FD27FFA9535A535A535A535A535A535A53A8FD1CFF7EA984
%A87EA984A87EA984A87EA984A8A8FD0DFF7E5A535A535A535A535A535A53
%5A84FD29FFA92F532F5A53532F5A53532F5A2F5A84FD19FFA8847EA87E84
%7EA87E847EA87E847EA8A9FD0CFFA8FD04532F5A53532F5A53532F53A8FD
%2CFF535A535A535A535A535A535A535A7EFD18FFA984A984A984A984A984
%A984A984A9A9FD0BFFA97E535A535A535A535A535A535A537EA9FD2EFFFD
%05535A5353535A53535354537EA8FD14FFA97EA87EA87EA87EA87EA87EA8
%7EA87EFD0AFFA97E5A2F53535A5353535A5353535A2F5AA8FD30FF7E5A53
%5A535A535A535A535A535A535A7EAFFD12FF84A984A87EA984A87EA984A8
%7EA984A8A8FD07FFA87E5354535A535A535A535A535A535A2F84FD33FF7E
%5A2F532F5A53532F5A53532F5A53532F7E7EFD0FFFA8847EA87E847EA87E
%847EA87E847EA87EA8FD04FFA8A853532F5A53532F5A53532F5A53532F53
%53A8FD35FFA97E2F5A535A535A535A535A535A535A535A5384A8FD0CFFA9
%7EA984A984A984A984A984A984A984A9A8FFAFA97E5A535A535A535A535A
%535A535A535A535A5AFD39FF842F545353535A5353535A5353535A53532F
%53537E7EA9A8FD07FF7EA87EA87EA87EA87EA87EA984A87EA98484595A2F
%532F5A5353535A5353535A5353535A2F537EFD3CFF5A5A535A535A535A53
%5A535A535A535A535A5354535A5A7E7EA9A8FF7EA984A984A9A8A984A97E
%84FD047E535A535A535A535A535A535A535A535A535A535A2F7EA9FD3EFF
%845A2F532F5A53532F5A53532F5A53532F5A53532F532F532F545353535A
%535A537E5359535A53532F5353532F5A53532F5A53532F5A53532F5A5353
%2F5353A8FD42FFA9535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A537E84FD46FF7E5A2F53535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%53532F5353A8A8FD49FFA95A5A2F5A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%7E84FD4EFFA87E53532F532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F532F5A7DA9FD53FFA87E535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A537E7EA9FD59FFA88459592F532F532F5A5353535A5353535A53
%53535A5353535A53532F542F53537E7EA9A8FD5EFFAFA97E84595A535A53
%542F5A535A535A535A535A5354535A537E7EA9A8FD68FFA8A984A87E7E59
%7E597E597E597E7E847EA8A8FD36FFFF
%%EndData
endstream
endobj
81 0 obj
<</Filter[/FlateDecode]/Length 15491>>stream
-H��W�R�����S`p��f�I�
3&�@^B��Զ�%�����|���͒,K�KM1oR5�t��۹���r���h�&Uɮ��x��K��V�^�4��9f�����i�$ -�c�����>_�4��h���?]���/]M51{r~o,n��قp�\�1��R���2b���)6��m`n�"��������)���N�X�!y����|0��H'��_D%�[R3��Ә��z��'���Xs]S��y�����T�!X_m�h�i�� -��+��ULJYf���b��*��F�ֲ�y�c�ӳ�q�+8���乍
iS�bƈ -d,��6��<V-��4}G��f -iS�T���Cozn -X�!�wy��&�u�*�A�\;��\U�
tC8�mY9_ᚏ���I��V�ZE]� ��ƶPO�<$&a�Nz<s�w�w��� �Ĉb�"�ꔡ=4 -�gB'��~��2��ȣ������j�@&4D ���� 6'�y�L�i�&<1�W.{y�͉�']S˶�z�I\�)��J.���c�#.#�Y�OX�x�7���!�G�V[XU�<j�Q��`.��&�;�,lAzpͰ!W�p -{���8%+��=u�Q2,�˳V�g뺟-��q��z�{�\���X��//-��?$�[,��U�.��u�EX�F�?�۬|5�t?P+T��o7rX���8��
�Y�L%겥����_��Dy1)�-���óQ��cT2ƶ��{T��y�q���v�^��]2��P�� u�[n����]IzB�1Y
-Ir�rT�#��큎�ܖ/�Yɀ�iĘZ�lRJ%�a�^�*+Q���we��)���+O�3��(&Os)`�y_��rb�J\<�)�t0#Y6z�j�cS�T=�D�G�U�I/���D.�4�di�BL2��ֽ�PSP3�W�Hc�rr�ǧX%,ԃQR�M�y���Q�V)�@�0��& -�td0��t��R�N7�`���p:���`2NDY�k ��ҫ�P�V����R���SN����m�N�,����Lh"�i�01�% -Z��Y0����������k[F�\ۨN�3�V��Ք)p 9�,2�f��2q�n`6�Q�9�a�ƆX�@�Y'�1mN`�s֮�*v�C��a�J�93�!����[DD�)g4KcX\���+��<�%g/W�y�3��p��Y�(����ѝ��fAV��p� ��xJ�����?=4P�կVѵT\��ᨫ)�&�� �����D�`sb��kjٱ}���]ѕ/�+ڔ�b����Ro��q�"c�Q�@�%I����器! -e*Lvi�K\0��͖N+�`���L?�����(>�,�gfJ|$��6�8�6�|�b�3�3:�<��M�:ꃤ�R R7���c��|)X��� ����#�DRd���Y��[���y���8$�@�:�= -I1_?BtU�Qh���~�=c{]8�9 jf�G�P"�>A��� �x�����pC��;�g��SG<��*%��^�E-r=}��Lw���E�)�����'.A�Ӆ�u{���/��_�E�Q�[u��`�S�O`a[8l6��?��b�f���G��%���^[�bs���P��I�|�y�ޫ;�#&$~J+!�gf�Zb����꿍y�v����oopΤ�*�K,sb(�M�~�|9!�L3������/ 4Z�V��L�F��0Xa�rVT�oݤ������Q2q��!L.�o;�3i���xu��Vf'����}� �h��]�~�A�ʳ�?�G�J��~�qw���[^+�ϵ��i�n�8� -��\����&�5���hwH����
���m�ٯ���+�`#"��hȶ7R�h&OJ�6[��R��ހ����Dٶ�هXM�ݖ]�;�g�tb�,�����S/��`Z����r���9)����Vk�Fh�4m��_�L���
���m(�u���|�t����S�{�����k�`���O��eM�� �?������B�b~�ɾ���O�ZX�/��l�Y��Y���ZB��A�Cv��)��R��L�t�� -_����������zK����E{�ba����<���}x��*O����|�����來����f,��� )2��D����.�Ŝ;�$l~9�|��6�����!��.���s!�����6�7���SMU~�ܴ��F�-߮�䜨/���K��\.4�4
gj�΅��10�1�=bJS^���ٟeo�<�B��m���Y�A��1�V��!-�4��a~P�Gv5�$[�e��6+Q2���=��:�s_����J��$������VN�֥&؍�Zi"O6l�|�g��fHY�9q3 -��p�ʵ��E��œӡgjᔫD�u�F���On,��L|(��[�g� �}5��T]��$ؼ�sf�(�[��0�b�t����uq��~���{7�d�e��ˣ�&)��~eL��B��V���x�Ŀ8y.�����B�NX�*3�� T�w��W��hUpCy��y�0��"����R>���������%���\��}h���>�$f����2\��Bc�Dk_ -�
{{3}��}��:�����♃>U���x#���:ȼ��,��j��|[Fr᭾�HT���d�]�xr�>v��_�Li�*?���}�J�͕�di�Z(�]������y�m'�6�'�;��F��YP@���F�Ƞ(�2�Y}.�g��0m�}�&��GU}U�v�"�izZ�!�un}b�_P��a��W!SF_k���� �'�j%��
d�E��ux4�<BzG�;on��?ݨ�#�gE���^ �V�"��E�y�I�?W���!
�Nu��PoaȪ������m1':9���+;��>FV�Z4kZ��ؔ&��<FM��)�ٵ�g`��Ƅ�� c�`9�%���K�T��@I��&o$�!(���=[6~�bW��|��c�u]%�K��/{��b�Adc��"�ƇL��������s#a�gv�Gu�����JCv� -f�� -x�>o$�O`�6
5�*!n{��73_��zB��v8 �����Q�^��P�����)��qĀ&fI��.�j�P�XK�x}�?����C@��q�P8���.�ŧɓ#;0u���U�ԅ���!\(dZ|��Ełv�)Ȥh�|��� R����y�[s���@ -~��?ZD/��������A���2�Hgϟ���<G�/�Ź�)l2�Mez��bc_�`�?�ŭχk��h� -�
�M=��/�h��� -w�aH�,�ݹRڰ� -GA{:D�18�q�uI��nT��u�<E���`�煜ow���K���"-N.s�5[�Df�[:F�M��.[��"y���ԫ�Ș㋃�=�����>��>M�K -m���.ː��b���L���>�-A�~��#E��6<��a+W����6,7^�&gd�Y -�O ;�nID���d3W�=9=�"a�׃�n����{*�[�z`��2��S����j�\�Qw!b�Khi�` -����x�35�8��c�q�x�8�&aIK�ȴ��y� -��1����&���k(�lZ�^TY�~~��ex"(��RMC������� �����}Y��~�$����uj�걺!hҿ��WO�Uٴ~���&8]JO���/��٭�r���E8k��W��8C�\Vf��6��N���B��p$�v�ڂ���b%���������[[�%s�7�m;�7����65�^���V�39+���t?Y���G�9���q�.u_��.mo�*V�}��3���h�����\I&�d��D�B@_�c��/t]�2�k�ԋ�?�dqɡ,P܊c�ߔ������Y߂��%�b�]1����6,��U�-=�7��ٳ��a7�n{��v��H�u�f�Kn�
�S���fy����`x빣�����~�/�9k�u),;HM��&+K��r���U��f�*fQ2ae�V��b8��]��V��>�Y���Zb�Z�=z��n����(Bm�'D>,�Ƚ:=���˨4N��V:���~��NW��B�D}/1U��y���}����{�VD�\��4�%��E�L�x�� -q�9��t��B%��zc��+�����L�n�z�0G�(��.ڻ���8E�]�LaD�a�x�]-7��>�����}�۵i#ߗ�ޞᗌ�������~�1ޘ5{���o��Ӹ]J�\����*��P���������{y;*;ܪ�k��ږ��&�E&����c]Q��ߕce}��,qw0�KP^g�{�ܛޛ�|RO?�a��³���A����9�����[���ܛ.������fEFdᎽ?L����'O�ɝ� l�|�c�b[p�r��P�sD���`�h!�7���eI�sK̞A?�B���8�,��翠a7�+��h�E5�V�e���/�>�|-�/�އ�_t$�I�O���/�������*Y����SZQ���J�2�ؚ��k"���ZHݤ O{�$�kL�U��R=���S"T��2���EO'"�r�+m"��Y6\H��al7Lf!������M٢���lf������sR�&j�`EF���hH���A���g!o>�k����+�]�5c�pՀ��f��z�)Kң���N=Dzj�gr���'��I-�!���/+�)9
k'�l�p*�+�R��D5��y���[�zP����qk�1�V�h�> �B'�v�B�:4�=WIsh�pKr��̡��Q�F��:�B�X��o0���esh�3��/�Hm�I�B���m�,V�Rx~�@cv/y2�`BUV��XΰU"�5�}Sh�F��饇��L�B-�˗{��<:d���U� ��
y -�.�����2h��,+�D���E5f����z���]Sh���B��^�2�"�|���c3�U�=������6����/,����� -�B^��Y�ޟŴ9�&�*O�9Tl�̠���>�����P��9��-O'���:~��(�_�c�D�t����6`m���d"l�E�N��`���t�F��]��hl��8 -Q4�C��9���*IyV8�o�0@��wJ�ir�NА^�����`�i�ҩڛs"���A'�{�Y�TmFt�������a���ѯo6n���i_�ʛ�թ��k�3�*����kM���o]3�)c��<�.�֦���x��e��[
��_l�y
�u�欥�dպr�$
߾��cs� -�RW{�7z��]U��o#a�����[G�T�1����X���U�a��w��ѭW�m*� �kp���Zt$��1r��{M��N�Yy��r�5g��������Ó�X�5���cN�
V_�#�4k1�6��ZV��u{D����X�Z�>�����-���8Z�FU�)r[��B��M�E"�H`���G�V!��n=>���4����n�|��ve^��Üsяe�a|��)gM:g'⡕�]0��9��ڜ�[�O<���{@�le�0.�V�YH�L:h̎�Oshd0�B�����X�IEW�]�C#=��<�&څ�t�t�u�����aCzQ������z��z��Hp��B���y����X.bc��`9��������_�ǚ&���M��:��,�)���&�x�/m#<��r���&�~�1o��?��E�Z�ijQ��GyM-���̽C�鞪$�r�4qq��'������#+��p�W ��I(�2+z��iE��D6Ys|+^d���SF�.M>[&���%h -k�D����9;��r Q����9E���^�'jh�cvԾ]��^�� ,m�R�(I*T��S��S�d��ԹKӃJ��]9����>���KEI9���Px��t�М���\6>�G�<�;xܿ��X�֭ĕ&�y. �gF8�e�aQ�!q�� B����έ���t��\.���U���xp�^}Ό�*��u -�}�S����M[�{'�:����h+�eB�
�����ӳ6n0�0c��e� �7~@C�S�&��<ܝ��K/%,/T��dfvb>Y�"�J�͠���v[�_|��nK�� &K=oG��r�I�3����+K���&Ĥ�=�v��$y�Vo�� ��i���WN>2���7tn�U�����Xy~����X���_���I���]"/��R�HA ����^���� S$��"#6Y"b$����O���;���������W@>m�1�3�L�6j�y,��0�����i�Ӷ�6Z%���j; �����&�������c����3�k�LJ�-itN,O�EG�lcئH��/�m:��'��3ɻ���T"���������^g9��]z�n% �yu��f��U��qo=`��|���7C<p�db�`L�a���Y�s��P�0I%�$ -�Nf�[�Mr�SXJp�h"F�,��R����������:��5N��Ǿ���(j�t��eVQ�Ē�H�!�p٠�t�D�@;�wM�Q\N'��A��V��t�Q�(��H!w�K��.߱�4zn��������`��FQ��PBn`0� �`�Gl"J��ف�������z��0���
�h��J��9[Ee���h�������M�8M�h�(��m�9\~����-��8���>':��(��Z�o��<J��v��WTT� Dh���E��s�6����ۣ��tV�<��G�{NM��9Χ9��Z�iHҙ���_lX�M� �0�d�K� �8�f����S�bP@׀�
$&8����F���8����U���1+ -��pq����,��.�`�5�������]�j~����!�Ư�����߳�PQ���O(��B��������Kê���˩���cQ<-�_�P��gE�WNY5k!b��Ud5$�p����~U
���k��,Η�c���?A^`���ҮN2U?��#���6�d,�vcy1v���@�%���n'�+���� ��(�� -E^wߎ��� -Q�M'N�ٶ��{�MJ���Z�ZlN����-5 -��N���T����T���a�����F�7it�3��%�%5���5a�H��:S<t(ѩk�sl-�V�s��*'�Z�qH�3^� �1�tz����N����n�� �k�C@k&��Ѽ�k�H5>Z -Ѹ�Rb�>zkF�ECO�cG���(nm�p����%!��B�M��8h�L��|pUȯ�XfiQv��<ãLs�2|L�v ��xKɡ���Zl��&�e6J����R���s���t�UW��pM=/�?�$ -�PWA��۩&�\^y��a���+%�Y�Y��y�+�a�m~����W3�1��0��O�a'��!�& -�=F� -4��U7�3���5�G�T��=߄���y���Jj����-.��x1#�0$���'j�G��� -1l戀�������]1$W���A^�b�3�� -��*Rʂε��� -���ކ��7Ʃ�a��tq�;5/-!��ߥ���)`�+U��v��������;8/̗�3%��d���γ�X��Zk���A�`*\Rx߉$�`��n.��^m��r��v���T�E��"�����5��v�G!$8/�AQ$x5$@��[h>�Z�-t����_N� -��R�yѰ��`]�8����[�J�f�M}�� �μI�������«)I�Ocܜ��#6��aw���X6��T!$M�b�r��y���8]c.���E��R�o,;��鴅���J 6S&/�nԠM�%�G�������z/T(�";ϵ�Z���M�n�gB����M-�+H��[;���S���ܬ�� Ԝ&� -Ԟ���ir -S��˗ ���mK��Sgo����eLN�����x>b��E=.�؛BLN}siъ�N7[��k�c8*�Ta�4�ܡ��f��jt��� -� -�c��V -�� �[o���.EJ�uJ#VZA�{|7�a�çV�^�;�u���I2�� ��=�,;�E�W�����ZY� �-Wz�Y�1w[���r,� -0�� -���_J2� ��Q@���^~����0ի-�L��S�&6�<K����P�3�Eԍ̝���#C��y�=a�����|�ͤ�)��`ŝ.K� �ڟcCa���*n�-BW��P��К�|t�[���Nl�彚x��9����Z�ɂ���ox��0�/�&�[�K��U8u�VV�K8w�J.7�S-�TY�-��[��<6��w��G�7��B�k:�/d�un`. --a�m��ѽ[����*?$ה��(c4լY7��0 -H��W�Z�J}�<�@��VZ�B� -�b�|�� -x�33��0�I�?�����J�pӗ+�EV�ʝ�\�o�rRE�T���b��ײ&�崖6��i�&��S\};;�%{#�`��j��y �*�iP�����b�^.����Y|�����*_胮Ҝ�E뙏�Ш,W^vy1gt�/�n��(oO��� BsrumT�/˺�<}dT�Gv���A�LG��d -}�|ь�:V�ʉF8cq]���?�;kӕ��4a��b��Uei�N���mD��֙(�ϲ���7��`�v�ډ���~6Ȩ�jz���� -�CY��.�?�b:������P��pH�!ABX>
A!2�hH4;���]�\�>���dH2�;ǘ4�&���& =����ڍ6� "��sHCE����-q��!D�w�CB0�=8p�X
[|��eh`L(A�������ʓ�P�2G�p$x�)�\�o{�A~�G&p����/��'s -v���c&�9�N��b[ ��iV���~JT���M��8*�M}�d_�r����VJ�E>I_-� ���E�3u=�OW7J�4|�TF�f�{ߥa1�>�a1�)�� ф��h���7�'� ��{�3��%��Ke1��iC9u�O�,�B����Օ$+�� �di<co�����(_��J����oBa��;��[�MN�Ю�����:"�0�P��Y�I�@°�Q�����g�����:�IM���O*�z���ťo��`BA+ ��ݾ���%�~U��
*��Y����ۚn%��p���Zf�`�含���ܧ��x
����`=�B�o��ݞ-�2Y�Y����Z5ۺ�G��A�W���z&��Oz�Gv'��I�)'�#us�4gQ���) -���GD3�����F��p�{*���/�hD��'��h^ح����r��0v[)���&)��h����L���;��v?+��L��*
%�a=�ƾ����� �(�%��䙱*z�~�4*].2��F��^��O��Qh��7�ݳ���S<u�җ��1�nj��$���4����7i�3L�J����0z��3d��cx��>F��9ۨދ�ӌ -"j%��OgNOpa�g���=dմA�720�O;��on��R�>�{�����m{�*��(�;�]� �q���' ��d����@��|�OF�Գ$���<�N�f�*
��vi��r'GUJ��JB����^'5��K���Nն�S�KQl����^7n"�!����.]�. "5O����'b�,��a0�n"��������K�����o�|]2�$�'}�>&>8��U�����c��p�M�K��3�� �9�0>���|�W�t�,�o���&�W�1�\�v\i��-����bj�ߚ�t63�7�=_���~��� -�+I���fh� c�-����q�j�#P����� Q-��8K�k��T���,���'U2�F�[&X}O�����'- -����]-Le昀D��y+���Tȼ�<IsͯσM��\^]\��`�����U�Q�y��0�B���NaM'�"���1T��s�>�3��<$A^���@M;σ��yd�;��T,�C{}�˫���z���@T#���A��)�Ցn�.�" X�'��Ԅ�uuq�K����`�0�r���c�q�8�R�u e��[� -vҀ=l5Β���@����g����6+\���ŞĬ��_���Њ���Â�E7�C��*��_�w(��p* ��d��g�}�ߜ<�{'�<&5��R�`b��4-٪fga��`o!�Ǵ%����E�����EWC[,���������%��愑�RO;Q'�`�n�����K�1v����̶K���w��� -���QS���1� -�J�P$���6+�^K���P�Z1V2O,{/�1<\;�\�״^�u �$����@�`k&X>��}ug�U^��5Ё�R�(BP��1ހXl��O��J���e_�/k�d��w�/D��9o��Մ�]K�l -���� �(w���
�Ÿ8 -����g -{{� -Ⱨ��!;�sJ�O��;��c��c�X�97 -.# -�08jd�bZB�b��K�Y�b�\��r�C�]���?�U�_��D_A_D�BV�ծ����RA�Wk���̽Y���>��$���;g�̜��8�S#�In�k��d�{c�����6�P�ɿM�ŝ�c�8�b�� -�P�0mYe�I(���� n��ŋ��uh�:�6�������dA?@d�}�_*_�J�눉��k��1WB,��W��)��g�0[O9+
�ы����� �x>�L3��0�\iƦ0T�׳Ұsi>����\��B�=#����R -;g�L~J�K-�ts������71�jsP�>{�=t/i��&N\� -_�GRާ�D4��#�� -�ʳ���N��q`��P%�fJ�B�y�G�1o&&/����uZ
�-j�i{t�3߶�FiYD��i�Z��{١$W�*�VM��"�:>{Ţ{?#{�u�r�a��B����"z�$�/�EGEW�˥J).�9~��AgCQ>�
��� (mR�Ʊ��^Q��W:�����a�l��U���Z#��;QCt}����-Ï��>�l�O�Ӵ�����d��Xpw�Dq��Y_�)3j���V�5n_)l�)����bBL�t� ��-�{��_���UV� I<�^_�}:A�j�Cɾ9Jp��6���ߩ�����S8ă���Α���9�g���F;XMOlIv}J���C.L�kٷ�8 -��q�FL~,��
�l�]@O�pm������/9�ˎ�''��Q�wj%f�K�)�+/�ܯ��ރ���7��� -C����XH3�sl.+TB`����c�� -�"�u͖��\sl�ލ/�.��{��C����F��l���؝C�J��-!�m&�"kn����G}�76l���\3OF}?��Z��ٚ�<d= �O�4��-�o�� -�á|.难f�����N��¾� -&��bHj,����#8e�&=�0�5�JMV#���x�\t�S���*
4W��4�����B;o`�>,?��j���8�i`�M�W�k��ODKVJ����W>*��r�
�V��6��:���}�jI��U?�c]-��2�=�jM->O��'�+o���>��[i�L*����Qce��qJ�
��h��R�Gv��/����ȍ�љ�&��[v��妣!�50Vs.�p�W�z�'oc���G��bF����W$P�Z ˗�|�}�����(r:!�N�o���ZҚ�"f��`7(>;�D��$�_4�4d\k��TBe��Xk�&�e��k�gՁ�j\|xh%q�w��qC�M���Ck>���D�#�Ŗ�kNK�Qi��D��0BH�|B�W���F�,pS[�5�^s���:7q�2�B[�;@9�x��(��̡�Y�9� %��!Y���=�ꖄ��^�Vή�d�h
�F�M��&�& -5U�/�&=-q�U(�qĦ���v�@Ϭ� -���Ȩ/*j��(�kA�PG��ЅEL�5H���C����a����L-5���w$�|y:��� ���`u�n<,�U��F���%�.a�p��w�B��X̧���M%z38�I���x�<״���M�G?��+(�m�mL�+��:=E�t"� �;ݝt�6Vu�
V���A����]\>��(Z5!{>dB -����]�o�c <�{/4�8V[��c/�?sl���L�-�?r���3�:�J�Y�c�r���Kn̮@�r�"����nbא�hB���v�c�3P�
00S�!�KRu�7[�/?L��tC�d���?��������[tI�Z~ -۾i�p�f/V�t���|+�T��;VKi�GRI��_�������R����Ҟ���I�a;IuXP�]�}X)}n�K���4g:��7�/�x���`gӌ��!}�<��[� -�r�m�OûQ�L(h��n�鱱�n����_�o�ȧd�F�c]kR��q�k���O�
� -�S��bh*��xr�ljb�/u����fᇌ�(L4����X����&���$��|2O -� �$C$��̬�_��~�;��S97Yݩ���j�H#�TDF�ԍ�1"��%�)I){sh���7k��*�Y<c@}��!���+H����� -�%[Px2U��j�m���O`%0�/^��<|��Th��𭚦��/�Y�Q���E�2�"��g"5���'&D�g1�??�Zǥ�k��ϫ��'���UA�f��N�o����㫾:�%θ|[�VcѢ�����9 -����ތiSQ�%[pm�D� �Ǹ���Z�i��el�h��͖?�T<$�<�$�DX,��PeF۞Q�2�
)�%�5>^�6&����W�w�c����ޱ����J|r��=d鮠�r�~��*��e�_�m��ƕ�i*6�7�M��s�d�ו�2oZ�C>*u%.xv.�p1�a*�Co/��{��w�Y"��fD�ޭ��=�t3��*�, 2F��!i�<[�l�1�q\�!<�#`�ny��B���o�=�|����(d�^t\)�>�-����M�"&}`l{�ɦ��N�`�(bc��q�[�?����4�L�J�(���X�w����9ɟ��-�;��K���dU c��E���*�r?
�2�����Ԗ��R�C���st���J��)N��^�@���u;1a�m@h�
�0��ö���Fp��@�����7��L��+T�Z�>tb����2z�����*�)�J�M� �e'6+�!`_#�`�Jq4~�Mr?�(3ޢ����]�cj9�o��Y�0��� -v
��@j9����Me��S7��F�p�� -�΄����V�`5�J���L�*B����2����X��Ek�����]��{1���A�&���i�b&�#B�]p�:�oI|�;(q)Z�g��be/r�N3v�{�A�
�&)��@���k��M��4c�oh�����0�����!Y�T�qN�f�ư��0r��k6B�̆JY����0�ŷ}������vi��=^�F9���BR�*^�3rU��w���b�l+𐆊�0̾U���5��;P�So������Ѩ�x��;��j -<$����*�oTT7U�vЪ�>�b�+�c� k���;�`
�
�!҇��H3P��R|?�L����;N�"��4kySVA �oZ��L
��ԽѴ �T� -8������s�rf��u��#p�z_:`?S�CY��C���B��� �$mxL:o,x.�="W -�P�y�C��(q�^�xHz��4� �q��g#� �n��킑����vA�q���v�!�����+��`)�@��X����13$�p�ЧK����]�7��J� ��ō#�8�������8Po�0���)XDS��O���
��� -��|�B۟F)��h���h7��4dK��w�n�?��w]���N����ߥ"�l�oT����`����;������+�ރ�����o�x�|_i��X��D��W'cL?�hÒ8c���1�[�(��[���1�D�_]��ۮ�c��i��]t5<��'�T��,�*�^��;-���;H��>�z�_ -�O��(.j�qF\|��y9�����Z���(�~k��'G�������74}�Y�ΟC�kV#��y����Yc�Gp@��l��1Cۮ�V��@��G�Y�כ,��Wő�S!i{��`�)R!&Œ��zT����e�C�M\���P�oe?2*e����������h��I'�|'��(O痛�M~uy�zd��z�>�5b�lxM���jT��,�B���X�0RE�XM������6��b�/U2�ЬPJU���6�b���\�ܢ -U��łX -� f�e�go3`χ�}�a���\�
�'�8F��)*Sw�C�#T�/��^��q�P� �,���*;��rl�e��!$��4%\��dI�n�KK���|��Lf�(4������yXں�^p�Х��W��7#�}'ݼG���?�f�ֶX1��Ɇ���,��?����?ziK/_v9�/Å���WͨG�*zH2a�1�/�/��㉎����#!�����~�(�ӧ�� -�_�b���|)ո;�*���=z�{B��}���χ
�j�G4�by�|��������b�;�ȷ���B�gۋӳ���fqѐ*��"��/���f#�*�T�f4�trq�sv|u�Z�/n����������@��ڀ5zjlm*����&�������[�?mt���~)G�FW�!������ʩ'�ǟ�:�Ϛ^�u -A��bl[v�G��s�@�M��IVcnS���r�H/&�U/! -|r�:�,E[ �A:wM QӘ�H�m�HҚWHv��{�}��9�R(yD�/ʮJ�&P�=ζG�����&&�̦����Z;���w���%Sb)y�)e�i#�f��7���1��%��y��r7B��sZ��!R��HB��!���EY�A:�1�/�!ЋrI�Fsq�Ɖ����A����@�u>��cѰ�bօ<��\t4L�)B;��K��(3~f�w�"��%Of@&>ik���-o16F�EMV&K!լG�����f�6�C�P ����هIF��5;<���JF��`�j�3��������:�C>#���Kh�}@�P��a�Z�-�M�P�ZSt�N���{��.�k�� ��1«#����^�,J-k[��-���͈�>��oKaH��,g�C�N -/�2�uǍǩac -H��W�nܺ}����@�þ"E��Q�g���İ}oQ�B�ʶy����6}���kmߤ�":YE&�s��̙ٓ?]^�%��c}��wr��u����G�7m{��{zuu�u��]
/�V����\�O���W�ۇ��v����Swww�:��M�okLwr���oW���o���|��;�a/��xM��$_���[��6��ݮ�7f�m���;l���>��u��g}���6W��xV�DZ��{���8�x3�n��f�w��n�um��.��K���V������m���mu�Ƀ�Uٴ5v�X��D�{�F�Uzh������~���p�&����3
�՛G�\��=VB����t�2^}���>����پ�>V�'|�,��.7wS?n[��w���n���6�|4}��V�����E������mj燤�_�Q*���\ں�u��>MC�s��n]�x�~�V��������8̮=�9��� - gd@�H��a��@(FH�1b��x�ѕ# fX�0pEp8��QpZPr�z`��ݕ)�0b -ZR��i��q�PIM��*E0���E�{Xu��I�� b*1�N�D%��DB�i=����#�y�Y�#�g�y���l8�������llbG�A.� -8?3)�'F$Sd(ŕ�J{�t�.���AxJ�R1)}�V�����Aƚ@�Px$
,�p:9Tğh'� Z)#����F��K�!��4��BS�#U��++˨-��8o).1ɋGS^,�18�G�Q���J��chv-�6�g8�")Q�"@y$���H$��H�,@�H�S!�4�E�%Y��'1g�c�!D�#c9pJ�d�#Rϱ�k�A� �sz�|8_ş�h��)��K�Xh���C�=��Ej���%4'�(8 =ϮQ���p� -�-��K���������\��"�rq/���Jq�E�-��Ǩ�8�ӡ�-K�\�(<K^�D�c� �҃l
�E��L�f��c� �ry�dd��v���š��(�7H�BT�de),NZh[e��6��N���;V'$�D��Q� -80C�&��)!�C�
B(s�B�LJ� ��F��PZ��#�8ґgdYsH�B��P��Z���503�����)�S�i� -Ь�ܠD�E��ʰTJk�t�9����@=���.�\58�\C���!*@\|�g����Ѣ�ā�l�rC��菂��Rϼ/%��y�,�^�)�iR=�)杂��Q;ǭ�nc�c亸M=��ی�TA�%�<�{�Əy�g��V#�S�?�� r�<�/J*�t���T�B��|���M#�B�<��<������ڏ�9J��pIV����w���N�<&x���lP� -��AѻЂ8�ŎxB?���[����D@E���7�qL ��A"c�j+!&����y����M!E,���Q���(�2��?�ˎGE� ��6�
�ϪLÛ�zf5������
kh@�����Y6iKn�0�`�D�ɬ�7�56�J� -ȳu�r�|m��k�^1�2�����o'<l��v��-��û;�/�29q���3�b��|�^� - -.-X�ȍד�1�nТP�Y&�c}�mU��žį"{T.�D~�.��Ӳ���3F�İR,.�,���i?�y��[�a[��W=��i@�o���Ԑ������͢�4�3��$���*Yl�4�� ]�a�3`�Yl���F����W�YXJ�)f1X�W1X�W1�P֊�R�'����C��_��� qB8 �@D������QQr1��E�r���G).�q����<�q�3J��!���� ������Ip����u|�A�ؙ^�|�Z��c���hF�)����J�xV��f�N�
��g��z����[��1^��yEV`�܋l=w������W�"��d��� �� �Ȱ��$�@M�1���"��Å��Yɸ�q��X���G�L���HV�C��z���-� -���&��NB���3P�iz�ghP��2��D��t|Jԏ���\���dZ4x��u�=T��؎I[��2�����/�2�����3L%C�exd<.:2(F�S��%�#h�0+_�/W�<'��x��bO-vF䐰ˌ��kg0�a#��[�:υ���G`�3Q��S�h{n�D��œ�x�)��wb\��V�{V
z�`Q��,���X��-Ό�"|�x�ǻ��E�h���:�0�V��+�)�r}�Z�<p�L�,ݠPxN�kB�pc�7&���bcӴM�
>I+�Uo��p�� ����;��N��b�a� n`���_Qc����-Y�ŃG37�9д_w�'��{6p���@�e����c��l��!��̲@p�+���墼��k�t�o5W��?�,�3�Ee-�Ɂ/��n��~g�%���9�G���F������Oi���1�`h/�w�EK�S�$�
�9�:̮�T��`E90j���킺��Ҿr%�'��M�cx7�����t<=�����T����f~x<6Ͽ6���Ͽ|�����l���ր)����n����f��;��q�7��U��J#�4u��y���w�_n� �U����m���r���t|���wP��w֒�e(�C�f�5EQ�2g*��P�@j�P�y6/�I�S(�i?��.o-��R�bB�L�����\F/
^�i����2j+�eU����������R�k�����&�s��kI����5!u*�@�$�Ί)[��\_�{Dޚ��0�[�p�$�ƃ -�e���,���Z�D���SمGƒ�R���@*�w�e�* -P�~O%����` �j��V1\�C�*��P�.J�(�X�>���TvZ�wۿ�VK]?�2��WHS��9mڙ*�~�^�3�V�.u�Z����[*��f�v�֘�\�\+ݽ��Z�-�jۊךK��Z�}eo���ƹ5蹍:�>w�Em��ڈu�2E��JҤ(��R�X�w<�'�Yy�#�%�&�)�#BV#�Lu(o�pf��C#0�Y��G�#J>����M����k���)�< Xjt�]Wv�� G$�O�X�M��if=��#"i��'D�Z�Lz��UGیi�(h�C���ha�9u�a2�"�;4K<vb���<����e�^;�8`��7*k� �f���D��e���xT���������=���4:g�pd=�gD���7�����zF?����'�j��
�_�>6�F_O(ƀ��赈�oa�� -�a�K����J�d�1x���Xx��3|f��dtZB�;� @�������0����K蠞 -���+�W�VY��:���,Js��w���u)x���~I��'�>lS��;��=e�S�=e�S�=e�S�-���{ʼ��{�j�Ƚ�_ke7)�&�_�������S��_����?���������|DҼ�.~�I�Ć����M��7j4�D喙�����(o�7��V�&��{i�2M]���4u��.��epl�����7�; -x���(�B~�<n5nŖ��hv�)<I�H�p�g���{����� -]{t�s������?� �����ǖ��� E�TI�E�d�!u��I|t�G�<���+<�|� -p�/@�@*F��9�n'Mޑ�� ��X��,�|8��Q{?�1�g��Iy�H�,��aU�ͷ�t��}÷ -u�S�� �>�����D��d�dIj|1oH��y���n9�ܦ�ڮ����] -�4�0$��
�͐���-���$)JBDfe(Qq -��e'�R�'wJ�PiJ-B�yȩf��t]�1L����k���j%���,�TN��K*����-��`�-��UN9f�]�٤#�R��RH.Yp�t�>P�Fp4Q�ݟC5� -�bY>�A�������G{S���������Pؤ�ql� �����[Vٺ}*�ly>i؎kT��g�"e -�r� -P�vNZ�[ -�����+V9�|���儭a�Uq�W�����46 -���ɾQ�N�3,.I% -�7乍�?�ҰκV!��g�π��� �J���5Q@�5��&8C_��V@�i��g�,eIjIP�k�0O#���6��� -�˓�,,if���<^��Z}����_+}��l�h�V�n��LW\ᆕ6��s��]�G��ϏK�d�Ŕ�P���� -qzE�,5����+�)�NڙJ
���kӛ̺�Z���P~ �Ȓڔ�4���ܘ�*�� -QR�Cܹ���T�uE��/7 -ܹb�,��g)g`Z��mŃ4�/@��v
��j~�&``4Y�yq-(�cF6 -�$�$�T�$�d9U�wFbS��N��O�L�PjpT���໓/í7��4�Uu�l�+��J�@3���0��4]R2_��W:!yK��o햧����]3]���"٫����,�+�К����0�iP��|�]�Y�S���藔.���h-'������D���:�~0����;�q{�|��/o�%�Lh|p����8��L������Ɲ�%��b;-o���*���ǺN�b2������2n�?�h����-|�|��ן����_���~���v�/�?�������×ˏ���̟�������G����ּR�A�mz]�lp��0�1*�D�%т<]������˭� � I��6��u��eȢp��r��i�W�����vDEߪ�-�}�u]F�*������i�'ә�%�����^FN��3�����#�L��ĺW*�e�D�ۂ�N{�,$�H��8̐�#�zy��� -����4�T���{A�]��C��Fqؓ��[:��q����h�������9ϵi���f�~�����(��Í�l���=}n2�V]���[܃�+���&�V�n��ң�s��s�wz�8��pG=���K�_�s����. 3�nL��$9��gF�ȇU�!l����~Hx
[ZhK��$�PS��eؒ��D�jd�)uCʬ0Z/*`E�
����ّ7���;�e -�%I*/i��ƀ�1"s�'���d�s���F�Z�;;��$�tS���#�x -���f�����[@�a!�`}�~ʷ���C�1E�bE�οlI��3��SOH���s'�N��2C�T�$�������6Qi�������w�a
&[�i�L��Llֻ&` Z�%��c)��7��cBr�Z%(�J��┚䓆�B�G�$�lQ�C�Јy�H�_/+�:$5��hC�&�YR�B(�G|���!A�$��0F��ac3j��Pf�̠SeU!�2U0i��%�Faǐ�1'R,B�9#�ʄ -){Wʻ�O����MkAkbZF|+�F�}Zt��ohEJ͘���tLiY�U6�u�����D��E�9�T���qw>�]�W�����EW���E����m����n:�����{:4IV� -�p��@&y��ȕ���DK#�� ,=���E��^N����lA��ѹ�*lF�2������.�;[gvx[�丩@�)�<v4��x+���FC -3��'�������$'\� ;5Бc$äa�S�mw��J�� ��_ZY0��vx��V#x�bף�P+'L�X�_O�n.��$�Ԩܚ�BQ ETU�Ti,v�;�aD�Jg[{*{K�5�55?"r
{�ljJ3>F����]��f,���v5�R(
IHC�{�(YAPT8$"`�!ԡ�� Ə�Gѓ�3'��8ʛL!
%�(f��eK&K'Ta�4�&�$�0D�!� -�*H����l"|4��zP<Q8��Wү��W5�]��&:�=�/z����S0�[��+uKsrIe�$�4"�0�,f� -$-J$JHbOĎ��P�:!�A5���(���)$�+ �A���j%�,ɥ0}<U����ǘ��P�d�(o6�(kg(a&CFS�%q�bJ��F���vlĨ9�t���/�ce�*=��/ꋊ#�ٕ��M��[�W�^)���pS�+:
�t�����<4�'���w�!��.��̿S��`k�K
�v�?��i���<���Ѡ1��Y�{`�L��u��F3:cn�7���Y�������@�ӧ/�u�7��������a��:9���;���uO ��]w~��z�^;�_l���џ\<�\�>D��hۍ3�@���u_������߾=�Gw��~��9����O�x~��_߾^~M�.�����躽�_��LXE��"mrp��&������soZfd��.�˶��dN���<��:��N�:��,�=>��b)�2&,�X�%s�g1�����p�!mpҵ�Vm�UN�g�o�[iI��1UB�AT�q�J�¥t�*���-ʯX�lGVZ���P��<μ�8�8n�p9�q��Xu909&Gm�\<���h�ॺa��Dq>�9i�4\�g���K���g1=�m/sz�,�1��>^~ߠ�Ԇ�i��R�ϊ��8`e\<ƕ�U-���0�R��r�
Y�5�����R�Q�Oٲlۖ�\�]aR�6�4�,�y���o���u��{SstD�{ڌթ���ګ��n(��g����dvN�S'T���PfV�[1�-�^��0�� -�V -������#N�MK� -#��gE�@;�o8��@�P+� -s�8v�aH3q�yP�:���;3�A�(F-��0�����@Kd�Bf -� -@� ͬ�۠�����4���r�h'��h}��'3�G�<K�8A��Һ������*�~�m�jT��
k��}kol=�*����m�#��-���o�*\8�++l���+�]��UL�_�D��ۼ�_Y�پF߬�a�}��^^�Ƚ�� -��r/�o,HIr��˽�`?��ʆ,��g!�7�I�P&��+ >-��"R�dī�#b�X��e)�r�U@��UkS��d���Z4� -m1E�}�\sAh��V Gj�mG�,) h�d��}w�Ќ0�x-"�ĥT�ֈ -�\u��>����TQ!�*-�,2ɀ -�L0�chQ@�E
6*�)H����� -bn���������i4_·�ɐVdm8��/��w�������3Ia��/���k���ۚ_*���^�З0G�K����c�|{w��?���E��rB��N8��1y��¾qAu⫻��0���\�^�]�K/��!nH'�eF�z���}�e�3@���� ��$&3�e*3��f[Pε�@�1"$/JGiM#�qZ� XA�Q��7��GyK v!�!~%��*��Ϊ��:����!�D�h�%ΊX�!z" -Wc�H}]B,�
�p�'�p���!43bdE���D��L��8�g
M ��9���ǀ���T+�Rq�u��1eD�J!�y]9�Kn���jܠ�#��RJ��$:�VWCM�Ԋ��D���Zh���`-�Mw=��������>,��P����M��r���z�"��:�*��� ��
aC<!�&G���Y�vYӏ��9�����8g����=�}f���4[h���Dp�2��)z�$��4[i�Rf/-fZ�4�$����(�R�ZR�)��K���cS��S
W �թ�� Ko��gi��䰖me�Vgq�!.q%����:�F��<ԕ�� -y�y�����j�Зb}y�W&}aʥ�M��[^ �v�c�$0L��f����]�INr��'''%%��U<|8�Q�G{7oi�4�-�;O[�Kxf�w;�_h�=bi�]&�_'�C0�O_؍�r'%^+=)@��Ý������)]��N�ʣHӡnl��&�/�C~������O���ӧ��˦��~{~������il���Q\܊�v*�xdt% -+ ]� ��6��?:XlO��78^Դ4]����;7��;�
IqM�uo�Xa<�W��OR�7��p��� o9��p������\^~�%���z�ozmW����
�K����*�x�U�����]|[�,��e��2s��|���ؾ+�K�z�LY�B�"�7
� �^����n0{�A��bA}`Yځr �0��@`:H�l�rJ��ޞ+�VAa05�t���SK� ��/���0��.����Ǿ���H�v�E�U+ -�aހ�J� -��A�B{�K�:� -�B��iARU��D S������rGl+x��Fp�Z���N�wX|��3tad߅��mBϭUH���AH����]�o <B����ɿ���=��B�vؾ��揰�P��q:��A�P��zj&-����@��(��R#! --\��F&*d��F�įN^+����_2��&Uw��ȣ�8���_6|�pכ��:��A�W�G���y���o�rK����q���n�K�T�̮*��G�9g���M����)�N��6��H�N+�s���b/n����b �f��0vB��1��4=pw���w�W���+��7�9f��2�Aq'Gm�vϗ�}>�?p�4�7s~6�O -H��I����Cmp6�L� -�*�����(�������K4������D����H�`�Œޗ��%����N�ˈ�G�s�5��1#.�-O.�p�͜>��[�ç�]�ߛ�i����lƥ<~]�9rc@�o=vz.�g���9�k���ûQuz��Q����p6�r�w�>���;7��v�=jh�$7X�s۹�;o~�1��р�J�/�w�P�ۦψ뮉y�N(w�_⁴#b�p�ԍ6�+[B��q1�f��L8�3��Lb2(L����(��g�x@�dP@
��s̐\*M?��:�m -/QV��w���O>���aA��'f�>ĐB%�А�%ꮣŨ>��b�%�ؑI*a�K>ŔRI5���fh�mv9�s.��
�.��J*��ҫ�2��PS͵��$�h�o��V[Gk����ǞE���K�<�~;��0�1c��e�/���͙p!�H{km��m���¿�L#v��<�usS�~��d�tI�Da*k��d1�,���Q��I�$�U�$o��8D�2B�R|�����x�|�{0���a�?@����q:A�^ �
�A`?��
� �Px��_M��&���p�o(�
�A�;���6���3"������=�]"���1�[z+��_���]�U�4��|�_�|?#OpB[X�;��d7��&\�/�'eR'm� �oa
F\��BV(�4l��
,S��[a�B�L��%�JN]��O��+�r�z�E?���rKg�/��
�!�#D�=�_���� -[��|�v�ƭ� p����,9#t��{�
���}����ܖ'�o�f��\:�w����@�u~�ٱ��'�}�����W*<E�`7g����O��X�C:<�C���Hy������������,�,:DśEG���F�eCP�����F
���但Ù�*>���/�����ן�}��ؑ�����uןo?������������&���ý\��7���ǭ��ǵ���0/���KüɘA��a^i�1Y;�\�L��� -�SU%�n�<N����`⫲@"I����,ԥ���&�fDm!~�$�A�6`9�XV���m��"n��z��6˰`�V�)aX�-��K~��a��#"X�̠� D�9�:!�x�����\�]�lW�>��!�9��eA��А�����#�4GJ/h��Z� ��GR�H� -M�"�Dm�0I��C�ѝJ��A��98�`jy�ƫy��c��s��ԍ2�ۈڴP��.�#�?���t -.��Y.�0Y��{�Pc�k��Y�gz�3�����X.��������x�+�����:��q*�Wa^��{>�༥^N�L�_(�jx�����Vw~�Z��a�Ô����ݻ�� -�?��Z�����<�ԋ���Y�Ab�0uҘ>����R�CZ2Н�hL�A�zLPe�6ҖA��sq^T�2�Y��=m�kM�-�>v��B��x6`a�O�]j<�2�{�[;���v���� ��n���='�� �����n8�K��m����B��Xn#hVH�TO�Q�[�"m!��3�p(.0E���B�\ �RGG%G-G5������������?�V���S�G�G�G�G���@Ί���Uf�S�{�Ԇ�qOa�=Q���x����;O�@|H����0�����%�2���-q��:�:T�^���}5�|5Mg-�>Ok�f�?�W�n�|��/$��(�"�E�O�s�S�f��C|���#UE���m��gA��ඦ=RKd��9{y�%�.����z4���o�˚ -d�9�,2�=�f� -��8�)�@��ϐ��,2'����3&�ި3��N���m��m)�m-��{VWz�-]��)���x�KִU����pɠmǻѯH]��S����͙�C���Թ��������縚ŭ�վ�U��t�jH]�9��'�jj@��.%��Q�QNk�����>���5� bD��Y���p=�>��t�Q�"N�0�>$)4���������Z��^v��o)�El����?��_{��֜��uo�f��4=�ܩZ�u+����¶v�ҪL[�j���C�<�� ���DaA�J�ftٷ
b�l �+*�M�`��U�����oP�uКеH
�����
tk���fA��B�t/*�M�knÂ̻R��!�R:� -�����4��z��x�wr�YK�yPͷ6�GE�`s�o�oWE�5]Q��#���do-������&�;m7;$[�դmv�l��V�ښ�Ft��Zs���
�<�&���ل�c��a�eiA@�2:
�
EL>HTw�ѳ�2�E��D,��I�"�F�jP -����[���l�t̵*v�"c�c��C�RU��j�Zn;.O�S��V�;�o8䯌�3��uJ�7Ecȹ�d�b�T�\����9�������5��%n�s���HL� �:Gc\�u�:�1�YV�F�?� ����M�%�3/�p����o)�4�^��r�q��@�:��{��:�eR���$k��P2v���4����߭" -�ۡ�r8@�C*c�]�p�os�c��9
n��k��@�}ngi���c���?P�&����Y�����{�z�ȃ�'���zMO�{�w����~z���w��|:�|�A�F�,�xz��h�+��C�������i��ɏ���:�s;��^���H�� -�Vj'��NI���>�dMj2 iAb���1c����*�ltM&*-\�Ľ�C�>$)4��IAl"��p���>�Ѣ��r=���t#�H9�.�.*����7$�u�m���Mu2Mo:�|�OGgj�[a[KR�E�iE>��� ͽ���ʼni Sh -jA�� �&��%�x��{5�Q�Ȫm�E��F�ȫ��GVi�j.0v����JO�jJ[�J�ڒ�%�ܘ6��iSmJ*NA�ɩ<��O� -Ԣ -U�&ը[dդ6�A��D����
ҕN�j���� �r��^k��6F��t-S�֏�)�G��F�����n2�E�T�(c��x#�qB�(� K\�n� ��"�>�҂��et�3��|����g�SC��s��%��x�d��f��-k�4�M #�A�`#�� ��;���,�Y'�������Q��(P�&�Ip�h�4aI}ռM`%\ �d��A� ���/<J�{��fQ܄hb��N�}~;O6@�o������1ת�EĊ����e%�����jKն�(�v*\�|?�ʝ��w�p�_Wg���<�a��u$ǭ��:Y��4DJ|9��pl8r�X`�
<�����=��(UuO��:�J�VW�����0�s#ȹ����rm��M�(q���q���y�
S�o
�!U�p�̀�ڰ5�
GE�C�H�z���<rSO�Op��U�\/��6��A����� S��D~�To'��S.H��
����)s�J���{bb���/g�B%�3h̀y!,�����R����I�]��]U��cQ��CPP�L��X�&uO�ۄ��ˋ0��Z`��(�*l�@�B�h-ip�e������`����AV6����"dV���Ċ��Bm� �c(�:�ꂊ)J��XR�( -� ���;�bߡnOݮ�0<_��b-�)r�)���<�6Sa)gT�5tP�w2�2�RX�@m���P�V�w� � �r�G�/�;,�ʦ�%�/8N����Z�����8A�p�B�U��5f�u�Mf�Y�h������½�s�X� �,��%�� V���Tۢ�Ft�G�E<XF7���=X����=�ad�g�R�&屆��8�ȇ���+jO�֢)G�����U�3X�6؆�oA�#��ϡ�k�,N"� -K��RaكTlI�J���Ľ�"&z�Y,�8�}3�Ύ��ʊ��^��������*0��:?���>�|��sqdid]V���z��"+�u�U�Ȩ��ǵ,z`�QlzD��A��.+;��%�ԊR�� �0�)�M��[@z;���Y��|F��҇a�'7��Rҍ��kX+��z��&���]9˻�{=[n�r�?ϼ����Y��x���5M���8��u����b'^�&^*]�Z�\�E��t7��=VN�-c��W�xaO��b'������%z����/�G{�oVy~$�{��̖�]-�(��������4�W}��W�|1�7�̩�f�o����_��Gs��W�{u�W���]N�$2}L��ycg�X�1�f --��l�B���#�B3au��+Vu�-���\u�©�o�si�ĉ��w�<
y��k�;��&;�u���D�<gJ��,w�8_*9�ץ���T��u�ʲ���W�%�"k���Zj-6�
�RqԼW�!� �$�Afb'���m9 hOmc -*�����pZ2mCGs)��4�aA��wk>�ܥ������ڷ�6�j�Ֆ�
;�%�C�/\����h�>t|���6����;�5� -� ��+�o)�;%�O��+��R�쟱���ԟb?��0�V��o8*؎�_Kv=s�fWv���\\`,W��X�C�?�.�]�������e�С�32ቱ�~��M��Е�
���e7�� v�`VS��\��H�� -�'Gm�FR�ڞ�����f�Wf��0�NOG�1����`6Cr��j�<+0���� ���F]�81@�Z�@�$Y;o���S� -�x�,?Ʃ7vU�H��Q���dZF1�;R��m9�|=�~(�.5���D�oI���� -{���3��?���3�$<CV��������e��-&��3u%�k���4��$M%�%�^ͼ�w-�n�b�!w.il/���Dƕ,^8Q��x��0�0���px<��0��w��=`}��*N��O�O�r��� ��a�f��Ζ�J��w��Mʖ��>������a��b:a�?� -�u����9�0�3��ڎ�ex�0,�e��K��� ��/w�3?��]�]�-� "/�톚���\X�.���o����{>A�CH>�T:��6 ]&>�$u�r/;�����{�C�a�\��b!r���9�8��)`���j���I~t$<��p��=�'N��ʕ�'k��t�tR{�B���`����ᑡ����ί�����7}��l������˧����O�����|���/�֟_���/_~���O/��[/�g��&~gzY>a�5O�Q?R��#����/QYy�����Y|�s9�qt��`sñ�V��n�k1�d8��!|㇊-�)}�Hg��'�`�5�H��)��K�;��t�:]��y�#6�B)<[�Mpq�w�|������үt�p���w\�œ��Lmi��Ű/4�+M��"�R���i)OU���6Cӗ���ȸ�@���ݍ�w�Cɯ�������QԴZ�f]��jޯ@.+�[k��f�l�g��U��,\c��Ww�{���/���<�|70�����s6(��E����6/��6:�N{�{�Z��O(���2��i��A�d4LD�x�oԝt
}����_��^��Mw�V�%AӢ`����������n����E�}�R7֑�]����q�z7�� -���5^��u�S8���:�ev#�v��e�S�� /��0P�� �`��������`��H��*��d�/z�#J��{ b����+"d��O�m���4cvů8��v!��m�q�����@?���S�~��+�[2j�-71a��$h͈d+��A&���0�h���v�+�ٽp��&SHJ)j�Hj������X����
�t�i�!QyRU��_��wFǸ�CĒ�0�%�a���~f}�b� �;�%�q3���ъ<Q�zy�$n��U��BW�N�n!�}䃙�R�DvD/��`� -�:*�B�x"�HDn�x�e-� -��CA�l�2�l��
Q[bn-�
;��l�{k,�덪`�M��i��M2_��9{�)��R[%�fY�*
����4A�ưo�sJ�{��S���͕6�eU�2]i�}���b�̾(��*-eZOٮ����������;l�/���9n�O�/$7Q�(�E"� � ��3X�!>l���zEJ�Z�m{<� ����v�[-��~�j|V%4\�t����T+�-!N����|x���pg^�r��
�j�����
6#�a��J6�lvXOv(<�B�(T���d��Ⰵ��8�"��5�n��1lc��"�Q�q��1�3g+|��<a���Z7��7C��&w�v���Εijd�Y1�Z�X�[Ӹ��rjX��Rk%�4�,��s�1nh|��?�Yxn��2<6�Y>L'e�g�_<\Q:X`�2OX��]�`��������Cl�m��� -bL1���h̆�& -�����*Qm-6GZ�'���Ex1uƍ/�]|^?����o���o|����~�ዢ���w~�g�K���۟�뗿��˗߾�����|���������韯����뗗_�[/����}'�/�<�����?9�mԃ�����& ڻr�$��|U`�����W5P�$-�$�2U�J���+�|U�*ceg}a��%p+r�����
yO�=��epE0��!x�����0(�*��JaO -���ӱ�l Ď X�:>Eqd� �c�Ңht
���$�qdۙX��l�䁕�#�U�h�lI�}�S��H
�i���▫�:�J�b����w
�do��7;�ʮz>��7�U��-oj�J.oM�Rx$�y�H�*����G$�i�6�ͯ:�עi�Z5�MǺ9�pj�L,�]��#���q����"҄t�����#����`�0�i -�2�J/d�CvM�KU� -Gs�>K����oŅ���T�ߢ�J�>���R�l�o�v����o�<�����w -$w����������aWߨ\�J勰sKwm��&ƕC%´f����y�I}�����;a�؎i�DHM�3q�2��j�D�D�+�
��Vx+��=�����BZ�xV8��rA���X9�V�*{�����[+@�bv_[��J� -CN(%�3���|�GWs��EK -�Dq����zAh��[�V(믫���|�lE�F���F|���U
�SX�������nA�L�M-xE���S��i=5QXDG�8訒�0
X�븅+[��ץ�U�rg/�U�dl�'kg�bR)�U�Bx��PUV!�2W�;M�h�n%o����.*�U��ɱ��\u�V��<)ӪY'az;���%��>��b�"p��W}D��xU�v�J��P�QR~��4Ql?���in����wIow�����0%��Lټs�`��UB�^.���䷵ҏ���h8NX:k�f�}��ת>�'�w�}���8>|²�ob�6j��zl����l�v��J
�4��j0�DG8)#�wpY��]�@���NN�t<]��0"��9J3�,b�2Z@S�����8���N��*uO@["9��"���:���]r�v!g3�D�_��eGn���O�w��@�x�F -��ճN�_U�W�N5�.534�jO�jM�Ŗ��J��H㊾��(�jC�jA��W�W��eV�B�Zβ�ͥ܊���W�=�f��ܪ恍v���&�vs�q�ᠴ���S�"��;h���-�i�N�Ar�Pv:`�V"L�;
��v�|�p:�N�jE�lf����\���G�mWn��H\�a_+��y���~�N��G!{i��������S8%:I!`p�S�Ou����:�U����N�?��� -/é�Hy�x����RO���ߩ?|�8�w�/�S~z���燯�O��㗯O˥�~{z����C��]��{q�"�l����fC�vD���]��PKәJSܗK4n;�����ys2�:.5�w�3o�w�m��ۨ#���<� Ya�m6d�=��?i������a�Ⱶ���/��,߹��������<k-i3�Z��4�{��=Ǐ��l�� -�������_��m1����(p5 ->T��ٱv�3�t��odo���
y�!a�L��0�#�7�nÆ;"<#��5[� -b�FyLW4�����tL/jAnT�&q�����n�F��;�iA��0恱�8�Y�L+�E�*����d�Y6�h��Hf2TS���h1"�g'��
���z�nr�ˌ� -8LjK
r��}�E�HGG���xGē\mj.IA=.d+�*�*�~��`.<Q�r�*6�ƴq�"�qntd>�"�ɓt��F��m���P&k�t����0qm{M/��������۷�����+����"brR3L���AO:7Gf0��`&�l�� -x��ёA�����+J7[��ѿZK�$��"V7�
JKs���5� -�։mkb��ٺ2��7'�����a�c��ɺeS���]:Θ -q�l�HD$LW -�c?��2R�z"g�^b>�C@��)�FYB«{`"i+��Z+�8iy
�j� ]���^�I#'������1��5�N�F������M��4V=*��y�+;෫��]k
<e1�Z٦�Nm7 �������<g�4�+��:(�<J��q(Ц�C���T�p%9p%iQ�9W[�MDM)#�,B,C��
�b��POq���Y��p�h��H�9���gF�� �<����g-/Q`�*)���4(~�x�c���\0�IVΥ����9�T�R�+�gˏ -�c�!e��ۈ��m���\E���u^��h^j-����K����i4����ڿ�����Mu�13�iN��>���~�G�����j�����#f���Hc�
���mq:r��X���X|�EcӌQ_����@^��pWp�7F�����t�ʆ���AWZ`������ -��嶺�E�Ľ� -r�<rg�vvW4@��(.�(/��e���0���/W�^��X�.�$G�.I����M]{���Q�x��ox���s!�Y��H��*�|T���8י���2H���'�d2$EԠ0N��4|�7��r!�b�#:LL�xp̎ұI�<ک�wxcv:�M�ڵ��%w^�0�>� uI��˛��2
>�Q4.|�w�{��Ja�Fu�md��@��v�h�I�t��&��)~�m�|�6����8Wk�j���D����̊�k�W�v0h���0���q���i)��|�Q�Q}�p_c�\)E���3�~Z۩��d��#+����C��� -��Dr�'��� -ɥ��m�xk�Skݗ�D�.���GD�� 0j���/��8��t�X�}���S\?�o�kT��7�����oˇ��a~q���� �0����>���H6� -��<�T��X��"�V�j������p`U�h�bT /�5��b[��Wa��+�ή,z��W�o�BJ�_��F���#Iƈ}�`���#�i�1{ ��WĻ�O�����c$���x��hX��^�Z�9�=�q1���,w]�ߙ��qt"�CD
4"��䤆��F��I G*�m4�ΥI��տڻ��)��Sń`���P��h[MJ1���(f��ɼ����Z�o6�Q� �ĭ�#���)�uM������F�5F���t@��j@� ~�5����4u��%A�=������3*J߂��{�!9�2"L���?ַ1?�=����HHH�OtN����#�'\/�|�ӱ��nz�`s����7����? -H��ˎ#�E����M�����h �����,tc0�b���o�)�J�W &ow�JJ1��8q���#�˿��B>����"}Ȱ,�I/���2AYh�j��tie�U�*���UQTUS�*M��V[��P� *z����B -P4*P��i<9<�n��Za=+@ *P��ls���v<�����PfmP���� -/]wݫ)i�?'@t%Yyj;4�7�]"�Ev�_O*'ճDĉ�N?黲�<M�/�BL7���YUV����m���|���2|zﵗ�z@���Zo���Zh��j����j��ڪ���V��%���azS��Z��K*A �l�E�[�r� g�`&�,SO-m���p �!Y
`!c�
s*8��Q��&����!�7�@BD��C��� -�w�YE���#e&e)�+e.�1�4%7�y�����
�"�A��I�b3�8G���E��i�[�"S��1��RXx�[�
"}�.�+�s���¶27�[�hL3�6<�'L��z\jjr\��&��:�*��(. -Cb��7r�d���J��+��K�|����?S�����&�4Y[�j|��A�ʭmۖ����M��W���{� H|��R -�d�n���k�ݧٔX��P������I�!IP������g���~�lm(¼�4D� � -b��BMFՃRĩa��Y�̒������ �[�\�]�^���ʍKa���v���g�A�Xy)�Gb�q�t�P�i��´\~6_��g&�� 1z5�bÏ� �:��6���q�q�����������˜�O� #�����V{�z�X�8�}��*q��w������= �c/�>�߄|����ҋ���?���*�/�����oC�8�
x!]��>�!Z��B�`���]�_���3��/��ÓG-���e.N�H�p֝O��_��^�P�p1�-�=}�����괿h�bt -w�{����"��Kqg��]����>��o?������7ʧ_~������_�����������|�����.6��ǫ��I�Z��`�����.�B����w������[�I\�g���I
�<*�6k����#v����гx�5�ZEn��]��Uƈrh0��*����:���14p�乲P���u� -̀�GEd�>�6/A�Hí�z�p��ް����n�Wo�[{-�m\u�64�2��.��Ӝ`�@�MV٠�$�Q�;��ۢ�j���6�/=$u�{������O�����H.xw�D,�qU��c�8{g*���Um*CD���Z4VӰ U�
�Eq��%��
���v�=���^�t -D����d� �מ��D��]��O�{�O�x�h;�P�,ʂ�4��A�&ɍ �9�e(�1t)�Ğ0�13�Ѩ[8b�&��0�+j�����:�z�a����>�>3�������_4�J�k^n�n����t -�7r$�D��fX�Q,�-�k�[\|��f(R -G�(��:1����x���In>"����α`�ϟz�w8�$|�7L��E��q�
g�q��)�P5Y�EFL9m�a�:[I�9$B/��b�e��r���2����{ �@X��S�U|��@�*���l�7*��a�*v�`�v.`�ve�+6@���@j����Wq|�8��G][Z�6q�qC��ġo5 Ŏ��<k`�c���������qG`t둆K:���S�݇[b�WH�S������kyͩ��W�t�����*���_.;��f~��7
L6�"E*hu ��ʢ1@7�H/f���9���.����`::�,��o]�<g��%A
�X�I���G_�<%��܊K��s�Ԍ��������ws���ڣ�b�g�kY����]X�a`�n�����t 'n���2�S���e�����tc+����7� ����VF+uw��?cWGt4�j�4��E�h:h�/��*/~m�S8��� ����x^�Q�����o�s����#WB3�Y�����yB�J�Mͭ�V���1�;d��[r5�u[��|8�<'���.K����h�s~)�ß}Oe��(��視��[z���Sg����1�7�b��~�c���C��Ӄ���P�0(z��Cf-凍�GИ�8�x��Լk1J���)N?N �F�$+Q1����u�s�
Ӎ�7w����kVF�?��
��1�D[�N8*�x�A��t� �gG��J���2�P����8ǶN�
}ҡ��%f���M��r��}b��W���C.����O���؋�a�|����^q�Ìݼ���3�Q�V�TE�k�rJZ��70:�Y�<���� -�J��y�:Q]�)�<Ֆ<�uFy*)O&e*�*&+��f5���H�蕵�🦼��u�z����z�ZK�n�j*�3p��%�纞uռ�����d�jܶ�����~ļ\��3�gw�t�z�M�8�t{s����Ug�
�V8l��ӽTo���R0?N��~��{�J�DR���oR�&X[a� (�@�:"�V�fP�ϥC>d�`�C�]�C�8A�Ke��K%��c�G��"�L��=�N�.!�����8ؑV涫�$ÖL����/�'Ck�����C��a�^�0�5ޗ� �����a\|q�:������\F��<���ի�,��3�^�|�z\�:r�c]��Z�q}wrˮ�����d�7��f}�V���֪=������۴��\+�Ug�� -��.��*���<��R��$�A) K�>��~�AS���,|��&�������<
|�rIV.�) R����TU�C��%�ӱۘ4o�Y==�Ep���5F��i�`5C;��b�"�<����J6��ؕ%�/�na�#�5����V\9�r�N -�CUA�(�!&R�2�
~S0�]�b�h,VJ
2i�t��(�Q2�Py+G�]Es���A���:<V����n�=��BҲ,���^��*~qK3/�4���{tR7�����L�4ad�;�X75��8�ڀ��cg�GZe�F�'�Asv��[�����(�4DtKP���h�?�jt%��Q�i 204306h�buF�WvX���j��������� -�����������٣$�g�v�1��i�<K�{�ݓ����2w��d>'L�2�4/���L�=&�iy�b�rЛ -���a�-���>tp�4c�l�F�pa�K���R3.�˵��0���},���?��13t�]�k�7���I+��0v9ͺK�849&��6���x�)�qZ���MU�A���Uf�Nc��(�g�c�g�� �t
d�-�?��^��pw��7υ�Ň -s��9 -�]�K -U�A�@���= ����]����pD�ŝ(~�����V�̹ -!�B�W%�Z�S%�:�Jm���놂ҽ_����{�)*�U��~)öj]�E���B�$; Ͳ�>�4��D��%��z/����=Ɛm��Ң9D_5�J����z�E��HY� -��K�N�6�a���$���Ѵ���II���_��{��䈜��MU#��bX����Ed��X���)'-B��]U�3��JDǫ���C?��e� -��� -��&�
E��".��$��4s�G�����E0mC6�����,�cz�s�O���]��<Ѕ1� -�+�0�a -R�9�]��'��t!�KT�� �.��Q�o��I��}�� ���g� -�����a�N��d��Kc~.$��wOe��+Co3�qN��}��7�b��R� -&�Q�V4/���q;�j3&M��4��to���{qtF����p��H�BWb�P�<~��ӎ�'s�kW,j���j"��G�5e{ |���9"0<��C�㘑P�)[��= -ut��XiS�[�UIi��"��Q -C654�(�Q<8�(D��i���/O����/^}��۷�x��&����W�[D��3��x��_�N/�!������ϡ糗߾y� -%�� �ÿ�<���ɚ���{|��Џ7��77�S�y%��;=CG��Q�䔖�uV������*ԩ�¡�v���=�`Ӑp�Yq���פ�y`��:Z$���8�@Yo���[Q{�T�h�L��`n�ا��[A��a�ㄮvXv/�����������.��ч�L����Uh��K�/O��3S?�rw�����L��)XJ�׳ѹ��sK7i�g� -����?d7W��<l��a�����ǁz~����4o>������/�i�YF��DW�06������;d/B���Z*������2�`=u��)���O��%�a\� -5�a����a -�r��,�,d8��U�2�1��sE�� -����dG�9�ȑ�٢��G����s%��;�K�U��r���$���V�N
W/���
R4��m�H�!� ��E!���i�9�y/���r�� -�p�uYӊnh��)�ZѭH����
Y�^)??��+mك��
������5���#�Kv`}�� - -vL�@���@�Kp+.�m�B�����f��2 -;x8)�`�5H�,�f��0�ɛ>��H]U��[�gX-M=>����<��6��� -fm���a�z�ϕ����a�ے{�QJ�t 9J$G��� ����Y͇R���yO�*��:O��H������+�� 2�� �J(����C�d�i(r���}=�/��A��Ć\B~]-�Bʂ)^k�XSsk)�����ë~>���܊:�N�L�
�X]Bw�$�k��as,�ke�nois��*11���NU^h��緙ZT�lh�����e;X8�����)��&�F�,� �#�-�;�"�
*;����xX��Ό.N��=�{�b��e���4wG�u>L�F3�(x�p�!�m`m�;�����j���х�^�MaMmK��h�3����r�5���K�l�6$Q��9�X�t�P�Б��E8���1�c��*jw� -� -YK�)�l�M�>Iu�_�[fH�h~�n]���x�ѥ@�D���=�8M�G%�����}�����l2�3Gq�L![�^RG��e�L�zQr�����!G�I���@�莡v�o�3��;�rϼ�DQ�(�ňT�dl䑩�ٯ"� -M���>�`����!zw��3� -�m�sx��\��ќᙔ�^^K^��9R��>����5 ��?1�kF�E~�YNu�u-�1�4R�Dy��I�{u��c��P�o�� ˢ�m������?������U�{R�U�rQ! �Nlɖ -A��e.�����0h4�C -�5����v��IX��qe,��BNR"0��5��y"�Yk'�h�.9�7M��� -�ep/��$|e>�e�!V��z��a����������n\@���u\Z�]�@��!.�:8��8�J���F�D^�A����Z�VZ4��y�f����cy�#��� -��4��n��ih=��T��Db���i�� i�1'8������6ʺ�� -�>t:�pr -b�QwP��-���I��05����S�V�$(���*Fh��o�f�3yi,wp �����P�KN�5H֫S� -X��z�e߳J/;����UE -�w���}���}n���� -Ӡ|;r�����-*s��}fb�cF]8�MX�Ơk���X4}��-�뛜d˖�͵�S��*�)|�]�-?v� -�d.A�쳺698��6����`m�YL�Ví;��VK/@���ԩy��*�R^|�R�k?P������ -mǧ�w9��N;��ؘ����c��5��^�>g�x �W�U2��=�umh�6I6�&(��s��=��p����.���i�Zז� PLՒ�a��z�{Ȳm�`� -���l�����������:r��>��du6��)z�W���1�� -��`��p�Mp����" -�v"�O�b -��&��������o�]Eh -�U���������w���FJ �/6�v6�z�3�E�`3V���i�d�Z�(Q��+� -���+��!�*���'�Fp�� -.c���>�]g�����U~���v��,PO�pLI��z�-MG�W�G<�Ltś��U+L�]���1�1k�����ںv
��&q2���0�ڟ����6_V$��f�����K.���h�}+S-�|��h
�u��l�ޣ֢%�`�B�� -�*5��X��Cu���b�].�̌�%8�]Y���Ƴ���YS�?�@W+i#<34ܗ�5�[R�0ݶ�� -��p���w3�o�Š`E�����L��� efR1S�|��hA�;\�l�@)3+1]3T��Xl���WbX*��n�_��[�}�ڨ��y�X�>�-��I+�6������<�n�?|^y�\V��r��1*IK�� -�gM�R�x�^u�63�;+���h��,8�0tk'��S0- &ۥ�矃0���ۆ���Կ�WM�]5��?�
R�ʼn�8˶b*� !4����Ҫ��s۹����)�r�i�8�}|���v�!��&�pT�k$`:����*�6.Q�&)�h�aٞt��(
t'�)��<�$���!{��s�ύ�ߜ�z�������������0�����x8���yx�}��~��x��Oi{��n>�>�h{�7�iK�ߛ��[|� ����w�Ͽ��^����<CT<��u� ��u,;�a�p�G=^���f���Z0w�>*:mR�� -�Π%���iq{�����N3u�!H���c��"я�,)�1H�\��� ���>��3��s����O� -�蘗�e��`�t��V,��/����Y�[������3g�~ѹ�H�yf��ϳ��*E�v�`�NS�l���"�ϕ����v� Sk�� -����~���~�_��ʘ����1�T1�$;�`�Y�(���lR�����D����������^|�����'B�t3�� (z�@јC���'~[J)@�
��Cm��s�V�������/����^Moh2�Ԉ@/�C�J4�3 -���2u1��Db+� -�N~�Br� f��;)���X]J.E`����J|�|?��Z�<l)�l9ѕ��"#2.��an�Ű:RT~*7
�g\�o��Q��Q��Qu2q�����_�l�P��D�
K��l1@���G�| _����Td�@�R.n -�+d4�e`NsjQ#3,]�3K�ز��VFCc�hym�ɣ -�����#����2n�g�XG���� -{
XE��*��ȼV#�j��A�̨W>E*F�=��uQ� OO�o�sW�p���L�l�gᖣe���C�(�� -H���ݪ^�
��`��wRh�ؒeˇڃ���)�RJH�?�M��$���ڒ���J{R�0_�hɒ,�G���˳�ǻ�_h.�YE�afy��e���ko�K@���JͿOI�˖�� ���T�Y�.T�˦ -S2i��Z��0 5��/���AS}�Wa-���S[ -jcuL�=*TN9`���Q���k���C6�b�{/�6��v�TBT�pK��,�B�&5��u �5�l?
rc�9�[�v�Ɍ'D�)�/�V훛�-�/�S-�ԻC�>#q�S0bj -2.0yb���j�p�
6n�@*/B�{ -��hg̡�(E��}��{����Pɢ�0Sq�yd���;n�#S�,�P�wEv}���枮�cE:�x.ԧ�I4��(,ͯ@s�� ��H�,�+ƃ��*\J+~�)瑁y���'�~�����o�������~�����o>���/'���^^�~���1��!�gO�� -�|~��)?^���#���|�_~�� -6�D�#�;4�/OW���&��d��aV���dS�җ-eD°�
�`�@N��G�H��@t�eA��)�}�W����M�i�7�Y����uX��,Z�R5H%�C����pw�x��i0F�T�,��/d� +s�ǵ���o��~�`);��I�Xg8�_�����%�M�5��
F[?�qA����$1v=�_Ճo�;\>M�,�6�ԭ@X������c -�{���ǍE-�'��R���,�>t�Њ��P����'�jk76����c�]y -�`�h��";��Ŷ�F:9�b��gEi�z���\��[�� ��)@k��;��Εg��d�N���ޫ�o��a+-�V֘�ėmӋ���Ui�X y|����96�^�`���|�̩�I����NG�7+�*��b�hB��r��m;]`D��a��f��r�s�
F -R�_ee�F�K����$>,2��`�wä�����/�M���β�5�q�+
O��T�_'r���ޡ�U%w\y�p�nOq�q���O�x3�b��tYB|���>��8`�5�%����DΒhT�dJ�gq�Ubn~�ѺB�&���u{��( K���3��&kpT"�En��.W�1��� �VOf-�i�����b�q��}m>�Ϫ;��92���]V�����-`-�n04ի,���S[p�M��'�
#�aA�͚LRk��֥6-84�8��&C`�"���.��Rp`��v 0Чa���aոEX�sq��%�Q��:�������K��a��1�r.��|�-k���Ө9�mʃ�3۰1=gϢ.!���76�������Be; -
��G#l�'8�s�;80J���DE0�>e�R -����Nx�-�ȸaC<��~Z���,�5�0i^.`��i�[��5z
+�mn?ᙜvVY�?BPxo��Ai�/��h���y���O�ƁG���+�8�A��F1�d+�&���(�a^�3a��dY��]l�A�����S���h����Q���,��R^�h�B6���T"^3e�f��-2�k���BVr�m�BB+\ -�"���'bZ�(��r�CcH�Ag��<���כ/�i�|(�A%�W"���RF!��'ڼT<�h'%`�� -��5�A��#��@:k�ؤ���\��0W�}U�>�y�Hd�J�Ιk= -��jb8��a� 1h�+��,����"��� -g�Bk��0Q�p�uԯ�umx�3.�c؊�a�:������x�~��hT�#Ң��1��n���n���*7�����Wm�1��Q�����{�3f���F� -V����(�U�<'"@"��&N�FM��cul��`���1.h��e��ۍB��=��PH�;qD��ӊ��� @��,�~]5�94~b�Ɋ},�p�� -,gQo�f`\�ū���|�����<�d纳�;L�+X�;���A�b�`L���g���#v��\P`���p�ݻ�����~��?]��m��8猿/m]�`�v�X���|I�VWa�O������H�ZN0��]�X��t�|�zMY��Ҽ��8<�L�<�ӗ>>�f�����8Xx�m��!%f�B�?G��'6k���W��0#�
���ǭ�/��~��/��i=�b��c�T����y6/�]���qJ��E�RͶj�9V�[����a� �*�����+g�X j��-��,���{����fΝ�p��R�� �y -���"Z�3�p�҂�q���+�`�p��M�U���WV�kf�NJHᜇ�R䏵V�Zo"�]�q1A����U�x�jp�"�B���DJ,�0�9��;}�������>"8�-�&�_|��OS�|ciV����u�c�>�c�,����<˜��w>�������X���)L/�x����s۪�=� �T�!�~��A��FW�I�:=cN���S�����s������kA[@��O솥�ÜP���z -�Ӣo�yU@����ϯ� -Gp�<csXi��$�Q�R -#@���X\�0,��J����z���='n�����y����v}��3�i7�.�Js���wp��\U�o�q�;_�T*r������E��U��g�C�*G&���]����@+l���6kꪙ�+�i���Ul�� zwy -�*���C�ݷ�=ҋ-��&'����#8F&��E�GH�r���H����
��|3y?+<}8>U���gL՜�y���L��$�'� -L92���(��5��e��`&�^`�6�<�@����;�LI�\���gJV���!1��0|ca��AE��m��#�m�ۂod�5��9���)��� -�=t�����3y?Az�p�"=`�1�D!+r��y`�1������xE�[d�ƍ({,�%[�PA'�jle��#v+��~2��Iٺ�0Ɉ��e��P�W���Òe+s�<��ԀԖ����xad_(�7�����h�.�WC��P���$�c^��U�4����c9�jG�jT8� c<~b� -����ǭyG*[��j;�-�k���i_<�;S��oP�_�� 0VI����s���c�g;&�|�$"g��r9~�q~�]"������v'�� -\�>���(q�Vy������ �b��kh�f}j�%*)��v�gP7��S
6.�ߤ��kx^ ������"��U�� -�&�GF���9g������ -�Ʃ�8*IyB����-[���Y�EZ�e���Q���'�\3��+���_�#���f�z�.6J��[l�1�P�|�E%��\妤q��6aM� -/0�>V#gF�-S�����̑Π6�kfz��d¼��\Lr��0�d/̉��cn�SF���K����\o��w\=�z�i �s�W!h���7�(SDgw���=adrF��foq3�i�����wC�l���Z�Fљe�|�s>=���ڬJ��0�A"�E����خ��>������\��8i=a$QiV5/���� ��35�]X��b8@<e�]�r��q��(�%���X
v���m.������ -���.t�������AG���ړ�<\,y=�g��& �x����P{�V���1�n�+"+��|u��-֎
�g�N����p���ܵK���ny< 4,(-n�!��b;��a=]w@<H���h{�% �0�(�:XE���c�SG�1���P*e3�9�բ����ޡ�e���l�n�R���v�XS/�~PU��~��(����F���"�/���P���QS}@M�����Ha���{�
Ԟ��o��F�����w�K-�r^Q6h�-.Z�?b��N�887��EL� -Z���Z�=w>k�B�}���k�:5��h0�|�!h��K$�N���uhZ�MG��7(nq�қC��n���� ��"���Y�u����wO�*�v������)"�г+��[��i��������yc�R/��T -���EV������&zmQ� �����+$�.]#���do�c������/[̙چ��iRu�s�xn[����M���0p5!w�j��O�;�^78U����lN�ab�!.��ݱ���n}�$[���ӥgyl��UE��tD��Z_�S{q -O���c\鵭>��5v���Á����/ʫ�/�PdXD�������A�s���?�4a����/�ǽ8ԯ��6�e�̾��݁跲���}w��9>hm�'N6����x�}�4�N��e�r���ji|B�'q鉵��9� Ge-�O�ö���v딀5ڢ����i�� -���\NJU�S�A���0�$�� -��� ёl���Xl�<m��q��;����e����v^��k���a:�q^I�ݖ -E�-ڱ��E�.H�� ��������tT�x�>=0:��mg���*��iMUY����ʪ_CW�Z4�#[���ڽ��^r@����Q(���5V��~�c�'�;�� -8�0:��a)&�c���+�,� -��n,P�Ĭ� Cy҅��@�h��H���%�a��[�'O ӽ�IWK��v@݁-��+���ā�㒹2f$�59髠��-h*R�M -%C�} -B9� -ݏ�NcA� �}&@8�� '��@�<N`8���1U�y
��A=L#K���f�X ���[m&� � -�&#�71�?X�|�p\jPH�p5�f���(;u��T�̧@2�ꝇS�=��I�D���6�dg�� -)5 -u[��`���.��.]h��6�LP�<�6f��X���0Z����W�Ō��X�p���2�DoN�Z C����[KG�� -�M��1��\��@� -����.�CH�dx���;�9�����+eD7�9lj��Db@��?�CO"�N�e(3O�I���a��%nz+���p�dȝ}Մ�P(�A!PZXs�����D� -����F�c��<�)8�ݍk��J�Z� -���m�y;y;����~�S5?[o7�7y��ʁg�Dz����VU~U̧-:x�=���)�{�e�u������NI���5��+<�З���2���tn���e1�:�Y��8�p�A{?\X_%'�6��?%p%D]$4$x�
�x� �E��(PGxx�����_y��<3�{�:�yV�\��ހ -�$�5�[d���Ewރ3'3��ЪU���7� ����{�e���g#��x��p�>X�L��pX[o�hq2lAX��p�� -�]:��a"�XqN�RgS-uh����]i�ήp�����%��a��@ -� .ރAw)){��Ϡ�(� -��%��ӧo�r��[}�~Η[�(ʏ���hˢ6ւ�O9�/�Y�N�G�{F�����A��ut_���������"O��S�!rG&6��S�?�V̚�z[�amg����]�T��f�Yu�<�ѡ�d�]�.�jV��7t��w����|��f�O�~�rlN�M����v<q�F�{�U}є�lGYn��_�e1��v��{�llj������?�!�t��/맷��f�O���5���|��0[�Վ3L۞�������Y�b���l|Zw�jI�Z_̤^뼩ף��vk��W�zS6c.���V�����������w�9=�����Hܞxp{ -�w��A"._������ߣv���hZ}�{Jv���=ؽó{��{w��8�� �V�]29x�wV|.��|^y?Zb�7~��\�<]����8?,�;Z����*z�̟���.�!�7M�"�n6e^��<-=�l��iq�^���N5�G��:����9�N�ӵ�fxD~i�1��dV/��_�ƌ�����1�����e�*f��;���)�Ѫ��]��gu�i�j|jÁ��$�k�?}]�U�?d�{�rt���e>+.f�]8�3蘼� %�g���$��$'������'�.����\~ߣyS�Usn������йG��.��zV�.W�|�h`wP
��eà -ڋ -ڵ�1�zU���!k��‽�ҳ�jUo��82�>�P��Q��{/���Cv -��s�}P��D��D����7K� -;�����}w��Wq���2o(��稐s��y�-Am�1�Z��.��������7g�������$���ڒ�D��߬��z��O��%�F[Wt٢J��p�dY�B��L^n��~F�E0�Y#,��jT�J��U���n�jx�}��F����A>�����umm�9�$u��ͿU������ͩ\q\R��&,�/6� �}��s����*)zdM��p(X����`v��QV - Ýsa�Bo(�i�u��%9�b�f}ǚL��<��Q
Cx���>�v���X��W��ߏ{����?4�2z�)��s/˺�T-�0GU�*�IH���N�u�TZ��-JT~�P���Ǘ�-� -H���r;Ɵ ��e��d�9I-W�9q�*8)�M흫�4�D#�j$l��+f����"�ҌC��6�M����{�5,;�z5輾K�T �as.���?^�;��l?[�c��>�t�Fs9��t�����'V�d��,!-b�o�?��W�=w��3Õ�:�O?�����k0_��n
��T���Y�-9s�=͗3�t�o����L�<<!ìBÓ�IdMhe��Og�@i��Ҙ[a�4���DgT����D1F��(MF{�� -y�/���?�g��94�y&�a�Ҍ k�0J���;j��4b}6�������<z��yI�.^�d�Mxx�<y1���)�>��5�{zEҼ%�m�-z79}1=B�����&mqxd�d���7��$� -
~�� 't�� 5ϹBW��1D�rL9n��l���g̴it�o_[f'hn�)�o�mgh�ٛ2~����m��#�3\=LB-�� -�.n���=�k.by��ʷ�m�B�[*�q��aJ(�i}�F�XM�SU�~T�"��X����4'���f��;I`��e�3�����d&���,�#��`���Yp��,�h��� g�V+^�<� -�&<8������`#��k���>
����* �����J%�7��`<�*)��4f�H2^�p��fb�>!8��r��JQ���=_%�bl~���ӭ���iy۞>��?�y�#_�<�fN�m�����O2 -���q�T��H�l�C^,`W�O�k�t�b��=-�����g��Q��R���V����;Vխ�>N����x�.�,����81��K��]�,����&SZ=uh��4���&E�m �ǩW -�k�'X -���˫�'V�`����3�T��a�$(��J~�����F�?�V���RBO�S�YV�����wx[�c����aXp��k;)���5'Y�,��{���8eE�T��:�{��AVx�U� -���$�`�_Bk��{k[��?.H��ؿ��� �R�r)2O9��9Z��Y�}�m��c�W�M������gZrfR4�k�w��.��D�ء�����km��a�&�hřS+����� ��K���n}�x�]�C�Fk+3�b��r��Z���{�����
������X�I�֮�Zs����*|��
Ë?��x�<f!r�]�d�h0�/��5�齵-������g��_�������]��)y�����~�|�^��γ[HN�OZ��ѰȈH1�����/��쐍Y�5D�J��@e2�e6'y��)�!��v>ˎ����;�g��y�4%� -�-d�kv��frb��)�R�w\ -=1O �":<ؖG���$�nw]��H�1�_��@�5��r6����\Pγ[HN�OZ��ѰȈ�du��3l���S��� ���M�������ߡ�y�c�e5���% -��k+�`�_g��],Ӕh*x�ya�깓�0��
u���R�w\ -H��WkO������3/��OI(�WP��� ]]��=!s��>~������&MBi3�\�8' �3�m�k�QQ���%zգ��]\����(NB�����T�{G��Kt�)V,��Lŷ�����w~���X̫}o����w|}q������ - -��"��oo�v��M�B�� �ă�L�����*�I�8�7�)(��
p����$�?eP�2��a�!�KDS2��En��5�W�~���4�DP��}�ri���02�75���R6œɼ� -cD��c�7�4�<��_%4�1�V���q��`f�2�v_�H�w�M����Kh̯[ [51��_�O~���L�B�r9B6����ᬌ�2� Jg�x���81�ޝf@o�,��["IR��"Ɍ�,
Z�Q2O�\&-�T�e㻏O����?��V;�b�m��gR��̧�b{�5�
�o*,6L�H��G�'��EKBe$;��#I��L�s�����#�$*7���6md�Vng�Hg*���M��rv5>��Ex"�*���P�jԚ�;e�+�v��c���|��m3s ��"lC_$�i.7tuwHz�����\gF7x&�A��ij3uKdv������4!��(�^O"|y��$�*�^ck�)t�-�O���b���Kl�k�t��C���D�|�S}=��UL�Jt�{�0b�>m��Q��L�r��ii��y�䪐�PM�e�a�w���Iqo���p�m,E�l*9�6�tͨqp��}rGI�"6O�Ov�����ҷf�8�o�����E�vV����YA���dZ�ʰ ̸y�ռ,f�a����W ٠s�3 -i"ry�ɿJ�Ý1�V���q��`f�2�v_�H���M�' �Ci\�/�r�nmդ�Ѳ�~]����G}�'b'��>v�c�rue^��� �]gg`�"z�i��A/J��Ev�1�P8=������%Ex"�*��BS���Ig��s%b���R�89������*����\��m(�p�����t�ˢQ�k�j�����F�t���]p��G�d��Ti��o:aS었�Tf�H2cLK���<MrU�Q�S��K�����B�2VA��x;��4����TeƘ�Q��J�11�qme��+D6����_ssT�6���i;�&{We��0�g��١�Z�3�O���A�=�a'�qq��8�Сz'eH�j�L�Jm�YbM�юh�.��:]�(І�m��Q��LIf�ii�?U��Bv�.dv+Qt8���ܚXZ*�*�:�m
�ʁ�^���`p��)z�{1xG���8>;�,���Wn�'�xDO���塼U�����z�o���$��}���\��P�$���W�/A'=�.��\�{}_���7����0 -a��c��Z�a���Ķ8�����1����Mmt���E��)��<����yo8�>�:!��D�@� �^V�p��][���<�x�m����PyA�r0!ȣ���P���=�,�r���z� �|��h�l�8��4{� -�O|����2��L[����%�<�����v��.2x>��64�`˶YeH-�`�AN!��!��\)��r�뤻����8��x�qD��]�>�0��ܧ�@�u ���>�Iw,�湈���>j�r�($�m�DG��@��H�M\����O��<�B���t�E����y�6���QײF}߅�3L��ӆ-����r=��:o�u�0����tȇ�����?B���]�'���)�.t8�������UF,�\��P)/nJ��@���G��`���E�{=��V�A[�8��A��}�&U�8���^�}��{�*Ơ���cBx��3�j���GG/���g���F�9a>�*/�n�س5�2�A�@�mk<��v����cuuW�M�{ԫ=�z�"t�_����K�0�����Y����&����5K���]�~��a{Iw�R׳i�����lϯ#n��z���6u9�8�jX�(��!�����Y��s�b ���5�1#US�%���p���"\G姸���C�:�b� -�0+��J8�馀���{�!@��6fo]>boΆ�);!zj��^��k����ϐs������{��8#x\����X;j��Y�����Y�|�L��7 �o����Վ�����îU��U��}(�j^-��/��vEs�c��v�8����%���_�'R� ǁ��"6-D2�����rw�%E;�a�"��3ӗ���C�8����͇�������!p���ջ���4��Q��"�Siz�vob-(� i�.˃���i�*��5ɚ����L�5���bxɴX'3[8�ka����)�V�����9�6��ю��Nk^����M�O�&�I<����Y�
O�'��^b�>-%Y��wL��U2�%}�0��P��O�+#�)�͜vL�^�,E�H̙�d�ho�4^��h�7��@g��T�IP��+A�S�� -�9!L�����j4��g�Y���A_��� -<bКPx@\�Ya���#E�R�:�ym4�Ð'�ԕ:6 $@&\a�!s�$(�Qg[�VOO��q6��)�ȭ�%=���>EO�G��戦`a�Z�iU?����H�
���%J�D�K�{�~����YQ�F�og�z�C &������x~�O<�W>�)��%����eY�n����H��ᮥ�S�[�J�FB(� -A� -����B�N��It�9\���`��Y/,���F���xU�: -���[k��2�'�� -�t�%�P�o����y�4��5�f�H���b�<vׄ����Z��dSN�f�+u������#m�dI��"�r�D��ZEY���i�! �o$��;�����*.�GZ��C�zA��vS�,�5ᕗ�4Zm�B��AE��ۥ9*��qE�P����&�g��
�^Ѭ�����)���YT��6�JH�W�%�b(�E�����i�潂-Gm$D�����.>m/�"$���&�cXc�):OF�^�}�zb3Q=M �^__g5��'����H���Q��k�S&fVҖ9��"�����/~�`�T��ƣ�a�h����Sp����J�F�'ZC�T.kq[�"�c���By�_�,ݽ��G�tV������ڻ��) �Z��(�p.�q4�y�Vq��[pY�\ƨXM�K+��^�����O6�y�>a��ʓ-0�M&���f��ը9s�,[JҁA�&�aY�����U5|���X@�C[��5�vg�aS�@���S�5�d��L�G��)h���0>��]�J��Y��9�Ġ15E�������9���eME���e�N�%�B<�R�8��ű�9��J�����-�)�����R[�ԩ�d��]�Z���/��y1��B�ߞ�_��WW��p}�t�S7���]t��4��1�t�o��H���2���~��?��ޮ���?͵�� ��Ͼ������Pyq�Z|h�n?}^߭W���w�Ѝ���{Ȧ��_��A������݇�����37| �l���C��G�x�Ç>��ۖ��>y}ޞ\��f��X/W���q1���]��,�����߫�g^���i4��>���4W2>_58�&9�XD��a�6���F�Dl!��<Z0xok*�����h�O�^#�w
¿{�B���HJU���n���x�.#�|H:݂�9�N�0o�3v��p�n,��O1��������{ډ"u5d����a�5�´�� p1� -ҋ�M�s��H��yzZ�W������+���;/�ع�ATC}��0����@M�Gm��Tk�gb��T�Yo�T�Q(DL>��C� ��`����Ni�)��iN?������҈�)��=�+IA�z�+�B����q
��)�L,y�r�������W��'����D��y�(Rr%n ��
4ۤ#�@�
@�|�ƩjL�e�L_'��>�E�u�K���]�#8r -Z�x#DB҂/9C�TE�[��� -44�fh*iݔ������p����=C�mo�� �� @^�EꎄAf��Y>*T*a -� ǁ���qش�8�ߧ�gI.ER���6��ٝ[wuWU��1�WV5R�X; �\N"(|k'`���3�1�c[�5�oP���r��0��:����J� -`�:̓L1r�[#P�q��6��Vm�k=��:�Er6�۔Qƥ�?�d�=˭^"S��()�Q}���7t��JA�'����jjz���-��<�Gx�S'a%vl�:�;F�|Y�cz<8�ƚ��=���;�2���ΚВڳ�v��_Jq��p����ʅK�9�}�k�@O�w9H��/^��k���W��<}���n��?w��U��%�z�_��/�}��G�>��Kyrv����No>~Z�.��7��6ߍ -���n�a��k�:����ϗo�/��~�N��C [��S�:��6��<�����s�_C�?����z������l9_L/f���������'��:��{1��nO -k�U�����P;,I3d�o6�: -5[��M��?�7W�"��6|�S}M�8[b��d�W� �6�O�DIP� �t�cS|�+���%��'���*���3�B��J1z���g��m�@ᎏ�jĵ2�K�������u�i�4�L������J���K} �� ���4�M�_���F��e�$e;��{Ij��� -IPDf��Ϫ�Tc1�ʕMWF��s����ExK0�Wz�*��/�pr����|��osnxJE�<���D��nV��y���ߛs�4�1F�2�v�w/�@�m�QtM�&��7["�.UNs0��ԋ�!=L�WU��zx{�'m얅�ܵ���v -����oɄa�=K� �(���7-r^+�7d��t� -a�JWɀ�N�0i �Їn�l��V -=�� -z�7��n�8B4� -�2A��l;U���*Cx�V�T�[C�����U���Y3�9JF����Q_���oo7��:E3�{�W��+��g�byg�� -�4���*<TpI������������?=�e��?Lwo�����/�$�\���e�;��6�T
4 -�Flя4&�a�ͮ�� 4��[s��3�A�Iv��фJ�2j�o`śv�!@�<���Q� � -�Q����� ��I��@��yB��ACJ���������DE�Q�������Bu8u](_�)~r9��.�Zl�(�ί��1ο5�8��z�S^�_�tg�0{��~�y�������[���K�뚱��=y�웜=����X>A���,f�ӛ����������ͧ����f��������������O�i�r��Ħ���Ħ����ρ
���G��H�����|1��=̦�ӗ��G��_�������=a -K -��Aq�p -���!�<��l�\��()��-6K���0m�eg�'�'ϸ�3�����ϔۯ+J������@'��_r4�@���%z�"l��*O�v����T*�%���9-)K�� -8M�7A��4@<1jm����9�K��q ���ps_�E�b���F��8^4x��d���X<��0�~u�)�q�Ď��h�� -�I銁PA� �^HG���̃q���k��!�6�d張` %�M8P���4n�
�"'&������[t+Vrl�xk6Jc�-Ra(X���0E��!�:�a(�\ZC>WJEO�X�(�l̅����L�r.U��3WCƃ���)��*�L�t��
f��Y,:�s��c"rZR�4tt�y8�)$�0d/�a���3�KU/@K����Qz��) -���R��C -�8�P�t��Ufm~�@�::?hn)n�F� FVR���
�0jV͈ �Gǝت�� *Q���B��8�4�����ĥ���ڗ���K���qה@��}��h�ߦi[U�a
�^�R���:�lȶ�ȭ ��j@i���r�a����l�3}���US�]*,���IsMt�Fc��tf�CuV7�H�Tu��=���� -��Tk̺j�M|I -������2�r����g}揃�t���(��.#�B�� -;m�_������Z���ڢ4�
Q����[�r %e$(��E1炜h�b�u���WL���|�k²�{Ҷ�NIgZR�
W$�>��0(�z�풢o�6!`%6۲�"�(�j6`B�Z�
�
��<�_�,h:<5���ˍ����=):]�X)x�D��j�lB�3W/��H�D��FҚ���WW&���l�4 -���q��5XE�P�a��l��Z�-#C`+�;1C��6BCǺQ_�qGHSS�ےT -�K�t�h%��Hw�ǂkB�I>������4��yz�������()�<���6q]�(�F����zåaR��|B���"�����0B -ƅ2 ^� -s��x%���c���[�5�?N�� ��J*ë���Fj,-(�ٹ�[�] 6Z2�kڒ�۱� -���T5��B ��h�,�Q䐨�YW�AK��Y%�����"����ښ���Km���!�D��W=�^�π� ��3��U�h�k�X -��]E&5u6Iʛh���@��RD�y�;Xx�/�տ� ����2���)j1FY-�e�s[��8u�и�7� -s�]���L�6����nF�N|�$]XYA'��l�+(t����9J��ӡo;�Ĵ.<aש�ŬV.�Pץ��B�OZ!�s�R��3���pW~^y����b�y�¥���7t�S`��s��R`�F�����3E�屶����JK4I�����*`M���%2��H��v�rB��i<��� -�y<fzz4�uft�P�zzZ�,��T�4c�&�ڠ���m�bq�&b����B��u�7�^Yee �)ղ� -3�"?��
��C? -H��WmO#I����H ]��]�;�¬8��V03��t�2I/� aw������$!a���f����.����6�꜅̀S|���&Jl�B����1w<��8��&$�G3�~�>V��훳������sc����ӛ/33����b>\__�2�xo�~���d�
�s�Lrd��(����8����к�G���9^~�8::>b�B8��L�����lqq�No�w �����E{n:�'��f>�q���o��������O0^���o^������q�0{�����~��4n��Si�o&d����p&��J����\��]��'��Jd�c��?y�F�m���q��W_�`�u����%ȟ4�K�wr}�����w���x�~|1�j���k�4/_������[���Cc|V���R/�w*�ە�^�?fYo����.?�ۻŴ�5��t1��'�7,��<9���ݫ��+�Gz���H�%���&�U�4W���z�2m���g���m������
r+�"D-��$�G畫%s��l�3�bRS�&� ��`�Il}�msvQϾ�t�����)HRBn�dF���H.¤���G�L��J]Შ��I| �.̹�l�r���E�j��CS�;E]V�UT�����Q�T�:ة7���*V�[��o� ����@98� -�t�ݖ/��Ә�:E��D3��R' y#������i���(�ږ_Uہ�� -����!u`J��そ��"=���S�~uJ[��o�����L7G���˿��ř����f��IU�gH� D�) -L2+^M֮=;E��@A����k��l�K��`�F�L -��R0Mm-��D�QU�W�߂�J*���)�Ĕ�Q]� V%��rW̍��+ ��$�<�s� ��dy���,4�bH���y�D�"�z}�ऒ����h��XхNt -����Wm͞��� �~ -ZY�!�U�-1�n�mK?ز�n�l�X���g[¸����B/�kfyEЫ*��i�����d -m�d`� -�(x -��V�ؒ�gf -e��bftt �c`�%���i�(@��+��kQ#�Ņ�b�X -=�<-�?�:���rptI�a(�V��[�[`~g�����h��}�~�~r�ez�|x�i�N��G*����0ܾ����ZS�Ń�fzi�N���y��ݝ��N���v�Es��:�_����㫷f�m�A������x�['� ;���J/�s�7����Qs�����b�Κ�x��N�Ǔ�ӛ
��q�������u���#��uk$����.k����䨝�>\}��,�n2j�/ڞ���A�4��h��+-�j����E�)����ع��Ɨ���0��1>���GB?��\Č��쪊}K8�ˑ3Q8��ҝ铲�蔄�M�),�% -�e�'��: �4`�^�)�����1D0hEM�Y�1S�
�=���/a�J%i��T�=_Z�@�(��#�;!��ř�����B�T5�e�reKB��N��u�ܠ�����b2��AhH��_�h�)���sN�����P�L7S�<^� -
\?�<T�C.��.�(�ci�1�04+��9��)���t,���|���u\Qt���4q�_7��:r��`*M@��Z�^� �!8��b����g=3�8�.~�����C���8Mp;�7r�F)���aP��#�Ky��;Ե:Y��9�:�+�5*ŻFw Y�H��3�|����K��@є��P� � 3i����8sjc2]�< ��7�!�Ob�ns����b�e���&'I;�J��楞�({�.�U��ծz��g\��dԿ�X0X~E���_?�ϗ����t��Rkx�[���_^o��֩���&u[!OP�H����ILy��j���@A�Ewk�Bqc,)���E�py8�Qo��nw���@��# -w�'{��t������v��p"��ܹ4�U2�n�.���$?)Wƥ��q��+��Εk�]�߬�~W����}G)��t�#k�����0�2;�9���W��kG�8+�6��j`���V��R�*�L��O7ۛ -r�UV�����ٝN�X�^Խ<��s��in���^Ip%��x��/���PҰ_>�v{��ۓNJY�G�I��˜J���s3��BK�ͬ2N{`k�7���/�o�Ut*���d(0UG:���#��I�/9%��5S�8��63'84B����[��"��G���+D���`��� -�l�jy�������w�)�|��(�-s&���Ռk�m�s�#��baU(��,W\��ֲ�7��`��4�v�]"��7zGn�q���K)d���j�W-�vI���Pk�&Ɵ��V�BG��߀WZ��gqnR\oҍ�áD�����y��ٷ�_l�fa�O���!��T�3�p�,�N���=��)�^d51���w���s�ֶ����i��ds�{����hŪ���\������)��Q�0�<vX����e�Kă�D������EI�Ԫ��p��"�˸�:]g -;OXb�6��9�7�1%�9����U�����"�F�������ol;k($�ڲ�) �����.QC���zQ:Zfd�-�������ȶ�����gd�z�yk�NL=�8�����ƿ9�+k���O�k�{�����
���Ջ����)T��8W�
�D@nG���c��DO\��tz�f��al���I%-�l �w�ӣ���V70�(�O�U0�xƛ����W24JP�Mn(*�ȟMK�u�4�o����E8������yL�){����?�Gp�c��=�3lz� -pb�&��m���*�l�V��z�.��Z����ԝ��UW��N�v��Š�v�����q�X��Zg�����YW=�mnפG�N���4\�v|�[��� -ą -�#|���{���_�6G�'�RX(
-�b�l!�i�óҖp���!�:M�pU�n��S���q��t��28Ŭ�Y�+����d`߫Ǥw(K�k�����/�e�j�Q��_����"��.k֚�55ZP*�Ř"R��H5i��J���u�N%��5��s�̚y�y�_����+�#�H-���ܙ̲v��yBSL�}�)@�0�Ul��$۵l�t���[I���v�� 묰��J=�c��M5��D��"W�'ی-T~�%Pؘ�L�xE7��9{�Pv��.����|��%�}�a%XJAW�3�R�(w5U�}'��(�Y��FK��V��G��~�s�B�.B=$(eu��.rPA�a'��Ww��NsnR�D��_?����D�G�/Q��b�eO�3�������)����JL�KuEi��"�b"��wF:>����{�� c -������R:tI�39��%�-��{�C�hJD8x�r�5�����ŋs �=!���w��M5#�a9�JO����]ײ�6�Nߩ���z.��� ]������-ӱ��66X,*�Y�hcs$�o���Xƹ{��:y��D�u�Q}�
О�eޣ;%�n�̽D'w��wb q���hA��B� -+}5�D}ss�<8���,�&�^�h'Uŏb��:܃���߹P����t��V�:r�B�83�C�q��rV�/K�7�>QYC�����qҹ���|Nnŏ���!�����PIt��VtBc�fO�R�J��@�3��B�g�=e[���ǢM֤��s��C -?r0՝�7
�)�!���;��s�����v©u�}?�}[y�dK����M�1�5U(%�R$Ȕ䈽ڟQ���4~�����8�Z�(I��=���������z,Eab��S�V��� �\3g0��?��f���]"����n�����|"kƪe�r��ԡ�;���\�5QgO"�rf�6U'ڦ��"˼i����������k�Ʋ��܈����u����H�>W��@���8[��XP�D��x$W۸�� ��Q���Y��?�}A����ĵ0�u�N_D�����ێ��5�!���Hu#��IV����E\{F=�r�O��� -��Ұ؝�]����<�R�5�F��K�@?��h��"DĒ�ylS?uO-22��k��V�JU -� -d#�NI��~s��}����]Q�"����HV�q�����SIu#�a�'wy渱W��6��p9✷�o�.6u6�8iҭ� -�JQa���\
��#�t+u�21�/�Ԁ?x3/d�e䱓A|?}��� ���G�hr3']��n]��"�&���'�m�F�l��dm��8c�7��u���w��N_���M��>fiI�����g�ķ�{����'c�-�#-p��B�� -�>���U�*���πr��h�PBو���a�g�v]�Ʌ0���� i<�<�L��A�8��h�i���yi���S&�4����S�Q�뿡|��.���q�?�J+*2�$�z�1��(��QB�Gz�D���F����R�|�J��C��|F?�����j�Vm�������B����g�P��@�+6�A��J^� -������ U=���$0���+��!����uq�$1��(�1�p�v©�c��0����E�j�����~�(���� -B����ܦz@�������[�hgLM+��JE�~�0���j��Ęy"���wQ�lrb��*n
]i�p�^��a��[h>NЮq -�DژT��WG�F՛�-�����T^P}� >�GxI'������I��mm����O�b��-���_m��y�0����A�b�u�_�S���x����K�J�0�]GTXl�6�D��R�]����r.�VqX�y�*+hM���(�=�r@Q��0}*H�Oy���$�Օ7�z���b��+���z���bqEڡ�v��AlE�2���.ڎr��o�x��i�j�����6[Pn8ܻ��V�ig��^;wU*�6o����;J�F���`ϗ:��[Ň%��CM���(=�t�"����eiL�3Nh -#��t:V��R��� Pmm��jU�`S����|)Y&�ٝ�l�џ) -�>��ܵ��}M����Պ\���X�� -=S������c��*����؊�Z�Jun�TVK -܅G��{��]
��(;Ck���%����mʦ<m`�������Di�8zQ� �7� ��^"#z탧�_x���YE�H�2�t�vםB����ж -��# C�� -'WOj�����@D�S߃�~���T>��[\��K^}�֠����
ɥ�Q�Soۂ -!��Ĩ�#,w$�<ҁ��#ou�z/}��H�t�6��;}�5]��e�a�>ji�9�90ES�/A7���H=ֲ.(z�Ē�a���y,��N$�훏5xO�p!QKT���?7:��������-��I�+��7P����"ؚh4z�F�@�f8p���;jF"��Y��@�M*_���7�Ju�(��2w�TM�ٲ�d[D�n��i[I��
���_́����=��eA�rDhơI��d���Nk�v5��1iY� -m�%��C�m�p��Ka�h-���@��_���~̽B��`���-� -�(5z~dv�xQ~�F.T?``���<�X -�Y�U�="j05W��7Ι! ��B��zʘ� ���G)GDn�oTܭM�{ɈS�i�S
R����w,�r��n~�/j>ҚF���<��mԄ��E�}f}� -���/
���x��"�
>�r��T@_�`��"��h�@ty ���D6�n��6��%w�T��uV�A��q���X��r�4��C}�Q���kj��O=@RZV��P���B�jv��X���r�z�@o��L1--x� ������Ӡ#����ߨ���_���O�����×�������<~T�W������?�|��ۿ����O>��������?���ӿ���˓{̾��
%�?e� D+9 -?��ci���]��"Ya�)�6c�߭���(T�'#�(�ދ�a��vL�����^�Rm�x_�z�/������g�Ɋ�� -W��!Ի��3�(�DT��A�)��G�:�uN�d��b��o�hC�:tK@���:@4]Mvr?��{sU�_�oj��/u��� -�2X�sڠm �;;@d\1��3�M����+i%v�^��-#?<u�0O�k�H��MR�@�V]�B5� � {�.�-�6 �̉T�z6 pt������#*��[�T��D��a����.�l���z*�`c>4?J�߾�v�����d�5Z"c�.��{�86����k4�G$�ɮu҈�`F�
�k3%���y�K,{C�еc�!E�a�*�&P�ǯ���[�y-6�Z̵�����'�T�Fhv$�.*I���ݙ -aI'�Z��+�q[oR-������j���Fݤ9z���o��+��ؿ���u_)
ri�J����(wP(T�ɶْ3�x�$A������c�aj�Z#�6沇�p�����W��ƦNZޤ%��V}�Ԡ�vpJ^��57���u<2��e�̑+ٍ(��h���+�#��{��u��k�,��P@wx&Ss�b�@���3@��ԍ4[k������M$�3?;��RJ��@���9�49)B���P�����gI��K
�5p8}x]N\C
\w�aX@�,�[����3��9��k1�Wa3��L�]o���ۭQ�/�E�%ϫ� �AY�FFl�\���zG��mr8��Yt�rN�x�C�0��>f6� -��Zv�͍|+��͊ -�v7v�}ޤ�s�\4�L�Ã�W��TLvX� -����E����ğ���C�e�3�-�Ʃ�bw& �j�~P���Og���7��M�Vc9[�v�FFx�o��������uh!
�(B�R�@�0��~_j1U��٘�+ i� �H�J ���O� -W7SM���6W���Z��2��ٗ�^�'�`VTt;���3�8�p�if������y�Y�@}�߁T+Alp�nj&����CY�`9G�'�7��m��7�V[_c�ڋy�D���h�EhO��,����_���ߍ���qb�@`�˚*V��ZPJ�"'5 ��kהR ���|\�KnuB uJ��)]yB+��n����빢�������Cd�Ȇk��|^'6�08�'o��T���Y�Y�u��i�$�g�TOD����\���2� l��Q�j�%�Y��7,p�w�YK���Rmѕ���-����w �[���t&���[Lc�K�7\�a��-�B#f����mh�Pn����<��g#�hz��Fs�H�'(�އ��W��!�JP����0i�ݿi�J�e�x�Ӧn+`�]�Q@j�d�T����>�:�HZ�ܚ��rd�0u��¸h�8���v& C�Q�Ydͭ�XZ������o4cu`�5�o�brx�Y�
J�;� -���c`��u]H��%&D�.ɜ$$%îA+�����T�h<�T�E,7M��>� |f���[2�
�o��kAa)§����NL�|�
{է��ڦ -i����>��6���=�W�0��V����Pٰ�Q��)�lI�~�<�L4:-�EvT��A^��#��K#���!b�4�۔G��4T�6��_�ǖ��j� H�~�dO0l�$�'l.����K�9.�-Dž2�pUF��7�p�jJ�PoC��7�ؿ����k�`��}Ӿk0�jgqV��1^�����.������4��s��#� -F��G�p�o��A��.|E=��:3���n�0�n�Ln��ua��*/t�oKb6xFX֛-���-;6�D�eA�Uw���p�A���&�h��K�JTq�����:��{�*v���CS(8*E�Ӳ���Ҩ��P�A�a�cj��h�
��NoMWAK���27�TmO1�\5^�oK���tG���z��{ˠ�~���a~<�TI��-��L<�B�V�-.� �7�ud����c|S+�LzJaf����s�-_\6���h.G��X�h�Q�J��{�Gy�1>:��E��X��%tSE��sw�6L -�Sc-�9� v�ovÒ��V�]�p��"jh��%3�8(Kh���&M�Rs�"Y$���)��������:�"�= X�-�rU-�� -X�OJ})�vF��[��R�-%H7
��k�z���[��U�v�;啦t�0;I���x� -u`?�[fvAWP�5`V�g]?������uB� ���$|���C6I�yY��E��A4��N���X������D��j������:�" Y� -���ԝ�T��#BU)2 -���5)����y�u�*2�&�2He�fi��w�m���M}����%%\�;LA'V��w����v"lA���Sy�{�<��p��(�)(����`:��U�J��ť���Ԉ�q�_1���dY��m5(� �LJYAt��JQ0/�\��#Od���7��!_�GU"�>�;e��k*�o$���/�5usgEy��B�B��(���i����m�J�^�W���֍��t���-yB -#J)�����&�:gGAR��ii���`J�n�����>w_t̕�X�+EhQ�S�O����E -�#�<���EJz<!������N�A�Om�{��O�,;[����d`��`�.4�ZÜ����Z�m�ٜJ>Z�W�2_�*��(�;��o2 0vH�X���2kG�̔��4����)@�NT��C�C�p���L��Q(D�7EE��4�`�C��Te�q�̄�-0M�+��Wڥ���E��6VQ���1_�Ǿ���}���"+�ƅ�p�ٯ�a��y��u -ר�&q��.�놿x�?�9
��(�r���1r����ʏB����=�|/�i���,�
ǜf`�'��£ -�Lf�'������f/��ur/;a�-R���!)�S�N�Z����<�g�*w���.�S -�mI)�Cb -V����٭'�� ��>�l�g��v��g���o�T]�����v��o���t2�?�]��3n=.���?�W�����&��w��d�Y�7=EI��mk�!c�� X%=��Q&'@�Ux}���?����TW���Lf7a+�7߉��5 ��M:.�,o�"#�0j�R`�%{����hhSe%Na�� s�}`�@3��H�؈-R -x�&V���y�y�/��U�\���hr�U1_�ݯ�E��qv_w�E����� ��z%G��f�m�����ͪz��\T� ��'o�|��l�=ݷ��'uP%��> ��?p8W(��\V�՛��:;����z;����W����鋷_V�ˇ�F\�� ����r}^/�>�ݬW�v�S(֭��զ��b�٬?��P����Z�U��LJC��pś��R�ҫK� -d�g;@V���dKNH�^�k�e
�(%��˚_�仯�e��s�@y�n�m�_Oo�AG��zvW-���l����`��ihu�}g������A�wY���}��<Ѡ+%�|qu7������Tq([-�4�<b:�(����n�~Ӎ��9(+JP,��ћN�) -|\���#�W>4?WQT��T>A��19��C b -b����TN�؝����{�c������B��aM/�q� �oʏ��A�Ć2;�z�.�W���$�-�M"� -^��L3BhEnɲ��î\�U�DC��I�0�i�=��2\��a �)����vz��N@S��V�:P����o�҂o����$�Oe��k��nM����1z
�Fdu^�QV����M -�
(7f���M0^�����t -��p�-�����ͪz��\Tͩp�E�����~�پ{���-�����v���HR����^`��>�o��n�+Y��)�Vr�S��z��HRQ� �����K���W�`���Ʋ,4̎И�Y4�b����Ȫ�iY�Hh�b2�2#N�s�j}ss���~�����士����g������5���
[]Z7iȸ��T-�}�KC��:�x#�P)��$a��VЦd�pqɅ��.<Gq��Ri����Դ�Z��cg��?�-�P����i�`��p���υ!����45c.���Ҽs��r�~�L�R�4�.����U�����v7�Nn@��D�|P�31"��_}(9I�!����aap; -�~Oa�O1�[���k+f�����jS1�t-��bv�e��j���(�\�d7gy�,;c�o]^���K%�NCW�� Z#3N6b��L^��-���l�d�&��#S-�]t�����<����/��#����x2��"�z�Or$XFN`��T���*����N��ș���r�Sf��81�IN�?ζ��ٔb}Ӣ�ɟ���;�&�Q���h) -��~$xr���0KN%z��B�ԣ��J���=W -%�gPXQۼ@��K��������Y�����(��g���9�6��N�(͔$�b�:q�\��)`e���<]�ue���ۼL������֮Dz�O��ԭ��j5{s� �t�d�F56��r����͟�WG��,dڭ{�;�tb8
`��#fcU�!�R��sʆ�sȍ�� -z�3����{�9�\�Oޘ�݀K��F��@��o��p������ׇ�}�����^?ܾ�������[>��͛W�{~��W7�w��]}���ӷ�/o~~���U~��Nj~��������t3�$M('�F�k �r���$���իϯ�oeˣ���^�^�|u}����O�o_��������7?���p�����G�?��K~�r��'w/�z���7��9}����{_��������9;��㿨j٫�����3�M4��ۥxx�ß��oB�Y��������PT��P�E���]&�Bqx1ؤ}$�ķ�r8���S�\����`���X��.Q<�C���6U�y���Y,�5��u���ԣ��Z!a��3�p��xO��D�ݧ��륏ҥ�@OJ�ڶI���]���A�S�i���Mf\�n���8u�[�d�QVTE�"�V��^Hh��{o�"/W;K�E���=�n��CDk�\8ۓ�83��'�De�es�
���z�#GA�{�1�A�]�7�uׂ�2pv��yYM E�b1!gT3۟���,�g�q�?��"9��<|���m�@�6��$3�wۇOt��/����������o?�ޔ?�-�%�~�
Ua+��ל��$z(a�"$MVy:����CՏ^[�ok6
vVh��"H��x -�]O��܅����&�E�TL
g�(�su���[��Geq5�+�l��z�-��;�MBeS8@��EOG�������=�\��|ēUc! -�9e� -�d%�O�Y��P#QA�`�z��9��5tQh��!�/�faZr�㺠�(C��y���(�R����>�?�aȅ�:1,v��Mnonҕ��)Nv2U�����E�Y�`AÌJ�&1
��~�K�����0��^ -�Q��R�e[69R�zE8:;c[FI� EP���u��J��J �����yj����T2FE�urb�ӽ�
kJ���� -x�<�<Ֆ�` -H��W�n�H��C�����{�'O�3 flj9�z�X��8�Ȣ �����TS�%6e[f�](�X]�S����M��LHÄI���S�9�R)3C,.��HJ&�ĢRe�c"ʹ��/��U�x^��q9��w��{,R -q���|<�f�''����͠�r�=b/�����g�G���m�� �7����U0~�wI6j�
���v�K�pDR���$��J0�Q�{ғ2�2�L�T�[��2����m��h�Rn�g8���a�,s��L9Pf����p�9� C%2�� ��|p�
�Lf�b�ʼ�w�^K��L�S25�YxDŽ�P�RGX��f��+��,�q�,��KE�,���T�B���g 0�"3�ᜂp�zB�Ne�)�Jo=,)wJ�O�ҩ� �I����D�ᕧ -: -��.���۠���E�B��ȝ��h.���ѣ�\` -�����Y�/8�����uy��=���c��.ġBMBs"��)��}q����(<�et���j�����jo�5��YD�Ü.Ç�:��\��ח�\���;N�
�k�[֘��5"ƫ]�2b�:���M��I� -"ZX?�b^�ʿ�V<*�������v1[c_fX��D��叚D<}�MY(L�B -n�S�y�v��:��J1�?���۲P�v/��TK�Y���Z�SԪ��Xm�^�u����j-�5�Fև??W�=ƤT�=��Y���2��]A���v��HH�>�8��7(��L���GH�Y=��r��{C�Ţ���*!�ͺ7Jtk�fm�%���ׂ������nԘV�kRC{�l�0 -�y���UaMa�.�9ּ�y�Z�����/�� ��A�N�0C��ι˴zG<v�_A_Tw�b����?���kp�����ǘl������fF���x���a<e5CM=���%�L��O���/ �%\T���N��x�f@9ݎ��}����|^�۱�'
;��!�[$և71��x�ԡƑb��X8�>�� E��y�����!-�A1,1S���/W -Zi�'a
�A^
�/���]��)���II�Ҵ�Y�x5��ɽ�p�M��b��������'_m1��U1+���y�eP�Z$�r�ӽ���M�Z�>����qv����xX�P?(�k��M��5@^kY_H�AB� -�cv��k�x�/ \���g�l�ֽ��7��Y��g?���=_��d��%^C�o��+�1x��-}���ȯ�{����[w'���{��I�tW�)B����T� M(�՞�|��Z �\|��X���V~g �@ �W -��B�TFT2F{&���q���'J���a-a��V�4�mK$8],6�
nf����2CgW�y{g�Ȯ��I���Ʈ��Y���e�rc4�u1�.6�f�$H�d ���|� ��Xp�3�w��C��E+���\�a�+��&DToC��{�f�bo����7���-�< -�^�h�\�~�(�6��?b��*UJ|.��I��Ga� -�^�h�\�~�(�6��?z��*U�|���I��Ga� -@��b��ʉ�,8����t���8���IB��c�h���9�H'!��"��4�{��l��Z -�����;;���u�;٬�. ��&���Q��U�kl ���.5�ұ�25�mb�\�s����=�C_Ʊ��T����d�����l�L�n��(��m�
�_ג�βM���ϒ5@p���Hl�s0��o�=�@��;��Y��_����{��?]-�6�.� &3����_��Q�
��{������%�����YVw�|���C�Y)�K\��˂�{�83�xrY���}���i;Đ�%�3�ݧ��N��N���W2�U\�1�^
�CF%3 �����A�Y_�ݡf�Ņ}�VnX�^� ���<��G��� �O�f'8�M���u�2f5@����8IL�V=�Fբ����Q��#w��iw���G4'��
��f�n������U�>9%����ސ -��#���b`s�گ�u���\D���pߺ9"��n�
V�ފ`��$&m��w�5����������9�@�vc�i���K.�(�y=���e��vU��w�X��y� :��e<����uۍ��T�rq�˳�yZ�s����J��Z
�#��Z���T�+����7� -?;_.�#�ۊb�8��Bd�un�����Y���/�{�Z#��{�1V{s�S;���z��V�r����pw���h6=?I���i�d����G����}�O���˼ij4t#�EI��-�|/�r���������ӏ`p��~���s����/{���wo���_i�������=��v�����]����
Nۜ�e��|��S��>ă��/?>�~\��� 9�&���}�{�-���+(]���E�͏���4����5�)땣��9���$���8�&��FI1��PISo�q<Ӷh)�2.��G�I�$+�\���+�P��`cs�"H���lV_�GYi�,�Fy�l���?�x�f�M�Jg{s�,�%���Yu�j���l/����O��(��^^dI1�.}Vޤ\�L��
וn��o�,>���U��\s��+���i<�?ݷw8�]�o=�_l���W_��^�뇄[}��|�y�ʇüA��.y=�� -������y��V���Y<�ul�8-�
�x^����٤���i^|�������xA�,s�����Z ��:�Ɗ3�~a^q�ڇ��m>�=��L��r��ɤ�-|�ϧ廎��g�i��ߑiW����Q�U�G�]e甿����_��nQ�9��E㗣��lT��4;y�0|&�q#�J�5�4y��� N��Iz`B���q�*�6��j�Z���(���l,~���͍��9MˤZw��@�\4�{e5n�ٛደJ���y$�z�t����^ -�ua��g#W�I�S���ᔔh&�iv�����8<�P�K�b��٬v\`@���U�D�p�т�-���8 s�r���J�ɴ� -�+넏�hh���\&���qo���p=��Eov<����1�f�)�1�#�P�(L��N�2"s���D/4���#�VBťX$�@9!����ϹDi >A��s��q��� J�t@=N[Ft�{�#���j���ah�P -
<0��,xIch���m�����5R8b�*,YLt��,<mx��[
� �(-�`LFUIc�XnMM
�WCYƄ��p��^(�%�p��q��
NC[�@�0��y�Fi� HA��Bh*0O�lH&��E.�JE��^V�B��)�'�.���� 5�L1r��� -�0=��uф���s��p �JZF��� ��V@�^�l�����'�C�*�P{��Z��2�dƇ�RE���i��BDB� H��JꞬs���9kU���[�$��(�Sc�v5�^��Z -�84W}�iեS0���t�k�)b6H0P��mH�*����SV��'����]���,!�T��8f��u�U��b�ր��d���פ�݅x���]���c$0tG(������[uS���Q�CB�5�]4��-�àt�[3T';x���aï?C �I�bn!CT����Ӕ ->Ơөhۖ8�H����W��I<!Ym9���^���V]���#6@�o�h�Y�%q]r<I��ܪ.'U27�O�z3n,�o�Ǔ$*�(\.��ϮPX�jx���E<]ߴ��+A��2l�JO2��] -�jM{�G�<)���<�'�ٟ��Ľ|6K�(�R��l�|��O�Qf�Vou�{ہz�T
�2�Z}�����ps�[���;�Q���iw -��\|��$��kZm� �=l zy�>,��7����? -�Az0��<H��~��4�A��a]۰{F�*���x�T#��v��QdW����Q�6弢fD��+XM_jkU#١�.ÚVE:����%U3BZߕiZ��D˸��)
�����a �?�ȗN ��B�� ƪU�i�4M�$�Ӎ��9����nӾT1w}|w��=n��\����� -��j��ʘ�A��!��k3��)*�lPRE;f_p\��m}���/����`��P�,��X#w��
6��>�dX$��@hE.ndž۱��s���t0l�Ш�.�'.��*�w�Ua���pC;�=����=X���ǹ�pD�r�=�,�D'U���7�A��c�s��LJ��\�"��p'���,uh��p���,Ī�t���V��8����� !oiY��c2�.Bm�u�S�B���]f@���%Q�V[WoC��>�8�Un���H�4��Μ{l��d����Bq1�V�KW���f쑯U����ft��o5X���?�a�oD�}ȥ`r�AuV��Q<3o�fK��T�-˥��f3�شծL,����'��+]h#v��_�'�4�.�y�a����z1W�U&u�l���a
5�Q!�t��d3h`k��p+��#��K�9x])��� -0000000016 00000 n
-0000000173 00000 n
-0000050694 00000 n
-0000000006 00000 f
-0000213521 00000 n
-0000000007 00000 f
-0000000008 00000 f
-0000000009 00000 f
-0000000010 00000 f
-0000000011 00000 f
-0000000012 00000 f
-0000000013 00000 f
-0000000016 00000 f
-0000213778 00000 n
-0000213809 00000 n
-0000000017 00000 f
-0000000018 00000 f
-0000000019 00000 f
-0000000020 00000 f
-0000000021 00000 f
-0000000022 00000 f
-0000000023 00000 f
-0000000024 00000 f
-0000000025 00000 f
-0000000026 00000 f
-0000000027 00000 f
-0000000028 00000 f
-0000000029 00000 f
-0000000032 00000 f
-0000213591 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000213662 00000 n
-0000213693 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000054276 00000 n
-0000213894 00000 n
-0000050746 00000 n
-0000051117 00000 n
-0000051462 00000 n
-0000054576 00000 n
-0000054163 00000 n
-0000054463 00000 n
-0000052246 00000 n
-0000051527 00000 n
-0000051685 00000 n
-0000051733 00000 n
-0000054100 00000 n
-0000054347 00000 n
-0000054378 00000 n
-0000054650 00000 n
-0000055036 00000 n
-0000056027 00000 n
-0000074325 00000 n
-0000089889 00000 n
-0000099706 00000 n
-0000113793 00000 n
-0000129507 00000 n
-0000148062 00000 n
-0000162043 00000 n
-0000165960 00000 n
-0000178237 00000 n
-0000204613 00000 n
-0000213919 00000 n
-trailer
<</Size 92/Root 1 0 R/Info 91 0 R/ID[<F744BDF41FE14BC9945784F7EE756AD5><68A7B94C0DC54FC6A7C2278BAD954853>]>>
startxref
214089
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/omnibox_http.png b/chrome/app/theme/omnibox_http.png Binary files differdeleted file mode 100644 index 0a68919..0000000 --- a/chrome/app/theme/omnibox_http.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_http_dark.png b/chrome/app/theme/omnibox_http_dark.png Binary files differdeleted file mode 100644 index 16f81f74..0000000 --- a/chrome/app/theme/omnibox_http_dark.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_http_dark_transparent.png b/chrome/app/theme/omnibox_http_dark_transparent.png Binary files differdeleted file mode 100644 index 4f6fa89..0000000 --- a/chrome/app/theme/omnibox_http_dark_transparent.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_http_selected.png b/chrome/app/theme/omnibox_http_selected.png Binary files differdeleted file mode 100644 index e4a787f..0000000 --- a/chrome/app/theme/omnibox_http_selected.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_http_transparent.png b/chrome/app/theme/omnibox_http_transparent.png Binary files differdeleted file mode 100644 index e432be1..0000000 --- a/chrome/app/theme/omnibox_http_transparent.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_https_invalid.pdf b/chrome/app/theme/omnibox_https_invalid.pdf deleted file mode 100755 index b692658..0000000 --- a/chrome/app/theme/omnibox_https_invalid.pdf +++ /dev/null @@ -1,301 +0,0 @@ -%PDF-1.5
%����
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R]/Order 6 0 R/RBGroups[]>>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 27507/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdf:Description rdf:about="" - xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" - xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" - xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> - <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> - <xmpMM:DocumentID>xmp.did:FC7F1174072068119B30B52A3A51FD83</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:c4d48754-70e1-7645-a05b-f4ad6eeac650</xmpMM:InstanceID> - <xmpMM:OriginalDocumentID>uuid:da0f4639-1337-a541-ba17-6b79b2296d29</xmpMM:OriginalDocumentID> - <xmpMM:DerivedFrom rdf:parseType="Resource"> - <stRef:instanceID>uuid:89562585-2a75-c344-9b5a-3e605d511d3e</stRef:instanceID> - <stRef:documentID>uuid:da0f4639-1337-a541-ba17-6b79b2296d29</stRef:documentID> - <stRef:originalDocumentID>uuid:da0f4639-1337-a541-ba17-6b79b2296d29</stRef:originalDocumentID> - <stRef:renditionClass>proof:pdf</stRef:renditionClass> - </xmpMM:DerivedFrom> - <xmpMM:History> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:FC7F1174072068119B30B52A3A51FD83</stEvt:instanceID> - <stEvt:when>2009-11-12T15:15:47-08:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - </rdf:Seq> - </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmp="http://ns.adobe.com/xap/1.0/" - xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> - <xmp:CreateDate>2009-11-12T15:15:49-08:00</xmp:CreateDate> - <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool> - <xmp:ModifyDate>2009-11-12T15:15:49-08:00</xmp:ModifyDate> - <xmp:MetadataDate>2009-11-12T15:15:49-08:00</xmp:MetadataDate> - <xmp:Thumbnails> - <rdf:Alt> - <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>236</xmpGImg:width> - <xmpGImg:height>256</xmpGImg:height> - <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADsAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FUFq+t6Ro1k17qt5FZWqdZZmCivgK9T7DfIzmIiyW/T6bJmlw44mUvJ4/5p/wCcmdKt2aDy
1p7XzjYXl1WKL5rGP3jD58cwsmt/mj5vY6D2LyT3zS4fKO5+fL73mOtfnT+ZWrMwbVmsYm2ENkog
Ar4Ov73/AIfMOeqker1ml9ltHi/g4j/S3+zl9jE7zVtYviTfahc3Rb7XrSvJX58ifDKDO3c4tDix
/TGMfcAEF6Yx4y3+EEXaanq1lT6nfXFtx+z6MrpTeu3EjETaMmixz+qIPvALKtH/ADk/MvSmX09Z
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</xmpGImg:image> - </rdf:li> - </rdf:Alt> - </xmp:Thumbnails> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> - <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <dc:format>application/pdf</dc:format> - <dc:title> - <rdf:Alt> - <rdf:li xml:lang="x-default">o2_ssl_invalid</rdf:li> - </rdf:Alt> - </dc:title> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" - xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" - xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> - <xmpTPg:NPages>1</xmpTPg:NPages> - <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> - <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> - <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>19.000000</stDim:w> - <stDim:h>19.000000</stDim:h> - <stDim:unit>Points</stDim:unit> - </xmpTPg:MaxPageSize> - <xmpTPg:PlateNames> - <rdf:Seq> - <rdf:li>Cyan</rdf:li> - <rdf:li>Magenta</rdf:li> - <rdf:li>Yellow</rdf:li> - <rdf:li>Black</rdf:li> - </rdf:Seq> - </xmpTPg:PlateNames> - <xmpTPg:SwatchGroups> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Default Swatch Group</xmpG:groupName> - <xmpG:groupType>0</xmpG:groupType> - </rdf:li> - </rdf:Seq> - </xmpTPg:SwatchGroups> - </rdf:Description> - </rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[1.62158 0.912109 17.3784 18.188]/BleedBox[0.0 0.0 19.0 19.0]/Contents 8 0 R/LastModified(D:20091112151549-08'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 9 0 R>>/Resources<</ExtGState<</GS0 10 0 R>>/Properties<</MC0 5 0 R>>>>/Thumb 11 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
8 0 obj
<</Filter/FlateDecode/Length 3006>>stream
-H��WK�$���)zm��03I&����0/|�K� ���#"Y�=���uE�E2��/�z�����|��~���m�������?��ڣe���������_���?����������3�������n�a�x�C�s�9 F -��X����B�* ,�������J�X��O\U�I��siY�%��#���c��*�|���)HQ�*S��E�J0�r $�5��1S��;y���d���k&�i��0#*�,���q:�b���ia�<�nZg.qK"����\f�5Jw��Py-CT��_x=f
�pI��ǭ�%c:(�O'7�ʻU��W;Ģ��'%�#A���`��t}3Œ�'?�RLl�^켹'�tV즅��V�|�y���:N���$������'ie�N�7�RG��Q;Pl�����ob�x��7�"͛-�F��~1�Q�ޣ�"h,�EW*8��"c}����Ϊ�����I -Y*��TF�p�e�?wep�{Mlr�����/��j�UJ -�TN��f�V���B2kgx����>J���q��~��"��K�wfީn`���F̓e��qv�*�N�j����e7u C���:95Ttt�d��K��<s����ܼq��^9J]U�MYW���\�%$���r]�������X�b�CV�-�+�Rȑ
��֥I�a�96y�p� ��E�!�B��i�Ȫ�(ݳ�¿�$�ЀuV�*���&%�q�|��X����4�'���["R� -��U2J!ϐ��u_�ُҳ�R~�Ф��\%�E���F.�btW5p`i�d˺Əj��8:|��A�!5����������J����U�Z�jf�ea�D3y�[5;�����`�R[ɤ+�,��I�=%�� -����\�p�j�b�n�bW)r���cԼ^!V���-������H����k���ʽ�hΛ��u�- -�qy&��x���"�G�gi���aa�.N�;u����<d$]<���N�pN�2��xAj��w�L��ITj)#�н��U�����վ�Uk���U��*��·T9î�Z��"��S��孞��k����.i�$��1س�դ� �2ʿXj��6�/Nb�헝��^P;�E��ۂzAy�^�|����2mc%HR�YGp�I�*��5��}���u��|�N��ؠ���s����C>⥀�4�$@1ƍ����^�hG��A�Jm�=��qU#�6?��Q)P$K�T���������1���P��:�y��2Hf�qya̓��y�[Լ�me�ƒۇ�JL���\�t��BqF�<��b�����v~?S 0-l����9Zy��M����G���]_
���q=��U���)��m�u���%�E;Z�ħҬ�8Ma.��|�:��G�˦w{�p%��t3��� &3R���"�]��rA���]��IY����F���VQ��e���5�Gu�$9����SX�95���wF�
�s"*���zQ�ܨڡ'eC��� -?MOhc��G}�����0����^�l�=���luG�X K���T�fvH�}=,HB}��s�k���Ƀ�u�~��ݱQ_"Ou}���=q���:�^j2@M��ױuMXRژ�-��Q�H -kc&�4sNl -8;Z%]@DZ&q!!<3*>loo~>
endstream
endobj
12 0 obj
[/Indexed/DeviceRGB 255 13 0 R]
endobj
13 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 -VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< -PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
5 0 obj
<</Intent 14 0 R/Name(Layer 1)/Type/OCG/Usage 15 0 R>>
endobj
14 0 obj
[/View/Design]
endobj
15 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
10 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
9 0 obj
<</LastModified(D:20091112151549-08'00')/Private 16 0 R>>
endobj
16 0 obj
<</AIMetaData 17 0 R/AIPDFPrivateData1 18 0 R/AIPDFPrivateData2 19 0 R/AIPDFPrivateData3 20 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 3/RoundtripVersion 14>>
endobj
17 0 obj
<</Length 966>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (Vector Smart Object7.ai)
%%CreationDate: 11/12/09 3:15 PM
%%Canvassize: 16383
%%BoundingBox: 49 392 65 410
%%HiResBoundingBox: 49.1216 392.4121 64.8784 409.5879
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%CMYKProcessColor: 1 1 1 1 ([Registration])
%AI3_Cropmarks: 47.5 391.5 66.5 410.5
%AI3_TemplateBox: 306.5 395.5 306.5 395.5
%AI3_TileBox: -231 45 345 779
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 2
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: 22 428 16 1283 746 90 0 0 208 140 0 0 0 1 1 0 1 1 0
%AI5_OpenViewLayers: 7
%%PageOrigin:0 0
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
18 0 obj
<</Length 17578>>stream
-%%BoundingBox: 49 392 65 410
%%HiResBoundingBox: 49.1216 392.4121 64.8784 409.5879
%AI7_Thumbnail: 120 128 8
%%BeginData: 17430 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD33FFC9C3BCBB93B58CB08CB08CB593C2C2CACAFD63FFCAA0BC8C
%8D8CB08CB08CB08CFC8CB08C8D8CB08C8D93C2C9FD5EFFC3BC8CB08CB08C
%B08CB0FCB0FCB0FCB0FCB0FCB08CB08CB08CB093C3CAFD59FFC9938D8CB0
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB08C8D99CAFD55
%FFCABC8CB08CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FC
%B0FCB08CB08CC2CAFD52FF9A8D8CB08CFC8CB08CFC8CB08CFC8CB08CFC8C
%B08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8DA0FD4FFFCF93B08CB0FCB0
%FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB0
%8CB08CB093CFFD4CFFC98C8D8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8D8CC3FD4AFFC98CB0
%8CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB0FCB0FCB0FCB08CB08CC2FD48FFC38CB08CFC8CB08CFC8CB08CFC
%8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB0
%8CFC8CB08CC2FD46FFC98CB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0
%FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB08CC3
%FD44FFCA8CB08CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB08CC3FD43FF93
%B0FCB0FCB0FCB08CB08CB08CB08CB08CB0FCB0FCB0FCB0FCB0FCB0FCB0FC
%B0FCB0FCB08CB08CB08CB08CB08CB0FCB0FCB0FCB08CCFFD41FF998D8CB0
%8CFC8CB08C8D93BC9ABC99BC938D8CB08CFC8CB08CFC8CB08CFC8CB08CFC
%8CB08C8D8CB599BC99C2998D8CB08CFC8CB08C8D92FD40FFA0B08CB08CB0
%FCB08CBBC9FD07FFCAC393B08CB0FCB0FCB08CB0FCB08CB08CB08CBCC3CF
%FD06FFCFC28CB0FCB08CB08CB09AFD3EFFCA8D8CFC8CFC8CB08CB5CAFD0B
%FF9A8D8CFC8CFC8CFC8CFC8CFC8C8D93C9FD0BFFC98CB08CFC8CFC8C8DA1
%FD3DFFBC8CB0FCB0FCB08CB5CAFD0DFFC2B08CB0FCB0FCB0FCB08CB0BCFD
%0EFFC38CB0FCB0FCB08CB5FD3CFFCA8CB08CB08CFC8CB09AFD0FFF9A8D8C
%B08CFC8CB08C8D99FD0FFFCAB58CFC8CB08CFC8CC3FD3BFF99B0FCB08CB0
%FCB08CCAFD10FF93B08CB0FCB08CB093FD11FF9AB0FCB08CB0FCB093FD3A
%FFCA8C8CFC8CFC8CFC8C93CAFD10FFC28CFC8CFC8CFC8CC3FD11FFCA8CB0
%8CFC8CFC8C8DA0FD39FFC38CB0FCB0FCB0FCB099FD11FFCAB58CB0FCB08C
%B5CAFD12FFBB8CB0FCB0FCB08CBCFD39FF938D8CB08CFC8CB08CC2FD12FF
%938D8CB08C8D93FD13FF99B08CFC8CB08CB08CCFFD37FFCAB58CB08CB0FC
%B08CB0C2FD12FFC28CB0FCB08CBCFD13FFC38CB0FCB08CB0FCB0A0FD37FF
%C98CB08CFC8CFC8CFC8CC3FD12FF9A8D8CFC8C8D9AFD13FFA18D8CFC8CFC
%8CFC8CBCFD37FFC2B0FCB0FCB0FCB08CB0C3FD12FFC98CB0FCB08CC2FD13
%FFCA8CB0FCB0FCB0FCB093FD37FFC28CB08CFC8CB08CFC8CC3FD12FFA1B0
%8CFC8CB099FD13FFCA8D8CB08CFC8CB08CB5CAFD36FF9AB08CB0FCB08CB0
%FCB0A0FD12FFC98CB0FCB08CBCFD14FF93B08CB0FCB0FCB08DFD37FFBC8C
%FC8CFC8CFC8CB08CC2FD12FF998D8CFC8C8C8CFD13FFA8B58CFC8CFC8CFC
%8CB5CAFD36FFBCB0FCB0FCB0FCB0FCB099FD11FFCAB58CB0FCB08CB0C9FD
%12FFCF8CB0FCB0FCB0FCB08DFD37FFC28CFC8CB08CFC8CB08CB5CAFD10FF
%BC8CFC8CB08CFC8CBBFD12FFA0B08CFC8CB08CFC8CB5CFFD36FFA0B0FCB0
%8CB0FCB0FCB08CCAFD0FFFC38CB0FCB08CB0FCB08CC3FD11FFBB8CB0FCB0
%8CB0FCB093FD37FFC98CB08CFC8CFC8CFC8C8D9AFD0EFFC38C8C8CFC8CFC
%8CFC8C8C8CC9FD0FFFC98CFC8CFC8CFC8CFC8CBCFD37FFCAB58CB0FCB0FC
%B0FCB08CB5CAFD0CFFC38CB0FCB0FCB0FCB0FCB0FCB08CC9FD0EFF93B0FC
%B0FCB0FCB0FCB0C2FD38FF93B08CFC8CB08CFC8CB08CBCFD0AFFCABB8CB0
%8CFC8CB08CFC8CB08CFC8CB08CBCFD0CFF93B08CFC8CB08CFC8CB08CCAFD
%38FFC28CB0FCB08CB0FCB08CB08CC2FD08FFA0B58CB08CB0FCB08CB0FCB0
%8CB0FCB08CB08CB5C3FD09FF93B08CB0FCB08CB0FCB08CB5FD39FFA18D8C
%FC8CFC8CFC8CFC8CB08CBCA8FFFFFFA8C3928D8CB08CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CB08C8D93C3CAFFFFFFCAC38C8D8CFC8CFC8CFC8CFC8C8D99
%FD3AFF93B0FCB0FCB0FCB0FCB0FCB08CB593BC93B58CB08CB0FCB0FCB0FC
%B0FCB0FCB0FCB0FCB0FCB0FCB08CB08CB593BC99B58CB0FCB0FCB0FCB0FC
%B0FCB08CC9FD3AFFC28CB08CFC8CB08CFC8CB08CFC8CB08C8D8CB08CFC8C
%B08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8D8CB08CFC8CB08C
%FC8CB08CFC8CB08C93CAFD3AFFCAB08CB0FCB08CB0FCB08CB0FCB08CB0FC
%B0FCB0FCB08CB0FCB08CB0FCB08CB08CB0FCB0FCB08CB0FCB0FCB0FCB08C
%B0FCB08CB0FCB08CB0FCB08CB0BCFD3CFF938D8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CB08CBB938D8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CCAFD3CFFC98CB0FCB0FCB0FCB0FC
%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CB08DCAFFFFC9B58CB0FCB0FCB0FC
%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CBCFD3EFFB58CB08CFC8CB08C
%FC8CB08CFC8CB08CFC8CB08CFC8CB08C8D8CCAFD04FFC98D8CB08CFC8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8DA1FD3EFFC3B08CB0FCB08CB0
%FCB08CB0FCB08CB0FCB08CB0FCB08CB08CCAFD06FFC3B08CB0FCB08CB0FC
%B08CB0FCB08CB0FCB08CB0FCB08CB093FD40FF928C8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CC2FD08FF998D8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CC3FD40FFC38CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB08CB5FD0AFF8CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08C
%B5FD42FFB58CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8DA1FD0AFFC2
%8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8D9AFD42FFC3B08CB0FCB0
%8CB0FCB08CB0FCB08CB0FCB08CB093FD0BFFCAB58CB0FCB08CB0FCB08CB0
%FCB08CB0FCB08CB093FD44FF8C8C8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CC3FD0CFF998D8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CC2FD44FFC38C
%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CB5CAFD0CFFC98CB0FCB0FCB0FCB0
%FCB0FCB0FCB0FCB08CB5CAFD44FFCF938CB08CFC8CB08CFC8CB08CFC8CB0
%8CB08CFD0DFFA18D8CB08CFC8CB08CFC8CB08CFC8CB08C8D99FD46FFC2B0
%8CB0FCB08CB0FCB08CB0FCB08CB08CB0CAFD0CFFC38CB0FCB0FCB08CB0FC
%B08CB0FCB0FCB08CCAFD47FF8C8C8CFC8CFC8CFC8CFC8CFC8CFC8CB08CC2
%FD0CFF93B08CFC8CFC8CFC8CFC8CFC8CFC8CFC8CBCFD32FFCAC2C3C3FD12
%FFC38CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08DFD0BFFC2B08CB0FCB0FCB0
%FCB0FCB0FCB0FCB08CB0C3FD31FFC38CB08C8D8CBCA1FD0FFFCA8D8CB08C
%FC8CB08CFC8CB08CFC8CB08C8D93FD09FFA08D8CB08CFC8CB08CFC8CB08C
%FC8CB08C8D92FD13FFA1C2FD1CFFCF8CB08CB0FCB08CB093C9FD0EFF9AB0
%8CB0FCB08CB0FCB08CB0FCB08CB08CB093CAFD05FFCA93B08CB0FCB0FCB0
%8CB0FCB08CB0FCB0FCB08CC2FD10FFCAC393B08CBBCAFD1AFF9A8D8CFC8C
%FC8CFC8C8D8CC3FD0DFFC98CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8D8C
%B599BC93B58C8D8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8DA1FD0FFF9A
%8D8CB08CFC8CB0A1FD19FFBB8CB0FCB0FCB0FCB0FCB093FD0EFFB58CB0FC
%B0FCB0FCB0FCB0FCB0FCB0FCB08CB08CB08CB08CB0FCB0FCB0FCB0FCB0FC
%B0FCB0FCB0FCB0FCB093FD0EFFC98DB08CB0FCB0FCB08CB0C2FD17FFCA8C
%B08CFC8CB08CFC8CB08C8D9AFD0DFF9A8D8CB08CFC8CB08CFC8CB08CFC8C
%B08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CC2FD
%0DFFBC8CB08CFC8CB08CFC8CB08C8D9AFD16FFC3B08CB0FCB08CB0FCB08C
%B08CB5CAFD0CFFCA8CB0FCB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB0
%8CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB0C3FD0CFFBC8CB08CB0FC
%B08CB0FCB0FCB08CB09AFD15FFC28CFC8CFC8CFC8CFC8CFC8CB08CC2FD0C
%FFA8B58CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CB08CCAFD0BFFC38CB08CFC8CFC8CFC8CFC8C
%FC8CFC8C8D9AFD14FF93B0FCB0FCB0FCB0FCB0FCB0FCB08CCFFD0CFF93B0
%FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB0FCB0FCB08CB5CFFD0BFF8CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%8CB0CAFD12FFA1B08CFC8CB08CFC8CB08CFC8CB08C8D93FD0CFFC28CFC8C
%B08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C
%FC8CB08CFC8CB093FD0BFF998D8CB08CFC8CB08CFC8CB08CFC8CB08CFC8C
%C2FD12FFBB8CB0FCB08CB0FCB08CB0FCB08CB08CB0C3FD0BFFA0B0FCB08C
%B0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FC
%B08CB0FCB08CBCFD0AFFC3B08CB08CB0FCB08CB0FCB08CB0FCB08CB0FCB0
%93FD11FFC28CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8DA8FD0AFFC38CB0
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8C8D99FD09FFCA8D8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8C93FD0FFFCFC28CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CBCFD
%0AFFC3B08CB08CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB0FCB0FCB0FCB0FCB08CC2FD09FFBB8CB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB0FCB0FCB093FD0CFFA1C39A938CB08CFC8CB08CFC8CB08CFC8CB0
%8CFC8CB08CFC8CBCFD0AFF99B58C8D8CB08CB08CB08CFC8CB08CFC8CB08C
%FC8CB08CFC8CB08CFC8CB08CFC8CB08C8D8CB08CBCA8FD07FFCFBB8CFC8C
%B08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C93CAFD0AFFBCB08CB08CB08C
%B0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CC2FD0AFFCFCAC2C299BB
%93B08CB08CB08CB08CB08CB08CB08CB08CB08CB08CB08CB08CB08CBB99C2
%C3FD0AFFBB8CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB0FCB093FD0A
%FF998D8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8C8C
%C2FD0EFFCAFFCACAA1C9A0C39AC29AC299BC99BC99C29AC29AC3A0C3A1CA
%CAFD0DFFA8B58CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB5
%FD09FFC3B08CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FC
%B0FCB08CC2FD34FFC9B58CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB093FD08FFCA8D8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC
%8CB08CFC8CB08CFC8CB08CBBCAFD31FFA08D8CB08CFC8CB08CFC8CB08CFC
%8CB08CFC8CB08CFC8CB08CFC8CB0C9FD07FFC38CB0FCB0FCB08CB0FCB08C
%B0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB08CB5C9FD2FFF99B08C
%B0FCB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB5C2FD06
%FF92B08CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CB08C8C9AFD2CFFCA928D8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8C8D8CC2A8FFFFFFB08CB0FCB0FCB0FCB0FC
%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CB099FD2A
%FFC38CB08CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB0FCB08CB5C3FFFF8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C
%FC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CC3FD26FFC9B58CB08CFC
%8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB0
%8CFC8CB09AFFB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FC
%B08CB0FCB08CB0FCB08CB0FCB08CB08CBCCAFD23FF9AB08CB08CB0FCB08C
%B0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FC
%B08CB0CA938D8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8CB08C8D9AFD20FFC38C8D8CB08CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CC3C98CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CB093CAFD1CFFCABC8CB08CB0FC
%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FC
%B0FCB0FCB0FCB08CB0C2FFB58CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CBCA8FD19FF
%9A8D8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC
%8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CC9FFCAB08CB0FCB08CB0FCB08C
%B0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FC
%B08CB08CB09AFD16FFC38CB08CB0FCB0FCB08CB0FCB08CB0FCB08CB0FCB0
%8CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB08CB0CAFF
%FFA18D8CB08CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CB08C8D8CC3FD12FFA1BB8C8C8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8C8D93FD04FFC9B58CB0FCB0FCB08CB08CB08CB0
%8CB08CB08CB08CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%8CB08CB5C3FD0EFFCA99B08CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FC
%B0FCB0FCB0FCB08CB08CB08CB08CB08CB0FCB0FCB0FCB0FCB0FCB0FCB08C
%C9FD05FFCABC8C8D8CB08C8D8CB58CB593BB99BB93B5938D8CB08C8D8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8D93C9FD0AFFA8BC8C
%8D8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8D8CB08C8D8C
%B58C8D8CB58C8D8CB08C8D8CB08CFC8CB08CFC8CBBFD08FFC99AC2A0C9C9
%CFCAFD0AFFCFC9C9C2BC93B58CB08CB0FCB08CB0FCB08CB0FCB08CB0FCB0
%FCB08CB08CBCC9FD07FFBCB08CB0FCB0FCB0FCB08CB0FCB08CB0FCB08CB0
%8CB08CB08CB093BCBCC3C3CACAFFCFFFFFFFCFFFCACAC3C3BCBC93B58CB0
%8CB08CB0C3FD20FFA8C99AB58C8D8C8C8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8C8D93C3A8FFCAC28C8D8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8C
%8C8D8CBB9AC9CAFD15FFA8CAA1C39AC2A0FD26FFC3BC8CB08CB08CB0FCB0
%FCB0FCB0FCB0FCB0FCB08CB08CB5C2BB8CB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB08CB08CB093C2C3FD4AFFA0BC8C8D8CB08CFC8CB08CFC8CB08CFC8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8D8CC2C9FD50FFC2BB
%8CB08CB08CB0FCB08CB0FCB0FCB08CB08CB0FCB08CB0FCB08CB0FCB08CB0
%8CB08CBCC3FD55FFC999B08C8C8CFC8CFC8CFC8CFC8CB08CFC8CFC8CFC8C
%FC8CFC8CFC8C8C8CB59ACAFD59FFCAC393B08CB0FCB0FCB08CB0FCB0FCB0
%FCB0FCB0FCB0FCB08CB093CAFD5FFFA0BB8C8D8CB08CFC8CB08CFC8CB08C
%FC8CB08C8D8CB08CBBA1FD60FFCABB8CB08CB0FCB08CB0FCB08CB0FCB08C
%B08CB08CB08CB08CBCC3FD5CFFA0938CB08CFC8CFC8CFC8CFC8CFC8CB08C
%8C8CFC8CFC8CFC8CFC8C8D8CBCA0CFFD56FFCA93B08CB0FCB0FCB0FCB0FC
%B0FCB08CB08CB0FCB0FCB0FCB0FCB0FCB0FCB08CB08DBCC2CFFD2FFFA8C9
%FD20FFCABC8CB08CFC8CB08CFC8CB08CFC8CB08C8D8CB0FCFC8CB08CFC8C
%B08CFC8CB08CFC8CB08C8D8CBB9AC9CAFD2AFFC3B58CBBC3FD1CFFCF9AB0
%8CB08CB0FCB08CB0FCB08CB0FCB08CB58CB08CB0FCB08CB0FCB08CB0FCB0
%8CB0FCB0FCB0FCB08CB08CB593C3C3FD26FF998D8CFC8C8D93C3FD18FFA8
%C28C8D8CB08CFC8CFC8CFC8CFC8CFC8C8D8CC2CACA9A938CB08CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CB08C8C8C8D8C9399C2A1CAA8FD07FFCA
%FFCAC9A0C3A0CACAFD0EFF99B08CB0FCB08CB08CBCC3FD14FFCA99B58CB0
%8CB0FCB0FCB0FCB0FCB0FCB08CB099CFFD04FFCFC993B08CB0FCB0FCB0FC
%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CB08CB08CB593B593BC99BC93
%BB8DB08CB08CB08CB5C2FD0CFFA08D8CB08CFC8CB08CFC8CB093C3CFFD0E
%FFCFA0BB8C8D8CB08CFC8CB08CFC8CB08CFC8CB08C93A0FD09FFA1BB8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8D
%8CB08C8D8CB08CFC8CB08CFC8CB093C9FD09FFCAB58CB08CB0FCB08CB0FC
%B08CB08CB59ACAFD09FFCFA1BC8DB08CB0FCB0FCB0FCB08CB0FCB0FCB0FC
%B08CBCCAFD0CFFCA99B08CB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0
%FCB08CB0FCB08CB0FCB08CB0FCB0FCB0FCB0FCB0FCB08CB08CC3FD08FFC3
%8CB08CFC8CFC8CFC8CFC8CFC8CB08C8D8CB599C29AC39AC299B58C8D8CB0
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8D8CC9FD10FFA7BC8C8D8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CB08CBCCAFD06FF9AB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08C
%B08CB08CB08CB08CB08CB08CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CB0BC
%FD14FFCA99B08CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CC3FD06FFC28CB08CFC8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC
%8CB08CFC8CB08C93A1FD17FFA1BB8C8D8CB08CFC8CB08CFC8CB08CFC8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8D99FD06FF
%C3B08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB0FCB0FCB08CB0FCB0
%8CB0FCB08CB0FCB08CB0FCB08CBCCFFD1AFFC38DB08CB0FCB08CB0FCB08C
%B0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB08C
%C2FD06FFCA8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8C8D8CC3FD1EFF998D8CB08CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8D
%9AFD07FFBC8CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FC
%B0FCB0FCB0FCB0FCB0FCB08CB099FD21FFC3B58CB0FCB0FCB0FCB0FCB0FC
%B0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CC3FD07FF
%C38D8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC
%8CB08CFC8CB08C8D9AFD23FFCABB8CB08CB08CFC8CB08CFC8CB08CFC8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB08CFC8CB0A1FD08FF99B08CB0FCB0
%8CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB5
%C9FD26FFC28CB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FC
%B08CB0FCB08CB0FCB08CCFFD08FFCA8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB08CBBA8FD28FFC38C8D8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB08CBBFD0A
%FFBC8CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%8CB08CC2FD2BFFC98CB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0
%FCB0FCB0FCB08CB08CB5CAFD0AFFCA8D8CB08CFC8CB08CFC8CB08CFC8CB0
%8CFC8CB08CFC8CB08CFC8CB08C8D8CC9FD2DFFC38CB08CFC8CB08CFC8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8D8CC2CAFD0CFFBCB08CB0FCB0
%8CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB093CAFD2FFFC38CB0
%FCB08CB0FCB08CB0FCB08CB0FCB08CB0FCB0FCB08CB08CB5C2FD0FFFCA8C
%8C8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8D93FD32FFBB
%8CB08CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8D93C3FD12FFC28CB0
%FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CB099FD33FFCAB58CB0
%FCB0FCB0FCB0FCB0FCB0FCB0FCB0FCB08CB0C2FD14FFA08D8CB08CFC8CB0
%8CFC8CB08CFC8CB08CFC8CB08CFC8CB09AFD35FF9AB08CFC8CB08CFC8CB0
%8CFC8CB08CFC8CB08C8DA0FD15FFC98CB0FCB0FCB08CB0FCB08CB0FCB08C
%B0FCB0FCB08CB09AFD37FF8CB0FCB08CB0FCB08CB0FCB08CB0FCB08CB0C3
%FD16FFA18D8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8D9AFD38FFBC
%8CB08CFC8CFC8CFC8CFC8CFC8CFC8C8D9AFD17FFCA8CB0FCB0FCB0FCB0FC
%B0FCB0FCB0FCB0FCB08CB0C2FD39FFC3B0FCB0FCB0FCB0FCB0FCB0FCB0FC
%B099FD18FFA8B58CFC8CB08CFC8CB08CFC8CB08CFC8CB08C8D9AFD3BFF8C
%B08CFC8CB08CFC8CB08CFC8CB08CFD1AFF93B0FCB08CB0FCB08CB0FCB08C
%B0FCB08CB0C2FD3CFFBB8CB0FCB08CB0FCB08CB0FCB08CC9FD1AFFBC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8C8D99FD3DFF998D8CFC8CFC8CFC8CFC8CB0
%8CB5FD1BFFC3B0FCB0FCB0FCB0FCB0FCB0FCB08CB09AFD3EFFC38CB0FCB0
%FCB0FCB0FCB08CB0C9FD1BFFCA8CB08CFC8CB08CFC8CB08CFC8CB099FD3F
%FFA18D8CB08CFC8CB08CFC8CB099FD1DFFBC8CB0FCB08CB0FCB0FCB08CB0
%9AFD40FFCA8CB0FCB0FCB08CB0FCB08CCAFD1DFFA78D8CFC8CFC8CFC8CFC
%8C8D9AFD41FFA8B58CFC8CFC8CFC8CFC8CBBFD1FFFC2B08CB0FCB0FCB08C
%B5C3FD43FF99B0FCB0FCB0FCB08CB0C9FD20FF9AB08C8D8CB08CBBA8FD44
%FFCA8C8D8CB08CFC8CB099FD22FFC9C299BC9ACAFD47FFC38CB08CB08CB0
%93FD71FFCF9A938C8D99CFFD13FFFF
%%EndData
endstream
endobj
19 0 obj
<</Filter[/FlateDecode]/Length 15979>>stream
-H��W�n�:��;p���[���/�Iz|���N�=( -��h�')��S��wH]��l��Er�U��8��f8��9��1#G���JI����
���FT"�^q -�N����Q���T3���d4 ���j�'[L3�� րtݪ�U��u�] -��T.&��)"4�+S�P -��E��߭��Q�O!A#I��Y����t�bP��"��|.J�\K�,ݤ��S��mSM`�F�[
AX��D ��0���2�]���HO��0����_,�ݦGs,����� -48�����0�����m&����n{��D}�%���f�r��J
�u�1��Oz�R -x�4�W� -��_���� -�6���"����&KkS/�,r�lL�1[�������:��zz͈*U?pq�� -a��Kh6($�C{&USȻ���7T��[�h��|��>V��LO����%�j>WN -@�i\2�O�N���2��"f�cd�B�%��\��` x -�sZ�N������x�4{�c��w��0�%|{�������&���ل���l���W����UعO5�5�o
孡�5����J뭡�5�����P~��|)���R�(F,�(6�w��q:r���'�v�,���3�{>�6_c;?�F���ub4��ͯ�yZ�%6�~1���J���_��E2[���x抴=���ʗ��$��:� f��#���g����? �'X������!�fT(K7�ZU��.��3X�LH�v�b[dS'۴������-���5ZHG[�T �5�P�i�<��
�� f�D-�+�S����hK9����^�y�=p��}�� �����*�D���`ꌫK��5x@��7���wf��Nl�{/##I�pf^���T�eT����&��τ�8B�/b� h$�,�E��C�5���*�){b���(�I���La�� -����q -`;�� h�1Q��f�|39�aff�7t]t�NDpɉ#tƠ '�$QD�§�=Xs�4� ���H%�`2�8�f -��} �[NE"���7������b-�+M$�F��
;(��hC4�qI��!�ى7���1ӱ�3�e� -� ��RD=Ip�X�G;����V��[�F��:�k����i����7�N�W4���6k�Z�p���+�&9%�&^_Ȁ�B�S�E�@bEd�hD90FBQM��W��<��RL����
��x��'�4�+���D�b�A�htL��YMX%"��y�����1�8���ꪮsN��%��������G��~�SO@vLHp�.�Bf]��PT4|�EC!:��$�/�s�����!-��w���5,����_g+��jQD��wl�|��zmc����,ю��(�;��>�pa�:\��Z�sb#&�)OL�!F�t�@���@}��j���Y�3�hb+�3��R�SߦDJ�3-�}�-��CR6
4i&>;��HI�I -������=@_�M����\*[ N�}@�$~af�cƚ��B�H"�ߋ�e��h���*���!zL�Z��//s@��y_���mS!Y�{�3����N����1���� afƉJ�Eٲ��y��� -"^���Ϯ˫�ӫ�sA��Nm̼Rk����2�����c?Jٮ
GC����M�y�]\}��������,*n(���'亜������b��\F���W�Z�= -5��W�Z�qQ�� ��%�j{��L�S"�ӯ�6l)���]�Ļ˶{���Y��_�"t���rl�(w�)f�^�&e��,��TbR�e�e?��11�.�JA��D�_�S�_$�3wS�/�H��,��d>g��4��p����D�Iy+d����bDЁ*�y�����S�����������G�ç�RT8I�B��?�($IK��Y�w�"�f�J����%�_~��K����s:Q�ԓ�zT���KE������"a���f� �Z$�L���0d��˝p��Wj��Y�����>������O]c�-=ޗn�� -��{w*w�~�u�e>^�h��Z��v%�o��5N���t���b�j��x�DaųD%\�C��'�x��-� -��1[���]�4H��'��n�r��u���o,�e7.�:ť[������8Z2�ž���w���\�������_�����ur�@�G��ژ~x�K��9 L��]��H�/Ǣ��٢��V���ޒ|����z����!�jj�*M�J�PS�/y��A����`�v��W�.o���,@�oL" -�)��C�Hu�d��ז�Q|!�Й��!�ã���'���d�Х�-�Ђ��Ep���E_Aִ�I�����)�M�ad�����0[q"d�wJ�1$��&�&�N�%;��ed���:߶B������cM�_'�&
w�M"�oP�l��
'w8��+���4�m�w.�� �kJ��?�+C��h`�[`�,���
�[������)��k8����r��T�a��x���[D�m�h�Oo��y��WVY��2��M��-[V�0@j���8b�j�
������h�f�k��5�4�qB��,���M���~�S�z�i��?R��c�=���5����������^�I��(�)�$����& -�����|�� ��/��(��t�� -n�$�=@2Z�#8�X͒,,5�z --�aLv�s6P��ܞ:��_�:<=�v����;|�2y�k�6�dӲ��?��?&��S��q��b���o�]\w$��{�UM�ڟ���5�,�D�o������Џ���\�l�"����%�T���T�|P�#��oCI� ;�����Ȥ����H6��?mT�+���S�:, -�)vD�� ��b|�sf��qr�":�>��ȹ�p��3� -?(My�t#&�0o��a�OK��5pn@�������n��0��W5Z��ٔe���=(� ��~����7K��1��v֖�^�}Z���R6*o�h0F�z-����V^'!�"�/3�`vY3���/>�ҋzUh�8�e�k�!/�o7�ϊ\^l�� Z��[�zm~�:NR�t���R�:�E|{ra�<�^�5�Ac5A -�oiv��`7*� -:Y��� M�i"��mh�4P��T�j�f�������l0���t��v���v�*Pi._�����q�n�����R�Cr=�s�3P\��������?/8�L�*hy}�<=&�\��Sd�)kd��l��ڥ�����(�mʘK�5��՝Y^%߂a֛�c�w�U�O�IZ7�k�:��e���|�����7AR�_��W��^�!�z׀d%���)3$��`�*qՔ�:�� -m�"gHӜa��t�-��^�>}�T�"�:�(�k|�ֈR�{e/������=�)����|X��W�3�OӸ�T4;h��Ac�vM���x4�B�B�;�r8Di��e�A��yOY.�?m�Ze��r/�S�ѱ��_�xf~G��]�� -�����D@^d���0/���:������w�TS��m��� +��ib?�4U��9rx���ɋ�6xC��JM� *sO�ϼZ�P2ѯ�ܟ(s�[��$�y�j��~��7�8*�1��qO����JI���$�=ܩ�X�(W>;?�c��s�|)>��NQ%p`�7G�y���EX��܈ -�]B��C��5\��$��f�Cy��t�}�x _�-����+è�`����t^�ޒ�6��&��i���-N���|A�7�������Fz�;*w��
笠)>}r9�x�J�KYl��%�R�|���Hz\tZB�O��$����h+�j��T���$�fc -A1E�.�����fކeY���*S��������yЭf�Ƴ|��B(pG�©��~�,�GK,\/R)u� _�? -��}�R���S�湤bc�El��!�uGq4
���Pw3)/�C��Kf=
%8h��� �t(-�Ki�c"�<��~ -��V�W��%D�stH�^P�J�q�3��W�ZO]�8����Wk.%�v-�4�� x��W��W� -�X�[-蒿��c�$��֘W���'>��H���J|F�8P����Z�u�j�"��%��wk��rnN�U*��u�����?�p�# �8/ӵĕ&�_��C\XT�$@ -Oe�z�mQ��=i�3��2Tވ'W$w�8tE���7Ƽc[���m��M��j���� ѝ�6r_�$u8f���o�R*״٢*W����9S����&ݱ��%��uY4`l12D(Q�g#Rܭ -�����4��t��;�=�x��L���[�i[5_���Z�c-�bw�(�X����{�L/Jɹ@��8�ױ�C�)^O���Ν��� ��>6<gǞn9��=������z�I]�N�+,�;fb��J���ZR^�|��`���pc���v���Pm������e���er\�����Qz�v�� -Z��qB��Պ�6O%�9LC�>&�SV��`oF����FPO��.r�?��4Ƹ��XaGj� ���r(xd�V��k�[�R�}�zRXe�2�K��`~j�n1��������,�t+���^��y=�p1#ja-������H��c�퉿@�{��l -�������#�W�]��{�ݑ��3��!ԟX��I� -��i�KD�Ou#��n��+Y9H2�2䏋�gb�� 1ĵx��z9;f,~�T��;�>%�M ��T#Ӫ!2����_`q�N�؍:�4STcy�?�����|��u��b��E�U��7^��α��j����C4t>g�Ҽi���2����d�)A��u��;�Uo��������R�>��U�H�0= ^���<^8R��nS^2Iφ�΄�&CYK�]��� M]�l.е2��BBj�G:�YH��D*�b�C4��>8Ʀ�k61�~'���/m~&�zi�WP�?H�Ik�۞����$I�H/�?�d(z�P����%��K����/h�/�"��%k��Gr�u2�|Oz�uz��C�K좷���bϊ@{�K��/ -_"���D!��d���W��h�A���1��?��&�����b"�D��]_�J �����C��"C0�Fp�H��?��w���
B�o�$Nr�{��!��Jq�+S�N4L̖�{)��[]�,Nd�:ƢoIf�~TDA�ml�$!�����mWf��d�~)���Ē -/JƼ��d ��fN6t7�d������ 3�?v -۫���9�0���ID���QS���o0]U[��nӇ��nZ�*tU}�9i�xߌ�e������z�Ѳ�U���u��0�6a3��A�����bf�*� -&��-(�ǐÄ=,�{�<������-:��]����ê����mo��,���7�-�#��f1�� -S�b��_�+Ha��-����Űk������X���)��R����H���hhE�%aϕ@j�1g�]l\X0��k�5�/i����H�=�LƵ�DJ{N�R �L(Ӕ�d�&Zf�\��L/P�JR�a�zP�.8q�m�{�ܟ}[>KP�K���y�ܵ�]v�OW9��/#�ul�fS����J�J���W�0��W���&�/��a2�o���/��O�X���4��=)B�*�J��G�~b��W� gyM��s�#(6�Þ�
���S#:o),�u -\;��KJ�'��$��o�qMX���7f���J�������(���}�k�V���V�<�4�% -BF|�@�dž����$#��+��&w�B������N��|s+�+q��Ba1Y�%2G�g�fϪ�Ѕ�l/�hh=�����ruZ6܄ա�᥎��Y�+�\@C{�E�M�t�
ױ�'�Z@�_^�3����ٔdH_ u0;چ�����d^'U(��{�R� -�!�η����`��؆�H/�}��<�{��t�)P����cLg ���fb�稆�\�����J�,c ���I�Ꙭb9a���P松xh - KK� -������5�����[@Ay� oa�DAI&U��P@y��k82hhl�$�%;@Z�`�~ -��(�
'��ca+���?�]K�� ^{.�=���� -�"���Ն�mm%ʳt�����u�����<X�V$[�Z�ᢃ�'g�V�fh�',��ӺR��� r�ދ -���/���n���Ẑ��vl������Wȱg�D:��r����.���[�:���gj�����+U����j�)!���և�����uI�X8x#��W
�t?��jև�.�P_��������=��2���EC�EB��Ċ -( -�v�N�ؤC�T(�ꏛ� ȓyB�O����+�{
v�Ν̶n|�
zJ�L'��lw� -4��{�GhH?�N
�P@��V[8i@��S)\�)Z��&�b%��Q�K)�|p/1�g�\P -G�`��>(#��¡@ܠ�~��RvT��YJF����V�\�o�=%��I�S�� -��@��s��V;p"�u�o�O�ߔ�Z��?|�O��ٲG��:ᱥo�e������^*7���c����H��=��\~y�
R�'��؋u -(Ur�
��}��g=Znt��o�>!�������T�M��ó�FQ�<��+N|�>;%�W��*E*�b]G�z��W�Z��53v��%����W��\�^1�S��,��w��)�N���XͰ��tr���x@;:��fG�>��>���9j�� ?�M���z�[���Gp�I����V���kp2��Fl�XXC�*h %�2ݵ��N�%]��Z�>@g��@�X�Z�3
J�ۅ�d�?���C��G/����eto�80@wn�S�J�<��X��a�]���lf
u0��î|�*��t��w�ZA9K(���ɴ��ʍ� -�##+�t�z�x���6E5 -���},�WT^h��kNf�u����.R�%.�n j�}�U��+�%��7B�����n��&/�H��A�*&K�곿�����}��4$֗�L�",�J7 K����R��v_��\Kg��xz~��^�N�G�J�$ ����U6���!��a~'o��麺/@�dڀ����1�iV�
��pm�U���c7W��f>��s`���cZ\{����Z�/n�f+���/�Z���ÏU�ɒ��]Uu�����������:F����fz -N-��K -�}�h��ģ1�3/�I���Ga��v"�튦�$S�j���"��p�Nif��/����0��O5���{ �}�3����<�>胳 �sSRT_II -��8��T��y)Z��p�p�A����v��=�Nq~JKH -��!�������!`�y�!&s>r���,@����6 Ϣ�U�I��U�)��'�XZHŞX��EQ=�H��Xm����AԐ��b����Zh�����$��Щ~��BW+��~As>�b/ -�4�� -��g�;�/�L�$���`��E>�z�Z�?��m�x�R����G(ы~i��te~ʜgơT����������P�C�����Ye:��|n0�f�\-�x������|�j��l� %�����D"p��`|������[ݷPo�P�2(�m<�\a�U�������ln{���F{sw^�GO�#�Q�z��
7_3�G����Σg��t9�<:|UT~�a#t��06C����y+�>ۏ�G��� -�b�b���{މ��"��|eZj 5).��ξ�I�4��[Baz'���mNJ+�xK2)�� ;�N�Q�|+4��6~����~�� x����a0#�=,�f�@�ǥ=�_�T����<�_��7_���h�"�����
�>Ļʖ�cGZ�ek��,k�a-��h�%��%��B�,����U�G�"s�k���v;&��b(��k�p,H�Øy���i&�-K�|u 6�Ο�n��lI��7E�{�|�#p,y�9�ցs! -R���J�#�/�i���7��dA�����M��v�C�d;%`!�~�U���ް:p�)���;D���.!�����W<���)?�����uJ�G�pdJ�������x�T�b�������E� �ӣ[w��G8*VhC�}��!Jы��MG�ط{� -�05cN���Ϻ����������^��i�P� xhK ���4�� -m#�����BaE���J��[y��:N;�������~�{�!�!��f۰� -�W���CA��R��y�
�ﮥ�X� ��Y����hM�5E�u���Rj��~@��� Ӳ�;t���q����Ԧ��iɽX91�Gç���Tr�٪���,��ӵ,�IT%�W:�N,/cQ,+c��� <H�=� -��*(�c��D�u�{,��ϱ�&4ۙNv����M꒴8�i��6t&;3������ƒ�>�KZ:0�>��$C�9��7��ᏼ��7ӖFl�d���A�IPt�Q=f���T~է�P�m&���+�����������Mj���m�D�̜0>��.�
d�$2�����,&�?��۪;����L�J'��� -H��W�V�L}�<�@�@@�|,!DA*�X⥈K��� ���f��̄�̀���*�>��s�G�5��f,�9i�;<���⢐�՛'���vW�8����U�e�ūB�k�T���2�@(I`�)����u�sZI�� -QxE�ɚ��?�s���Y�ͷ�������-���l�����fS��Z9�Q -ѿ8�Os�P��; -�n��~9���;7(/���b���j>/�����W����d� C�
�
#�f=�'�{��Q�>dT��Xc�Y�mԉ���F��ܯ�Q�n��P���U'�s�nj>'�q�^�89������T��O`�B��6k�rL�F����0z�����X��0¨�8bu����(��D)ɗ��#��^��[7L�`��v�Af5����_�W��.�]�2B߭�%���)}@TKӥ�N�[Q����P��oʐB�n��N������4����z��C�j�}
��3R]��<EV���A�u���]�d1��9�¶\���xڅ� -����Na��X���[c��/�:R -���R���K��-�0Gv�|��ap���|�-n]-n����@��-�7Ht~����YH��Rh�d l�`?�쳜ZV��u���L�%Е�
ɗ�x�N��y[LT���ɻ���YN��g����1�"��Z[�Fn�2���r8�D�"��c3�����{x/+�k�`S~ge���LX�S -���kW; ���Hu��5 xJ�ՅO���u[����u�<q��X ԗf���@.m映S�. ���7pj�z���xN
��ya�'LOc����[���r���&� -���I�zW6���p��tݕt������.b���(咬k1&�O�3a�г����B��+ .�H��7}u6�Z�UR�⢏����'�� -0Fh���A��J2uM!q�^��W�bĐ=K'&�[5�M�a -���MQ����8-����a�"ee -}�+XF�G�F�Nv}���B�}��*�>a�o��]�W@Ƌ�>�.M�ۺ���+�h\I�� �Э-ͪdF����H�I� -�k�I���� -;����)8���^·���bG����kB��v��̤�1�$���%���G���ě�9�?:v����#�ͦ��5T^f��+��� �h����h�#��
�S|�#�
���l�9�6�����~%���b�c'o��8`�>�!W���R�x>6��ˮ_>�bWY�6��O�����?5�˾����4VGo��߆YJvo�Pn&�`�!!�-Fln���<tk�[_h|*A����� ��%�������JB��] �����X�zs����d2�;/pW2F*`�=�w��ƠS��`U��0�rِ0�V�g� -C�)c�0 -s#�k��� Fx6[��_+�9�B`pF$Yy�r�"�>XGQX~Ѡ��0��K�f<ؕ��K��W�џO��P�Ӛ��DsѺaV`���_A�zc����24[�yՔO��b5��Ǯ$�o��^�k�+A� �,!@�AF`e�BXA�(##"��ow��Н4�����L-��N�>��*���m��V*F��J�h]����/����u�I -��"�\�zz����4ڸ�b��`����5�$����U -�]$T��Cs�U�T�>y:{�9�����Ek���� -p��I�����dnLsz�:E6�GM= -����5)� �s?���ɖ� ��+TB"m;�|�OF�����[�_�l�yT���U3B�R����L�mߚ5$��}P��I�DB��y���ʐ�p��� ��uT��r�eW��B�x -N�%'�u|�8�.sO��\�H��R�`b��K0 -o���ñ���ҜG�1���pE;���Қ�ya}����.�D�)S��y��[ZP�Z<څ��98]E�*]�1C+��1�w$]�W�W^6��-&�}��������� -�c��&bX}��t���~C��%���LJ
g��]j�gq�O�����Pbӷq�1��O͊ܕ����j A�?��]B��I5mG|fWjl���Dp -uPY=I,-*�8�}ά3I��k�W���Z��#�h�7���\^+�JW��I�0|�E8�z���M�b��� j���R�櫄��@,�F��^d(�C�RI��Qz2���%��hjDb���;��r��"a�/��u�q�1�*9�������tİ��n�RsV�hH��o14�VG/��|�p�',�J���*�9�~F.X���5C?b��g�2ĥ_|��b?�X��K�$bɟD,E5f���:T���R���j����[�_0}h��i&NO��7aJ3��۱��������^�� �Wlyj�Ң�R,Q�}��� -�-0s\ڇ!iw�AP�z�.TmBJ��ř8�*)$�g����FJN=S�j�ȴ�_��xmc�r���j��w.��-���0\�:'Ǧ툏�����j1`��xT�5�H��`<�S,�� -��� -���Mj�>@��0:(�� -���NƲ&��h��^�BtŧL���U3ET� -�X�u���`'������ ����l�'Fu�a�CX�ϊ ��[�;�bW��>�(R/u@�1 ��ױ��W���W� c�?g�1e��J��1�<���2��ǰ��g��nj!�x76t�;�}������C�-������P����!i�9ۡ�!*����dh��jL������waT2�R����a�������#�O�l{^/s�=�B�L�����7W��:] -q�˞��}�4�i/@��Q���g�0� -C�w���H�ZZ� -̅b��'���W�%� -�I�3w�zl�pc~����RwA������e'clf�I�
����ĥH�]3�j��d����dH�j��;�a9�J)�!�"�ANل���";t�h��73�j{�i�~]� ^3{�� -u -s|�+�ǿ������ksV�v3�����ߍ��������m��c)��Kb�sx��Z����J|��*|�/(J��r/��(��r�'�O_̈
��ڻ�����eE)dۮ���p%��/1�'u�� -W���c5&y�͘�j��_!��fW�F5'0q� -���ZW��esK�R���>V��+��5��֔HHz]�Ӓ�\m���\����$�+wY�$�\�Bq�!��Oug=/����w��zl�ER�Z��7��m�e�ȷ�RMx���S_#
���?P��J����m!V7��]إ�{�̷�5:`��|�J����_h��r�&��h�fn��/���L�*��u�:�
��Lj-V���F����м�M�6��E�P�x;綾���W�V2�}��$Lb y$3H���AD$ -k���짺�'�Q���Ú�jvWU�J��TI��������wh�Es�u��Z� g��؍+���2z�mv�>�%���*#m�K���E5ީ>^���P0㻵��0����
C��3x K�`������x���� -�f!�������~���ZbߠÙ%y�V�!����G �8��g��]�w�� -��1N���$� -��pKZ��K{U���K�|��bȼ�_�r��{�6d%;ȑ�
&�v��^MD -�ӱ�_���*(;�]�.�VVӥKI �'�Rળ���+>���q�FvNڅ�좭�e+Vԧ.|XI7�~�\�wow�1v]C����)t�Y��+�"���x���xB]V�Ĭn�^�^���!|�'��!�P �N��47�(�&D��,�K UH��N,�[;8��3��/<�[�GD�Z6�a'��@M ��̕z�C�?�[� -��gŢ�o��3X�P�9H�ު EH�ӭ2���ޥK��,��&��1�{Qy�/����g��?���E�,���)���On��c�Hpkis�w@Seg8!�9��Ɔ�"v����rf��G�t�3x���S�tB�� ��>s�/Q�i��}�r���q\kk}�'�� 6����)�h�@��vt�&>����DH�����lw��Z��ҏ��e�s*}a��w -�<<*���D�E� ������>������l��![��-}��JA�*n<Jj�{����}N���5(�ؓC�b[���Ӓx������ -4����m��60�۽����[%� -��,����;��g�IUor���|~�t%UI*�%����������V�� �^U3ϧ��f����js�2��}3�uFWp���� !�P��ZP �C���T�}�R���ȥ#�Q��m��h Yl��,���a\�/K>�i�Q��6xS9��^y Z�{Q��Z6t+8�
�]oj^]����2����ی�/Ҹ�����J�(^ 8��ƒ>��i/U�*� -:SX,~F����/��arB�����#��>��-���1�_�?*�V����:H�Ў��*B�b��7�=�G�{�b�?��&��lo�*��Z��rk�>���'�<���Y��,:�s< -� -Qs�9#�^YH�ʦg��u�� �]�%}֍�����ݥCV���̳��6?y�ـ%���>/3Pa��,�(�)��߰n`�i�(r��;e&�a���h��N�����]��:Za�v훼�5Rx��]v��+�U����"n�����{�x���ʠ��eD���x�wT�e!^���R<.ߊo^��G���ڜ�pZ�H;sј�̧jiE�U�R�ñ�n>y3b�D���UDd*�b�[�jS��RnW�2���b��������'Q�y�Ւ�2��ڂ�N���/ -ȼ�<.�f����
�{�J�~��i�+�2�оb��2�*���b�ߊP�%����Vұ�WE|��(�"�E�" �y�ColX�.N�t�J�"����"�*B -<�g"��3����拰V����뻕7��t�/1���#{�/��>���LՉ%?��"�55��?�xmi�����kD�N,�g�`����E+��g[��ܫd�
�S#�-V��#/� ��s:2�*���"�֑?�[�q��B� -;2#��r�>���Zi��-1f�O�B�ԛ^S�1�z���&��xR�D��gY�1R�X�gf��,�U�P��q1���ZR|��(��MCZ��1YzB.�
��G/�,e��b:�ߺ��ظ�����M)�\y�i2j�B&W#���Ǫ$K��i�Q�P�����D��έ�ؗ�M��f�:�f�#�:�(�9�A�0�Xn�ay��HV����h6�L -ɼ&fĦ�3E$f�s��R
��b�Ъ��C��t�h�'v�;�d|��DЭe���{L�� -j>��\����B�C��q����e)ON;>*S�0w�v[?�l�Ș�C�����M"�ȣ��t#�ǬB��/���;�{�+~�g���Ԝ�wOO�Bx1y>��/~� -�nlb� -t���小%���e��~h3�k~v�6VXU��{_��D���Pb~���D��Ϗ�lv%wn���XĞ���oh��TO:
�� �K�� -3,͝ʵ?{� �a�}�)��RhmV��=�P/f�2�9��ސ9�ȏ������ui���ފ -�<?P��|cG���T4eM�Sr^��D��M��F�dW�6�AF�z�����Ma3����i�wم�O����m��E�������"n�ќ�z���Û�g��O�1YR��D�WA���<�r�p�O���|,Yޡ�_�����3�~�ǓY,���x6�
fk|s7i^��ƨ$����J�93MX�Hmb)�W��ԄA���_g�w���������CRg���ٖr��ۇ�y)>��,Al�`a?F�2������Q����%�P �L��}�xf��_��?���dH{���F`}�(fQե�J��T�R[zD�m�FH�E�%�C���6_۔�R�0�1Nr\؋J\ �*��)@���s���x��2T�K�è�=L�LpP��2FlPd����̖LD0�/mF�d����1 njl!��'X�e"�XB�-�_b�{%X3���0-��� �I]P$�8�A@����uN�
�l��k�6�X�C�d�M�l�<L E�MN�]?�C�c��2b�=��[�`��ab0 n��������b���f��>! ����i�Mu:^LqL� :�m�x�����mN :ԡL�ā쀀�#\
�9&��$�1� s(��!��[�+Y�:b�!��INHj"�!<��1���X������� A��ݝ��1��*���C�
-$� �bU߹��3I����\�_�,VM?W���uS �H` �cU�:J��Mױa�g�)��9� -�}�}oB�c��[��s�vm�K�y�#/@\�јC�xϊ���?Ù�pn>tȀ��yYa:��[�A���S.�����y�Թ� -�� -d�� �粦]�Uߍ�%_T��U�р[��t���6eq� |s���u�9�e�
�1 �k}ܬQOG�����JAt����9u�B��ih�|�RM������Bq V�(�6��]ٍ���mZ�Y��-H�θ�:�����������ǿ�n� -�]x��d��$��̀({�:� �N�������{�,�::��|3U���X�ޟ����ka܅W/W�&����լC��}��߁��,;�:�l���x����AZ��~�����Y݆�F�rO)~�|5���\3��, :r���Y��٪�� ��)��v�s6n��"
�ie�mIg�����O�V%<ҕl���F��}���:���d�Z����8xp��NoV{U3�9��v�3�V� �{ -�2`�U���k�k}I�W���ꔮ�� � -�L�/m�]~~���͚���0��
�.]�nx<N�]c������`3�Mul��$a6ݔv+�d[�=b�l[x�:�QTz�?��ͮ��B��Jg�M�� -\e��t�mH��|���`�|" -P@�� ��l�\��t�Lo��O�z=)Za���C �-�r����S�' ��T���d��u��5���DQ���� -Zm�(�Q� -���O����ܓ�8-3��Y\x�H�C�2;���@�'*�.!�t0O�� Aֳ]��z�Z3�i�f�Za-.��s2$�1��}�4`-���E��� {²�s`��x���sf��}��XɐL�/l�5�ח�@�p�a`��Y/_>+������,�X۸�Ӈ/m2�����E��7a� -��G6Cڊ�n��$�V��:��/���zNmQ��y�2�rK�,_�[���3�!?��b�Q����H�ɫ��HS[;�cqoHg�t���J� �-�*���i��i����.��a
~g���2p���œ��派�S -t�����L&%" �tSD�i��"e��+.K�Ա�;���P6�z�f>hr6S�y�5 ۼ<�3tmGԨk�gq!AP� -)Q�j�9)gq�Փ�b��g5�f|�mOmJD�Ԫ4���06ӠFw&4�p���)ă�����kΫf���Z�&S^�G�꜎^F��U���$�=ԪvZF����~Ml_i6����#��5���A1;?L�UL�I^7��u�q�C��(�U�©5�GH������Q�0�n:ĩD�[�3�2�\t�r�D�4D9F!���r�6�D �j.��U���%����49���ó8��m�:#��XLvs#�[FW\���p�Ls�+�5Z -�lG���]�R��>HĦ��m��I���u��qG�7���uw8A�N<��U�}�`휁�,
-0000000016 00000 n
-0000000144 00000 n
-0000027728 00000 n
-0000000000 00000 f
-0000031902 00000 n
-0000082176 00000 n
-0000027779 00000 n
-0000028107 00000 n
-0000032201 00000 n
-0000032088 00000 n
-0000031182 00000 n
-0000031341 00000 n
-0000031389 00000 n
-0000031972 00000 n
-0000032003 00000 n
-0000032274 00000 n
-0000032457 00000 n
-0000033473 00000 n
-0000051103 00000 n
-0000067155 00000 n
-0000082199 00000 n
-trailer
<</Size 22/Root 1 0 R/Info 21 0 R/ID[<EF708D5803E447D0A52D9DD250C35333><BDEB185DC3944157B1B9061FE16828DF>]>>
startxref
82377
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/omnibox_https_invalid.png b/chrome/app/theme/omnibox_https_invalid.png Binary files differdeleted file mode 100644 index bb96cb3..0000000 --- a/chrome/app/theme/omnibox_https_invalid.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_https_valid.pdf b/chrome/app/theme/omnibox_https_valid.pdf deleted file mode 100755 index 0eb2893..0000000 --- a/chrome/app/theme/omnibox_https_valid.pdf +++ /dev/null @@ -1,388 +0,0 @@ -%PDF-1.5
%����
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 38 0 R 71 0 R]/Order 72 0 R/RBGroups[]>>/OCGs[5 0 R 38 0 R 71 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 17565/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdf:Description rdf:about="" - xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" - xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" - xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> - <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> - <xmpMM:DocumentID>xmp.did:F77F117407206811B9E7F59FF32AB9C7</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:3faa8f42-c132-324a-be34-1940b31aa165</xmpMM:InstanceID> - <xmpMM:OriginalDocumentID>uuid:bb04d584-7eb7-944b-b519-e6560ee32c24</xmpMM:OriginalDocumentID> - <xmpMM:DerivedFrom rdf:parseType="Resource"> - <stRef:instanceID>uuid:d7dfa1ba-510a-e643-8045-a57d03c56cc5</stRef:instanceID> - <stRef:documentID>xmp.did:02801174072068118DBBE0A4EDF47DC7</stRef:documentID> - <stRef:originalDocumentID>uuid:bb04d584-7eb7-944b-b519-e6560ee32c24</stRef:originalDocumentID> - <stRef:renditionClass>proof:pdf</stRef:renditionClass> - </xmpMM:DerivedFrom> - <xmpMM:History> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:01801174072068118DBBE0A4EDF47DC7</stEvt:instanceID> - <stEvt:when>2009-11-12T15:36:31-08:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:02801174072068118DBBE0A4EDF47DC7</stEvt:instanceID> - <stEvt:when>2009-11-12T15:36:45-08:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:F77F117407206811B9E7F59FF32AB9C7</stEvt:instanceID> - <stEvt:when>2010-04-12T08:23:59-07:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - </rdf:Seq> - </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmp="http://ns.adobe.com/xap/1.0/" - xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> - <xmp:CreateDate>2010-04-12T08:24:01-07:00</xmp:CreateDate> - <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool> - <xmp:ModifyDate>2010-04-12T08:32:30-07:00</xmp:ModifyDate> - <xmp:MetadataDate>2010-04-12T08:32:30-07:00</xmp:MetadataDate> - <xmp:Thumbnails> - <rdf:Alt> - <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>188</xmpGImg:width> - <xmpGImg:height>256</xmpGImg:height> - <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAC8AwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYqg
NZ1/RdEtvrOq3kdpD+yZD8THwVRVmPsBirzHX/8AnIGxiLRaFp7XDDYXN0fTSviI1qzD5suGlYHq
v5vefdQY/wC5H6pGekVqixAf7LeT/hsUMautd1y7bld6jc3DeMs0jn/hicVQOKoi21HULUg21zLA
V+yY3ZKb124kd8VT7TfzL89aeV9DWbh1X9m4IuBTw/eh8VZtof8AzkDqUTLHrenR3MewM9qTHIB4
lGLKx+lcaS9O8s/mB5V8xhV069X60RU2c37uYdz8J+1T/JJGBWRYq7FXYq7FXYq7FXYq7FXYq7FX
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</xmpGImg:image> - </rdf:li> - </rdf:Alt> - </xmp:Thumbnails> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> - <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <dc:format>application/pdf</dc:format> - <dc:title> - <rdf:Alt> - <rdf:li xml:lang="x-default">omnibox_https_green</rdf:li> - </rdf:Alt> - </dc:title> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" - xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" - xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> - <xmpTPg:NPages>1</xmpTPg:NPages> - <xmpTPg:HasVisibleTransparency>True</xmpTPg:HasVisibleTransparency> - <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> - <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>19.000000</stDim:w> - <stDim:h>19.000000</stDim:h> - <stDim:unit>Points</stDim:unit> - </xmpTPg:MaxPageSize> - <xmpTPg:PlateNames> - <rdf:Seq> - <rdf:li>Cyan</rdf:li> - <rdf:li>Magenta</rdf:li> - <rdf:li>Yellow</rdf:li> - <rdf:li>Black</rdf:li> - </rdf:Seq> - </xmpTPg:PlateNames> - <xmpTPg:SwatchGroups> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Default Swatch Group</xmpG:groupName> - <xmpG:groupType>0</xmpG:groupType> - </rdf:li> - </rdf:Seq> - </xmpTPg:SwatchGroups> - </rdf:Description> - </rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[73 0 R]/Type/Pages>>
endobj
73 0 obj
<</ArtBox[4.0 2.0 15.0 17.125]/BleedBox[0.0 0.0 19.0 19.0]/Contents 74 0 R/Group 75 0 R/LastModified(D:20100412083230-07'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 76 0 R>>/Resources<</ExtGState<</GS0 77 0 R/GS1 78 0 R/GS2 79 0 R>>/Properties<</MC0 71 0 R>>/XObject<</Fm0 80 0 R/Fm1 81 0 R/Fm2 82 0 R/Fm3 83 0 R>>>>/Thumb 84 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
74 0 obj
<</Filter/FlateDecode/Length 304>>stream
-H��SKR�0���@˱�xK -Ye���@�h`Z\�';��Ew0��7��}\?�\���M�t"˒tU��=�YB��~�S=�,�?����p2��51�4��T9�l�<ML���T��>��E��p�&pV�b�6 -6ӥ�@)݅���~�Ż�d^i���";�b;~p�T>����������!Om�2hEX?̖7�mn��
��ak�
u�(�i�cv~�)�EV��2 9���c��%UЩW�D�% -`%;�*��q5i�FE}��9O���7��/ -8;RZa1QMPB0E;2+!C6~>
endstream
endobj
85 0 obj
[/Indexed/DeviceRGB 255 86 0 R]
endobj
86 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 -VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< -PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
80 0 obj
<</BBox[4.0 11.0 15.0 2.0]/Group 87 0 R/Length 119/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 77 0 R>>/Shading<</Sh0 88 0 R>>>>/Subtype/Form>>stream
-q -15 2 -11 9 re -W n -q -0 g -/GS0 gs -9.9996185 -9.9996185 -9.9996185 -9.9996185 4.5009766 11.4990234 cm -BX /Sh0 sh EX Q -Q -
endstream
endobj
81 0 obj
<</BBox[5.0 9.0 14.0 8.0]/Group 89 0 R/Length 43/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 77 0 R>>>>/Subtype/Form>>stream
-0.439 0.627 0.345 rg -/GS0 gs -5 9 9 -1 re -f -
endstream
endobj
82 0 obj
<</BBox[5.0 7.0 14.0 6.0]/Group 90 0 R/Length 44/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 77 0 R>>>>/Subtype/Form>>stream
-0.439 0.627 0.345 rg -/GS0 gs -14 6 -9 1 re -f -
endstream
endobj
83 0 obj
<</BBox[5.0 5.0 14.0 4.0]/Group 91 0 R/Length 42/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 77 0 R>>>>/Subtype/Form>>stream
-0.439 0.627 0.345 rg -/GS0 gs -5 4 9 1 re -f -
endstream
endobj
91 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
77 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
90 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
89 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
87 0 obj
<</I false/K false/S/Transparency/Type/Group>>
endobj
88 0 obj
<</AntiAlias false/ColorSpace 92 0 R/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 93 0 R/ShadingType 2>>
endobj
92 0 obj
/DeviceRGB
endobj
93 0 obj
<</Bounds[0.208588]/Domain[0.0 1.0]/Encode[0.0 1.0 0.0 1.0]/FunctionType 3/Functions[94 0 R 95 0 R]>>
endobj
94 0 obj
<</C0[0.733337 1.0 0.6353]/C1[0.733337 1.0 0.6353]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
95 0 obj
<</C0[0.733337 1.0 0.6353]/C1[0.137253 0.678436 0.0]/Domain[0.0 1.0]/FunctionType 2/N 1.0>>
endobj
71 0 obj
<</Intent 96 0 R/Name(Layer 1)/Type/OCG/Usage 97 0 R>>
endobj
96 0 obj
[/View/Design]
endobj
97 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
78 0 obj
<</AIS false/BM/Normal/CA 0.75/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.75/op false>>
endobj
79 0 obj
<</AIS false/BM/Normal/CA 0.25/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.25/op false>>
endobj
76 0 obj
<</LastModified(D:20100412083230-07'00')/Private 98 0 R>>
endobj
98 0 obj
<</AIMetaData 99 0 R/AIPDFPrivateData1 100 0 R/AIPDFPrivateData2 101 0 R/AIPDFPrivateData3 102 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 3/RoundtripVersion 14>>
endobj
99 0 obj
<</Length 938>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (omnibox_https_green.pdf)
%%CreationDate: 4/12/10 8:32 AM
%%Canvassize: 16383
%%BoundingBox: -5 -7 6 9
%%HiResBoundingBox: -5 -7 6 8.125
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -9 -9 10 10
%AI3_TemplateBox: 8.5 7.5 8.5 7.5
%AI3_TileBox: -287.5 -355.5 288.5 378.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -19.625 11.0625 32 1283 686 26 1 0 96 181 0 0 0 1 1 0 1 1 0
%AI5_OpenViewLayers: 7
%%PageOrigin:0 0
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
100 0 obj
<</Length 20091>>stream
-%%BoundingBox: -5 -7 6 9
%%HiResBoundingBox: -5 -7 6 8.125
%AI7_Thumbnail: 96 128 8
%%BeginData: 19968 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD27FFA8A87D7D527D52525253527D527D7DA8A8FD4CFF7D7D5252
%27522E522EFD075227522852527D7DFD46FFA87D52522EFD16527D7DFD40
%FFA87E5252275252522E5252522E5252522E5252522E5252522E5252522E
%522752527DA8FD3CFF7D7D52525253525252535252525352525253525252
%535252525352525253FD06527DFD39FFA852522EFD13522EFD1052A8FD35
%FFA87D28FD0E5253527D527D527D527D527DFD0E52287DA8FD32FF7D5227
%522E5252522E52525227525259527D527D527D527D527D7D7D527D5259FD
%0452285252522E52525227527DFD30FF7DFD045253FD0752FD177DFD0552
%535252525352527DFD2EFF53FD0A5259527D527D7D7D527D7D7D527D7D7D
%527D7D7D527D7D7D527D7D7D527DFD0B52FD2CFFFD0B52FD1F7DFD0B52FD
%2AFF52522E5252522EFD04527D527D527D527D527D527D527D527D527D52
%7D527D527D527D527D527D527D527D5252275252522EFD0452FD28FF7D52
%5253FD0552FD277D52525253FD0552FD26FF53FD08527D7D7D527D7D7D52
%7D7D7D527D7D7D527D7D7D527D7D7D527D7D7D527D7D7D527D7D7D527D7D
%7D527DFD0952FD24FF7DFD0852FD2B7DFD08527DFD22FFA85252522E5252
%52287D7D7D527D527D527D527D527D527D527D527D527D527D527D527D52
%7D527D527D527D527D527D527D527D527D52522E5252522852A8FD21FF7D
%52525253525252FD177D52FD177DFD0552535253FD20FF7D27FD06527D52
%7D7D7D527D7D7D527D7D7D527D7D7D527DFD0B527D527D527D7D7D527D7D
%7D527D7D7D527D7D7DFD0652277DFD1FFFFD0752FD117DFD0F525352FD11
%7DFD0752A8FD1DFFFD04522EFD04527D527D527D527D527D527D527DFD06
%522E5252522E5252522E52525228FD04527D527D527D527D527D527D527D
%5252275252522E5252FD1CFFA8FD045253525252FD0D7D53FD0652535252
%525352525253525252535252527D52FD0D7D5353525252535252A8FD1BFF
%7D27FD06527D527D7D7D527D7D7D527D7D7DFD1B527D527D7D7D527D7D7D
%527D7D7DFD07527DFD1AFFA8FD0752FD0D7DFD1D52FD0D7DFD0752A8FD19
%FFFD04522EFD04527D527D527D527D527D527DFD04522E52525228522852
%7DA8A8A87DA87D59275252522E5252522E52527D527D527D527D527D527D
%7D53275252522E5252FD18FFA859525252535252FD0C7DFD055253FD0452
%7DFD0BFF7D52525352525253525252FD0D7D525252535252A8FD17FFA827
%FD06527D527D7D7D527D7D7D527DFD0852277DA8FD0DFFA87D27FD08527D
%7D7D527D7D7D527D7D7DFD065228A8FD17FF7DFD0652FD0B7DFD0952A8FD
%11FFA8FD0952FD0B7DFD06527DFD16FFA85252522EFD04527D527D527D52
%7D527D5252275252522E5227A8FD13FFA8275252522EFD04527D527D527D
%527D527D5252275252522752A8FD16FF52525253525252FD0B7DFD055253
%52A8FD15FFA852525253525252FD0B7DFD05525352A8FD15FF7DFD06527D
%527D7D7D527D7D7D527DFD0652277DFD17FF7D28FD06527D7D7D527D7D7D
%527D7D7DFD06527DFD15FF7DFD055253FD0B7D53FD0652A8FD17FFA8FD08
%52FD0A7DFD06527DFD15FF52522EFD04527D527D527D527D527D527D2852
%52522E5253FD19FF7D5252522E52527D527D527D527D527D527D52522EFD
%0452FD15FF7D5253525252FD0B7DFD05525352A8FD1AFF52525253525252
%FD0B7D52535252527DA8FD14FFFD07527D7D7D527D7D7D527D7DFD055228
%7DA8FD19FFA87DFD07527D7D7D527D7D7D527DFD06522EFD14FFA8FD0652
%FD0B7DFD06527DFD1BFF7DFD0652FD0B7DFD0652A8FD13FFA8275252522E
%52527D527D527D527D527DFD04522E52277DFD1BFF7D275252522852527D
%527D527D527D527DFD04522E5227A8FD13FFA8FD0652FD0B7D5252525352
%527DFD1BFF7DFD0652FD0B7D525252535252A8FD13FFA827FD06527D527D
%7D7D527D7D7DFD0752A8FD1BFFA827FD06527D527D7D7D527D7D7DFD0652
%28A8FD13FFA8FD0652FD0B7DFD0652A8FD1BFF7EFD0652FD0B7DFD0652A8
%FD13FFA827522EFD04527D527D527D527D527D52522852525227A8FD1BFF
%A827522EFD04527D527D527D527D527D52522852525227A8FD13FFA85252
%53525252FD0B7DFD0652A8FD1BFFA8525253525252FD0B7DFD0652A8FD13
%FFA828FD06527D7D7D527D7D7D527DFD065227A8FD1BFFA82EFD06527D7D
%7D527D7D7D527DFD065227A8FD13FFA8FD0652FD0B7DFD06527DFD1BFF7D
%FD0652FD0B7DFD0652A8FD13FFA8275252522852527D527D527D527D527D
%FD04522E5228A8FD1BFFA8275252522852527D527D527D527D527DFD0452
%2E5227A8FD13FFA8FD0652FD0B7D525252535252A8FD1BFF7DFD0652FD0B
%7D525252535252A8FD13FFA827FD06527D527D7D7D527D7D7DFD0752A8FD
%1BFFA827FD06527D527D7D7D527D7D7DFD065228A8FD13FFA8FD0652FD0B
%7DFD0652A8FD1BFF7EFD0652FD0B7DFD0652A8FD13FFA827522EFD04527D
%527D527D527D527D52522852525227A8FD1BFFA827522EFD04527D527D52
%7D527D527D52522852525227A8FD13FFA8525253525252FD0B7DFD0652A8
%FD1BFFA8525253525252FD0B7DFD0652A8FD13FFA828FD06527D7D7D527D
%7D7D527DFD065227A8FD1BFFA82EFD06527D7D7D527D7D7D527DFD065227
%A8FD13FFA8FD0652FD057D77FD057DFD0652A2FD1BFFA1FD0652FD057D77
%FD057DFD0652A8FD0AFFAEFFAEFFAEFFA8AEA8832D582E582E585859587D
%5859587D585958582E582E582E8384AE84AE83AE84AE83AE84AE83AE84AE
%83AE84AE83AE84AE83AE84832D582E582DFD04585958585859FD04582E58
%2D582D8383AEA8FD05AEA8FFAE89AEAE895E5E343A333A343A333A343A33
%3A343A333A343A333A343A333A343A333A333A333A333A333A333A333A33
%3A333A333A333A333A333A333A333A343A333A343A333A343A333A343A33
%3A343A333A343A333A333A3A6565895E89FF89AE895F3334113433343334
%333433343334333433343334333433343334333433343334333433343334
%333433343334333433343334333433343334333433343334333433343334
%333433343334333433343334333433343334115E5E655EFFAEAD5E113A34
%3A333A343A333A343A333A343A333A343A333A343A333A343A333A343A33
%3A343A333A343A333A343A333A343A333A343A333A343A333A343A333A34
%3A333A343A333A343A333A343A333A343A333A343A333A343A335E5E89AE
%895F11341134333411343334113433341134333411343334113433341134
%333411343334113433341134333411343334113433341134333411343334
%113433341134333411343334113433341134333411343334113433341134
%3334113A5EFFAE343A333A343A333A343A333A343A333A343A333A343A33
%3A343A333A343A333A343A333A343A333A343A333A343A333A343A333A34
%3A333A343A333A343A333A343A333A343A333A343A333A343A333A343A33
%3A343A333A343A333A3365FF5E3433343334333433343334333433343334
%333433343334333433343334333433343334333433343334333433343334
%333433343334333433343334333433343334333433343334333433343334
%3334333433343334333433343334333434FF3A333A343A333A343A333A34
%3A333A343A333A343A333A343A333A343A333A343A333A343A333A343A33
%3A343A333A343A333A343A333A343A333A343A333A343A333A343A333A34
%3A333A343A333A343A333A343A333A343A333A343A335EAF333411343334
%113433341134113411341134113411341134113411341134113411341134
%113411341134113411341134113411341134113411341134113411341134
%1134113411343334113433341134333411343334113433341134333411AE
%3A333A343A333A335E838983895F8983895F8983895F8983895F8983895F
%8983895F8983895F895F895F895F895E895F895E895F895E895E895E895E
%895E895E895E895E655E895E655E655E655E655E5F5E655E5F5E5E343A33
%3A343A333AAE33343334333433345EAE89AEADAE89AEADAE89AEADAE89AE
%ADAE89AEADAE89AE89AE89AE89AE89AE89AE89AE89AD89AE898989ADFD12
%895F8989895E8964895E8964895E895E89343433343334333433AF3A343A
%333A343A335FAEAE89AEADAE89AEADAE89AEADAE89AEADAE89AE89AE89AE
%89AE89AE89AE89AE89AE89AE898989AEFD1689658989895E8965895E8964
%895E89645E333A343A333A333AA8113433341134333434AE89AE89AE89AE
%89AE89AE89AE89AE89AE89AE89AE89AD89AE898989ADFD06898389898983
%89898983898989838983895E8983895E895E895E895E895E895E895E895E
%655E895E655E89343411343334113433AE3A343A333A343A335FAEAE89AE
%AEAE89AEAEAE89AEAEAE89AEAEAE89AE89AE89AE89AE89AE89AE89AE89AE
%89AE89AE89AE898989AEFD128965898989648965895E8965895E89645E33
%3A343A333A343AAE333433343334333434AE89AE89AE89AE89AE89AE89AE
%89AE89AE89AE89AE89AD89AE898989AEFD0E8983898989838989895F8989
%895E895F895E895E895E895E895E895E655E895E655E893A343334333433
%3433AE3A333A343A333A335FAEAEADAE89AEADAE89AEADAE89AEADAE89AE
%89AE89AE89AE89AE89AE89AE89AE89AE898989AEFD1289658989895E8965
%895E8965895E8964895E8964655E5E333A333A343A333AAE333411343334
%11345EAE89AE89AE89AE89AE89AE89AE89AE89AE89AE89AD89AE898989AD
%FD06898389898983898989838989895F8983895E895F895E895E895E895E
%895E895E895E895E655E655E655E655E65333433341134333411AE3A333A
%343A333A335FADAE89AE89AE89AE89AE89AE89AE89AE89AE89AE89AE89AE
%89AE89AD89AE898989AEFD1289838989895F8989895E8965895E895E895E
%895E895E895E655E5E343A333A343A333AAE333433343334333434898389
%838983898389838983898389838983898389838983898289838982898389
%5E8982895E895E895E895E835E895E835E895E835E895E835E895E5E5E89
%5E5E5E895E5E5E5FFD065E333433343334333433AF3A343A333A343A335F
%898983AD898983AD898983AD898983898989838983898389838983898389
%8389838983898389828983895E8983895E8982895E895E895E895E895E89
%5E895E895E895E895E655E895E645E655E5E333A343A333A333AA8113433
%341134333434AD838983898389838983898389838983898389828983895E
%8982895E8982895E895E895E895E835E895E835E895E835E895E835E895E
%835E895E5E5E83FD105E333411343334113433AE3A343A333A343A335F89
%AD83AE89AD83AE89AD83AD898983AD898983898989838983898389838983
%89838983898389838983895E8983895E8983895E895E895E895E895E895E
%895E895E895E895E895E895E655E895E5E333A343A333A343AAE33343334
%3334333434AD838983898389838983898389838983898389838983898289
%83895E8982895E895E895E895E895E895E835E895E835E895E835E895E5F
%5E895E5E5E895E5E5E65FD0B5E64343433343334333433AE3A333A343A33
%3A335E89AD898983AD898983AD8989838983898389838983898389838983
%8983898389828983895E8983895E8983895E895E895E895E895E895E895E
%895E895E895E895E895E655E895E5E5E65FD045E343A333A343A333AAE33
%34113433341134348983898389838983898389838982898389828983895E
%8982895E895E895E895E835E895E835E895E835E895E835E895E835E895E
%5E5E835E5E5E5FFD125E333433341134333411AE3A333A343A333A335E89
%AE89AD83AE898983AD898983898989838983898389838983898389838983
%8983898389828983895E8983895E895E895E895E895E895E895E895E895E
%895E895E895E655E895E655E655E645E5E343A333A343A333AAE33343334
%333433345EAE89AE89AD89AE898989AE898983AD89898389898983898989
%8389898983898389838983895E8983895E895E895E895E895E895E895E89
%5E655E895E655E655E645E655E645E655E5E3A645E643334333433343334
%33AF3A343A333A343A115FAEAE89AEADAE89AE89AE89AE89AE89AE89AE89
%AE89AD89AEFD1689658989895E8965895E8965895E8964895E8964655E65
%5E655E655E653A655E3A333A343A333A333AA8113433341134333434AE89
%AE89AE89AD89AE898989ADFD068983898989838989898389898983898389
%5E8983895E895E895E895E895E895E895E895E655E895E655E655E645E65
%5E645E645E643A643A643A64333411343334113433AE3A343A333A343A33
%5FAEAE89AE89AE89AE89AE89AE89AE89AE89AE89AE89AD89AEFD16896589
%8989648965895E8964895E8964895E8964655E655E655E655E653A65403A
%333A343A333A343AAE333433343334333434AE89AE89AE89AD89AE898989
%AEFD0E8983898989838989895F8989895E895F895E895E895E895E895E89
%5E655E895E655E655E645E655E643A655E643A643A643A64343433343334
%333433AE3A333A343A333A335FADAE89AE89AE89AE89AE89AE89AE89AD89
%AE898989AEFD1289658989895E8965895E8965895E8964895E8964655E89
%5E655E655E655E655E643A653A643A3A343A333A343A333AAE3334113433
%34113434AE89AE89AD89AEFD068983898989838989898389898983898389
%5E8983895E895F895E895E895E895E895E895E895E895E655E655E655E65
%5E645E655E643A643A643A643A5E3A403A40333433341134333411AE3A33
%3A343A333A335FADAE89AE89AE89AE89AE89AE89AE89AE89AE898A89AEFD
%16896589658964896589648964895E8964655E6564655E655E655E653A65
%3A653A643A5E343A333A343A333AAE33343334333433343AAD83AD898983
%898989838989898389838983898389838983895E8983895E895F895E895E
%895E895E895E895E895E895E655E895E655E655E645E655E5E5E655E5E3A
%645E5E3A643A5E3A643A5E333433343334333433AF3A343A333A343A335F
%898983898389838983898389838983898389838983895E8983895E898389
%5E895E895E895E895E895E895E895E895E895E895E895E655E895E5E5E65
%5E5E5E655E5E5E64FD0A5E333A343A333A333AA811343334113433343489
%8389828983895E8982895E8982895E895E895E895E835E895E835E895E83
%5E895E835E895E5E5E835E5E5E83FD165E3A5E3A5E3A5E3A5E395E333411
%343334113433AE3A343A333A343A335F8989838989898389838983898389
%8389838983898389838983895E8983895E895E895E895E895E895E895E89
%5E895E895E895E895E895E895E655E895E645E655E645E655E5E5E645E5E
%5E645E5E333A343A333A343AAE3334333433343334348983898389838982
%8983895E8982895E895E895E895E895E895E835E895E835E895E835E895E
%5F5E895E5E5E895E5E5E65FD0E5E3A5E5E5E3A5E3A5E3A5E3A5E3A5E3334
%33343334333433AE3A333A343A333A335E83898389838983898389838983
%898389828983895E8983895E8983895E895E895E895E895E895E895E895E
%895E895E895E895E655E655E5E5E655E5E5E645E5E5E645E5E5E645E5E3A
%5E5E5E3A5E343A333A343A333AAE33341134333411343489828983895E89
%82895E895E895E895E835E895E835E895E835E895E835E895E835E895E5E
%5E835E5E5E5FFD0E5E3A5E5E5E3A5E3A5E3A5E3A5E395E3A5E395E3A5E33
%3433341134333411AE3A333A343A333A335E838983898389838983898389
%8389838983898389828983895E8983895E895E895E895E895E895E895E89
%5E895E895E895E895E655E895E655E655E645E655E5E5E645E5E5E645E5E
%3A643A5E3A5E343A333A343A333AAE333433343334333434898289838982
%8983895E8982895E895E895E895E835E895E835E895E835E895E835E895E
%5E5E895E5E5E835E5E5E5FFD0E5E3A5E5E5E3A5E3A5E3A5E3A5E395E3A5E
%333433343334333433AE3A343A333A343A335F898989ADFD0E8983898989
%838989895E8989895E8965895E895E895E895E895E895E655E895E655E65
%5E655E655E645E655E643A643A643A643A643A643A403A643A3A333A343A
%333A333AA8113433341134333434AE898983898989838989898389898983
%8983895E8983895E895E895E895E895E895E895E895E655E895E655E655E
%645E655E645E645E643A643A643A643A3A3A403A3A3A403A3A39403A3A39
%40333411343334113433AE3A343A333A343A335F89AE89AE89AD89AEFD16
%8965898989648965895E8964895E8964895E8964655E655E655E655E653A
%653A643A653A643A643A643A643A643A643A3A333A343A333A343AAE3334
%33343334333434AEFD06898389898983898989838989895E8989895E895F
%895E895E895E895E895E895E655E895E655E655E645E655E643A655E643A
%643A643A403A3A3A403A3A3A403A3A39403A3A3940333433343334333433
%AE3A333A343A333A335E89AE898989AEFD1289658989895E8965895E8965
%895E8964895E895E655E655E655E655E655E655E643A653A643A643A643A
%643A643A643A643A643A643A3A343A333A343A333AAE3334113433341134
%34898389898983898989838983895E8983895E895F895E895E895E895E89
%5E895E895E895E655E655E655E655E645E655E643A643A643A643A3A3A40
%3A3A3A403A3A39403A3A393A393A393A393A333433341134333411AE3A33
%3A343A333A335F89AE898989AEFD128965898989658965895E8965895E89
%64895E8964655E655E655E655E655E653A653A653A643A653A643A643A64
%3A643A643A643A643A3A343A333A343A333AAE33343334333433343AFD09
%8983898989838989895E8965895E895E895E895E895E895E655E895E655E
%655E655E655E645E655E643A643A643A643A403A403A403A403A3A3A403A
%3A39403A3A3940393A333433343334333433AE3A343A333A343A335E8989
%8389898983898989838989895F8989895E8983895E895E895E895E895E89
%5E895E895E655E895E655E655E655E655E645E655E643A643A643A643A64
%3A643A5E3A643A5E3A643A3A39643A3A333A343A333A333AA81134333411
%34333434895E835E895E835E895E835E895E835E835E835E835E5E5E835E
%5E5E5FFD165E3A5E5E5E3A5E3A5E395E3A5E395E393A395E393A393A393A
%113A333411343334113433AE3A343A333A343A335F898983898389838983
%895E8983895E895E895E895E895E895E895E895E895E895E895E895E895E
%895E655E655E645E655E645E655E5E5E645E5E5E645E5E3A643A5E3A643A
%5E3A5EFD063A333A343A333A343AAE333433343334333434895E895E895E
%895E895E835E895E835E895E835E895E5E5E895E5E5E895E5E5E65FD0E5E
%3A5E5E5E3A5E3A5E3A5E3A5E3A5E3A5E395E3A3A393A393A393A393A393A
%333433343334333433AE3A333A343A333A335E838983895E8983895E8983
%895E895E895E895E895E895E895E895E895E895E895E895E655E655E5E5E
%655E5E5E645E5E5E645E5E5E645E5E3A5E5E5E3A5E3A5E3A5E3A5E3A5E3A
%3A393A3A3A393A343A333A343A333AAE333411343334113434895E895E83
%5E895E835E895E835E895E835E895E5E5E835E5E5E5FFD0E5E3A5E5E5E3A
%5E3A5E3A5E3A5E395E3A5E395E3A5E395E393A393A393A393A393A113A39
%3A113433341134333411AE3A333A343A333A345E83898389828983895E89
%83895E895E895E895E895E895E895E895E895E895E895E895E655E895E65
%5E655E645E655E645E645E5E5E645E5E3A643A5E3A643A5E3A5E3A5EFD08
%3A393A343A333A343A333AAE333433343334333434895E895E835E895E83
%5E895E835E895E5F5E895E5E5E895E5E5E89FD125E3A5E5E5E3A5E3A5E3A
%5E3A5E395E3A3A395E3A3A393A393A393A393A393A393A33343334333433
%3433AE3A343A333A343A335E83895E8983895E8982895E895E895E895E89
%5E895E895E895E895E895E655E895E645E655E5E5E655E5E5E645E5E5E64
%5E5E3A645E5E3A5E3A5E3A5E3A5E3A5E3A3A393A3A3A393A3A3A393A393A
%333A343A333A333AA81134333411343334348983895E895E895E895E895E
%895E895E895E895E895E655E655E655E655E645E655E645E645E643A643A
%5E3A643A3A3A40FD063A393A3A3A393A393A393A393A393A393A393A393A
%393A333411343334113433AE3A343A333A343A335FFD0E89658989896489
%65895E8964895E8964895E8964655E655E655E655E653A653A643A653A64
%3A643A643A643A643A643A643A643A6439643A64396439643964393A333A
%343A333A343AAE3334333433343334348989895E8989895E895F895E895E
%895E895E895E895E655E895E655E655E645E655E643A655E643A643A643A
%403A3A3A403A3A3A403A3A39403A3A3940393A393A393A393A393A393AFD
%0439333433343334333433AE3A333A343A333A335EFD0889658989895E89
%65895E8965895E8964895E895E655E655E655E655E655E655E643A653A64
%3A643A643A643A643A643A643A643A6439643A6439643A5E3964395E3964
%395E393A343A333A343A333AAE333411343334113434895E895F895E895E
%895E895E895E895E655E895E655E655E645E655E645E645E643A643A643A
%643A3A3A403A3A3A403A3A39403A3A393A393A393A393A393A393A393A39
%3A393AFD0639333433341134333411AE3A333A343A333A335EFD08896589
%8989658965895E8965895E8964895E8964655E655E655E655E655E653A65
%3A653A643A643A643A643A643A643A643A643A643A643A6439643A643964
%39643964395E393A343A333A343A333AAE33343334333433343A895E895F
%895E895E895E895E895E895E655E895E655E655E645E655E645E655E643A
%643A643A643A403A403A3A3A403A3A3A403A3A3940393A3940393A393A39
%3A393A393A393AFD0639333433343334333433AE3A343A333A343A335FFD
%0A896589898964896589648964895E8964655E8964655E6564653A653A64
%3A653A643A643A643A643A643A643A643A643A6439643A64396439643964
%39643964395D3964393A333A343A333A333AA81134333411343334335E3A
%5E3A5E3A5E345E3A5E345E3A5E345E3A5E345E3A5E345E3A5E335E3A3A33
%3A343A333A343A333A333A333A333A333A333A333A333A333A333A333A33
%3A333A333A333A333A333A3339333A333411343334113433AE3A343A333A
%343A333A3334333A3334333A3334333A3334333A3334333A3434333A3434
%333A3434333A3434333A3434333A3434333A3434333A3434333A343A333A
%343A333A343A333A343A333A343A343A343A343A343A333A343A333A343A
%AE3334333433343334333433343334333433343334333433343334333433
%343334333433343334333433343334333433343334333433343334333433
%343334333433343334333433343334333433343334333433343334333433
%343334333433AF5E333A343A333A343A333A343A333A343A333A343A333A
%343A333A343A333A343A333A343A333A343A333A343A333A343A333A343A
%333A343A333A343A333A343A333A343A333A343A333A343A333A343A333A
%343A333A343A333A343A333AAE5E34113433341134333411343334113433
%341134333411343334113433341134333411343334113433341134333411
%343334113433341134333411343334113433341134333411343334113433
%341134333411343334113433341134333433FF895E3A343A333A343A333A
%343A333A343A333A343A333A343A333A343A333A343A333A343A333A343A
%333A343A333A343A333A343A333A343A333A343A333A343A333A343A333A
%343A333A343A333A343A333A343A333A343A333A343A3364AE8989343433
%343334333433343334333433343334333433343334333433343334333433
%343334333433343334333433343334333433343334333433343334333433
%343334333433343334333433343334333433343334333433343334333939
%FF8989895E3A3334333A343A333A343A333A343A333A343A333A343A333A
%343A333A343A333A343A333A343A333A343A333A343A333A343A333A343A
%333A343A333A343A333A343A333A343A333A343A333A343A333A343A333A
%343A335E395EAE5E895E895E5E3334113433341134333411343334113433
%341134333411343334113433341134333411343334113433341134333411
%343334113433341134333411343334113433341134333411343334113433
%3411343334113A3339333939FF
%%EndData
endstream
endobj
101 0 obj
<</Filter[/FlateDecode]/Length 16353>>stream
-H��W{o�8�/����#�X;$E�Tz8@�n��Ԉӽ��Pl%�V�IN����#�W�y��{m�Il�3��73��_G�A0�/�;���ۋ�<����Ur\�˶k����abH!��J��i��:�,�L����bz]�YK~*�w����? -�������a\)�ŵ�r�^�mÓ���#rZWy����}�����9g�2o^UE۸Y�� �Գ���fZf�wKl���g�U�!�u��,����Ev��L������:��6�?��$�
��t�.�G�g�����d����eF��dro�t�l���:ZY�&ϛb�M��D�V�P������Z8�uy��ЉNv�@�'c��T�������@x��U���[�/���y�D���2:�S�ѓQ��yS/��e���U~�dS��������Z�ލ�E��bq�"���gb�}\?�;�/QR���jR��e��Q�Yɪ�W�,W=*�*k�]�h~Q܀�!F[�۵'(ͺk4���������������
�e{M��ܨ���ѾZ��F��8cd7T/�>@�=i%��Ih��)���0�e�QV��U�-���]��ߜ��>X��,��O;+���i��o�.�?��D㲨f -U�b��TS�4�ZjO+m._:ԑ�u��ԧ>� �K�߇�\��(�?�Ӏ�x���14����Q��AҐ���� -u]!��0�@q��҈��G.щ�%'"�Dژ���_���+d���tA�9��ʆs�kH�x�+,�
-�����o��μ�:R��;�|���,���욜�TQ�Q�1�Y�cK@Y�:�� �(��$N�p'q�x�Jt�/Q'iJS��� -���T��T�t~Q�6� -��IU�� ��>:��<tY�n�sENІ#�� -��!1:\��M�č� C�{ѩ��\ϕ�p]��̥<� �yd�.��5W�s0`wm8���"P2���u�"���'��%P`.ʌ�DSj�&�Bi��$tP�H��GujԨB�z �E� -T������hBfol.�? -=D�(z��c�x�A�p���C0� jL6ǚ�����h@W�vV��af��"�����p��1�ڑc6�C����%mQ�쨒kk��qs�c�
b��q�(���������ڀ��]\C�A`9[\���3L���o>�L1�I&��8c�@�ɾ� -�7�`�g�?ь�������{��l���r��Y��.����y*�&Ys�?�>yqZ��;�����yY�=Ⱥ�).�]� -���ɥnD�2��{�e������8��y923%�T8��u[�!S�U�^�����W.��,��{/h��P��y�ꫮ�m���[ײc;F�'i�H�l��,0;�D�\S"ARn�_?��(Q�Jg��&�X�R����@0k�q���6���u���'��Û�a��;
��O8)�C��Ѥ+�=��}ϐ��p�yK@�A ܒ��*),�}B�ڼ����ݚ��'�<�������w��/�F�7\���c�n)#��B���m�a�S7.��hP<"R��>�Um�&M���@K)��8��*�_�ڃ��&�a�}Bs�o<0���k��r�+����$?=H �E�%g\� �E��E��E��o`�v���V[d����MC��^{+>����v!$X����/��K��8$Q/���QC!������:��R��'�,}�N_�����ɒfTe>-Vhk��6�?ʌ�X͑��H�h��3���KFH`���<1���K��X����ʬ��b! ^@&�em�Xy��Dy$�<itP�7�Q�\<(�^��EpSb�nq���{.b�V��;�8DDq�p�pjWw�
3\A -_4��աƳ!���`����s��V?�g�,$w"�L��43���8غ����uV��d2�4�yh��iXH�mOt���F;�m����5�3I������;�wD��KZ�I��b2:]4;=W��T�xX��k�D����9�U��
��4wz����"Np��,�3�| -p$�<�#;8=��Y�s�B&�~$��7���'E�2Q�w�D���nɑ�vw��~$R@�j7��*-���"�]r�y�PY����u��G.�g�u� �ք}�ju�}��(�7`Wf�X]�H��#�{hޚ��u���"b��F�����>���*�Yj��w�����K.��%��D��<�*���>n(# ��K��Gj��
��U�������:�l9��9%���U�2�>��y��58溵���a�G��?��$���ڝ���8��x��(����v^y��0K)���B���؍n(ۨ�2��F/��a5�)��OYMjs�at^_�+�Q/2J�i4|��Ww����E��eT�O����*�Gf�5�5�O�IZ�a����]�\uԕ� "
(��%��xw�N�w��3��i�-B^���7��gb&c��k�}�%ס��K��V���������3})��t�0�u�_��u�e�u�`�,�벐i�3��#�YoPo�#+5A[���a���8���X��Z1��Fޤ�c�̗��n(!�0֛�兪���MG��`��</���Ip ��QV��b1��/R�m_"��2 A5���������t}�F_Kڴ�~<��M� (Ebu(}�O�ufY tPl3��; -���j���"ƣv��dݬ0[ �� ɹ��~��*S��z�M���1>́f����; -�a��!�����)��5�4N�v�u�[-�o� �:gf V�4D�]�leu�m�G�j?1:-܊�jCu�[��@OY�s�cXĉV��W
2[E6���QȥѤ��� -�܂�j�%Z,4���t�E�H�:�"˄�,�u�]�2���\��vm�2����%� -7�V6��ĬIu-�qB�G��m|���[���-V���
㢅��+��NF磋���j�����e����FI��Xi�v4�~���5z� -� -����;�S�$k���D�3x@���Ӌ
�S�t2O���\'6��;�w�`=,V71cpy�&�7"�$���R� -ztͥpr�d���ZjZv+PQx�ӻ��.h������O̙�3�=�@���m�hM�b���M�W�f�#{������"���r����������� -� -��C���~kF[��(�'�+D���>�n�Ŵ�����`P'��G2�����������jU��)8$ףA%8Tb�FSEk�� -�<j�,|;r���B���>��;G���ז5�s+m�����ݺ�⬝j����^.�-�N���T���x�t�N����Ժo���p@�;`��0Y�ڄ�e�L�d]��K�i���O}sd
EM@i:�9���������E$P�A�w^6��Vڈ7���� - p�J�h�z�.:�w*������U��`SEx����� -��*����@�x �L �캂��Z -czj0Sr��ca��U)�F����|L>4�+�����9���]P�DH�}x�E�,���P�*�b�4�Y,Q�L�LJh��>s�d^�{�д(�����1�-c�O��aA������&V��jt"_���J�>͜��b�B�Bt��4�)r��F&ɔ>�P+������(�u��FF%��I��I� �X�&��K�B>.��6��V -���|Ny���2�hh�'��Q��R[V��Be�*S�F�'ƩL�/��͞�Hc�&��K���~���X"g���W-k�F�\i��ԯ>��L�:���x
���F��jgo'7k=��RQ����2�u�kѹ� D���b7m($e����i�� -5+�Yb@����Pv�z���|�&F�O����3�b�Gvܑ�*_��Y�ξv?�`qP����}�Z;�2�HNj��c�W`yH�mQ�ٻ�|-�V��c/�;6�@�����z�����k�R���n�0^� ��8l�:ߨꀗ�b��pu �'��t˦�?���@iX�X@�U����a��#�L�&69�Sݴ���S�qG}�1���,���!I�K�~y�Q��a���,/�)ўW�F�ۑ -��+L�*BB+�Q-"�j�Kf2��dQxnS� -*L9�ҍ��1o-I���+9�����l�'9�#w��967����0q���JsU6G�D�ճ -N���-�lj���g�����Q���P�n,�q�7�E��O���{�&��Ԯ���8zO -�w�>���1��9�X1K~�eל�\�����3���+;H ����J�"��[1�CBf=������q��� -�7�%䜦|@Vp��F䔛k�w�2-*� -:�����bJ��i��2�ӅK%B���X3��y׀����� �xv�囖{G�<&�uj�i"��`X Y�7��Q]����� -�/ʢk)�����w����+�p�78L1#ᗠj�a�Y�@�9j8��3T<zcjRn/�`��F?�Z�ܳ��U�҈��W��7$:��\������O���z� ����k�H��n�9�_���=\
1���m7U�=i�0p���#�#X�%�$�9S��!������yQ�: �B�a���q"~��>0aʹ��9�q�>:�(3щ���:c������.���h� -s�;��_5���g�öEZ���E�k�+��3�
gl}'T���4�a��G+mwH���0�I�篁7w���A�x� -?X�7�����9h��:?�(p���tW���Y�NK��O����QN0�s5�Gp5��E��d!���ɼ�he��d��_ž��f����gw�XkST�JS�r����yw䧥㙦(�h�,���=�������wGg!��Ϡ�j@��������mLӞd�����Ò�r�&�66�NϏ�I=S 1M�o� -1��tq�~�Pwm�}Ko���C�~�}n]��"RU#F�$�b0�֡w���Q�db�ݐ(M�~V)R���~CKL|VI�]�+CvzǕ�z�ؤX�jU�rw�e��k���ʍ�$����UX�x� c��J�M�\���,�]�d�m���(I�9��H���h�d&9B�O�4�7���rd��<[r��tR���ѿd�]L�2��BN"��\Wm�o��L��$
ݖ�4̤ƃӮy������G��:7�Ε"!��dܩi*� -'b�k�{�X�4�4��A��7D�mB��m���,�ѽ&GP��*�W��yIA���?i��3�75Z�S!f1D���ҳښ&��{��,/o4�D0n)C�;�+w�S��w�<�[�{+>כ�:3���x�����̵�ڈB�E��c�㔫������F;�ر�r3�)�8?�0Gn�2&�¨;�u)����h���q��|�0ڍݣ�u�K���90�X�th<�n,K�ř8����M���Q���C�و����c.��[�T����e���>�l���ٺ①_����NOf���{@���"uMn�T��q�akHC��#����ۼB��vi���}�I��k� �-���F#0D�g�CP�y��\�܀i�.�rR<�P��U���ON��eS� -c�"����&��Z (����N�xڃ\��Ǟ����%�"b�I��$��
�k~�ω�<���nn�h�mD����B8���v�|�"�fIi��L����e��y�
ʚ`������|�C�����H?��>��'�;K�E�П2E�K�\J��w�'q`�jc��o�(v�������ByAEW�OtI
�JB��$w03oݳ��9��+��6�9-*= -�����'�:9����_T@�X����ߝ�2yS��ߩ����1���ơ���0��U�{��J<�9�xf^��ރy����",�bZJ�KJ �7p[ߘD{6g�Ӑ_D���VĐ��rUT]�6RL������֓�es0_��d�HT.J��Vx�ձr0-U��t���U�ק>&Q^�M�~�M��l��8���Ȇ���-L�����b6ݠ�E�p�*W!78��XSn�� ��9r�J:��^jo0��]Ĕ�A�s;P5% �� �=Rݚ:0�e�EfN��EP�'����aj��|>e��x5����� r���a�%�>VK2]/�l�>�AST��v�I�{6�&%W~�F�e��,5@���s_ -�jq��i�� ��|_���J�;�c�Җ�
6]|h�}Au���]a*��mU����P������"�=1섺_圐���#�l��_n;�����K�O''���*�{�=����^��}��n���D{� ��Ԝ�7�fn�p�x��?J>�oNl������4F�����-[�2l��3�.;l詌o��8�\"��bP�-��71� �����d��;}J[��5�k�a,?��x���x�^hQ�Aw ��ܽE�T��E�\��C��`���J�lS*ޛf�KV�D�8In�aB� �����1�E�[Ţ��0���®R0�u���.;�G�}ل�� -AMagtg�R�3�7eB�q��.��撴4���V:)f�Wy��U-HK��`8sCQ�tۆ���*oOk5�(�,�f�%��+{E!+��t���rk�ި_W;��e�`�+
���1��DMR[�J�Q�-Ӳ����Ŷx(�*#�*Ҋ?h�S�u���O�(�ם��~y�CܖB�g��%h���A���~��0����= `�zO�w�G�o���SG�G�]3�ﯿh^��\� 1`W5�X*�c�ޒ ��a�����X��|��/�鎚��*�/�ZI^��R�U?�lQ($-8�l���',hm�x6[XZ�x-�5ֶx�Ƃ�U?I$�.���fP�+P�C�>��/R�l$��{%�'���J�b΄�r*��=�Z)S�*�H!��r�(�c�ɈdFܰ�%������N ؛Xw��W���{s��D��?�*�,Ǖ@<E��on<O�D8��I{)8|:��4+OI%�#W,��8t��{a�^B�䃑K|�����y�N�iu�4��óP�8�Bg�*�'�ږ�14aqɊ���
�$h���O� yb�����6.�9d�����Hw�j�(�v�ꚑ�$��3_��
i�i�tA�m�� -��`�x�Y\z���x�m8��
�Ճ�C!����!���RMâo�;&�9�A�O*��Wh�P��O�3�oX^�9��(��NN*`U�i�� -��[��{r�NInZhzj�8�'zm#� !�k틯��)�3�/�ZY97���'�MΝg,U���&���J8;�C���J�+��
�N�ܛ��Y�!#� Q����ۚ����V���+4����/�1J�c��C��p��ѣB��t�+�6)��FPM����s"��Vl��z)D���O� -���A��_�d��|���ެ��
����mMְ�9���x$��j���pB����C�����cs�A9r$���*�i%���ew8�%����_#+7(oU��&-_����<��-�ή�9�J���?}]�[�;tuTY��t�ߙrޡ^YY�lB�r���2�Q@3�)�H�4�b=��\�y�N�X�-�h��%� -j�3�/
��q
�_�={�4B��]�:Y��Wz^�X\%�B�+��)�A�k���������J͘��V���/��<)�1��/��tg�w�*Y&�pK3�F��ހ�z(ֶ���+�*D|K5�BʰSY5��� l��c�rr<�cr&5P��`�<�Abh���Vw�q�ɩy�S�g��?���ZT�3D����0:���5aa -�|Ԁ0������>#WחI*�6(-0c$�+�C��m�i8]'�-��C����Q�~��y�&L}�`uD�%W��R+a�o����� �����`����Ƅi�ވ}��i�_��S�g�M<�綊��0,�\T���'-�kSI��ݭ%�:���c-����8��?KFTխ%�uY�E���=�g8?����ٺt�X�J������\zPf�i��N���o��
��t��UW�x��K�}�'k�(֩2����/�Ue��w���~!cF��0cFDs�1�i-��"�õG���k������K6ȡ#�x�[&�k�=!�x�P�xQ����[���5;�J��������rVv��} 7 -�<�N��c�ɜ����@�4/�du����;p∙[����?:BY�TbWT�?N8$tN�}I
M�E���:���� �����L�*����� 8��K�ʩ3@�1���+� -v�s����]���~���@�2���<��� 2��K`����`~�tĉg�r%�d]]���2>�{ӀC��e�5P-��jT��:��J5�Aj%|��"W�����ME}���V���ѱl���ߏ���&���D�V�����'k�O� -��?U~�[��8������Nq}��j>�`�n1�{�I8M1-��xk�
-���|�C�N��fj�K��J���=o��53�6&ξ-�Vj�j{��ݑ��������!w�q
��[��"L�a^j�xF���4���b��6}�鲢��(�N����Y -�d��\�gF����h��Re2�}���9`P�ը�A+���|=��?5�5i%.ࠖ����e&�vjU�=yA�}a�AϿ�i���TЙa������� -U��Y
i���Ө}Q��{��Hʌ��5va�j��� ���\6+q�]��_1�C����C�a�ܔQ�[&�Vg��@~6K�]�'V���������4\�}��<m�Ҥҝl%�ۿrzvx��$����"��ݗ�����U-[89�K2��I��}��eK��rkiC�S��]�s��|�A�+yV+OD��]a�h2��t%Κ$�;U��n%d{[�Z�ًl���9y�� rr$3�;T��慝!W$����|{v�'uU �i9 ����<��<���B�8irb3��r���d� � W�+a���f�q+��Pw-eZnKoRF�[���Y쮕X�t����Ӄ<�|u[�)I���-٤�g��:��]��O��\n���-ty��Q� ���9b�c�Ǚ,���wo���{UD�)µ��x}4�\F��ؒ�_�x��o�N��4/�bs��d6�]u\��$�i+<>����'�):������ -&FS1{��p�ݾH�y@�K
;i��a,t-�{
:
`R݈��^B��7�J�G�(�J�
GI�/�`�(���7H��Cʅ)H���J�#K����ՑNG� �tZGB�<�,�c(�J�RB2��]JH���Qb�1�������c�@��Y�u�-%N)�E$���9����������.�L q2��sf5T������]1 N�!�RҢH%u�u������zo�'���e��cf��R<c�^��1�tv���S��.���)D����h���ez9Ī�G�>�R"�e/�v��3W�;c�����(ww�QUY=#8Z�Rbz�*�W���l�rs��m2��I[�sߋ��a) -H��W�Z�J}�<�@ `���BD�/E��z� -�����d&�L��|�Ƶ�^��v[+��3���cA��;�L�gȅE��F+�')=��f�?۹�V��J��i%l$zF>wZ����?)� -B99*Ǯ�ǒ?ohŨ�@����9�geV8�z-�����3T�����ήҫ���E#�Ѹt�� �$YOiͶV(���X
E+�;�U&��-�&�G�O�sD�}����ULAQ9� o�Q�p1�>2�ת`���x@r����a���^?�e����Ja���V�D�i*X����9�E> -hB�-�C�!E��6X9y��i�+�V��`����ޕ��1B�R:?��##�ބ���iH��M��+C�P�v�9���B��#�Ѹ<�t�l�xW���jj&�(�(�AsIJ��^Q;GE=��o�@��M�e��75��I&��䭔�K�gul�b�O�@o� ���M6!���V��ۄԄ�9�� -����+�T��������2$3��?iF���9N¬gT���&��p�{`���J2k��Ȱ�Z��Өz1I�����Fu���v#8���4f�IQ��ꩲt�f�'/�h��g�B��6���L�z���0�
0&g�*��X��Ǩ��6j�÷�Q8��R���k�YF;z�}�Q0�L�W%���O�?�_.?����w���������c<�K -K����+����$c�����q�����B+��M�)�@�;�_��������(�ɼ�{!ƶ�%�+k��V�% -(��ݾ������D�T�_Ϗ�K
��n��L(�ax`�L0�!K#EB�/��\p#�C�O~�������L
+^:�] FX�l&B�6R���qU�Eo=(���:�ybY[�B�n�Q<�s}�R�d\0��S�N�ma�d��86y�����JHC���w���t
_ܠ��)��[�7?���d��7�Y�ۏ(�,���:Cq]w�6q t%{CK{<gf��-&*O������æ%A��z��b -�"����C�x�=�.a�w�"^.,[�F�Ί3:�oMX�S -HV?�Ҕ[7�>"w��+ɐ�o��Ɩ�fU2�I�g$���G����$Y`չޖ������r�����) �[Л
g��&:|@Y��&�v�5�m>N����(溼/B�$++��8��<�JB8�v B��nwZ�p�]2���`�Ze��6s�#�� -�&�6��9OJ����F�g$�s�6���ͰBm�'���I�5?K'w�]L*_�q���`�$GD@��뮌[Y�4��D�m_�qV��v���]I���|O%A�����g�T���3�e"?����j��S`WR�����r�$��/�s��7�]I�j�@oR�+�2�pR/s-������l����W�Z�<��^K)kK�qPP��A��ad�����-m�&MX���A<�~��m/�A��������!�^Qr�wd!\�����C��AƬv��6� -Bc�aw�Cq5�E�ܿ�I�Ap8�#r�8{���� �v����5�P�m)�
0�Ƅ�dl���k$n��W�2�iO�Ǫ��)��(eta�z%�K� �o�Κs�"B�[� -�PW������h�^6(�wv�����>�Z-p@�K��F�.�Yr�ji��@>Κ���0A���cH�a@�I�b2��b��FS9X��ŀ�e@��J�$w��b@!u �� -�r��r���"�`z���5�g,]h?6qW�J���w%�RAF�lb�J��N=��1aXR�0�VJ*g� -�.S���d�,�FN;ck`T -
F�Ţ��g�J)U?��|�\�>^<�g����RQ��T*j��LJ�f���p�n�O�i���KՖǗ���_�1�5����v�YK�b���S����vF0��L����.�D[i��h&b���q�����ѣqT�離��],2�ۨ��1�&+��;�QIf���o�+4��a���!F�C��ct��ǖ�Q�az����'���џ�0j4�t�.֯�J3 -2f$���+n4̳�>�h��c��JF=�ƚ�L�FC����etD3 -���n�:�'�7�*���e�;}2`�3�"9`�����,�/�>�w'��I2��L�.���4��Yk�������V�@'�$�t�$$ڶ��'�d�}C�{\�4CS�Tl7�.�h��x�RJ�����i����2��&nR.��HB��ܟT({���u�պ\�ۻH���5�K���Sf�ȓ�۾t�Ls -�����Y�H�S�R`b��S0 -oe��#��Ӕhέ�3�ߎ�;c����G�&e^��>X���˩T�9w}�y��V,��L��sp�R�]�>t�3��1շ%]�.��e�w�Uk!I��ۭ�A��+O�dg'ceX�p�ƻY�Ǻ!#�����Z��0 8����8��p�R}�+��۠ō*2��w%�9>�f@����� -�B9�FM5�t�ɖH�<ONb��|����-����JjO� -�´u2����r�$�Z�N�E2v��I��gg�b&C�E���6��{�N@`*7.À�Kу��>�K/�b
�c�61�qEE����P��ӕ�z�=FH�0�,�}[D��:nb� -u2K�P�׳5)�A��
� �\�>��}�f��t��s@���8|z������#jpU�h����YK�XM�"�Y-<�շ -��1����iD�C��[�/� -j�G��р��'�3�\P�jn��VJ�%�X�Դ���[��줊Ϲ��Q} -�Pp�[߅��^t�-�ͯ��6U�YI�a���XQW}!�&���K�1�ܷ�J���c�#�#,�\��tO*�<�_z^�XHC1c�,���Ms�`�I0������������o1�-~��'G�R3�l}b�G����L"vW�U�G�TZ=�K�J�ED$j��W�2�i[iA>({�e�r�&�μc -v����Ht���y��٬��J��ע �,��a����;�-���*xw����� P��YN�v��d�C�w���"�[l|�+��n� -�H�s�p*m�E -/��8m�� �a>w�в��ep8y�1��Ɛ��-��n$� ��L1�� -��(*(���I���������v+ �SwR���$����G��&^w� s��6������l_�)z�����1�F){�g�>�U��t�I0�R��s�
�X�2�*�Q}|R����.��7]O�ӛ�?���)N`c� e_dS������P�A,v#����EQ�x�6!�~���u]95[US��B�+��������[�k#��o/��z��N<�+�w������7����f�t˩P�W����?�{��b R�} -}Ql�#O*���RqOސ��� !�|�}Lz�<і�(��T����@����ڮ�鎇ǰVn�/4�B8D�%X,��e���¹����������dr�N�aE|gV�D��A� -��=-[yz�K���b*q&������:�@�w��lU�H�]��8cTE� -\��.�g�vtث -F(���d�,��#,;2�f �c&@3Ϣ+�D���2ľE�c�f�Ǘ����-�8��g��=6�~��
��^���(�����J^J�����J0
F/c�5�v�6r��m�Iv���6���e�d�~K���;bGt�:�x>��%���He�}�~=�<�sCf|Cb����n��1h�h������u�O�kaNs@�m|�<]LWd�6���ɹAPCe�TJ�����*�.p�º�DI�E�� -X���3�
�^=��G���"�՞z]P���� J�����G�~�(D���`|��A�E���O�)�@��
N����;�$X�aDh�(Q8R��-u5�YGe/�|@Հ%
���)���x ?����d���G]�V����{G>ᝋ���z���4 H�b��Ax%�Dhw�1cUI��������<�
��s��x�T�G^��&�J������"� ���,V� -��m�g��J�4l�F����� ���2M0K7�L?``��n���`��?�����ڈ�|t.x`ċ��Pԏ�I�HcmA>In,��x�7�@Cjy��b�;*� -��"@\ -s�_��?���/p̆pS�Ojȹ^?�]Xc�]��:�e02?tޱ���wV����r����5�Qw��� ܬ�[��ܼtC\� -�Ҳ��n.!V���t|���o@0�%���!6�t����_�`E�����y)j��܂��ߣ��cΖ�?��w%�~ъ�"�!�� -�Ǯ�9����"��6�9�'��cR�ͱ?��Ǿ���إWTd�_x~0e��s -͚���*>S+�ǘ:���'XL��!�.<I�=$�N,v�tB�ld���p���A�0Y��6��Ao29�,���rm)�䢊\�R<��
e S��F˅MG6�N�1�6�H�&旼 -#��1d��#�<�TE㿓S����t����@v�3M,?,A!���iH���� -�(��Ge@@����s�����&Gf���3�t����z뭪�{]��aD�e|:r[Q�����u",���,�eT2زܥ�@��M��ɱ�sy� -!fKa���vD���J��ShWڮ�[</�NΑp��$u��Mi�i7��Ca3;�j�3�r�Z�� -�l3ל8QCc+��N�lCF����k�
���O��r�NM -Ob?mJeR���r_6�L���A�Ž,@4~�]�1�qq�^�2�>e�58g߰�X�G�hx~$��&r��s{��4��tj��W��Zl��V�w|i3�w�0(�oJ�\j�C���R���\�}v]�B�������������L��~��prJn����*� -��\쌏��J��vȢ$�|5�5|Wr&���(�T_g�|o�!�tB=���,(��7�M��p�~��_����CK�,�*� V�� -&<ؑ�Ҷ�9��!��m�QƓ� �X"ٗ��
Q�� �ì!��J�I⠛2���Y��p -���r)`��.����Muq,i3�rW�&V&������h�S@�pPގ~=UZuo�z{X�ED<�h�#j!_֤���E��#��ۤ~��O��OhC�I} ���U�"j�$��w�e�L�$������>����-+�����zc�%R��nr�;�Mr����^g��� -(&����N�� #�{����A�)0�m�ż�\��*��RA4���顝>�p���ZA��Q�,AԢ>,0�W -t���M3�0�hNiȓFlz�x��������4�9�\��d���\�����+�v��ʵarM/�Х����*�Z�#����"�[��[�d\+���
8�!�gDY��7���<��9� �gy�S -��2�a�G��GCi"=���
mJ蔦�X�՜~�>�ͷ�fGĖ�+cW�-�'*XՓ)b�xa��t��Xes�ә�8�օ�.�!�h��{w�DY*D�NT�z���bA: -�/Up���Uns~�]�g��DŹ���t�}��
�*�3©d�is2R1�4߫���R�?S!��J+3p�
�+���rM}�O�[�<k%����^���س0�խ�sX�A}�"�M��
c���� -��A�\T%{%f�I�ª+�o��!�Q���d����!�"DT�Y�q -Y;:��r# -o��C�M�~h��+Ɲ��{�Kx�7���Yף��*�<oq��1Y��L� -.�b~R<��%��|A���FPk>�����c��ח�M:�&C�c�Cڣ�� �"�u��������Y.]�д�A[${�������s�ߏ�C�1�(�U�|���[XV�Z����v$T�*I��z~��<6�㫶>8( -�t��q�6�Fy�y��O��v�I�D�C�H�)�Q� -�"��֧�uJ����H�����ج'���q��רw�g�I��`o�I�5�v��qBlF�S�o6+$��ş����$�o6N�������~1]i����Gљ����#��t�|0V"��+�PP��KL��p7^��R,/�P8V>x�M@K����j�m���@�AǶ�
���q��Ð=+0���]��ÒI�`�~�(�I��6)�>J$�h(���d���D�%�%l4)C�����Ȧ�,g�������Y�Q?~7z��C���*ˈ���t,m&GAx�B���-Uc_�b0�cc$�K5挵Pw�{O����%�u�Ŵ$��7+?wq�Z\P��I�=p&�^�08�zF��Y}VQ7 ���1��_d�[�<�v�vX�͡_=s�ko%P�U���mTiK)��ff�k����ضX"�3SOI�*J�P~>�+��'���>hJ�q��*!R���ļq
�16D��^w�
j%_^�&S �[�vz�:��9�`d_<y��P�������R ��d�|2�uW�i�ݹ(�,Q�0SHא{T.�V���#�b9I���<��%���F����$k*���P�e�^1H��&ٍ�>��Dvs5��
�#�H����� -�N6�Dϗ�s�52�,Fd -:�&nX�$�;�&����,�D� �����^�:
kL��63_S�X�e��b��'��ӭ�Sˮ��>���4�X|�7��C���߇ͱ�3�~�۟������x�}��?C�.�9�4���? -0000000016 00000 n
-0000000173 00000 n
-0000017815 00000 n
-0000000006 00000 f
-0000071289 00000 n
-0000000007 00000 f
-0000000008 00000 f
-0000000009 00000 f
-0000000010 00000 f
-0000000011 00000 f
-0000000012 00000 f
-0000000013 00000 f
-0000000014 00000 f
-0000000015 00000 f
-0000000016 00000 f
-0000000017 00000 f
-0000000018 00000 f
-0000000019 00000 f
-0000000020 00000 f
-0000000021 00000 f
-0000000022 00000 f
-0000000023 00000 f
-0000000024 00000 f
-0000000025 00000 f
-0000000026 00000 f
-0000000027 00000 f
-0000000028 00000 f
-0000000029 00000 f
-0000000032 00000 f
-0000071546 00000 n
-0000071577 00000 n
-0000000033 00000 f
-0000000034 00000 f
-0000000035 00000 f
-0000000036 00000 f
-0000000037 00000 f
-0000000040 00000 f
-0000071359 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000071430 00000 n
-0000071461 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000021251 00000 n
-0000071662 00000 n
-0000017867 00000 n
-0000018278 00000 n
-0000018651 00000 n
-0000021668 00000 n
-0000020447 00000 n
-0000021438 00000 n
-0000021553 00000 n
-0000019435 00000 n
-0000019748 00000 n
-0000019960 00000 n
-0000020173 00000 n
-0000018716 00000 n
-0000018874 00000 n
-0000018922 00000 n
-0000020686 00000 n
-0000020749 00000 n
-0000020623 00000 n
-0000020560 00000 n
-0000020384 00000 n
-0000020892 00000 n
-0000020919 00000 n
-0000021037 00000 n
-0000021143 00000 n
-0000021322 00000 n
-0000021353 00000 n
-0000021742 00000 n
-0000021928 00000 n
-0000022916 00000 n
-0000043060 00000 n
-0000059487 00000 n
-0000071687 00000 n
-trailer
<</Size 104/Root 1 0 R/Info 103 0 R/ID[<8019B39EE7AC43E19CDBBFD116167D16><C0875923880D4488A67E3FE32296825D>]>>
startxref
71871
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/omnibox_https_valid.png b/chrome/app/theme/omnibox_https_valid.png Binary files differdeleted file mode 100644 index 09f38b5..0000000 --- a/chrome/app/theme/omnibox_https_valid.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_https_warning.pdf b/chrome/app/theme/omnibox_https_warning.pdf deleted file mode 100755 index 93c7d63..0000000 --- a/chrome/app/theme/omnibox_https_warning.pdf +++ /dev/null @@ -1,627 +0,0 @@ -%PDF-1.5
%����
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 37 0 R 69 0 R 101 0 R 133 0 R 169 0 R 205 0 R 241 0 R 277 0 R 298 0 R 315 0 R 332 0 R 349 0 R 366 0 R]/Order 367 0 R/RBGroups[]>>/OCGs[5 0 R 37 0 R 69 0 R 101 0 R 133 0 R 169 0 R 205 0 R 241 0 R 277 0 R 298 0 R 315 0 R 332 0 R 349 0 R 366 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 18597/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdf:Description rdf:about="" - xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" - xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" - xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> - <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> - <xmpMM:DocumentID>xmp.did:FE7F1174072068119B30B52A3A51FD83</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:99be064e-5c86-a745-81f1-cab0495880ac</xmpMM:InstanceID> - <xmpMM:OriginalDocumentID>uuid:75ba2b12-7b76-db41-b11a-ff68b2c7e410</xmpMM:OriginalDocumentID> - <xmpMM:DerivedFrom rdf:parseType="Resource"> - <stRef:instanceID>uuid:b267fa81-1b74-fd43-a593-6eba44aa2010</stRef:instanceID> - <stRef:documentID>xmp.did:FD7F1174072068119B30B52A3A51FD83</stRef:documentID> - <stRef:originalDocumentID>uuid:75ba2b12-7b76-db41-b11a-ff68b2c7e410</stRef:originalDocumentID> - <stRef:renditionClass>proof:pdf</stRef:renditionClass> - </xmpMM:DerivedFrom> - <xmpMM:History> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:FD7F1174072068119B30B52A3A51FD83</stEvt:instanceID> - <stEvt:when>2009-11-12T15:16:29-08:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:FE7F1174072068119B30B52A3A51FD83</stEvt:instanceID> - <stEvt:when>2009-11-12T15:18:34-08:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - </rdf:Seq> - </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmp="http://ns.adobe.com/xap/1.0/" - xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> - <xmp:CreateDate>2009-11-12T15:18:35-08:00</xmp:CreateDate> - <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool> - <xmp:ModifyDate>2010-04-12T08:33:47-07:00</xmp:ModifyDate> - <xmp:MetadataDate>2010-04-12T08:33:47-07:00</xmp:MetadataDate> - <xmp:Thumbnails> - <rdf:Alt> - <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>196</xmpGImg:width> - <xmpGImg:height>256</xmpGImg:height> - <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADEAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FUDfa
zYWVVlflKP8AdSbt9PYfTiqRXXmy8ckW8awr2Y/E39PwxVLZtU1GY/vLmQg9gxUfcKDFUKzMxqxJ
Pid8VcrMpqpIPiNsVRMOqajD/d3MgHgWJH3GoxVM7XzZeJQXCLMvdh8Lfht+GKp7Ya1YXtFjfhKf
91Ps30eP0YqjsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVWyyxxRtJIwRFFWY7AYqxbVfMs0x
MVmTFD0MnR2+X8uKpGSSanriqJtNNvrs/uIWZf5+i/edsVTaDyhcMKzzqnsgLfieOKoxPKNiB8c0
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</xmpGImg:image> - </rdf:li> - </rdf:Alt> - </xmp:Thumbnails> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> - <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <dc:format>application/pdf</dc:format> - <dc:title> - <rdf:Alt> - <rdf:li xml:lang="x-default">o2_ssl_warning</rdf:li> - </rdf:Alt> - </dc:title> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" - xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" - xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> - <xmpTPg:NPages>1</xmpTPg:NPages> - <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> - <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> - <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>19.000000</stDim:w> - <stDim:h>19.000000</stDim:h> - <stDim:unit>Pixels</stDim:unit> - </xmpTPg:MaxPageSize> - <xmpTPg:PlateNames> - <rdf:Seq> - <rdf:li>Cyan</rdf:li> - <rdf:li>Magenta</rdf:li> - <rdf:li>Yellow</rdf:li> - <rdf:li>Black</rdf:li> - </rdf:Seq> - </xmpTPg:PlateNames> - <xmpTPg:SwatchGroups> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Default Swatch Group</xmpG:groupName> - <xmpG:groupType>0</xmpG:groupType> - </rdf:li> - </rdf:Seq> - </xmpTPg:SwatchGroups> - </rdf:Description> - </rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[368 0 R]/Type/Pages>>
endobj
368 0 obj
<</ArtBox[4.0 0.0 17.457 17.125]/BleedBox[0.0 0.0 19.0 19.0]/Contents 369 0 R/LastModified(D:20100412083347-07'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 370 0 R>>/Resources<</ExtGState<</GS0 371 0 R>>/Properties<</MC0 366 0 R>>>>/Thumb 372 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
369 0 obj
<</Filter/FlateDecode/Length 318>>stream
-H��SAn�0��+�6^��p
�rBU�C��p�JI�~w���T�=Zώ=��z�������F�������;Q�ix;������L����M7���f9�2̄�L.�Z�.��ϭJ<惏5O�C�L����hTUUV��'���o� -��� S�/ĵ&��fe4���鳸Ʌ�s�Q�����%G�Y�'��I�Q���j�lAW������ -%�Ѱ2�Va� -��[%z������v1^z�I��+� -8;UNVk5'4N!!<3+4Tbo~>
endstream
endobj
373 0 obj
[/Indexed/DeviceRGB 255 374 0 R]
endobj
374 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 -VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< -PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
366 0 obj
<</Intent 375 0 R/Name(Layer 1)/Type/OCG/Usage 376 0 R>>
endobj
375 0 obj
[/View/Design]
endobj
376 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
371 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
370 0 obj
<</LastModified(D:20100412083347-07'00')/Private 377 0 R>>
endobj
377 0 obj
<</AIMetaData 378 0 R/AIPDFPrivateData1 379 0 R/AIPDFPrivateData2 380 0 R/AIPDFPrivateData3 381 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 3/RoundtripVersion 14>>
endobj
378 0 obj
<</Length 946>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (omnibox_https_warning.pdf)
%%CreationDate: 4/12/10 8:33 AM
%%Canvassize: 16383
%%BoundingBox: -5 -10 9 9
%%HiResBoundingBox: -5 -9.45703 8.45703 8.125
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -9 -9 10 10
%AI3_TemplateBox: 8.5 7.5 8.5 7.5
%AI3_TileBox: -287.5 -355.5 288.5 378.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -40 25 16 1283 686 90 0 0 96 181 1 1 0 0 1 0 1 1 0
%AI5_OpenViewLayers: 7
%%PageOrigin:0 0
%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
379 0 obj
<</Length 8508>>stream
-%%BoundingBox: -5 -10 9 9
%%HiResBoundingBox: -5 -9.45703 8.45703 8.125
%AI7_Thumbnail: 100 128 8
%%BeginData: 8372 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD23FFA8FFFD07A8FFA8FFA8FD52FFFD06A87DFD07A87DFD06A8FD
%4EFFFD19A8FD48FFA8A87DA87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8
%A8A87DA8A8A87DFFA8FD44FFFD21A8FD40FFFD0CA87DFD04A8FFA8FFA8FF
%FD0FA8FD3EFFFD0BA8FFA8FD0DFFA8FFFD0BA8FD3CFFFD04A87DA8A8A87D
%A8A8FD13FFA8A87DA8A8A87DA8A8A87DA8FD39FFFD09A8FD19FFFD0AA8FD
%37FFFD06A87DA8A8FD1CFFA87DFD08A8FD34FFFD09A8FD1FFFFD08A8FD33
%FFA8A87DA8A8A87DA8FD22FFFD04A87DA87DA8A8FD30FFFD07A8FD25FFFD
%07A8FD30FFFD08A8FD26FFFD06A87DFD2EFFFD07A8FD13FFA8FFA8FFA8FD
%11FFFD07A8FD2CFFFD04A87DA87DA8FD0EFFFD06A87DA87DA87DA8A8FD0F
%FFA8A87DFD04A8FD2CFFFD06A8FD0EFFFD0FA8FD0FFFFD06A8FD2BFF7DFD
%06A8FD0BFFA8A87DFD0FA87DA8A8FD0CFFA87DA8A8A87DA8FD29FFFD07A8
%FD0BFFFD17A8FD0CFFFD06A8FD28FFFD04A87DA8A8FD0BFFA8A87DA8A8A8
%7DA8A8A87DA8A8A87DA87DA87DA8A8A87DA8A8FD0BFFA8A87DFD04A8FD28
%FFFD05A8FD0BFFFD0BA8FD07FFFD09A8FD0BFFFD06A8FD27FFFD06A8FD0A
%FFFD09A8FD0BFFFD09A8FD0BFF7DA8A8A87DFD27FFFD06A8FD0AFFFD08A8
%FD0FFFFD07A8FD0AFFFD06A8FD26FF7DA87DA87DFD0AFFA87DA87DFD04A8
%FD10FFA87DA87DFD04A8FD09FFA8A87DFD04A8FD24FFFD06A8FD0AFFFD07
%A8FD13FFFD05A8FD0BFFFD05A8FD24FFFD07A8FD09FFFD07A8FD14FFA87D
%A8A8A87DFD0AFFFD06A8FD24FFFD05A8FD0AFFFD06A8FD15FFFD07A8FD09
%FFFD06A8FD23FFA8A87DFD04A8FD09FFA8A87DA87DA8FD16FFA8A87DFD04
%A8FD09FF7DA87DA8A8FD24FFFD05A8FD09FFFD06A8FD18FFFD05A8FD09FF
%FD06A8FD23FFFD07A8FD09FFFD05A8FD17FFFD07A8FD09FFFD05A8FD24FF
%FD05A8FD09FFFD05A8FD19FFFD05A8FD09FFFD06A8FD23FFFD04A87DA8FD
%09FFA87DFD04A8FD17FFFD04A87DA8A8FD09FF7DA8A8A87DFD24FFFD05A8
%FD09FFFD05A8FD19FFFD05A8FD0AFFFD05A8FD23FFFD04A87DA8FD09FFA8
%7DFD04A8FD17FFFD07A8FD09FF7DA8A8A87DFD24FFFD05A8FD09FFFD06A8
%FD18FFFD05A8FD0AFFFD06A8FD22FFA8A87DFD04A8FD08FFA8A8A87DA8A8
%FD17FFA8A87DFD04A8FD09FFA8A87DA8A8FD24FFFD05A8FD09FFFD05A8FD
%19FFFD05A8FD0AFFFD06A8FD22FFFD06A8FD09FFFD06A8FD18FFFD06A8FD
%09FFFD05A8FD24FFFD05A8FD09FFFD05A8FD19FFFD05A8FD09FFFD06A8FD
%23FFFD04A87DA8FD09FFA87DFD04A8FD17FFFD04A87DA8A8FD09FF7DA8A8
%A87DFD24FFFD05A8FD09FFFD05A8FD19FFFD05A8FD0AFFFD05A8FD23FFFD
%04A87DA8FD09FFA87DFD04A8FD17FFFD07A8FD09FF7DA8A8A87DFD24FFFD
%05A8FD09FFFD06A8FD18FFFD05A8FD0AFFFD06A8FD22FFA8A87DA8A8A8FD
%09FFA87DA87DA8A8FD18FFA87DFD04A8FD09FFA8A87DA8A8FD22FFFD07A8
%FFA8FFA8FFA8FFA8FFFD07A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFFD05A8FFA8FFA8FFA8FFA8FFFD07A8FD1EFFA8A87DFD07A87D
%A8A8A87DA8A8A87DFD07A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8
%A87DFD07A87DA8A8A87DA8A8A87DFD07A87DFD04A8FD18FFFD4DA8FD15FF
%A87DA87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8
%A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87D
%A8A8A87DA8A8A87DA8A8A87DA8A8A87DFD04A8FD14FFFD4FA8FD14FFFD24
%A87DA8FFFFFD27A8FFA8FD13FFFD25A8FD04FFFD25A8FD16FFA8A87DA8A8
%A87DFD1DA8FD06FFFD20A87DA8A8FD17FFFD08A8FD43FFA8FD18FFFD06A8
%7DFD43FFA8FD19FFFD08A8FD5CFF7DA8A8A87DA87DFD5DFFFD08A8FD5CFF
%FD07A8FD5DFFFD08A8FD5CFFA8A87DA8A8A87DFD1FFF93BCFD26FFCAB59A
%FD13FFFD08A8FD1DFF94FC8CBCFD25FFB58CFC9AFD12FFFD06A87DFD1DFF
%93FD048CBCFD22FFCAB5FD048C9AFD11FFFD08A8FD1BFF93FC8CFC8CFC8C
%BCFD20FFCAB58CFC8CFC8C8C9AFD10FF7DA8A8A87DA87DFD1BFF93FD088C
%BCFD1EFFCA93FD088C93FD0FFFFD08A8FD19FF93FC8CFC8CFC8CFC8CFC8C
%BCFD1DFFB58CFC8CFC8CFC8CFC8CFCBCFD0EFFFD07A8FD19FF93FD0C8CBC
%FD1AFFCAB5FD0C8C9AFD0DFFFD08A8FD17FF938C8CFC8CFC8CFC8CFC8CFC
%8CFC8CBCFD18FFCAB58CFC8CFC8CFC8CFC8CFC8CFC8CFC9AFD0CFFA8A87D
%A8A8A87DFD16FFCAFD118CB5FD16FFA8B5FD108C93FD0BFFFD08A8FD15FF
%C3FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB5FD14FFCAB58CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CB58CFCCAFD0AFFFD06A87DFD17FFA1FD128CB5FD
%12FFCAFD128CFCC3FD0BFFFD08A8FD17FFC3FC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CB5FD10FFCAB58CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%CAFD0CFF7DA8A8A87DA87DFD19FFA1FD128CB5CAFD0DFFCAFD138CCAFD0D
%FFFD08A8FD19FFC3FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB5FD0CFF
%CAB58CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB5CAFD0EFFFD07A8FD1BFF
%C3FD128CB5FD0AFFCAFCFD128CCAFD0FFFFD08A8FD1BFFC3FC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CB5FD08FFCAFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CB5CAFD10FFA8A87DA8A8A87DFD1DFFC3FD128CB5CAFD05FFA1
%FD138CA8FD11FFFD08A8FD1DFFCAB08CFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CB5CAFFFFFFC4B08CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB5CAFD12
%FFFD06A87DFD1FFFA1FCFD118C93CAFFC3FD128CB5CAFD13FFFD08A8FD1F
%FFCAB08CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB5C3FC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CB5CAFD14FF7DA8A8A87DA87DFD21FFA1FD248CB5
%CAFD15FFFD08A8FD21FFCAB58CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB5FD17FFFD07A8FD23FFCAFD208C93
%CAFD17FFFD08A8FD23FFCAB58CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CB5FD19FFA8A87DA8A8A87DFD25FFCAFD1C8C93
%CAFD19FFFD08A8FD25FFCAB58CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CB5FD1BFFFD06A87DFD27FFCAB5FD178CB5FD1CFFFD08A8
%FD27FFCAB58CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CB5FD0AFF
%A8FD12FF7DA8A8A87DA87DFD29FFCAB5FD138CBCCBFD09FFA8A8FD12FFFD
%08A8FD29FFBCFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFCC3FD0AFFA8
%A8FD12FFFD07A8FD29FF9AFD148CFCC3FD09FFA8A8FD12FFFD08A8FD27FF
%BC8C8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFCC4FD1CFFA8A8
%7DA8A8A87DFD27FF9AFD198CA1FD1BFFFD08A8FD25FFBCFC8CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFCC3FD1AFFFD06A87DFD25
%FF9AFD1D8CA1FD19FFFD08A8FD23FF9AFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFCC3FD18FF7DA8A8A87DA87DFD23
%FF9AFD218CA1FD17FFFD08A8FD21FFBCFC8CFC8CFC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFCC3FD16FFFD07A8FD21
%FF93FD128C93FD128CA1FD15FFFD08A8FD1FFFBC8C8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CC3FFBC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFCC3
%FD14FFA8A87DA8A8A87DFD1FFF93FD128CBCFFFFFFBCFD128C9AFD13FFFD
%08A8FD1DFF94FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CC3FD05FFBC8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFCC3FD12FFFD06A87DFD1DFF93FD
%128CC3FD07FFBCFD128C9AFD11FFFD08A8FFFFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FD0BFF93FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CC3FD09FFBC
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8C8C9AFD10FF7DA8A8A87DA8A8A8
%7DA8A8A87DA8A8A87DA8A8A87DA87DA8A8FD09FF93FD128CC3FD0BFFBCFD
%128C9AFD10FFFD15A8FD0BFF93FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC
%8CC3FD0DFFBC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CFCBCFD0EFFFD14
%A87DFD0BFF93FD128CC3FD0FFFBCFD128C9AFD0EFFFD13A8FD0BFF938C8C
%FC8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CC3FD11FFBC8CFC8CFC8CFC8CFC8C
%FC8CFC8CFC8CFC8CFCBCFD0EFF7DA8A8A87DA8A8A87DA8A8A87DA8A8A87D
%A8FD09FFCAFD138CC3FD13FFBCFD128C9AFD0EFFFD10A8FD0AFFC3FC8CFC
%8CFC8CFC8CFC8CFC8CFC8CFC8CFC8CC3FD0AFFA8FD0AFFC38CFC8CFC8CFC
%8CFC8CFC8CFC8CFC8CB58CFCCAFD0EFFFD0EA87DA8FD0AFFA1FD108CC3FD
%0AFFA8A8A8FD0AFFC3FD0F8CFCC3FD2AFFC3FC8CFC8CFC8CFC8CFC8CFC8C
%FC8CC3FD19FFC38CFC8CFC8CFC8CFC8CFC8CFC8CFCCAFD2CFFA1FD0C8CC3
%FD1BFFC3FD0C8CCAFD2EFFC3FC8CFC8CFC8CFC8CFC8CCAFD1DFFC38CFC8C
%FC8CFC8CFC8CB5CAFD30FFC3FD088CC3FD1FFFC3FD088CCAFD32FFC3FC8C
%FC8C8C8CCAFD21FFC38CFC8CFC8CB5CAFD34FFC3FD048CCAFD23FFC3FD04
%8CA8FD36FFCAFC8CCAFD25FFC38CB5CAFD38FFA1CAFD27FFC3CAFDFCFFFD
%FCFFFDFCFFFDFCFFFD0AFFFF
%%EndData
endstream
endobj
380 0 obj
<</Filter[/FlateDecode]/Length 15611>>stream
-H��W�r�8��;`k*[vU$�������ьek-%�V6��HX�X -���X��4���SdWK�ڽ�8~"RQ��CVȼ4�'7ԙ ����G��p�NN�9��`�Ӊxϴ��� KN�����
��k�V���m��y���}��|���߀k�+� -�:"�.���sT��"H�P8�Q�V�ZkX�L��r
�� <��@ -�(�LHu���QO���c� uv����2~{X#;�B�g�ǝ�2�&�&"R�7�2U~T�ԚkCn�{P�Dk�4����d� -��i�V -���d�-� -��J1`}%��n@�^��Y{3F��3�l[`?])⽤��D0��e=e(,5u.�&�>m&��P�a�YZ+<ߜ�h8�> u��e�� -kch���W,��/hEs��#�p�O<�A煓/��p���Stv�=��Ά�a�@,t[�a^8'v_D�{w ШYeí7Zu8�̅U.�͙b��j|z� -7��.����>���B.P�� -�v�pu�wt���$De���8
0�Ӌ̢�Inc�'����VؘtNa�I�HV{I��A]69^���)ۊXQ�5��ɠh��Cylk2d���o�g�=Ԍ���������}��V�;t��1�"4AI'�&pF�5ж���Q��gP��jIx�)��D&��0}�pO���x��z�p�a�Y��1���8;8�Ŗ���_4:���a�y$n��$ȷ��kBÇ=;�oP01߄N�/��I���H�{#���'��)��Y��6��<�V7�#W�q� ��q;�_W�� -��Ȝy����_�/��Wd���.UO��4>�6P�:�z/.����lOns���M��*Uk�C�,���8�/v%�/O�ճ<���#��(՚�C>������yd��YG�=M��1��<�[I�i1�k�2���{�P�!p����_��lpsU�^ -��]�
�ed/x���㖸����Kc9%�
��E�6e~�@��;���+�:'�)��?z
�w�rM$�q�E�r�`����Zb�����e��є��h�L�<fѯ<o\�_��*�������v�[��k��o���k�I=<��h�b�Ԏ���+��#<ה����B*��y�Ǯ���=��H���F�>\��"R5�8��59̨Jmj�P;��aݜ~[�8�^��')�,��Y�a��f~��L�_#���,]�,�M2fu��ے�6Db�>[�{���("��ȳF�]��2���B�E_;%��5�� -`Ҏ�� -ׇ�:RN�l��x����ܱ��>i�������:� c�=��X^�#���t��L�״�{/�E�Cga�H\]�Hu���ί�1��8���7W>���5����ִi���,m���K�X�j?��:ϻ�V�f�;�w -SHÈ�i����~g ��t`\9�;0L�v��4�����F�H��UN�M� -AQ�_���4�J6�T- 1F͘��Ժy��j8�Š -�Յ���8N���s��\����c�f?�p��:����D�O����w�L.9D͝��?�/�0#J��{GG�_f�ϙȗ� -io�"���4Y� �Mۤ��С5��~�8�Uӳ����5��N�벸��ab��d\�̬��F��`C����q�v鲄��lQ5 -qX�A�džN#�)��Ʊ
]�I,"\��bqC��̣�q�Iq�� -�ae�͉J�&�0san�^�����\��X^��]h�M�Z�{�w��up�u��u��u��Ryc"����?
U���Ai`J��efZ��"qUD)I�$_x�!�E� ��Ӻ��J;W۫Y�e.�l�%�*�(S�o�I����&� �?o0����m�ޡ��ʶѝ�h���E�eϝ:�Mfo�:C�����G�R�� ������њ����$���cJ%����;�SPPke�9��<|$�蠟n�d��t:��Cm�q���q'��Y���`�-VWIB�${�X� ����E��S��G(O;G,�e'F�5"�f�d9�������Q;�U�_mb�}L�W^��+���0������ə��i.���#����
�� -��}��^��T��v�WVt��aЯ�5���4���A�i�*)h�ԃ�˨=��3�7��N -��MB�E��c�= -�!������Z��ۑ;ȀR���2�}pRp��QR<$��l����}�T�%3$��`&�9�G{K�m���r��5�!�$�b<8ʘ����+$�mK���z�ˇ@�[B��O�s�"},ȡ���?^��%�@~�XZn�&�Uc���!�D�G]�������r�+�G)d -�L�� -b �(��-F@�$�����(�`CK3�mȐ�wl]^���~e�n9���PV7���6ٻ��K�B9�C'��tY���Ox��-���� ���n����Hw$��=
�4>�fvS��ƊRe7�]��9�oRV�q��0݄���C��;C�+v���=�B��'Y� -;t�I%�~����̆���#sѭ�����y�����r�z3� ru�'�����O����?^}�|���=��߾�П>^�����2�����ӯ��?�}���_o&������<��W����������<�L� �cp����{o�wx�=�1ؐ���}��
���hIKҌ�� ��J�� /��GC>�����0.��O7!�"�s%�c����HO�h�?��O[ -W��5ha�m�ICX\��&��� �96�o =��؟��`�;J�i�-D�W^���
����U -Ի=� - -��7o��<53�E���<Aq���tjR+�t;�x�A1��?�~�ʑ��)$�z��.��~NqpäI�[러���l�6@��q"�M|~ϜKQ 7)Ezk��tvqa�_������-P�B^8Q2WCP)6<���e�6����.�^�B�� -rx�W|�×���� -��J�?Gk�t��f�v� -��a��Y2������� xK�5I��r��ذ_��]�Ɂ=��*��߇x*6��=� �u��+CU�v~ȱ91 -D�up�>�l_|�ZMػP�c�Ö;M�>-g}�Zl� �hZy���-����T 4rʣ���`����F��9� ��Y��\�\�U�)�3�� -,�e�O�wR �}��"[rP��l��nZ���,@y�ϡ���x -�%�����Z��:�������
���'!���M�����L3.�$�H��[wze��w�����Y�W�č�Ϧ�����p�lxg��kp�»�x��Q���N��ԇ@�iX/v����35"q��O�b�y�, -^1b6N��^��t.Қkxjsq�p�d}�����N�]���3ζo�q�b�
4T�G��������=L[��������ے��C�`ƗwR���Oc��n�-�����!�Elld��wc/�B�y��*�8�FRϥYH�ٽ��)�W�&��º����l"�hjζ�F��=���� -+w�w-���<������c��eV���]JE���_���Ɨ�*uE -No�ի���G���H��&{.�NO�VU>a���]�=%�tZ���F��LjhNw"a0bޡ�prB�*d�vv?Ġ�癔�oT�蒇���N/jN � p]5�|����TV�Aн0=}��q�5J�/��+K��1+��۹��4�5
Uj��E$����1n9�$�����Ϫ7N�>�����}�B�A�:1���{C\���}#�����չ���D� �{E��*��Ʈ�#6{���o���{��'O�3{ϬYk͑��Zϋ�e�r=R�7�Q<������@�������<��$m�}_�vA�^D��1]�������y�����w����2�P$��e\.�����{��0� 5"��3mLJ떱�Jő���u{��S�O��NT�*����p��aL���r��N���W���$��8��tބ6G� -�����H��\�d�m>6���������s�p�����MB0�E�HK�<#lJ�|o�� Zs��vg���]���!�/��ف*k����"Ks��ߌ�'����"r�V�������UOju�Ƞ�J�U?T�,O�d���sy�T�`AI&M���Z#QF$�0m�H��gP�U�o�wH<��ꍼ3) *�F� ��m˅���m��v6ՙ�l�p����3����^�j���қ�{���6�m C��/�>�{6*D)�Q��ꀎ��mk��;C|]�PC��Te���s�!viǣR�}���EK��-��K�=��b����ǭ��W�B^9���T���,��ܶ�I�����k�7����]`�䰠�'X�pmk���y8ι$[�=9����O�7��@5u_`]�ײ����/�9 a�7�%9��%M�B.㚃Š�O�}q�ai�[P;�r�mpDW�3��*\?�y�Å��^_2q�;��r+T�p1$��k���Y|� �M
[����}"ӊ�(��QD��b2/�HQ��&٥�N�%v���˃�fY��jh�4��,P�b�o!���p=U�@Ie��?M��o}����8�c�_`��£Y����wJl�p|�
CG܀����y�wwH��,��r�u��ԩo!�mx��j�E#�i���R�I�/{��y�m6��a��0f���8�����#��f2G
m�mс�ƾt�գ�pJ����V}1��ř��&c;Ib���m6��F �7��ֶn7{���/�����Ő�l��/���' -����z���F�Y=��`Ϳϝ1�G�"RcSP�s��!G`K�Iio��36�Jx�H1wC�8$�6a8�ذdWQ2w�pXr�I�/��GZ�3=O����Ϛ9sܚ.����l�ʖW��t�$��ۯO����8�]��Ի�a�7n���q�PM��MIbu -�� -kA�vUݽ���C��9�ͅ.4R'���}hA8�S�&"ָ�#��[�H�����n�{����r�<� -��>�d�\���Y����$�l���� -�k���ϗ�X?�~b��r���C[yR���Ple�#N -بI�M�����M�SΣiT��6M˕&��%ؕ"��Ǻ�u����ww�t�3��n�AE}v�Ѐ�K����+�h^}(�3�Ʉ���^���<&t���o�%���}�
=��A8��; -����Dk.��������/ ��U˷F�B�ҵ�K��5z���~����f�={j���JP5�| �� -�X�v_�2�Ɖ�8��5��2���zu�^��ʶ��Z���xWn�%�6��Dީˊ��w��� ��/9���pu2oǻb�����7�f���˯�w=���8�uR �4nr��%��~���]� U�Qg3�b�LU�����|�����)V[�⧮>!���T���Uϫ�ׇg���>8�,�ˏ|��5{"3�k�w2��$�wF���U�tm�����Y`�Z:�Q�����W.7}�;%�������@m �B�}�����{0�^��Y�P#y�vt|6��Kz�\���6�&�
�Y�N�n*Έ'�\��l?�Y����O��Y��{��o�F���$���w�.�Ȥ��:Y� -e�ۅ
�\_����n
�ۡў�no'ߵA7Რ��>���`=�Npht2AC��;}�+o�F�n�kTDB��8O���7$T��P�RԼ]��Z%�V5L����7~]�y��꽖K����7��,�����r�۪��Z��sw[|My�EYm��~���_�0�����[]�q��<rtU7�{�I���R]�~j�<z��˼�nL4%�'�o��+���ʸ�p]>`���_��L�a_q��/1�V�c� -n{��hݷ�8��c�M|}�r �r�2��q�'�M�q�Y�A�Ϯ�f��w~���u�<c��'��M�nJ��+E�O�Lj�(V���A/�+��7�xt��|�u_.\���s����8.�V�Z?&7�7��~T�/z?���c�`�i��f�~�������a�!:��/��2�~�|��YV^]�g���_9��=de�v~����'��Jτ:ޗ�ʬt���ߖ���XT��_�`��5�r)���ʬ��8��S�cjx<��!ށ���`e�+Idh�;]����nO1����V�BM������ʞc7Q����N���1��2+o*�u��9-����]ݾL,?�2l��Ƽ��/�S�sMʖ��+��>�uܾ���~߉���Y�ҭĕ.�y� -���}�2%���]�����I:����*ۓ��Kj���%)����^\�;�X3<IW��b8�F��h�+f*
{�J��(���*���؍l�϶�AKDZ�S^Kʞ��k�ċ��l�[���k~r>V�/z'�uŭ
�%Tu��>PK[�UG�}�i��`�R۸����6�N<"S)QC�C�@Hm�&~ko"٪hZ�P)�1W� ]���VwR3�}�����A�=���W�`����(����<����� ��1C��@A� -��UVa|�B.P4 �N� YQ� �c��7�)�=�0�7��B�ɆQ�=6�O+ą�.>xa���c�l����L.�.`�}�&�Y":�=���0�=D����#��M�ӬH��!6�s��0��M) -\XJ]�T�-/ස@' ɆN�C�\��VS��<�|- -(]��1��P���1a -�}_��+�PD;i�%�" -�i���5����A?Rɐ�KjN��zĔ��҈IK�])BL�
�HSiа�z��=�L�?���(��rIJ�1��o�8a�]Q�1\����;,x�Ȏ���ƶ�C�[�z��&�Ĩ�����<�1$F3_Ўm�D���3Q -J�Q��r���ݵ�?5�mD�g��E��]N��d���N���?��in,皬^�d��ϝ��!#�����܃_6�1>.��o������������E�X�����r:_���� $w;�'�ڜ� -E��V���d� -t�J|-=�U��S�A�3_������ܝ��J�pj^���X�O���n��d8=�'��1��菤�s���1۩��G��2���_��l��_�?{�V���^�=N_�ɸ�4{�������rt�p�t�⹎�Nc��"�i����N��� -���S�� ǩ^�2�J�z�֍3r=��O���wY�ez����*\� - -�ū*z��M��b�[M�"��!�� -��~� ���9f�pcw��L0u�eO����bO>WK�������ha+����ok8�}�okB��< �:Z�y���,k�a.,�D�#`�i���L����g�����#�{��p�ݎH �2 )��(��b�0�^-����4�&�
��uTl��?�<tE��}�r�D�%f1���荥\:{�KHR��+��,=o�y\G^:�VrI��H�$?o��RO%[) r�R%$��ցPz��l���b�:mӢ��>)aH)�'(�:g��9��#N ��k!C�L��Z
���/�r0�ԉ8HX!I~��:ݺ��Gᰘօ���tM�gK����oK��iF��1'u|�g�|���](��9G!8LL�?>��B/�P�ǣ�Pr��ի�7Djao&�.^F��;�W��t#钖�����J�Ɵ-�fqN>}f���Zl��9V��/�¸(0-ghks"4�,F�����`d���s &��.��9K�8� ��� -*\q:K_,RW{�/�&P�l�z�o���?Ӓ��SJL�9 -H��W�V�L}�<�@�I�#� -`��]��� -���� -NKzʎ����&6u����Ŷ���d�X���7ڰ�IDp�M8@MȜcט���1*AT��X��Ă �xdҩ,$�aA����8+/�d����c�u _W"���[B`{?��@.�ο�oA�\�eЦ��J� t��&|�0\f(���!�~�4���(Db�07�d��c�}ࣀJ�_��0g痁�7A�%Yy1�rRo2fm_����R`Z��0f�ʕ�w���ILb/�N,N.��P0�r�VC����0���ΊP� CYy��$��^Ύ��(�������Y���P֕+}��8,��f� V+J��6oke���8I��/��LT냧�K6Q��,M�E���_Qؽ)p�D�շ��.��pDR�X*vO�VѾ��X.Es �����(���W^J��GBU����2�drW��iF�_��'a�3���t�a�4;릞F�'�QA�b��9�Q#��cM\N2���_���#�.p���Np�$�}�ǣ�����5�#������ǿ�QA�3�h�>�0�������)`L�������a�Q#v�6j�D<�p&�$^�i�YF���l��F���^��j�.�Y_.��E��\U�}g���Ku�.��@� -��N���Q�JJPj�vT9Cʹ��'�_�ZORp��t�j����K�o_��TR;K�<��Z�B��)���?G). "�S�%��6\���l�ۅ��ډ���S�q�_�KW_>���)�c�Sy�m���A��<�F���ei.���n,z�&0�%`�~0]��8_=�������?��C��W㻓N��K����du�~�g��*-�0-k�)g�����x�b��?U�L�͔��w�`���N&����w -v������Z�܊-�"`���a��<�7�PH���2AG� u�Hجs<����W�{��Gd�2k^:�] FXRo�&"�m�#���ZH>xP /8������emP -��1F� /�麧 � ��` .U���4J���� -;x� -I�`��:��i�z��{��UP}���]�S@�k�s\�Bh�n��]�C� -"$攃�p��ЬJf�/�ጄ�t�� r�:��*�73�>��_�\n��us -p�V -L��*ne5�|5�ya�Y��J�[w%�����
J��_�VX5b2�0���ڷ�W�2 -W��z�������Q��Rѩ����l�,^r% j�گŶ�ӆ@{��m�͟�����
�[����cv�����!�"��c�1��\0ې_�C�C�E�Bӟj� '�}x�W��W��[�(�J%P�&��oKi��4JI�^���>*�7b�n��h�R:���8�^����" p|�\��� �9 -��GͲ�r}㖏��=�%�j�
2Y�Y7��t�S�?т��hg�mxLi���m�kBg�Uf2��b��Ʃ.}��ŀpe�N%rv~dAayI���I�Zr���R�`Z�*� ��\��>�] 2�q����*]K\ �O��` a�E��H@E��x���;�N�O|N��SU�N1ܕJ���ļ�0=����#aE�ۄ!�R�<v �0P�!@'k�P7r�ܟ�h; -4�F�8���T)��_����0�4�
ZN��KJ"9�i -���Z�}*��Zk(S��^�3������m4� -N�'���8�.s��Z�H���R`b��0 -�5���ñ���֜{�3���`I;���֚�ya}����-�t�1�#�"O6��.�x��sp��]�1bK��1շ']���j�k���!�7�۩�A�7Wpeg��~���Y�Ǹ!#��2�bC!��3H�-����8��c�P}Z(�����3�HHˊܕ����� A�wV�-���rRM�R��J�-�B��� �|�-v���U�!���dc�X����¦B�������0��ֽ�q㬕}!R9��|���ޅ��Bht���Ww0(�ɐ�гϊl�����LS�LL�`�ZLL� -+1C.E�b9�(E�K�����#�a�
�.�,G3P3Zk�\���� [}A��ԥ������-ޢ�2�B2Â���K�[��!�l���Рn:F�X廌�=ai�b�V��Q�3s�����z�m�e,��q�yK�$b��C,���e~�,�aʩ�y��:���|���+�_0}袄i&NO�w7aJ3q��ױ��ߔ���X�Q�� �W�ox�Ҧ�R,]�C��� -���>�E��>�؊�#�S,Z -�-0�\�ΐ���ԇ��U��2�eq$N��J -���:9�t��1�R�O��n�ɴ�_�����v�f����Y�\��[J5�av\�'''m)D��ߵ�j1a��xT���8�f�`>�Sl�� -���J�ۦKj/!@�/�0گj� -O���p*M�E -+��8k���`�B8f�����`q�c�'��M8���(AV�b��Ai�<ʹ�،ɾ�.�p�1�1���f�m*ijG�����Rn�Y�Q�k����m�K{*d�� -��>��p�*9�KV���X�e#�שנpE�(0@ �������V�����J�Z�S�l_h,�b,�P���i��:S��5��&W���n -2�eɤ��}ɐ��0nA1v��r0�R�C�J���d]B���� -��Dɬu~�g��ݓਇ�X�]���]�Y����d ꩆྻO|��O��x>�\��,�}�~�&��jJK}O9{��+;�p;�D{Y�iV���!�:�8%Px�����s��X�-
{ջ�[멖�B�
&SŨ�1���n5�R%�� -$��������y��Hk�\��wn1e�ua��E%���)m�K�h�C5ޥ��>�o(���ҟj9k�v�BÐ$^���X�8�t�!�;�Hc/ �x��w%��y�����y:^����=���Z���'Mi:�������r��C���o��lUTCTl�ީ�6�@��fuA)����o.�9|n��}�ݥ�����K[{ث�� KuIf3A����-a��A�Q�!ǡ#<����e�}�'V�s��X6$��X��)Z� �?��������E;elm�%'��K;uA�ş��#�Y�y˽����*r���O+Llv��Z�����s��ؒ,�P+�eZ��0���f�2����J���;ܘE -3i/=�M
��Wx�a#��� {
�i��g������L�d�09��k�lu�J�2��];��!�}I\��(�ൈ -��=���a%�4X���ƻ��Щj@ݗ����9����U�l��Q�i�qD�U�%�~�>�v��x �/�ZMa�J����8�*�g6��"-��s UE�;ڱ����!'�43=��fit1�j,��;�=jEP<lH�C�^W�����<M��D���d�/ez(��z۵jՐ�N$��J[~iS� -^=F�Ǵ����Ʋ;�_��a���fw�F���6K�8�u�M�,�-��k�4B����F�L�O?Ҵn�Q�~f��� -�/,��:�ͿEKK����ߤ�jJR����|��
�.S�F)�}��@q�X���<哪 -��E�#�P��؟��#�n賛�
����i�ҵĕ&|���%�t�l�ME�T6a���3εU��`�a��τNW�ַ��tu�M����������a�(��&�{Wry։^��7��)�/ʙB掆Ԓ��ϊ -�,�i�Y�P�K�*9�ӔbU��Pq*����h��4G�`�&�B��(uS{6!R\��ղ6�,{��n�&�<�y#q�R�+��gy R�{^ٕr�u+8� �]�)V]��U�Ņ�5C�4 �`ju�LZf�HV hD8���*d�J�&�C ����3ˁ���[ȗ)��1 �v�<��{�I��lI��O���w�!V��O�H�Ўv�M�l�҉{����3�=~�����'+���Yh���C��pQ�^�l"��!�:[���\t^}o|�5� � -��{xF��=�(���I�.�����;z�x�v��B;�7h��C����)��Y��%v)��_H83ci�<p{��7s�`��v���--��S�^ivg���-R��d����e*��2�3����fkM�'���w�L`�v
��Ӱ��vmE�6���]{+�ۮm���F -�t��Hq�2��[uTcx��#������=��ʓ�c��n -VFTL����A�@f1���Y�Д�q9̽{���Z[�P��H'V�1��2J�{���,�ᳳ%�\��Z��e!=�6X��@�D5���Q%�d[w�2������:���<3c%�ۑ�rYpY�c��l�h���#��ZC���+��M:�勞5�qQ!uc -x\�3�f�4J] -#I�����Y���B�"�z�4�5Yr�u_2p!�;��t3���&b��}s�k��k甐{.0��
�\����o��ϬR��:��)��q����]�+[���/,ԯ��:��wf�?ҁblS���V�f��0�a�5�5d��y[O��u���䫠"�{���#
�������vd�n��
�ا�v�����1˽�g+W���i�njϚ���i���-�*���UGkq��l��oe:T蹦������j���
݈�L�.\&�3�H���6s���{�]��췫���ּ�����5��I���:�;�%p�E2��C���4��C�����w��z����M8����J�?pv���+�9����� � -/�ڢptu�w�E����6��R�f0���I�s�Q�s)��
��I�X��uu4II���7���X�:y�ǐ�HoRSٷ���M�b���~�x��GO���h�t٪�-Cǖd���Z2�CC` k� -)VXU����^�� -~�8U&j<�EyU�bZ\3�"�*���b9�H�xg�Bn�3��'��� �>��*?B�(��
��p�SuUg���r� F��u�49\j��E��%=`��#*eI⌧#���!�E*<΄�wq5�L���N�&
ܡ/�|�fR�k+K|���rtD�����BMФ�\������C0 -l&LjT�!�d7��&��8A�` ξ����( 1=5�(13X�'��*$���$�� -0000000016 00000 n
-0000000350 00000 n
-0000019024 00000 n
-0000000006 00000 f
-0000057550 00000 n
-0000000007 00000 f
-0000000008 00000 f
-0000000009 00000 f
-0000000010 00000 f
-0000000011 00000 f
-0000000012 00000 f
-0000000013 00000 f
-0000000014 00000 f
-0000000015 00000 f
-0000000016 00000 f
-0000000017 00000 f
-0000000018 00000 f
-0000000019 00000 f
-0000000020 00000 f
-0000000021 00000 f
-0000000022 00000 f
-0000000023 00000 f
-0000000024 00000 f
-0000000025 00000 f
-0000000026 00000 f
-0000000027 00000 f
-0000000028 00000 f
-0000000031 00000 f
-0000059914 00000 n
-0000059945 00000 n
-0000000032 00000 f
-0000000033 00000 f
-0000000034 00000 f
-0000000035 00000 f
-0000000036 00000 f
-0000000038 00000 f
-0000057620 00000 n
-0000000039 00000 f
-0000000040 00000 f
-0000000041 00000 f
-0000000042 00000 f
-0000000043 00000 f
-0000000044 00000 f
-0000000045 00000 f
-0000000046 00000 f
-0000000047 00000 f
-0000000048 00000 f
-0000000049 00000 f
-0000000050 00000 f
-0000000051 00000 f
-0000000052 00000 f
-0000000053 00000 f
-0000000054 00000 f
-0000000055 00000 f
-0000000056 00000 f
-0000000057 00000 f
-0000000058 00000 f
-0000000059 00000 f
-0000000060 00000 f
-0000000063 00000 f
-0000059798 00000 n
-0000059829 00000 n
-0000000064 00000 f
-0000000065 00000 f
-0000000066 00000 f
-0000000067 00000 f
-0000000068 00000 f
-0000000070 00000 f
-0000057691 00000 n
-0000000071 00000 f
-0000000072 00000 f
-0000000073 00000 f
-0000000074 00000 f
-0000000075 00000 f
-0000000076 00000 f
-0000000077 00000 f
-0000000078 00000 f
-0000000079 00000 f
-0000000080 00000 f
-0000000081 00000 f
-0000000082 00000 f
-0000000083 00000 f
-0000000084 00000 f
-0000000085 00000 f
-0000000086 00000 f
-0000000087 00000 f
-0000000088 00000 f
-0000000089 00000 f
-0000000090 00000 f
-0000000091 00000 f
-0000000092 00000 f
-0000000095 00000 f
-0000059682 00000 n
-0000059713 00000 n
-0000000096 00000 f
-0000000097 00000 f
-0000000098 00000 f
-0000000099 00000 f
-0000000100 00000 f
-0000000102 00000 f
-0000057762 00000 n
-0000000103 00000 f
-0000000104 00000 f
-0000000105 00000 f
-0000000106 00000 f
-0000000107 00000 f
-0000000108 00000 f
-0000000109 00000 f
-0000000110 00000 f
-0000000111 00000 f
-0000000112 00000 f
-0000000113 00000 f
-0000000114 00000 f
-0000000115 00000 f
-0000000116 00000 f
-0000000117 00000 f
-0000000118 00000 f
-0000000119 00000 f
-0000000120 00000 f
-0000000121 00000 f
-0000000122 00000 f
-0000000123 00000 f
-0000000124 00000 f
-0000000127 00000 f
-0000059564 00000 n
-0000059596 00000 n
-0000000128 00000 f
-0000000129 00000 f
-0000000130 00000 f
-0000000131 00000 f
-0000000132 00000 f
-0000000134 00000 f
-0000057836 00000 n
-0000000135 00000 f
-0000000136 00000 f
-0000000137 00000 f
-0000000138 00000 f
-0000000139 00000 f
-0000000140 00000 f
-0000000141 00000 f
-0000000142 00000 f
-0000000143 00000 f
-0000000144 00000 f
-0000000145 00000 f
-0000000146 00000 f
-0000000147 00000 f
-0000000148 00000 f
-0000000149 00000 f
-0000000150 00000 f
-0000000151 00000 f
-0000000152 00000 f
-0000000153 00000 f
-0000000154 00000 f
-0000000155 00000 f
-0000000156 00000 f
-0000000157 00000 f
-0000000158 00000 f
-0000000159 00000 f
-0000000160 00000 f
-0000000163 00000 f
-0000059446 00000 n
-0000059478 00000 n
-0000000164 00000 f
-0000000165 00000 f
-0000000166 00000 f
-0000000167 00000 f
-0000000168 00000 f
-0000000170 00000 f
-0000057910 00000 n
-0000000171 00000 f
-0000000172 00000 f
-0000000173 00000 f
-0000000174 00000 f
-0000000175 00000 f
-0000000176 00000 f
-0000000177 00000 f
-0000000178 00000 f
-0000000179 00000 f
-0000000180 00000 f
-0000000181 00000 f
-0000000182 00000 f
-0000000183 00000 f
-0000000184 00000 f
-0000000185 00000 f
-0000000186 00000 f
-0000000187 00000 f
-0000000188 00000 f
-0000000189 00000 f
-0000000190 00000 f
-0000000191 00000 f
-0000000192 00000 f
-0000000193 00000 f
-0000000194 00000 f
-0000000195 00000 f
-0000000196 00000 f
-0000000199 00000 f
-0000059328 00000 n
-0000059360 00000 n
-0000000200 00000 f
-0000000201 00000 f
-0000000202 00000 f
-0000000203 00000 f
-0000000204 00000 f
-0000000206 00000 f
-0000057984 00000 n
-0000000207 00000 f
-0000000208 00000 f
-0000000209 00000 f
-0000000210 00000 f
-0000000211 00000 f
-0000000212 00000 f
-0000000213 00000 f
-0000000214 00000 f
-0000000215 00000 f
-0000000216 00000 f
-0000000217 00000 f
-0000000218 00000 f
-0000000219 00000 f
-0000000220 00000 f
-0000000221 00000 f
-0000000222 00000 f
-0000000223 00000 f
-0000000224 00000 f
-0000000225 00000 f
-0000000226 00000 f
-0000000227 00000 f
-0000000228 00000 f
-0000000229 00000 f
-0000000230 00000 f
-0000000231 00000 f
-0000000232 00000 f
-0000000235 00000 f
-0000059210 00000 n
-0000059242 00000 n
-0000000236 00000 f
-0000000237 00000 f
-0000000238 00000 f
-0000000239 00000 f
-0000000240 00000 f
-0000000242 00000 f
-0000058058 00000 n
-0000000243 00000 f
-0000000244 00000 f
-0000000245 00000 f
-0000000246 00000 f
-0000000247 00000 f
-0000000248 00000 f
-0000000249 00000 f
-0000000250 00000 f
-0000000251 00000 f
-0000000252 00000 f
-0000000253 00000 f
-0000000254 00000 f
-0000000255 00000 f
-0000000256 00000 f
-0000000257 00000 f
-0000000258 00000 f
-0000000259 00000 f
-0000000260 00000 f
-0000000261 00000 f
-0000000262 00000 f
-0000000263 00000 f
-0000000264 00000 f
-0000000265 00000 f
-0000000266 00000 f
-0000000267 00000 f
-0000000268 00000 f
-0000000271 00000 f
-0000059092 00000 n
-0000059124 00000 n
-0000000272 00000 f
-0000000273 00000 f
-0000000274 00000 f
-0000000275 00000 f
-0000000276 00000 f
-0000000278 00000 f
-0000058132 00000 n
-0000000279 00000 f
-0000000280 00000 f
-0000000281 00000 f
-0000000282 00000 f
-0000000283 00000 f
-0000000284 00000 f
-0000000285 00000 f
-0000000286 00000 f
-0000000287 00000 f
-0000000288 00000 f
-0000000289 00000 f
-0000000292 00000 f
-0000058974 00000 n
-0000059006 00000 n
-0000000293 00000 f
-0000000294 00000 f
-0000000295 00000 f
-0000000296 00000 f
-0000000297 00000 f
-0000000299 00000 f
-0000058206 00000 n
-0000000300 00000 f
-0000000301 00000 f
-0000000302 00000 f
-0000000303 00000 f
-0000000304 00000 f
-0000000305 00000 f
-0000000306 00000 f
-0000000309 00000 f
-0000058856 00000 n
-0000058888 00000 n
-0000000310 00000 f
-0000000311 00000 f
-0000000312 00000 f
-0000000313 00000 f
-0000000314 00000 f
-0000000316 00000 f
-0000058280 00000 n
-0000000317 00000 f
-0000000318 00000 f
-0000000319 00000 f
-0000000320 00000 f
-0000000321 00000 f
-0000000322 00000 f
-0000000323 00000 f
-0000000326 00000 f
-0000058738 00000 n
-0000058770 00000 n
-0000000327 00000 f
-0000000328 00000 f
-0000000329 00000 f
-0000000330 00000 f
-0000000331 00000 f
-0000000333 00000 f
-0000058354 00000 n
-0000000334 00000 f
-0000000335 00000 f
-0000000336 00000 f
-0000000337 00000 f
-0000000338 00000 f
-0000000339 00000 f
-0000000340 00000 f
-0000000343 00000 f
-0000058620 00000 n
-0000058652 00000 n
-0000000344 00000 f
-0000000345 00000 f
-0000000346 00000 f
-0000000347 00000 f
-0000000348 00000 f
-0000000351 00000 f
-0000058428 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000058502 00000 n
-0000058534 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000020518 00000 n
-0000060030 00000 n
-0000019077 00000 n
-0000019405 00000 n
-0000020824 00000 n
-0000020710 00000 n
-0000019793 00000 n
-0000019954 00000 n
-0000020004 00000 n
-0000020592 00000 n
-0000020624 00000 n
-0000020900 00000 n
-0000021088 00000 n
-0000022085 00000 n
-0000030645 00000 n
-0000046330 00000 n
-0000060057 00000 n
-trailer
<</Size 383/Root 1 0 R/Info 382 0 R/ID[<11519900F13C44E3909BCE97A59096AC><8DEEAB9D01344D2A9A0D58BC981FD4C3>]>>
startxref
60236
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/omnibox_https_warning.png b/chrome/app/theme/omnibox_https_warning.png Binary files differdeleted file mode 100644 index 40784f7..0000000 --- a/chrome/app/theme/omnibox_https_warning.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_more.pdf b/chrome/app/theme/omnibox_more.pdf deleted file mode 100755 index 5be83f8..0000000 --- a/chrome/app/theme/omnibox_more.pdf +++ /dev/null @@ -1,1227 +0,0 @@ -%PDF-1.5
%����
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 30 0 R 63 0 R]/Order 64 0 R/RBGroups[]>>/OCGs[5 0 R 30 0 R 63 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 45277/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdf:Description rdf:about="" - xmlns:xmp="http://ns.adobe.com/xap/1.0/" - xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> - <xmp:ModifyDate>2010-04-05T10:28:51-07:00</xmp:ModifyDate> - <xmp:CreateDate>2009-11-11T14:17:05-08:00</xmp:CreateDate> - <xmp:MetadataDate>2010-04-05T10:28:51-07:00</xmp:MetadataDate> - <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool> - <xmp:Thumbnails> - <rdf:Alt> - <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>252</xmpGImg:width> - <xmpGImg:height>256</xmpGImg:height> - <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAD8AwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8Ak/lT8zPMGg8IHb69py0H
1WYmqj/it9yvy3Htm5y6WM9+RcKGUh7H5Y876B5ijH1KfhdAVks5aLKtOtB+0Pda5rMuCUOblQyC
Sf5SzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVUby9s7
K2e5vJkt7eMVeWRgqj6ThjEk0EE08v8ANf50KvO18uR8j0N/Mu3zjjP62+7M/FousnHnn7mAf4h1
3j+lfr836Q+sf708zzpw+z/q/wCT0zM8OPKtmniPNI8uYLopZYpFlido5UIZHUlWUjoQR0wEK9H8
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
dirsVdirsVdirsVf/9k=</xmpGImg:image> - </rdf:li> - </rdf:Alt> - </xmp:Thumbnails> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" - xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" - xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> - <xmpMM:DocumentID>xmp.did:F77F1174072068119B30B52A3A51FD83</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:a713831e-dab4-e943-8f18-fdb4ad8d961e</xmpMM:InstanceID> - <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> - <xmpMM:OriginalDocumentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</xmpMM:OriginalDocumentID> - <xmpMM:DerivedFrom rdf:parseType="Resource"> - <stRef:instanceID>uuid:cb58d661-cdc7-e34a-aa9f-b935d8a59714</stRef:instanceID> - <stRef:documentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</stRef:documentID> - <stRef:originalDocumentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</stRef:originalDocumentID> - <stRef:renditionClass>proof:pdf</stRef:renditionClass> - </xmpMM:DerivedFrom> - <xmpMM:History> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:F77F1174072068119B30B52A3A51FD83</stEvt:instanceID> - <stEvt:when>2009-11-11T14:16:58-08:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - </rdf:Seq> - </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <dc:format>application/pdf</dc:format> - <dc:title> - <rdf:Alt> - <rdf:li xml:lang="x-default">o2_mag</rdf:li> - </rdf:Alt> - </dc:title> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> - <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" - xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" - xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> - <xmpTPg:NPages>1</xmpTPg:NPages> - <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> - <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> - <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>19.000000</stDim:w> - <stDim:h>19.000000</stDim:h> - <stDim:unit>Pixels</stDim:unit> - </xmpTPg:MaxPageSize> - <xmpTPg:PlateNames> - <rdf:Seq> - <rdf:li>Cyan</rdf:li> - <rdf:li>Magenta</rdf:li> - <rdf:li>Yellow</rdf:li> - <rdf:li>Black</rdf:li> - </rdf:Seq> - </xmpTPg:PlateNames> - <xmpTPg:SwatchGroups> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Default Swatch Group</xmpG:groupName> - <xmpG:groupType>0</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>White</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>255</xmpG:green> - <xmpG:blue>255</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>Black</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>27</xmpG:red> - <xmpG:green>24</xmpG:green> - <xmpG:blue>24</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Red</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>7</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Yellow</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>242</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Green</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>157</xmpG:green> - <xmpG:blue>62</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Cyan</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>160</xmpG:green> - <xmpG:blue>239</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Blue</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>35</xmpG:red> - <xmpG:green>28</xmpG:green> - <xmpG:blue>129</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Magenta</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>120</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>199</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>26</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>16</xmpG:green> - <xmpG:blue>29</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>55</xmpG:green> - <xmpG:blue>10</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>123</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>157</xmpG:green> - <xmpG:blue>32</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>251</xmpG:red> - <xmpG:green>237</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>202</xmpG:red> - <xmpG:green>221</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>101</xmpG:red> - <xmpG:green>192</xmpG:green> - <xmpG:blue>39</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>173</xmpG:green> - <xmpG:blue>54</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>136</xmpG:green> - <xmpG:blue>51</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>89</xmpG:green> - <xmpG:blue>42</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>173</xmpG:green> - <xmpG:blue>94</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>155</xmpG:green> - <xmpG:blue>140</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>154</xmpG:green> - <xmpG:blue>221</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>96</xmpG:green> - <xmpG:blue>176</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>29</xmpG:red> - <xmpG:green>36</xmpG:green> - <xmpG:blue>128</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>30</xmpG:red> - <xmpG:green>21</xmpG:green> - <xmpG:blue>80</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>91</xmpG:red> - <xmpG:green>18</xmpG:green> - <xmpG:blue>128</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>141</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>126</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>158</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>79</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>235</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>69</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>101</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>184</xmpG:red> - <xmpG:green>165</xmpG:green> - <xmpG:blue>135</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>142</xmpG:red> - <xmpG:green>113</xmpG:green> - <xmpG:blue>100</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>97</xmpG:red> - <xmpG:green>82</xmpG:green> - <xmpG:blue>69</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>75</xmpG:red> - <xmpG:green>57</xmpG:green> - <xmpG:blue>50</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>192</xmpG:red> - <xmpG:green>134</xmpG:green> - <xmpG:blue>85</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>162</xmpG:red> - <xmpG:green>103</xmpG:green> - <xmpG:blue>58</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>128</xmpG:red> - <xmpG:green>73</xmpG:green> - <xmpG:blue>42</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>105</xmpG:red> - <xmpG:green>58</xmpG:green> - <xmpG:blue>27</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>84</xmpG:red> - <xmpG:green>41</xmpG:green> - <xmpG:blue>11</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>49</xmpG:red> - <xmpG:green>26</xmpG:green> - <xmpG:blue>15</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>R=104 G=127 B=173 1</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>104</xmpG:red> - <xmpG:green>127</xmpG:green> - <xmpG:blue>173</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Grays</xmpG:groupName> - <xmpG:groupType>1</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>27</xmpG:red> - <xmpG:green>24</xmpG:green> - <xmpG:blue>24</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>49</xmpG:red> - <xmpG:green>49</xmpG:green> - <xmpG:blue>50</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>70</xmpG:red> - <xmpG:green>71</xmpG:green> - <xmpG:blue>73</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>89</xmpG:red> - <xmpG:green>91</xmpG:green> - <xmpG:blue>93</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>109</xmpG:red> - <xmpG:green>111</xmpG:green> - <xmpG:blue>114</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>128</xmpG:red> - <xmpG:green>130</xmpG:green> - <xmpG:blue>133</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>149</xmpG:red> - <xmpG:green>152</xmpG:green> - <xmpG:blue>155</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>173</xmpG:red> - <xmpG:green>176</xmpG:green> - <xmpG:blue>178</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>197</xmpG:red> - <xmpG:green>200</xmpG:green> - <xmpG:blue>202</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>224</xmpG:red> - <xmpG:green>225</xmpG:green> - <xmpG:blue>226</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>237</xmpG:red> - <xmpG:green>238</xmpG:green> - <xmpG:blue>239</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Brights</xmpG:groupName> - <xmpG:groupType>1</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>7</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>68</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>216</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>151</xmpG:green> - <xmpG:blue>56</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>17</xmpG:red> - <xmpG:green>43</xmpG:green> - <xmpG:blue>137</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>118</xmpG:red> - <xmpG:green>35</xmpG:green> - <xmpG:blue>135</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - </rdf:Seq> - </xmpTPg:SwatchGroups> - </rdf:Description> - </rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[65 0 R]/Type/Pages>>
endobj
65 0 obj
<</ArtBox[3.14893 3.0 15.9263 16.0]/BleedBox[0.0 0.0 19.0 19.0]/Contents 66 0 R/LastModified(D:20100405102851-07'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 67 0 R>>/Resources<</ExtGState<</GS0 68 0 R>>/Properties<</MC0 63 0 R>>>>/Thumb 69 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
66 0 obj
<</Filter/FlateDecode/Length 151>>stream
-H�D�K -�PE�Y�݀i�>y}S�8*".A�������%rs4�M� ��$���&�V2����]0���x)"kj+T8k6<f��g2��p�l�b"
\Jq������zY\`e'��̩M�O�Mew��ǚwc` �g\�HO�ѹ��> -8;V'g&!$eu0E;4r!KR~>
endstream
endobj
70 0 obj
[/Indexed/DeviceRGB 255 71 0 R]
endobj
71 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 -VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< -PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
63 0 obj
<</Intent 72 0 R/Name(Layer 1)/Type/OCG/Usage 73 0 R>>
endobj
72 0 obj
[/View/Design]
endobj
73 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
68 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
67 0 obj
<</LastModified(D:20100405102851-07'00')/Private 74 0 R>>
endobj
74 0 obj
<</AIMetaData 75 0 R/AIPDFPrivateData1 76 0 R/AIPDFPrivateData10 77 0 R/AIPDFPrivateData11 78 0 R/AIPDFPrivateData2 79 0 R/AIPDFPrivateData3 80 0 R/AIPDFPrivateData4 81 0 R/AIPDFPrivateData5 82 0 R/AIPDFPrivateData6 83 0 R/AIPDFPrivateData7 84 0 R/AIPDFPrivateData8 85 0 R/AIPDFPrivateData9 86 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 11/RoundtripVersion 14>>
endobj
75 0 obj
<</Length 931>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (o2_more.pdf)
%%CreationDate: 4/5/10 10:28 AM
%%Canvassize: 16383
%%BoundingBox: -6 -6 7 7
%%HiResBoundingBox: -5.85107 -6 6.92627 7
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -9 -9 10 10
%AI3_TemplateBox: 32.5 15.5 32.5 15.5
%AI3_TileBox: -305.5 -395.5 306.5 396.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -14 19 24 1283 706 90 0 1 42 224 0 0 0 0 0 0 1 1 1
%AI5_OpenViewLayers: 7
%%PageOrigin:0 0
%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
76 0 obj
<</Length 21324>>stream
-%%BoundingBox: -6 -6 7 7
%%HiResBoundingBox: -5.85107 -6 6.92627 7
%AI7_Thumbnail: 128 128 8
%%BeginData: 21192 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C457EA9FD7CFFA95A2F5A7EFD79FFA87E2F5A5A535A53A8FD76FF7E5A
%535A5A53532F542F5A7EFD71FFA87E2F5353532F5A5A535A535A535A5AAF
%FD6EFF845A535A535A535A5A5353535A535353542F7EA8FD6AFFA8FD0553
%5A53532F7E5A535A535A535A535A535A7EFD67FFA87E535A535A535A535A
%535A532F5A53532F5A53532F5A535353A8FD64FF5A532F5A53532F5A5353
%2F5A535A5A535A535A535A535A535A535A537EA8FD60FFA9535A535A535A
%535A535A535A535A59535A5353535A5353535A5353535A2F5359FD5DFF7E
%5A2F5A5353535A5353535A5353535A535A5A535A535A535A535A535A535A
%535A53545384FD59FFA9535A535A535A535A535A535A535A535A535A5A53
%532F5A53532F5A53532F5A53532F5A53532F5A7EFD55FFA87E2F532F5A53
%532F5A53532F5A53532F5A53532F5A5A535A535A535A535A535A535A535A
%535A535A535A59AFFD52FF7E5A535A535A535A535A535A535A535A535A53
%5A535A5A5353535A5353535A5353535A5353535A5353535A53532F7EA8FD
%4DFFA8845353535A5353535A5353535A5353535A5353535A53532F7E5A53
%5A535A535A535A535A535A535A535A535A535A535A2F5A7EFD4BFF845A2F
%5A535A535A535A535A535A535A535A535A535A535A535A532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F535384A8FD46FFA853532F
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A535A5A535A535A
%535A535A535A535A535A535A535A535A535A535A535A2F7EA8FD43FFA87E
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A5953
%5A5353535A5353535A5353535A5353535A5353535A5353535A53532F5359
%A9FD3FFFAF59542F53535A5353535A5353535A5353535A5353535A535353
%5A5353535A535A5A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A537EA9FD3BFFA9845354535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A2F537EFD39FF7E592F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A5A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A59A9FD35FFA95A5A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A5A5353535A5353535A53
%53535A5353535A5353535A5353535A5353535A5353535A5353535A2F7EA8
%FD31FFA87E2F5A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A53532F7E5A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A7EFD2FFF7E5A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F84A9FD29FFA88453532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A535A5A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A84FD27FF7E7E535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A59535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A5353535A5353535A535353A9FD23FFA953
%532F5A5353535A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A535A5A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%2F7EA9FD1FFFA87E2F5A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F537EFD1CFFA959532F532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A5A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A53A9FD
%19FF84535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A5A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A53532F7EA8FD15FF7E5A2F53535A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A53532F5A7E535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A7EAFFD11FFA95954535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A53547EA9842F532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F532F7EA8FD0DFFA87E2F5353532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A84FD04FF595A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A84FD0BFF7E5A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%5384FD07FF7E545353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A5353535A5353535A5353535A53532F5353
%A8FD06FFA97E2F545353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535AFD0553A8
%FD09FFA87E535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A537EA8
%FFFFFF7E5A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A53545A
%FD0CFFA87E2F532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A2F537D
%A853532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A7EFD0F
%FFA9535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A2F7EAFFD12FF59FD0453
%5A5353535A5353535A5353535A5353535A5353535A5353535A5353535A53
%53535A5353535A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A5353535A5353535A5353535A5353535A53
%53535A5353535A5353535453A8FD15FF845A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A5354
%59FD18FFA87E2F532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A7EFD1BFFA9535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A2F7EA9
%FD1DFFA9FD05535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A535353545384FD21FF7E5A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535459FD24FFA85A2F532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F547EFD27FF84535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A537EA9FD29FFA9FD05535A535353
%5A5353535A5353535A5353535A5353535A5353535A5353535A5353535A53
%53535A5353535A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A535353545384FD2DFF7E5A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535459FD30FF7E5A2F532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F53
%7EFD33FF7E535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A2F7EA9FD35FFA853545353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A2F84A9FD38FF595A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535453AFFD3BFF7E532F532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F537E
%FD3EFFA97E2F5A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A2F7EA8FD41FF842F5A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A2F7EA8FD21FF7EA9FD20FFAF535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535453A9FD21FFA95A2F537EFD21
%FF7D532F532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F537EFD21FFA8
%7E2F5A5A535A53A9FD20FFA85A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A537EA8FD21FF7E5A535A59535A53532F5A84FD1FFFA97E2F5A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A2F7EA8FD1FFFA8845353535A535A5A535A535A53
%5A5AAFFD1FFFA9535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535453A9FD20FF845A2F5A
%535A535A5A53532F5A53532F532F7EA8FD1FFF595353532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5359FD20FFA853532F532F5A53532F5A5A535A535A535A535A535A7EFD1F
%FF845A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535AA8FD1FFFA97E535A535A535A535A535A5A5353
%535A5353535A53532F5353A8FD1EFFA87E2F5A5353535A5353535A535353
%5A5353535A5353535A5353535A5353535A5353535A2F7EA8FD1EFFAF5954
%2F53535A5353535A53532F7E5A535A535A535A535A535A535A537EA8FD1E
%FFA8535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535453A9FD1EFFA9A85354535A535A535A535A535A535A532F5A5353
%2F5A53532F5A53532F5A2F5359FD1EFFA9FD04532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5359FD1FFF7E592F5A53532F5A5353
%2F5A53532F5A535A5A535A535A535A535A535A535A535A535A5384FD1EFF
%7E5A535A535A535A535A535A535A535A535A535A535A535A535A535AA8FD
%1EFFA95A5A535A535A535A535A535A535A535A535A59535A5353535A5353
%535A5353535A5353535A2F5A7EFD1DFFA85A2F5A5353535A5353535A5353
%535A5353535A5353535A2F7EA8FD1DFFA87E2F5A5353535A5353535A5353
%535A5353535A535A5A535A535A535A535A535A535A535A535A535A535459
%A9FD1DFF842F5A535A535A535A535A535A535A535A535A535A53A9FD1EFF
%7E5A535A535A535A535A535A535A535A535A535A535A5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F7EA8FD1CFFA8FD04532F5A53532F
%5A53532F5A53532F5359AFFD1CFFA88453532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A5A535A535A535A535A535A535A535A535A535A53
%5A535A535A7EFD1DFF7E5A535A535A535A535A535A535A535A84FD1DFF84
%7E535A535A535A535A535A535A535A535A535A535A535A535A5A5353535A
%5353535A5353535A5353535A5353535A5353535A535353A8FD1CFF84592F
%5A5353535A5353535A2F7EA8FD1CFFA953532F5A5353535A5353535A5353
%535A5353535A5353535A53532F7E5A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A2F7EA8FD1BFFAF7E2F5A535A535A535A53A9FD
%1CFFA87E2F5A535A535A535A535A535A535A535A535A535A535A535A535A
%535A532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5359A9FD1BFF842F5353532F5353A9FD1BFFAF59532F532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A535A5A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A5384AFFD1BFF
%5A5A535A7EFD1CFF84535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A59535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A53532F5A7EFD1BFF7E5AA8FD1BFF7E5A2F53
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%535A5A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A59A9FD35FFA95954535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F532F7EA8FD
%31FFA87E2F5353532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A5A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A7EFD2FFF7E5A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A5A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535AFD055384A8FD29FFA97E2F545353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%53532F7E5A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A84FD27FF7E5A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A2F5353A9FD23FFA953532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A535A5A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A537EA8
%FD1FFFA87E535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A59535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A2F537EFD1DFF7E532F5A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A535A5A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535453A9FD19FF8453
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A5A2F532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A84FD15FF7E5A2F532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A7E535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A5AFD12FFA9535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A7EFF7E2F5A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A5353535A5353535A5353535A53532F84A8
%FD0DFFA87E2F53535A5353535A5353535A5353535A5353535A5353535A53
%53535A5353535A5353535A5353535A5353535A5353535A5353535A2F597E
%FFFFFFA9535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A2F5A84FD
%0BFF7E5A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A2F7EAFFD
%06FF7D532F532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5353A8FD06
%FFA87E2F5353532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5353A8FD
%09FFA85A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A537EA9FF
%FFFF845A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A7EFD
%0CFFA97E2F5A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A53532F547EA8
%FD05535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A2F537EFD0FFFA953
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A2F7EA9FD12FFFD04532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F535384FD15FF845A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A5AFD18
%FFA87E2F5A5353535A5353535A5353535A5353535A5353535A5353535A53
%53535A5353535A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A5353535A5353535A5353535A5353535A53
%53535A5353535A5353535A2F537EFD1BFFA8535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A2F7EA9FD1DFF
%A9FD04532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F532F84A9FD20FF7E5A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A5AFD24FFA85A2F5A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A2F537EFD27FF842F5A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A2F7EA9FD29FFA8FD04532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F532F7EA8FD2CFF7E5A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A5AAFFD2FFF84592F5A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%53537EFD32FFAF7E2F5A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A2F7EA8FD35FF842F5353
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F532F7EA8FD38FF5A5A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A59A9FD3BFF7E532F5A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%53537EFD3EFFA87E2F5A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A2F7EA8FD41FF7E2F5353532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F532F7EA8FD43FFAF595A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A53A9FD47FF7E532F5A5353535A53
%53535A5353535A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A535359FD4AFFA85A2F5A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A2F5AA8FD4CFFA87E2F5353532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F532F7EA8FD4FFFA9535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A53A9FD53FF59
%532F5A5353535A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A535359FD56FF845A2F5A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A2F5AA8FD58FFA8
%5A2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F542F7EA8FD5BFFA9535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A53A9FD5EFFA95353535A5353535A5353
%535A5353535A5353535A5353535A5353535A535359FD62FF7E5A535A535A
%535A535A535A535A535A535A535A535A535A535A2F5A84FD64FFA85A2F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A2F7EA8FD67FF84535A53
%5A535A535A535A535A535A535A535A535A53A9FD6AFFA95353535A535353
%5A5353535A5353535A535353FD6EFF7E54535A535A535A535A535A535A53
%5A84FD70FF7E532F5A53532F5A53532F5A2F5AA8FD72FFA97E535A535A53
%5A535A53A8FD76FFA85353535A535353AFFD79FF5A54535A7EFD7CFF7E5A
%A8FD3EFFFF
%%EndData
endstream
endobj
77 0 obj
<</Filter[/FlateDecode]/Length 15645>>stream
-H��WW�J����R�V�)�`-/�x�Zi��Z�� -�tx��T,,�t�Z�!�J��
ޓOxT���r@[�ṡI���Ňf&Uf��^ԏ� -�����%� -���+������p���h+�p���-�� -Ir�rT�#��퉎�ܖ/�Y�iĘ��l�K%�a�^� -+Q���w���S�; KW^Vg��QL��R�h�b'f�Ę�x�S<�`F�l�`�Q�)�M�S�HH1��V��^�9}���\xn���L��d��{H���f:F/J��>����O�JX�%������X; ���\��$ad�XM -C�����o��F�R:#��bt���UJ~ -��-���+�k��N��Xz�L�B��3���3�1���&g,UzN77&e�_�-8�\f�D4�Јq|fH -_�Rz��d���q]��0�vN:�溶w�`K��P%\��xy����m�|u�`(�W���0i��)�#�.�ņ�U���!WA������Y -����x�� --w��,�L݂��qJ�q`r偵mM�\ۨN�3�V��մV"�@"6��Ș����J��ٌGYo -E*>q|t'&�Y���+&�B��D1^��r�b�O
�����F*.j�p�ՔX�r`}� -�]Z��i��� -�.�a')�Ϣc�z:��4��� c�
1N�
l�g1����_�k:�<��M�K:ꃤ�R R7���c��|)X��� ����#�DRd���Y��[���y���8$�@�:�= -!��|}j
;��q�KduʏG�wN���5��ey����dƴ>1_]�^e��:��������z�����ѻ����U��J�w^�:�����}�N���f�[�M�4k�&�����4�W�]�����A��;��3����M����{�n/S��s!�O����-�8�NLΪ�v�{�s�~���2�q�r�x�N�d\��������[�hWl��z��:��l���_�㭌�ޏ��vw�x_k�M�K}ܞ�δ�O1��]�8��<}�w���y�����vv�j�U���i�5<�6]_�joeN���s��q�3=��8meʻ������^��o��.��
E�3��vp>Lݗ��<�1m�G]�v���̻�Cv��n
��?%����崼��6��-S�3�^5�5��[�V��q�Ŕ~�`V/7*�K~n���}��ֵNC|�Wo�����nׂ��f��}�=�p�K���}V��o�w�C�4�~t�=33`�Y�Ͷ�C���W�z�H~?&#��A �A��9�`�D4���[�H`{���^�
_����W�k�Na�Cfh��E�:KR��(�2����qA$Onr��Cg"�����*&��3���o�]��d�`T��&��+����#�ɛ���"�M)@$n --(�k� Z�з�C��ji��}z=�Қ���z�?>�.���jL��m�Q�JZcu�Ô��b���٧�}yLm!��+����՚����[WD-@��I"Q��-y��q��b@U$�\��\�Ʊ�?�5"��8b�2t�K7��|�p�|7�YWGtO�+�dNE<?���ܭG'lV"�w�� -N��\�l���曥9&�HB���I[Di���$�%��X�{䜫���M+R�%2�I��m�V�4E�� �Uڨ���|;��J��! ����l����*qcp���rT���-��l�h�����/i�<
� -��n�Z�A�:l�(���5 -�D�Ɩ��}��y�zs�M��!U4���~_ Ya�;�6G�l��_|�1�^b+�9�Ⱦ�c��4�ɾsB��o�� �~�ҠbϜq��l|cR�[��pl^ɤ
U����e�7.͘u������w��<�[�����lE�L$�'Y88R��d���J�y|*�^8u3�탳�t� -��dj�U2�C\@C -6q4��
��d��BR��T~ZdMl��e���.�+,���3��P"�wE��� �x���+�o!R���k��#�p�u�`��&� s��Lg���"ǐ�]�_l�� ���Ѽ��k���_�/¢�(ڭ�B�;X��X�V����ذ�lxC��jxcʻ���Ɩ���A�N���fP�X�*�������R�LH㙑 -�g���� [Z����m���]T��ƽ������mgp -�s��)��X��m�%��� -��[������ճ�(�r0��, -��W��`nr_ؔXD�Z� )c1 ��ú�;��ﶤᦂm?�iAa����KB
NE��@VF��.�#+���Y� Ԫ\5���ʦ������mE�ϯ������C&6�i�,���Weqz�lf�����'�-$�tZ�b�R'���lzblw"�1⛍w� ��E �`��q���g�j�vь�+�br�;=�J��A���~�Bw�+���X��p�t��uj�'�$+h~�Ź�:W��0Mř���!�p -Lp�}��������c�g��y�c��/�F���6E��Up����
���0?�G�#�Y��-�r��6�Q2�������B�Du�HRT�Q�����g^�Qs��W�<��;&x
>߳�y��$杸���L8L��AԢ���ij0q�W#�6\��i��On,��J���= -�����dݐ�s���H��B��@���L�@=��|+��I���թg����3�G|Tc̦5��Y�D�wL@5Ci~�g(��ݽ�i����@� -��7�����F����W��;��o��}xPIJ���G��~|)�$$|��[�0ZQ���y�Ks��9=G�7n���?� -'�]i�mч�]�iR��NxWJk��{�8^�4��ư�\����>��]�ۄ���_�6� �[+줅.(�06}��|�) -:ھ�B'�W��-hÆ<3��<_��DQa�n
�����}g���H�f�@���Q�D�����J�Nxho(�qٗ/��!f��1�HL!�Mf�
��dWz@��Doc�|po�ݞ˻��"mN���s����|�p��pG�ZOC�%��W�Pq��}�U -^{���NjB5E`�!;�t
��i�0���;Q4����5�\iKv��������x��C -`�l/�A���g��z�����`�b�z���.B��1E�?���OGjz�����)-���%-c@ �*�,hEP�[�9����\䩢 ��e��B]��1��#������֒��g7B��v -�.6jr��R@�{!R�/�#��Y�$7��˓���n���A�N,H�0 -O�5&�bh�!yR��A|-pm�k�^:����e��A��ϰ^�uu`�&���m&l4��J+�q�ށ͢�!nM'a��D#�좒�W��IlA���v
��F�!X���sG+���<�.Qcy�s�h�+Mf��3�NuIUW��#Mv�|L�Q�B]�F1��~���-�d{���s�Μ�����5��й�����N4x�)Tp�������*F�w�O�,4N���F=\K�)�w��I�ޮu��Koo��D���]@�A����z+����BL8 -!Zj���$�xܐR����u>Hdr�(݊��1�!֠�r
L��[�G��s��~��ji�a'$��M;����ӂ'D�Iσ6���������L.��W�3�x]5/�z������ۿq�OO��̮�k� -�g�`!Ι�.�-S4ⲺV��,������յ�)��6�-��'�9�܁m�b�mI2D�ѵ
���h��+/���d�Bh�7������jp��"�7�B$�ڏã��Z�6[]4�cq�l����{���wN�����I^����~���� -{�=U�5A|�{��I'W���Lp �擮I�">r�����[���Kȱ�ztCV��_�ն_>6��^]��v��)2���{�GR�Qu�f�����Ե�h�M��4����b�3(�P��Ϝg_O�3LQ���l�{���)������jr�ө$�̥����:a����OZ�]#�y:�C�MM��9�S����+��g�n���J��r�Dc�w�J�C�-�͡ז(���eo��vv^��S �j0]��e���1�+�+���k��=�����1��&�X��� ��lg�. -��g���n�1��Q��K�=+#�����.�6tL�����r��zGQ�[ ��_�s� -��<� 5A�$/ ������ -U̢d���,�ͬ8�����)��ż����u�G/3�-����m�H��%r��A���e'� -��*`�Oq%h{���e��3,���z���gOp`��ե���/2�$�fr�~S������*ap��3�\)���O:q�*���"���h�ng�vq5�y�O��j���� -����t�P������#�=+����vTv�U�4��-��M��L�W美uD-:~W����j���q�,�k.Ay��ֹ7�7����~�~[�����A���_W쿷ϝ���-�mgn�g��*+�Y�YFV���O�D铊����N��h>�1��-�}W��P�sD���`zo!�7���EI�sK̞A?�B���8�,���_а����D�Ģ�G����Yܗ{��Qw��ϗ[���/:���'C���l����B�+Y����S��ٓ��e��%� �2D��յ��/�I��0I��+0;������{�P-����2>J=��DK-p����f�p!NĆ��0�U��[�ZhV�6e�R��y�/��I)���߂~y-��!UV�J&��y�qN��_1���Å�7����KMI�>@�u�.�S��<���+=�7Nj���'mYqLIiX;q�e��S\ޗ�&x'%�������n��A�:ǭQ�Z�O���$h -�8�Mi�j���J�Cӄ[�B�h}�"6:�ՠR�J.+��F�n�5(�C#��/M�Gj�L"��"l�f�R����;8ѓ�@����iP�E��ig�1�B�5��M/=��g2jq^>��7���!�DX�宺�m��QJM��B�].4�M
�U�����%��@�X���B'�Y�YHG�}?2�5M�%���C;EO�DZk�A}��TV�¾���77|x2�F���ڦP[�;����'3���*�qk�Nn�Ve���j�Ry�d��4&xo��T� �6$8d���G��t����@A����l5��u� -4z��/D��Mv���2QT�C�9���*�y�?�o�0@��:��4�T'hH��gg}��?��4v�T��9�SX�ڽ�K�6#��B�AzKN�װN_��ך���Dh�W��&qq*c���nfWD�a� ��Kf�:e�Ҟ���O����r4�:������O��y
�u�欥_$����I�}���WȖ���˼����ʕ|k}#�w�:*�2nj��g�$��Z��g���n^�BG�^dl��d'�����}kmБ�;>c�'7�5q_; g}��Z��֜�Zt��g,O�O -c�֨r�{�9�7X}���S��`�x*k�Y՛��)��O`Ej��(��3#��*��heU���Km�3��4a�@#9� s�G� ��B�K�"z����izS4B�1��Q�D��<T=�9����.������tt'⮕�\0Ǿ@ZmN�}�O<��*3��:���a�ɭh��V�t0И�9���`���%��1}��+�]衑��B갉v���.�N����4lH/��O�V�gP�@�^�سgh,T��1P����hP��,�1 - �"x(���P����y�i"x
�ta�rO�A��?â����l��R7�S.v�yor�q���y3f���ߟn�]�u��Eb�U��8�3�e�{�~���AT���{0����=��Y���˿J8MBI��Y��N+��%�ɚc-{�MV?J \L�Ú4��l�T����8�������K�'�+�-�yzt�3��;��r Q��pg������/���5��1;J߮ʱ.�g�yK-�T#J������d��&Y78�wizpA���+G�Q>ݧU:Z��)� -����������g!��v��׳��?�)>�Zcf����J�~��\��d��d]Y,�-�+إ,�)�c��UYZ]���JeUG?�yӼCs3T+���<]&��n�'�\z��z�n%�4�'�`�dgF��8,�0����� \q���B��U�[UQY]
����hVfdfDdb�z,�A���F�qw��tSf -5�?r��������gyɨ�h�kb����dpF��W�~��r_F�{��\�A<̟�4�Ӥ��߇�ܭl�?��P�D�x�Q���fw���?��(.�YZ�k�� -t�T5n��q7��"7�����7��v�i�ť�5)�G9L]Y[i� -�yxCO~��4�ys����[�4���jh�/֢eF��Yl -D���, -6 -�K3샻�)�cPPא���?�����Zp����U=��#Q������͑Xr�]p��5��������]�j�~����SC: _�{_|��"/�BM�W�߁��H������-EZT�p���^M�p�}�=����U���{Q�z⨪�\ ��-�VCF�+N�+����]}9�m�����{��i�����$-����Ǔ��O/�Pu��M8�w�������/ײ�)�]����"B��(�9 ���r}[,�L��H�R'��^�0�2�-Y�e�Jw��0�ç
�Ns�u?��_��"�zW���k��� -�55)��˿�� -��j�7,�c;|���t~�ӑ�o�,�$�n�g$���}DN�Dh�=JI)N��rيl���g'_�o�����Os�*�C��q(5xh��?��t��!���F����b��g�T���?�3ş���P�K��i� -��W_�+3��h�c��ڋL�<j��r�{��e�����{�@�=wߋ`P�� 7V��L��������K�Q���ٯ�H��[?�f��%>�;{�u�^�T�_#F�=�z�~��:J=z��zM=�d��γfd>�lB��d]��6�cM��G�����g�ZK�_��_#ѫE�xtt�=����!�h3�8 -j�_G��O�9G��h�i��Ov -���v�=�ޑ|X�[3f����-^��+Dcݕ;���1_�3M;���9��� �#�GNHۦ�Fv�&�M�M2Jn>8*N�[�f�B4
���ʋ�#L���0zLywq����P�u��\D@��빆{YN�D�bq�;�x�QZ�ŭ����$,S��jC�-1 -�PO���)E�8�����㜇 L'o��l�x���]���h��d���\�$L��4�z�!"a)��1B8[���8�����2��� -�� -w#�ݱ���Q -Յ��f3�~��ՠ?�-囱����?�z�xp���Pn�g�UL��C�W����{8�g_>\ժ�j�j�� -!�Tp�U��W{�1Z)�t�hY$��/b��r���sөt�-�9ƹ��`�E��}����K��X/��|@/�s�#�Bq$���Y������*Z����(9ij���)���aG�|���ʊ=�@�I�cTK^����.
A瘏��] ����t�q�6,��p&K�ᥦ�������H��ͶD� 7����F~�۟�ث'���~�rڻr��>�|�H�Y��@K�L�����O�ۑ���F`�c�H2Y�"� -'%�J�p:_I��b�S'$k�)E��: -��2�'�)DE^[p"/L���{]W�F&�b�ETѮ��E�?(Έ�o;`G�kƹ+A�+ݕ�v:̛�W�T��~k3ڼ���(ɿ�H��[�ُt�h����*�ۖ�[P29B���&I9�\�I -s�2a_���A��=�����i��;�[ӒW&z�3`� -�:��n� �g��B��*M\Ġ��hI�<S����
Zt�[�-����m)X~��R;���'���Ph�qAŵx���ݕ�%*(��OL��֮܁����Q�>ɀ�2G,�!:���v2����� -H��W�^�L}�<�@H ���@���b��,?��$����d� �$�?S�p�~��٨qrTO]�B�J���szN�]is����P��ʉ��X��V����7��Ʋrf�z{����J�m>����G�B�<+o�C��� #6><��z�����*B�dg�Kk��tX)�q���{J�10��A��[=���?)�ul6�����F�z��_;'���]��y�����uZ��l��3��&���3��^� -��+MP�L3c?���?6���E`t(�H�?.Xq�+$�t/�`�sݤ�w -���|���>�>S�Q�e���N4l��������TA!hcB�0�o/�����x�M. c[��Jկ�� ;fo*�߿��0��/e�#JeI͋�t����GIX1L��ǁ�+ -k*Kj���5�)��?��1�~����WK�VK��f�o -~2��r[��=���J%ְO{W0�ܟ�pRSF�{�i}�Q�F'�p����/�l�o�},��xA؝�����J�~?�[)���O�s��n�)�F����W���nZ2HN&��-=�c=�'>
R����QK��.0c���ݐiT9�g�s��p�_�R�Qh����I3��L�}���)���'/)�z��fT�a��XI���,�4���_���q���1EF=F&x�1j&N�Fͫ�ͨ$�V�/�f�����?��l��氅���M��g���Onv�r��>�s�����}��4]�Q+��MM���Š�tRPn '�˳�P���.:��D�� �')ț?0
����Un7���Z/OUJ��J���lQh�Լ\�`'���oN�.� *����~Ғd�
к|�\��1]�dj����Mj��=d�
C8u��<����V?�ԁ?��d��y��뒝%)\?���C���Fh4-�~>F���ݔy �t�#.I2ϩ��1} -���~�> ��Jj��`����[СGd#��_�w(���*R@����?+o#~s��tud�J�`+�w&�4��Ձؒ�zav�8;��-f���Կ�wp����h�e��r���k��<;gV�f.�����Vz[읺��`��.Z��l������n�sY0 Ǹ8F���:� -�$GZzlo� ��H�qD��6�C��Bʇ"x�'l40Rj*�i2*�{�-����NN�K
Bշ>�`�+<�φ 3��]D�x*_�P��EBx��N%�k)�^�u܊��Db������hB�'�vE�EX��J�=�jݰ D -��b�_��ͬ�,H�B�:�K��"����
���9�������bQpr�+�e����I�~Y�!�0�>SS��Z��B(y�^���� -�Coo�:J��c8^���nX�1�w��`��!�v�Z|��q��g -��������刵* -3��/�z�I�$$�ӓu���f8jr�[
g�H�P�W��19U���T�7(�8��A��CY.T\��P���\H�� -!��-���z1G����=j�|h�U�z�l���)�\��/�q�3jPZ -+T<\nz.����(�:!=.��" �6��&�'3�<a7H.7{��gI�hi�8װ���z���S�͖�G�Ϭ5@�ap�᠔���u -�z�4W��~t��Hp��s�{�fˈ5�����DK?�k�Ob�*�J�y7Jg�]���L�3�X�6ٕ�Z�A���Dۢ�4�ѷ*6��܋:���U]h^�7\=��,|U{+/[Lt��Ϧ��*�7*���5T�6�I�=N���:�1��T�Њ�gN�f�S`��-����i�%�y���:�ċ�X�x���VDr�&�7��ph���p&��C�g��(OE#{x���@�!�TAd[;o9껤=�~�)m{�b_�<\���8b{<db�39�UB�[��㯜��Q��s
�M��Ľ��Q��0VI�3A�dF��Xc�Eـ`f��k����� -����+ -��:���5�ӧ�F�_g��n�? ��ဢ��>��aQ�������6���M~Rl����T�kå���������l~Zl�q���%�ڇ_sl}�GL��_r�w�5dž���O`�I��4}���(U�}����;F�'��wH|�B�I滭b�*֟@��� -PVA�Z�U0�
���o��� -i�Q�ZϺ��\�Yo����_��$�q����D�+&Zh۴��(LSʼn[:BO�s�j�Oin鏡����ɉ[&Ja<�45��f��{Ԏ���Wq�o��h��X��=�d��K+������6(('���e��T�x� e�۟�������@�G�>�ج������X���[�}u���,�3X��O���ơ�L�9���N��l"d���� -@��"Iّ!��ʓT�^��H�G�!�dkڮYמ�J`<_�Jox���Ph�Ӵ���{_���4�&� �8tc�EP�)�Bj�߬/!ē?"�k�V���~z^�`|�>�P��z���u�N��X�<�^���G�W�(�Z"^�6�#��.��M[��"r��n������T�j�����A֑�V����f�R�����3]�F�t�H�����LQ�̖�R�/皳�����g4P���S�n��c7�����N������s��4W-�K�J����g"���8d�Z/�敁^7��zi� -l{�˖��n�h�(�`��qL����\����̃J�(�\�Xvs��ƹ)x�T��B�0K�5�ɪ�`��E����b8=�a)C/P�mO�\��i+���2ĕVS<*��z�{�h�T�$��� �m59�8`�i�����Z#�kt��hO�\��W���s��>�E�7O�RO�p��.�/�¸������膀}�n���W����N��p�_�5RW��dB����]����}�Ɂ�H��^���<}�F�Xô�Y������k�F��i���M�D�6�PD7���\k���=���s��ƈ�Gm��ճ�m���Li -o�E묱#�[,���Ģ -��;z�+o�q������hP4I�����X���߇'�}2A��o��/%h��o��/%h�����c�'S4���@�%wڞ�I�[*m�B�Ho����Y.�����g�LW��x�瀚���I��t�/�u 6�io:� -ҹV�#M�1þU��v�Ѳ݆����o�z�Z�d���P���h�/�������W�鍊j�ꥊ� ��: -&@�\� #�.}�Ć+�&���q -9F����q�8~$��Ϩl��":������t���/���QJ]�V~������h�Q�ӭ�h�YS��-���hУ"��6oTl����4%x�����m�WW_m��c�����}��c��31�Y��1�x�V������`���_����~��M�G���1�z�jZ�w��P���ȇ��{��<o��w��,�yP
�o -� �[\h���Y�g||@Sh�eThW��N��V�����-��[��2V�������Ώ]����6c)����S�8����v����G�=�+ùz�TX���4�ۂ:� -�ǫ) -�O���/j�v[\|���s`�.`Q�s�U�D�5y���L�@Ԯ�tG������ma��. ߵj1��<E�ƮUg�&8�Xm�yT��Y�i�T+������,��-�7�aO�)�p�Xl�d�)R1!%.� ��,V��U"�@�-\"�.�#�T�_�|�[*m���6�����]�����I)�n�r�,/�������1�{R,����C�9Y'� -�=��|\�Ρ-�'����O��S7p�`���>.@~1Ѩ*��:�� �5� ��[����W�� L��ŝ�ϱ�y8��k�IX����m��T��0E����#l��|4i2mA阈ÁH����l��{{o6�U$��{�I�M{t6�J�.o@�aqZ�8ҢԚ -��z{-�>�\d������mYW���0P�i:���ڌ�WأixFjj��2�фpѳ��B3���\�9�g�3!u,΅u2��6��b!,��Z��������Q[�q�O����"ͬ<�?!�i�,*��T��aN�g��\bN��3-�I$����U�$��s)h�6��I����wT����� -�g��>)V����9�a�u�`����#��C(�_E��;_��/W�b��s�UU��Ϳ��E��ۺ�q�^oC[�r -��~ -H��W�n�����`�z�,�ɾP��x��I�A`ZCɌ��3���9U��HZ;��<����鮮:Uz����d�}���U�{/^d}]����Q�u�����^^��"Zx)ym�Ë�����<œ%}�����c�V{���𩻻;�_�a�9�5�;�~��z��ܝ��0�W�F?��D���BZ?yC���s��7�ƬС
1�v����ާݿ.�sM?�7��ksU�Og��*zG�b��{3�n���p�w��~�um��/��K���T������m���mu����պl��|�X"m9y-�:=6�����C����p�f���af陆���F���+!���U�\/�_��
���l�����{�������~䝇r�|�p����� �0���0�M�X���.�?7����n[;?$��ڝH�����c[��n�֧i(v�x�m��O�/ۊ���ݽpS����ٵ����_�/5��p�v������x."_ľ�]��7��cg;���p�� 8�d�,��)F.qR����^3�W}��O����W���O<~�2��á��F�doq��\���n��ܾ�@G -�J�v�B bh���]�@�H��P��V�I� � -��� -UhЮ�0�0
��DF�ґ�lI�FY�GP�uB��Jy*RZeU�R S�*�Sr�ԡ�x /�7b^��7��̬��'�y�%V^�b�%ւY�3�Jkm�ձNt�s]�g,Lh"��1��&1��MaJ����*����&6���m�p�q��+w�����m�t@�Ȁ�� -$@̰�a� -p8��QpZPr�z`��ݕ)�0b -8?3)�'F$�2���b����]�������<bR�80�1��Ӄ�5�T��HX�tr(�5���x-�����ï���|H M!E�Д�DU$�be�eV�-�%&y��hʋ�� -Hϓk�iq9!\�s�l -�-�pIV����l5�c�82)xL"� -hy -��Pj�11����h�i�A 1y ��]h��U~'{��)b�-�"�ɨ�AD[F �Ȓ3 -DŽ.�#��A�CX�h}�,��nx0;�v�vF��R�G*߳�17w#�ؕ,_�K���u��3x��W�'n� ����0������~ŖL��+�/��o�� �Z�\�N$N�Gu"�c���i�1� (�O��I��P^�Ƒ}8�#����������T����#5����R�d�T�Z_�Z.i��f�D���6��6�ԀT���? ����eB����^��e�.��^-a",ab
)�%VP�8Z�<8`�eJ�@�P<T$l�%c����3-b��K�H(�r>Q>s>C�`�{��c�|�X@�Q_��F_)�0?��v��D����+���)�䀞ہ@>2��Ֆ+�%!u��e�K��Ǖ,��ee���5
Tv�2�P� �J�-�-�g��Efz���(�*9�%�����s��E���c C/x=��p�Ѧ�P�az>�zN��Yl���e>9��*HG(/>���<[�/��6��&�.�8�l�v��f��lg(܂:<������-�G]L?sP(�˷��� -HX �>q��h����p�R�fΜF����T��r�o�Ѷm&M�w�%�ϻ��������x=Y}#�- -�er8�W�Ve18[�K�*�G��K�G�Bl?-�M�0c�H+��r� -�0\n���+W:�U�x��d��y�d�;�,>�w�L���8�v�;���˧!� :!N�~`"��� T�?���~��5��,SPy]A4�KǧD��K?�xjO�Es��YW.�C���혴%�*��k��"�!��p��?�T2�ס^�G����Q!�bT<%�X?��K���U�r%�s"���o�!��bgD ���+��q�6Bp=l���\�0M|�9��<ʼn��V1KDA�]<)���I��q'�5�mu�Waՠg
�*���8�Ey.Q����a/�LjǛq�{ -���M�&� 76yc"n|�)6�1M������[���
W̟�?�;�����+F���[��5fn��ߒ�\<x4sәM�u��ڼg�K���@_f��.1v��6Z"/��,�w��Һ�[.ʻ\��A���Vs��?���8#YT������6��w�Zb+���|�_*h�n�1����������r7X�T9%Mb��`����:K5� -i -9o�+1�.����(M0�1PR�
�O쬘���5�E�G䭙�
�e -wL�i<��Mm-�� -�K���£���k�_TZ��[y�"{���@$j):�]xd,��,U� ��y_f�� -��k��P��� -zI��� А��������%������j3C�#t����Fuۺf�nTW�*Uݲ�TT�ʪnj*%U�������_qeo�Eͭ��9ˢ4W}��\���������6e���k�S�=e�S�=e�S�=e�b�{ʼ��{ʼg��&��+��Vv�2ir��9��l?;e���?�M����/Ϳ�ޟ���G$�K����Ml�i[ܴс�x�F�M������;}���v|��j�n�Ⱥ��,��e��LS�i�2M]Ǧqlm<�}ӹ��n -r�E8�[7��6�b�]�s6�l���&�O��o��4��N�������@��D9���{E��',���!���V�Pl���fW���d 7xV��G�)���[81n�1]���S?�h����$�g�Ͼ�ъ�� -9�aK�0����u@i�k,5��߮�y�B,y��>}Y��^�o�s���2ّ���jc �48�7�� � �,�ax�����s)�TUݶ�+�44��[%���k�h_ - -�co>�c�1/H�� ��Fo�
_�7<��ApAzD����.&?�08��n�2;mQ� & x��x��e�3�~�\�r�Y@�g ��8�x��0;
]�!��*t����m���v����%�gs�[b�3��S%Y
l��7>��)�&�-�E^���x#s����"�+�=~ -."���n�c�K������gF��|�S?{?<I��IRd��
�:n��ӵ'���
�*�AO�g������{������o��%��cސ~M�z/��rҹM�]uWٕ�Vi(RaH2�B�;�!=�iZ�O�IR����(�P�� ?9�N�m�tO�V��2�Z�B�S�6���0�Z�j���ꪕ�Vֲ�ɦ�p��\R�^l1E�O�r�Y�c��e�MZ��Sj`��R -�%Y�.T�J��&j|�sh��@���W�RS�xd�ܵ[1`��p@��Nm�j������K���� ��D�見ƿ"���H�O�,�g�?h���^�:�ho���r�;�N�N�
�M��cs�{"�kCl�e�U�:��|ҰרJ5L��I*�&�X'�"��윴����|;cW�r��p}�� K��e����6c
ӱi, - yU���E�R7��a�f���� -$/g[y��'{YX��$��y�"}-��B+���V�p�يъ���F����
+,l6,����3�d�R����7�)���������Yj씡�+�)�NڙJ
���kӛ̺�Z���P~ �Ȕڔ�4�����*�� -QR}��
���vU�캢KǗ�Q���fv��o��m�(���������+��<}�U�%~�����*<���*�(ߨ�T�Uq3�w-��M�Xl�m��PX���.��t��>T���IԍkaUq{l�X~9b�vY�%��f��u��*O|��O�@��kD��1*֔�Ufe�9�&]F�jF��i�0 ,�}�T��6�_ -蘁�
@ ��@�) -IMK/u, �I��ȡ�,/+}��ܜ�]��ID�ܲ.��4�l�f���Nc);��]�f�K��.U����<-��$d�K���DF�+"M0�6�aTV�aVo'�*-k^�Z��� `�k�7&�J[���^,�O�_�[ t������R7~��|��a��@�N�69<B��rP=�4�w-��.E��� -���ܺ�[�T��<���zDM
��@3!$xj�Cv<����"�<�������$ & (�, .Y�睑�����S�'�� -��z��|x�|v3XX[���e�mv�3��r -ExDU�S^IB �,P��&������6r��,��,����3�w����)|O�L嚩���˵N<Ԋj�=��ҡD��Wo�Ecܯ�m�y�M{�5��;����D�n<ȶ��:n�i���wXu�ݷ�[܃�+���&�V�n��ң�s��s�wz�8��pG=���K���9R� -���k7&Oc��]aL��3#f��*��d`LR?$��--�%G[�r�)��2lIʋ^�H5�Ҕ�!eV���͆�%]G
��v+z��_��fGr��O��P��KC�(Q2�"�����f�����Ñ�$E�T�3��Š� -tK?�f~�@`��U�JmW<�i6,c�+����� ����1bLQB�Ă8�Z%V��� -�%I*/i��ƀ�1"s�'���d�s���F�Z�;;��$�tS���#�x -���f�����[@�a!�`}�~ʷ���C�1E�bE�οlI��3��SOH���s'�N��2C�T�$�������6Qi�������w�a
&[�i�L��Llֻ&` Z�%��c)��7��cBr�Z%(�J��┚䓆�B�G�$�lQ�C�Јy�H�_/+�:$5��hC�&�YR�B(�G|���!A�$��0F��ac3j��Pf�̠SeU!�2U0i��%�Faǐ�1'R,B�9#�ʄ -){Wʻ�O����MkAkbZF|+�F�}Zt��ohEJ͘���tLiY�U6�u�����D��E�9�T���qw>�]�W�����EW���E����m����n:�����{:4IV� -�p��@&y��ȕ���DK#�� ,=���E��^N����lA��ѹ�*lF�2������.�;[gvx[�丩@�)�<v4��x+���FC -3��'�������$'\� ;5Бc$äa�S�mw��J�� ��_ZY0��vx��V#x�bף�P+'L�X�_O�n.��$�Ԩܚ�BQ ETU�Ti,v�;�aD�Jg[{*{K�5�55?"r
{�ljJ3>F����]��f,���v5�R(
IHC�{�(YAPT8$"`�!ԡ�� Ə�Gѓ�3'��8ʛL!
%�(f��eK&K'Ta�4�&�$�0D�!� -�*H����l"|4��zP<Q8��Wү��W5�]��&:�=�/z����S0�[��+uKsrIe�$�4"�0�,f� -$-J$JHbOĎ��P�:!�A5���(���)$�+ �A���j%�,ɥ0}<U����ǘ��P�d�(o6�(kg(a&CFS�%q�bJ��F���vlĨ9�t���/�ce�*=��/ꋊ#�ٕ��M��[�W�^)���pS�+:
�t�����<4�'���w�!��.��̿S��`k�K
�v�?��i���<���Ѡ1��Y�{`�L��u��F3:cn�7���Y�������@�ӧ/�u�7��������a��:9���;���uO ��]w~��z�^;�_l���џ\<�\�>D��hۍ3�@���u_������߾=�Gw��~��9����O�x~��_߾^~M�.�����躽�_��LXE��"mrp��&������soZfd��.�˶��dN���<��:��N�:��,�=>��b)�2&,�X�%s�g1�����p�!mpҵ�Vm�UN�g�o�[iI��1UB�AT�q�J�¥t�*���-ʯX�lGVZ���P��<μ�8�8n�p9�q��Xu909&Gm�\<���h�ॺa��Dq>�9i�4\�g���K���g1=�m/sz�,�1��>^~ߠ�Ԇ�i��R�ϊ��8`e\<ƕ�U-���0�R��r�
Y�5�����R�Q�Oٲlۖ�\�]aR�6�4�,�y���o���u��{SstD�{ڌթ���ګ��n(��g����dvN�S'T���PfV�[1�-�^��0�� -�V -22ʠр�F�A'����aQ�(�c�� ���`[&U�d�j��E�9b,�N1g�
n�_�C8!��V�eE]�\]X�%�gIGο/��W/G���.�=�������1B�V��3���<� -�B�0�c76��1i���X�3���bt��c����E�)d�� -���=���'���L4 -ه�����!w!g�X(��:�z��0
2��S�� ���א�D����}F� -�� �Y<6���� �� �Q�쐆, -�� :�]vD���XKp�ʪ))X:tTD�̵ y6�x�dSȤ��^�$��Ȯ�F�u����"X�{�S�=��|Շ�dy_�����͎� -�%��ko��Y�|ӄ��0�{�[�L8g~�A>Pu���-��j��m���e��l� ��������n� -a�ȅ�h��o0�M5������@ѹ������~��[��,��R�����9~w��̢o���њ=L�
���J%���S�0+2�I��E�ـ�͗�x����l��m�5(M����cd12�f{��2Y:!aY�*@V�D���q{�� -�Iu#�&2S��HJwXH�ud����]�INr��'''%%�U<|8?P���n���iN[l���q��x&�v� ���K{2qG�9Y|���h)w���Q�h���4F�><�(->�st�b�I��(�t�w��k���!��>��ǟ�||�����<}�����i����<=N�ƮI�������Տx�tM�*�7�X �YzS���)<�Y�Ѡ������4���rL�h'�q�>���y^�%�v���Di]�x�����F?�>�hT��
k���7���ʡ�#�n[���CKmv�[� -��� -�����r�o���PL4�f(~���v}�X����^�{-xe!�2�ۚ_*��۽ %��;o��������v�(��gd��8�܀�f@���$�l�5B�H5��R��Yb!"��T��V�ˣV�U,ŷ�qZ�k����w���H��"❯A� �*q7� ��G(������r��1 >Z��q�Ѳ���i�I��C3¨Gൈ��RZ#�E��菊��w�7^��Đ�K�;�4�
Kv -g�+q��d�3�(�s�Y#�h�WcSEE�����$���ꮰ{������0K�g1N`ǐ[,�E
���N3�3�Eb�]����ʐK"�=�����( -"�����HDb��kC���J�p � -��}��^�� ���R�����<���9B^B\ة^����W�Wq���/.�H[�>o('�
턓n���*�T�!�zX� -C����U�E��~��tB^Qf��ځ~�8ї�X6=0�_n��0�Lb2CY�2s�`�u�\[�� @q B�t���4��% -�4��:YqS�,p��b��WB+�r(��{�3k��[@��6!�Q⬈u�'�p5�Y���Ap�%��@��xB -k�Bc��1#FV��!I�A�t���3!x��2�Ө��}H� I�"��� �X�8SF��rѡ���cι�;���
:Q<�n.�4�J��lu5�TK�x Jt�m���Zi
�R�t�CO��-��L����
�]M�Ľ�)�8L��K���a�_�\Ş���!l�'�#b��蔲2��.�a��3�4G��7�q��֙���g����@��f�:�.CF�;Eo��R��f+-^���L��������W�ZK�5ŢR|��sl*��b��*��:��5a鍲�,-v��r⠭���,.=��!�u��R��hQ����U!��"/vW�W-�R�/��ʤ/,���5�b�+���{�������|�5�I�B���䤤�����ʟ����;C�� �i����V:��������n����!wԯ��W0�O_8��r'%������N������)]��N�G��C���-M<�_܇��������w��O���]?M?���������5)��T���J$&>$t���������b�x�߾���2�7?�D��#$�4�}c��_��k<Ie�p���W;8$�����m�o8�G��<�%�s�O���ʑ7���qi��[7R�Ͻ��7\����h����r����`�F
�#�}W����@X����E����W ���
n��`�z�Z!��������@$&2a�d��r���4��$��=Wl���`i��$��-��L�e5��iq�V���Kn�@O0w��3R6��)�
+��,�O�dY`<M��1����s�J1^촐����k#�)�b����rGCl+z��Fp�Z����N>�0��g�8�ȾSٹ��=�V1iD�!a&��Xwſ����{��&���^p���S�q���W�?���B-n�S*U!Q$�6SO�ᤅ��PH�SX -e$Da�����D���0ȝ���k������IիJp�Q��?����_.��]O�{�C���i��>q�o���I?�ſ�-yb$~�9Ɲvg�S�(�������s�v�n�,Œ-�r2�ѵ�N���ljr1�38G���`��.Bk��؉D�l����% -0 -H��I����Cmp6�L� -SAc��8J��@���n�A2PA3�t��K��'�Z�
��-�V�l��Z�����7��.��ˮ���X�%�Jb���{|��g_|�=,"HTZ��lp��Rȡ���D�u���S̱�;2�B%lrɧ�R*����-��.�s�%������WBI%�Zz��C��j���ڛDm�-��j�hMt���س�wv����o�7�F�#f��l�E�����9.�i�`���u�m��]���id�N��g�nn -�Oђl�.��(Le
��,��%��p�!j�5 ������M��Y�C�S�O��>�>O���u�����!l�g}� -����)�����]��
��a�7hv_#������pw�C�VZ�ap����K�w�>|vKoE�����2ⲫ�J}�&0���+��g� N(b+z�њ���7+"�e��L�M:�-����K�_� -��-���A@��eJ��c+,ZȖ�C��_ɩ����`ws>C�UO���RX�Pn�,�C���!?d�{D�Ȳ��+٠��@@a�|��Ϸ�n -5%���E�Q^b�oX�3�""xD+�ĂH� �]'D�aR4����M�� -�'"89�� �д,hb�s�Q x$��H�-T�^$��H*�R� ]d��
&� qzh�4�S �4(��#q�!'�L-o�x5��}�{ؘ�Q�{Q� -Z}�Ep$�G9��@p�t�?hֿ[��tڃ�[K�N욂�ө5ؚ�}o ������ \[��=(���� ���[�QX�ꀞ���v�?=Ǹ�r��b�H�3h��Y�N>�&�8 lG����Þɐ�t�"�"�"�*#��@�U�W.�e��+�2��Y��p�:�M����apa 6:�:2;��SRY8�PF� -ɡ����)0 -x�^�-D\7�!�c�����#[��T�+�A\C�����&�sTt�tTu��q��ڊY�Q�Qb*�(�(�(�(6��Yq�|���~��c�~�ڐ;�)�'j�����|G�)� ��&�ZZ��<��[f�߾%?YX� -���ӻ������E`��i����D�ϝ��د���q3�|_H.QE2؋�� � ��`������G��E��������=������ջ��Bj��p��~ӀX�P�p�i! -���� -N�3ggIM9���'�ր;�wxd�B3�2s3���2�4yK����ܴ��D^�Y��1 -k��L�\!���G{�u��#�~�;G�u��9)�9Ո~Q[Ĥ]��;��g0 -� �Z@;U�A1��2��@$�(�^�e��I������c��~��y��@N�we�v1�v'�!3x�0�"Dv����͗R +��f�Y�9�(�0�`}.9fC8��N��I�d�L�Ezu�^Y�v}Ҵ��_"��u}�թ�c^Y�� ��3+鯐�]��BHn\�{`R�f��`XH<E�U���O��7=���e�9�M�%�11�F�aP�u�Go�mnKiok��ܳ���l�r�L�̗��^���b4\��Km#8ލ�ɁԕH:�H�ڜ�<�xK@�K:o�L
�[ �{��Y�j\�K\��I���E�c*~BN��T��R�i�u+U�z+��0JρP#�"FT̟�#�* K�+��* -�Aa�u�{�vO�\�b+2f.:KO8�,UU[���E�S����1U�l�C��C�ʸ:S_��S�1V���L�*�K�̵x�1{�s�L_o�?_C���Y�:gɫ��4�p�s4ƥ�Zg�����e�mD������.x��[B8� 'n���Kc�u�-�
�W��ٱ�}��\&���H�vi%c���N�ڙ��*p6�F���j$8CA�``�'(��Xp��3�@ -9�#�D�*�\+�b�VZ0n@�v��7�aH�"��R��8�� o���Buv���܁�)�� �k���k� ��!�y䨈H� +��5�����A\<D&"�%H� -�١�B4@���$��JP�ʵC�-�l��9H���EH]���jn!���A =�2���g��1w?v�������i���{��;�9��1���"�0iԜ�Ϫ�Oݧ��{�cF�_������hzr��������ӻ�O�����Y�#z7��p`y���h-?@K\�����%p�'0�N��&?�����P�zݻ�#9��.��*S��}�|?���N�0x=������8Q��Y�����c{'ᅥ�
��k6y�}���Ip�zz߂�ݗ�wP���]��`�0|^O��ǯ>ߙV���7�����������/����/���||���?�����}���K��Ɇ?������3H�Qg�>��G���3u��|ԙ�:�Qg�Wg~4H�_0��Ql4�㕌��_����D|��W��,4�h��s��=&�\<�L!d��A�L�L�LM��$;3?3C����NLW��J�$-iKⒺQI%���H����c�hV�s#ϡ�m��*h�&M���ɕ�~�uF���J��J��)3��Jތ%k�%k6G� �kI�[ɚ]~/�Ӗ��+�8�Ox�9e�'��p�o"|V�Y��*įZ����;%Y��� .�
4�ɀ��Aj̢nj�NJO����5���p9���C��@��d�F&��|�å�*��F�n�����{t>ҍ�#�H�`���$�ԣސ��ն��4��4��D�?��n�m-I�������'4���'�%LA��R.V�t��fu_{��z��S���c�U�E��k癛�36�g+�gf���NG�1x��
h)(��҃��Ц.� �b�ՈFu"�V��%?U#�r4�Y�
���@ؑ�Z�+=ɪ)m�+�jK��rc2���M�)�8U'��ԫ>�*P�*TT��T�l�U�ڤ��!,T[7HW:ժUJ4c�$�I�z�]8�����Q�LiZ?�����}T�^ (����,m�Qy���㍼�
�<�&,q]��&t�L�,K���.�h(b�A��v��MNI-r�YH"��&�i�Ŏ�A�"��!�T�6��0[5��p#���{�<B�C��f�0Hn�����G��@IX��&�Ix��҄%�U�6��p%`������K��D�(��c�uDMp��i�:����<� -�\e�?�W�����C'x��H�/gz�
G�`��'���������Yg�A���*�xyyK#˵Q�V4���ճNƵ�r�16L
�!4ĆTaH¹3jk�ְ7�Y#e�-:7��M=]0>�9zW�s������=��S,'L���)RA�!�`�O� u��7�� -���+u�:Tj��g2���@Π5v䅰$V���r>�Kyf�K'�v5�wU���DA9@�3��c},��=�n�j //���j=�iWp�����y -m.�9B���
̗�6�r����fR�Y�x.�>��Y�+;�A\'l�����*�(��bI%�(('��G�.�|��=u����|�v؊�����m�� -*���L���Q��A-��|ʄKaIJ -�S�����e -�?T�2ט�gd� �7��fe�9�b��fL�j���}c�O&�� -�#�_R�Ί��H_M��>_���4��2�n�Q�U�7�7W|u�W/��_����^=o�w9Qf���11wX捝Ica�H؛,9�\�9@�wj�>���;�c_��<���"�6~�:DЀ/�o�6��L;��&���ޡ+�`�� -E�GS�̈́��Z�Xՙ�@V�s� -�ʾQϥY'ڢ��4�ɾ����v��4�i�;�)qN�ܙ�|��X\���RS���U*�ښR^-��X��e�Bk���,7`K�Q�^en�����X��Y�����tl�=��T(���o����ЧCQhκΨW���
�;/`$Gl9;���<�����[��6�s(���Un(�3�W�f��iɴ
ͥ��Ҁ���߭��r����{�zk�z�x���MW[�6�0�D���p�L�p�����u��=�������ְ*�'���侥h�\�8>AH���J���f��R��|���Z�~��``;j~-��̭�]�Y�{�sq��\տb���P��xw�F��b7�k� C���Ȅ'��u�g7I�o@W�6��Ζ� ���R�YM�sA.H�#E�"*���Q �rI h{V��B��^��.��T:E<��@>;��;��ɍz -�-��H�st.�::u9�x� -�z֏��}�������_�/���_?���������߿�[~��߿|����?��Vn���ͳ����e��-�<�+nD�H��*� -$�De�%Z+/(.>d�����1��
ǂ{X�"f� �>����`6�t`��*����#�U��R�r�\�i��"����>.I�c,fЩ�tu��U��� -��lt7��9��_��)kT�OK�ҹí�7�qeO�[2���F4þА�4���K9��ZZT��<U�~܋�M_��r#�Ff -N.�ǥ��S*��j�x5���N���?h<��ٍkp��:��N�G|��Pw�@��&$8<��G�C��'��#��;� b�I��Ŏp(��%�A�Ʋ����{�?f<}�!�ӌ���\�D��1��iv2�����Ow��6�(n�,����L��C���5#��Ho�X�vB�Ȣ�f;�Ů�f��Q��L!)���#��FRkGSc����6�Ӂ�q�D�IU��~��i�K�����
�w0 -]�:�UL����fVK����#�Ax4�M8U �B��P���2�u+��`���@D"�an�a��`+�i�X˄;�!&6Dm����6�l��1��7��M7
[/*�-r6�|mS��y�X�Jm�T�e�4�?�2g�iþ��)����N��?4W�@�
T�Z�t=�]t�ѳN���2��t���i=e����:{K�K��ﰹ�Æ����rّ������ -�T��~ pIB}0���e�r���v�����Al�� -Rʩ���h�F -.+��&\f����p�=.�&����fniEܞ�Mky�w�����R����m����|��OX����X���a��Q�r �7a#��cE�k��5�0(c�g,���0��
zp�:3,�X�Af�d�Y,�����E�^ -��@� �5���(�+L�=�E�k�O-d!������d$��t�XVe�9�%���O��+����;��dj�e��ͅ&�i����� ,�� Vw��Q�(�!����h~S�Uryk|��#���C�Wɽ7o�>"y�O÷In~��M���ٳlz�͑�S+gf�4�v,�A�C3��`H3��� -�3 3,�s��� -:���b�t��NW�H��Y8���Zt�1ȸC܁����G%�x! -��� -Y=�Fh� -{QwQ�0���]�/ -E��M�E�E�E�(���Y��Vs��+iS��N���"c��a�(�8n໎�|�d{��#|�NԈ�q���Fh˚���,��}B�H5�3�X�k^S�'x��aK���'���vK��j�e{u�����T��_s�����/��-��ȿ��uj��m�$��P���u�� -�K��\ܒk��\ܒk��\ܒk�z�H;�t!HQ�
��Ɲ -�m�'��2�ϓN ��ģZ@���ĭ�;2wz��9��]�O��� ^�x
�ǣ0��L^S�1�����l�{E.f��ʣ\^]�zds��"�A��Ps�$����B=Qaۆ���^Za5�������c�98[��Q8i�+�{Ձӂ)��q`����~A�L�MW�xU+䭴�Q��i="5RXDO�x0T�V��������S�����Z��W�*e{2�*����s5�T�*l!<ݱo��W���Gz�q��� -�U�vBW������ɩ���t�V界R��: ��Y�8~�Z����)5����}�G��WU~�k���%��K���*����t_��.�ܦ�:���fS���wiLM�J�ګ�`����V������ kg��,��B���jO���x_���'������M��F�Ӏmu��:c���n\���z�U-�昀�'Dy�u -\=��������]��CGٛg�rG`G�n`����M�۰�88#��5[� -b�FyLW4�����tM/rAnT�&q�����^�F���iA��0恱�q��,@�Vv�2U -x��ёA�����+J7[��ѾZS�$��"V7�
JKs���5� -������^��,�n�MR�%�������ww��
�vG�aw����#쎰;���7���ݻO�7!{�mԵ����G<Nj���������M���N�����_����ݧ�V��_�N�Ω^�K�g�,�{��«����!vW�|�}��V������)��,���B�+���8�w�/�S~z���燯�O��㗯Oˣ�~{z����C��=�L����ǝ�$��d�X����rS�y�c��]�i�_�f��=���>{moZ{n5�{��ֵ� 8��&�`�>3 -��8��(���*��v��1}�#{�s3 ;�7�� A!�b��!P���A�}r~u�]�aנZ��ޡ -Z;͞ıQ͊L͆Ps�Y��LY���)�+�8�5MpO9]��X��]Eq�P'9�ep�(�,P�e�v�0(t��mv>�c�A�- -"����J�i���� -���8�C�,�:.?�5[�&zm1��E�J�UˆU��6�����ճu5d^�oN�5��=�,�,����u˦2��t�1�`��i��H��,�Y�H��HG��9j��i���9��(�OHxuL$m��[m�-�a�S����T��>iĤ��_�B�>��� ��y��o�QU�Me�#��Ͽ���J(�Zm���)�!��6u�8u����5�D`w��nG�9#���qX��磃d�#%���m -9�زJ�g�g�I��s��ű�8BS�8VG,C;%�ŖS!��zk���9��l���s,RU�nF�� ]Ys� -�Zb���M3bÀ��c����E}��:�Ax��]������_ҭ*HNf4�j(�IB�W��j]]O�%�iWp���;���� -?�2�kl�+���|�O+;��,XwDe���4v�:�ҡ��H������ ���Zԅ�ܩ��`�W�M��H�0|�Fm�ћ�h@�"�;�vh!��rd�}�6#��ζ�e���]g�qo�����H?�o��!1� -S�? -D�5V������)]E@� -v1���`U��F qA������J�����l:���5�_U}+R����5�`M��$�(��Q[sW�^5{ ��WĻ������@��Zɫ������������c�X�r����;�ބ������"89�!���arF�Eg�ӹ4iR1����.�t -#�D�T1!X�-�F/T%��V -H��ˎ�E���P������I����j�$fa-���F��Ŭ��ZӅ�Wꮮ�b�q�F����˿��B>�z��j�>dX�夗^� -5��M��2�*yTT ʪ�
����q���h���N(��AUw�����e!(��B�4��H7Yg������
j�9�RN;э�C�E(�6�@�UW�����Ք�4}�� ����<����.�"��/�'���Y"�DB����]هZ�&��?O!��W�*�D�OѶK\_>G�>���KO= �MW���JK-4�DS��ZKM5V_m�Un}�[�F��0���K-[�%� �B��r�-o��3�H0�u�����TRB��䐬���dž9w�(tNUD����R !"��!m�H�;�"� -��2����2��R����< d|��w`� m�ڤF�J�#����"�h�4�-B��LژND)����-���G�f���9��ca[��X ��b4�����&�BsD=.559��T@�P���CyQZ�!1_��W�wen%��
���/�)���ϔx�p���&k�[̀O@Q6�\��m�2�P� ?��:y?�o�S - -����`��ⷡw�����.FM��Qx�u�N]�.�/�����F�����G-���e.N�H�p֝O��_��^�P�p1�-�=}�����괿h�bt -w�{����"��Kqg��C����}��_����/�o��?��e�o����˗����������Wq�]l.��WQ��43��|���I]��v�;>_����{��I\�g���I
�<*�6k����#v����гx�5�ZEn��]��Uƈrh0��*����:���14p�乲P���u� -̀�GEd�>�6/A�Hí�z�p��ޱ����;n�Wo�[{-�m\u�64�2��.��Ӝ`�@�MV٠�$�Q�;��ۢ�j���6�/=$u�{������O�����H.xw�D,�qU��c�8{g*���Um*CD���Z4VӰ U�
�Eq��%��
���v�=���Q�t -D����d� �מ��D��]��O�{�O�x�h;�P�,ʂ�4��A�&ɍ �9�e(�1t)�Ğ0�13�Ѩ[8b�&��0�+j�����:�z�a����?�>3�������_4�J�k^n�n����t -x~j;�S�{���\���Y��M��^*�О���C;��C�C�?W4���g��7ρ�S���s����!Y��^m" -�7r$�D��fX�Q,�-�k�[\|��f(R -G�(��:1����x���In>"����α`�ϟz�w8�$|�7L��E��q�
g�q��)�P5Y�EFL9m�a�:[I�9$B/��b�e��r���2����{ �@X��S�U|��@�*���l�7*��a�*v�`�v.`�ve�6@���@j����Wq|�8��G][Z�6q�qC��ġo5 Ŏ��<k`�c���������qG`t둆K:���S�݇[b�WH�S������kyͩ��W�t�����*���_.;��f~��7
L6�"E*hu ��ʢ1@7�H/f���9���.����`::�,��o]�<g��%A
�X�I���G_�<%��܊K��s�Ԍ��������ws���ڣ�b�g�kY����]X�a`�n�����t 'n���2�S���e�����tc+����7� ����VF+uw��?cWGt4�j�4��E�h:h�/��*/~m�S8��� ����x^�Q�����o�s����#WB3�Y�����yB�J�Mͭ�V���1�;d��[r5�u[��|8�<'���.K����h�s~)�ß}Oe��(��視��[z���Sg����1�7�b��~�c���C��Ӄ���P�0(z��Cf-凍�GИ�8�x��Լk1J���)N?N �F�$+Q1����u�s�
Ӎ�7w����kVF�?��
��1�D[�N8*�x�A��t� �gG��J���2�P����8ǶN�
}ҡ��%f���M��r��}b��W���C.����O���؋�a�|����^q�Ìݼ���3�Q�V�TE�k�rJZ��70:�Y�<���� -�J��y�:Q]�)�<Ֆ<�uFy*)O&e*�*&+��f5���H�蕵�🦼��u�z����z�ZK�n�j*�3p��%�纞uռ�����d�jܶ�����~ļ\��3�gw�t�z�M�8�t{s����Ug�
�V8l��ӽTo���R0?N��~��{�J�DR���oR�&X[a� (�@�:"�V�fP�ϥC>d�`�C�]�C�8A�Ke��K%��c�G��"�L��=�N�.!�����8ؑV涫�$ÖL����/�'Ck�����C��a�^�0�5ޗ� �����a\|q�:������\F��<���ի�,��3�^�|�z\�:r�c]��Z�q}wrˮ�����d�7��f}�V���֪=������۴��\+�Ug�� -��.��*���<��R��$�A) K�>��~�AS���,|��&�������<
|�rIV.�) R����TU�C��%�ӱۘ4o�Y==�Ep���5F��i�`5C;��b�"�<����J6��ؕ%�/�na�#�5����V\9�r�N -�CUA�(�!&R�2�
~S0�]�b�h,VJ
2i�t��(�Q2�Py+G�]Es���A���:<V����n�=��BҲ,���^��*~qK3/�4���{tR7�����L�4ad�;�X75��8�ڀ��cg�GZe�F�'�Asv��[�����(�4DtKP���h�?�jt%��Q�i 204306h�buF�WvX���j��������� -�����������٣$�g�v�1��i�<K�{�ݓ����2w��d>'L�2�4/���L�=&�iy�b�rЛ -���a�-���>tp�4c�l�F�pa�K���R3.�˵��0���},���?��13t�]�k�7���I+��0v9ͺK�849&��6���x�)�qZ���MU�A���Uf�Nc��(�g�c�g�� �t
d�-�?��^��pw��7υ�Ň -s��9 -�]�K -U�A�@���= ����]����pD�ŝ(~�����V�̹ -!�B�W%�Z�S%�:�Jm���놂ҽ_����{�)*�U��~)öj]�E���B�$; Ͳ�>�4��D��%��z/����=Ɛm��Ң9D_5�J����z�E��HY� -��K�N�6�a���$���Ѵ���II���_��{��䈜��MU#��bX����Ed��X���)'-B��]U�3��JDǫ���C?��e� -��� -��&�
E��".��$��4s�G�����E0mC6�����,�cz�s�O���]��<Ѕ1� -�+�0�a -R�9�]��'��t!�KT�� �.��Q�o��I��}�� ���g� -�����a�N��d��Kc~.$��wOe��+Co3�qN��}��7�b��R� -&�Q�V4/���q;�j3&M��4��to���{qtF����p��H�BWb�P�<~��ӎ�'s�kW,j���j"��G�5e{ |���9"0<��C�㘑P�)[��= -ut��XiS�[�UIi��"��Q -C654�(�Q<8�(D��i���/O����/^}��۷�x��&����W�[D��3��x��_�N/�!������ϡ糗߾y� -%�� �ÿ�<���ɚ���{|��Џ7��77�S�y%��;=CG��Q�䔖�uV������*ԩ�¡�v���=�`Ӑp�Yq���פ�y`��:Z$���8�@Yo���[Q{�T�h�L��`n�ا��[A��a�ㄮvXv/�����������.��ч�L����Uh��K�/O��3S?�rw�����L��)XJ�׳ѹ��sK7i�g� -����?d7W��<l��a�����ǁz~����4o>������/�i�YF��DW�06������;d/B���Z*������2�`=u��)���O��%�a\� -5�a����a -�r��,�,d8��U�2�1��sE�� -����dG�9�ȑ�٢��G����s%��;�K�U��r���$���V�N
W/���
R4��m�H�!� ��E!���i�9�y/���r�� -�p�uYӊnh��)�ZѭH����
Y�^)??��+mك��
������5���#�Kv`}�� - -vL�@���@�Kp+.�m�B�����f��2 -;x8)�`�5H�,�f��0�ɛ>��H]U��[�gX-M=>����<��6��� -fm���a�z�ϕ����a�ے{�QJ�t 9J$G��� ����Y͇R���yO�*��:O��H������+�� 2�� �J(����C�d�i(r���}=�/��A��Ć\B~]-�Bʂ)^k�XSsk)�����ë~>���܊:�N�L�
�X]Bw�$�k��as,�ke�nois��*11���NU^h��緙ZT�lh�����e;X8�����)��&�F�,� �#�-�;�"�
*;����xX��Ό.N��=�{�b��e���4wG�u>L�F3�(x�p�!�m`m�;�����j���х�^�MaMmK��h�3����r�5���K�l�6$Q��9�X�t�P�Б��E8���1�c��*jw� -� -YK�)�l�M�>Iu�_�[fH�h~�n]���x�ѥ@�D���=�8M�G%�����}�����l2�3Gq�L![�^RG��e�L�zQr�����!G�I���@�莡v�o�3��;�rϼ�DQ�(�ňT�dl䑩�ٯ"� -M���>�`����!zw��3� -�m�sx��\��ќᙔ�^^K^��9R��>����5 ��?1�kF�E~�YNu�u-�1�4R�Dy��I�{u��c��P�o�� ˢ�m������?������U�{R�U�rQ! �Nlɖ -A��e.�����0h4�C -�5����v��IX��qe,��BNR"0��5��y"�Yk'�h�.9�7M��� -�ep/��$|e>�e�!V��z��a����������n\@���u\Z�]�@��!.�:8��8�J���F�D^�A����Z�VZ4��y�f����cy�#��� -��4��n��ih=��T��Db���i�� i�1'8������6ʺ�� -�>t:�pr -b�QwP��-���I��05����S�V�$(���*Fh��o�f�3yi,wp �����P�KN�5H֫S� -X��z�e߳J/;����UE -�w���}���}n���� -Ӡ|;r�����-*s��}fb�cF]8�MX�Ơk���X4}��-�뛜d˖�͵�S��*�)|�]�-?v� -�d.A�쳺698��6����`m�YL�Ví;��VK/@���ԩy��*�R^|�R�k?P������ -mǧ�w9��N;��ؘ����c��5��^�>g�x �W�U2��=�umh�6I6�&(��s��=��p����.���i�Zז� PLՒ�a��z�{Ȳm�`� -���l�����������:r��>��du6��)z�W���1�� -��`��p�Mp����" -�v"�O�b -��&��������o�]Eh -�U���������w���FJ �/6�v6�z�3�E�`3V���i�d�Z�(Q��+� -���+��!�*���'�Fp�� -.c���>�]g�����U~���v��,PO�pLI��z�-MG�W�G<�Ltś��U+L�]���1�1k�����ںv
��&q2���0�ڟ����6_V$��f�����K.���h�}+S-�|��h
�u��l�ޣ֢%�`�B�� -�*5��X��Cu���b�].�̌�%8�]Y���Ƴ���YS�?�@W+i#<34ܗ�5�[R�0ݶ�� -��p���w3�o�Š`E�����L��� efR1S�|��hA�;\�l�@)3+1]3T��Xl���WbX*��n�_��[�}�ڨ��y�X�>�-��I+�6������<�n�?|^y�\V��r��1*IK�� -�gM�R�x�^u�63�;+���h��,8�0tk'��S0- &ۥ�矃0���ۆ���Կ�WM�]5��?�
R�ʼn�8˶b*� !4����Ҫ��s۹����)�r�i�8�}|���v�!��&�pT�k$`:����*�6.Q�&)�h�aٞt��(
t'�)��<�$���!{��s�ύ�ߜ�z�������������0�����x8���yx�}��~��x��Oi{��n>�>�h{�7�iK�ߛ��[|� ����w�Ͽ��^����<CT<��u� ��u,;�a�p�G=^���f���Z0w�>*:mR�� -�Π%���iq{�����N3u�!H���c��"я�,)�1H�\��� ���>��3��s����O� -�蘗�e��`�t��V,��/����Y�[������3g�~ѹ�H�yf��ϳ��*E�v�`�NS�l���"�ϕ����v� Sk�� -����~���~�_��ʘ����1�T1�$;�`�Y�(���lR�����D����������^|�����'B�t3�� (z�@јC���'~[J)@�
��Cm��s�V�������/����^Moh2�Ԉ@/�C�J4�3 -���2u1��Db+� -�N~�Br� f��;)���X]J.E`����J|�|?��Z�<l)�l9ѕ��"#2.��an�Ű:RT~*7
�g\�o��Q��Q��Qu2q�����_�l�P��D�
K��l1@���G�| _����Td�@�R.n -�+d4�e`NsjQ#3,]�3K�ز��VFCc�hym�ɣ -�����#����2n�g�XG���� -{
XE��*��ȼV#�j��A�̨W>E*F�=��uQ� OO�o�sW�p���L�l�gᖣe���C�(�� -
endstream
endobj
82 0 obj
<</Filter[/FlateDecode]/Length 13905>>stream
-H���� -%�
ǟ�ù)��lɲ��
�E˖��@����ݥ�Ɇ�}��$�gfۛ����F�dY\�_?~��������./fy��e���7��%���}��ߧ$�eK�d� -S�\���\���eS�)�4�a�uv����ڗ����a�T��UX�e����Ԗ��XSkπJ�SX�+hT� -�8�U��}K�K�T��,��PŽ�HQ� -��6�KK��w����&�[@�P�[S����y�o�������t�P�Y|�a�+�)ץ`�*aA�>B�Cc��qřYo�;LV��a��I6U+}�Rf@$Kޠ) -f�
���ƛ��M�1*��Ҧ`a�~!�0Y�K>����|�����K�a(gO��:���B�,>/Io���fxo0����r���$�q���q�¨|����i¥`��ɦn�b�,5��@��$1_B�C�W��~a�q<������Ԛ�����~�%�,}�W6��j9��|�kH�e��@�d�ɢ����+ݡ�O)���Z�7����RK1�o����НC+Z�CAN63�d������ߏ�v�<���4�վõu%i7�c�K���x���+�M�s����CT�����o��d���k�� 1�O��Oa1ǝd�a���
,A� -u,Qo�xl)W=�Ћ�p���kðT�cD�m��E,�
7�ɡ�O<+�H{�����rv�x�Z�1��M�X�\�!�p�<�&�v:_�0
�^}�L[iٷ��<'�l�^luu�J�����α��B����H�dN�O��>v:��Xɐ�WY�#Dbd�lm��#B8�c�4���S�3m0���r�"���lv�s�2�H�
`6d��ո8�p����`(`�t�-35��(��D�Q������y��>���-~�Y%/!(H�~��Q=.I[T.����`Ȭ���
���Ncc,��N4�[|�;��L�� �4<�^R�~���Z�{��V��q�5�Y�=�%ƥKc>���T{\�a��y@d �#N�cc��I���p9K�Q��M(e���W����F� -mk�����90v��,}���h����Q����V�\\�Ǡ�6'�GZ=�������CV0��~��B �����?���8��<*vY��;F������P�T��x#Om�I6 np�7�`x��6k2I��Z�ڴ��`F�h^�l}�Պ�+�`�K��Ul��%�@��[�U�am��]`,V��#Dْ�:�Rp`2nl.a6�Ѻ�8�a���E���O��ж)v|�l��H��=���lCwsH�<����c� -��(4?����x2�5���(q~����mK�7w@�~Ty�ޛ,��K9GS˼5ڕ�#Q�]`�S�s+�����m���y>��,*T�Z;� �#��6�i�s<�@��¤y��5Ƨn9^R��5�l�����gr�Ye�;j�A�y��I��*��zj��>E�ϯ�B0��=�s,�$��D�,�Z�(�y=τA؏�ecw�=�;�2c�O�f3$�
��K�F�&K�H�WHyU��dR�x͔��Վ�ȘW��#�S -Yɉ�I� - �p)8p� �ß0�ii�0_(�I�!]�
�2 �\z_o���E��$^�0��K!�(��h�nP�裝�P����+�>������鬅b��� -rI�G�\��U��<�%B ��*�;g��(D����]'Ġ��t��膂�P4̊*�% -�ݪv�xD�½��Q��Ե�ϸ��a+*�!�����i����Ѩ�F�E�5(c~-�`��� k�Un��!�
�>����
b��d/��s���g�aA�H�.G��9P��2�yND�D��;L�x)��\���� -��ƥ�c0\���"���$I���+x{�
ء�4�w������A���Y���j�sh&+����P����Ӹ�� #�Xg�W��J���ɷ5 -�lc���xb]��"s[�Au�,Hw�n8���Z�!f�{� 1\�W��Q�� �tkJ�q����F�X͔���"-�Nmɡ����� h�w�^��Ns��Q�_&�����!�0�2������>2G/I��Qm�e+��mD�� -�-�q��ft���һ7�����~�0q;`|�`�O�L�wi��1�W��Z��a2sA�������w��7��_���~�t��5[�3���ua���=�T`mG��%�[]��>
/kG��#e�k9a,�4�%v�c�����4e]�K�"���3��O_���W�R�(�X`�!�=������ -
>`��ßج)o�r�_��Ìt8L7(�^��Z��/�ɂ��"��T�A��N��Sq���s�ټPwY���)uv�3YK5۪%�X�oq8G�u��G -X���c���+�tj��P��g\��9w���.K�B�'��)���\h���p��K6�uF.b�Xw�����6�{TUƺ^a`X5���:)!�s�J�?�ZX�h���v��Prv�V�����;�)��z�X����G����������X��C"��;���1>L��Y�:GTnԙ��A���1����2H�,s��������gb~bQb�/>�0���9�N<�m��h'@Se��� c��]�&Qs��9ٞ�.L�c��ϑ?�WP�v�m�_�?���sBd���|B�}�1����}>��I/`���k6�:y�� !�@WI�X<F\��oP�e�>��0�9�J�BFrxͦ�Nh�g�
�'�e�=`_R��vh`�M��;"�CH\9I�Gf�$`ݨ���`9�K -fE囹��-��e����l�>�l�z��+LN��M�Uѧ��?�n�p]���lZ|���2� -�0�����9���l�rĢ��e��Mվ�'��`��0�|G�^=@6��7�����n����#׀�V.�Wl��m"�7h�k�X`d��"/\/��$FvX�'G2& <Of0v���q��@��������q{6�RO�?�e��ؖ�?kn4]y�|�9�v� -�X�q@�#������"�#��&��9^����b�`�K˂#���à_=�Uض��xp�r��W<��
�lwx`h�)� -8����YxA^��ͬ��PR^�v�X�}�;��VB���~.{�d�k�Ѭ#v
a%�[�)� -W������)0X������w���H/�d/���?��c^���LwH�Ci U�#�#iw�&�7����������T�.��1qTs��>�3�Ɠ`��*0��d��Z�l�������B��,{������2(��30$�s�'�)Y�ކ8�r¸�����!��Q?0���qo��}�ت����$Ol�+H������l����Y���X����^����q��y��nĘ�J�b��o��7����8l)@�0���i'�ح -,����<���.X��Ho(f�Qa�AIZ�w���Yp��)�O솹��@�Q)�� -�PH�X��r�v�=�����q��О��;Wzc����\k�����c��+[S���E���naY����=ba�����)�3�����O��e}Y�������?�e���mC�+���=)��۲,�0i{ВҒ�RB���%M:��dI���9+���g�ʶ,KKḴ��%y��c0��ĩ߶�Mi�R��p���vd�1b[�� Á�����j tȰ������q�ӷU�����p`o`�����Ct^{[��¾����r:�9hPk��[�@t���������p�2L��������-���:�y�6 �8G ��H>`H�D+������x����r�-g�r��'��n. -�Pp|*A��o����^����3ϔ3;������1�ƫM�3萙d��N8w
<��mQ�m�ǔz�,�G��X���j�U��U�{��{u��A�\mEz�2?!��t�4�cG�C��0i��Ͷ!��/`5��Lc���NL5fO=D��Q�[~=.g�|{�ؗ�NS���|XP��*�v�Ol����f�� Q9a������1졪6Dp��������P:����������_�Q���?&��c�I1��Q��p$&~��
�\�0��3�:��PJ턱}VE[�ϓ���B ����� -��ڧ�R���-3��&=~���M�
���?���P��2�C��!��$��m��)Τ! ���8���x
C`=�? S���d���ۦ�u$�&k��x^�Ec��e��C��&~��b��R�׀_������=�f�a���y�{�kV���c��S�B�[gK�& \}��;' [��j`܍���x���l�B>I��#^H�5��yJ��թ�;TY-���h����l�ZGs�C,,�8c�E���옺�j[�l��/�R=,,Rb -�O�R�cA�����@tV{n: �x�.y�s\�;��ơ��f�D`S��M��!����)�C�;9`��|��sݵa�,�T�8��.��r�)��� -/;8q)&��+�kk�=�1�L���>�(ٴNNp��A4�l�����j�z\;}�$�u���D��_�p�K�v¸Ɗ�x�Uy��zwA��$�-�"RZ��h��;�.k��T����[3i}��ѣ�E�p�p��:(��`I��k�
�����LO�������£�m�`x�aUz�z2SYU������k#��'�&tg��w@Z��AO��&�W���a�U :k��͎Q.P[/�uscD`x�/�2�\).�ُ��BP��2QO��)��o����T�>�N -W�l�rQ<�HKT����Do����E��(�o�1ƨB5�]8��g{Xp������[5�*��\�X1��a:�LY^J��2G:��h�!���ے �fr1�
z¬��0'���L5:o/q�F(s��2�q�<�K��d�y<x^��I�K��`�L��^������E�f������qch:�ƪ�
��IJ��juEg�������|��k�R(��D@���!z�.cc���l�߫f�zp�&����D�Yռ�B�����\ -ta�Cn�� -~B+��p�e<� � -<J� �n�vH��p -8�;����NJ�C�����ڣ�����WT��q��{;Hf�P�&�0:����S�ؖ4�������R�X�X�y�S��f�怐 Z8��گ"�:L��
�H�t�b��Ӝ��א;�HM�[�XM٧ܘ�h\H�B���(q\�q-�����-L�ݮ��-`�q�%�lG�|��V�۹��rA�����ܧ�m[>\���#�r0�n#1�i���68� -��\�`�F�fl�aam��d��i%@��qk����2$,ȥ;��t�Ih�.!���P��P&V��J�c�����M�N����!�w,u�}0?}r5UNJ����k*HL�Y��e���XC_�k�A|\��< :횋�&s��aE�p���۫C[ -��0�ƪ��'�c�jw�Ʊ���g�v�L�-r�W��]d�b3�-�X��Ԛ:�ז�f�~/E^��������NZ���.)^���s<u!�D��Xhr�y\���'$i�"d��LkdӖ�^gKcm?�8+Ql -� ���tc%l�(?��� ,+~]�W�ah�OA(g -)�j��2�0l� l���`k4�y)����,#���(dk���^1�(]�f�dD'�(�A�� -L��nY����i,���/���aA�$C�� G��>��;�a�5��I`d �Ѭ+��5u�ͤ3aR���c���&f��Ձ�/}�K
-�v���L4^%`�R�j��HFQ��p -��5��(5��ƚ�l�6R!�F�nTl����ԥ-�:�� ��' ��,�|�_�F�3���� �����A.1�X&�����C"ah�B�}k鈕`A� ��b70�x�k�@�W -��G#D��'�]n�I�D J����AC�^��s4��騱&"�W�C��S�5NP9�U�-��K���!���etI���qr�3�v���Y��p���F�:�!�M����HC"��~�I��i��e�4���5l�� -E=(�@k���T����@{�� B/ -�l��
��Y�+-��NY<Qځ����"l�]H!���{0�.%e/�T�%`��yڲAɈ�u���o�-�N������B҂�_�՛uY5e�����-��/&�V�
%����_�\.a����8�a���/��ya������|}}ۋ���^-+xu�Z��M�y<}2yz�^罈٢\��Ee߳�ӗU�����Ua�=��|�x��mU� -69 -z�5>1>q�N��xN��J��?|2>�f���u�Z��o�e.��M^��3�u�,��f�I�i{��Jۭ//��~�4a� xFh#щ�1�E�(�/�����@��R*�]� -ۉ����}w��/Ȅ�l)��稐s���d�����b-���Ґn={tG����h�|?k2<�Dp=�@[���8��m��/���S0�aI���]v�R��\(��Bְ��!Ӈ�[�d����:k�Ec]��_)1�*sV�-T-o��:�p��r���X^�����?b�ğdn��Ժ�>⢃7~s*W��ۄ���f2!#ò�s��+���G�d�X�������� f'�e�В0�)1V)�1�ƾC.ɟ)�h�iZ��ќ�:JL$�(`o���lO��b�.������}����'��_�㨠������1������pTe�D? I���˱�p�J�˷E�ʏ�vS�/�[� -H���r;Ɵ ��e��d�9I-W�9q�*8)�M흫�4�D#�j$l��+f����"�ҌC��`�6�M������.R%��H4�t�x��t?Hӹ�l��Yf������l��[|�z�_��X���7�o���������>^��:�z�rf������~��`�����>��կ�i
"�TGOP�>vg���̽�4_�@���[�M��σ3!���� -
OrD&�5�U�Ulx�>�����Kcn�!�l�Q��s��2�4�qbp�k*�ݾ���؟���А� -"䃬�RI�t�lj�JJp6�� -�NNp�~��&m�ɉ����m(}�zb��@ܔ�D��9AG����w�b�}�ʚН�tt��A�W[f�hy1)Q�Q 3J��'���B���81��<�0EiF��h��~��Kڏz�͟�����R���h^)O^�$�{��O/rM��^�4�B �G�h��1�V���w{�{�\��8<���M2��Ձ��NR4���买�W���-ߖ�T����`�$|r�B� -/�Q�gzK�M2��Ձ�X�I�t`��`�</�9([�RC6��DG]t��6j�$0�f*w����i��ICݳ��5E7ۄh�p��\��G-��>����W�rB9� -0x���l3���$��W��O��e�S.y])���!���h�dDZ�@�~m�
\���{��?q5������D62�jD�>�q�� -/�Q�gzK�M2��Ձ�X�I�t`��`�</�9H�tjs�F7]�ԭ�R�Y����)Y
��:s4v��xv�����p��^(�6?I/ۣ��"�7̯|;9�і(���� >�������ևi��Քi�1Uu�Ge(r!ȏ��Osr�zl&I����Y&8����< naIfr�a@{M�2>��fQ�e�� ����+�f�1(
rFn��U͓��o�.�͍6r� ���`Kx����� +8�T�|3�1�Z����Mc&��$�% 7�n&V����9��)���UI���c�U2(��'�'0:ݚ�H�����>��C{�w=�u��Sk��۶�~��$3�p?��C��dD�dS�b���}�]{�3�����iѕw��<#=�j��g�ܴҟl��ܱ�n��q�Ex���ě�p�d�d�ljv@_ʿ�2g����&6��ꩳ@c��f7)�mK�x>N��0�2y�"�SU�Q+��A~,ep��\��nq����50L��2���8\G�qK2��n��4,�c,P|�3�(KB������+�f�Dh�4��ՊW5O��� N.�D ;67�ȽC��&D �O���9�UA��v���J�=Ȅ���Y�WI�` -w�Cvp�%�+EUR33�|���y�u$O��֖%������Z3�߶M|=�b��]!Z����\ ��q�@��H3�!wVH����5γ�a�^m?�i�x��fx&�9�o�<�_�Ul�;������ۘ~��{ �%� -����0۩D*C
�V�� ���B���y��:� �k"+�X��Z�����r�h�6�!�t�c:�q��O�6'�#����Ԑ�9{)cSp��|q347�
�R���4�;�Φ����N:H�g�^�Y���i��$ߺ��|q����M�ջ�"�q�z��I��� җsaP�~ww����Uw���}�Ѡ{y��f<�D���ofRK\�N5��̜++w�suG%*��?��g)��O�;x�+�ˮU�`)(+,�VHz�Xa����;̈3P���-��ܻ+��;_�����t[9��K�'�* -=1O�gY��:f��m�u�҆
`���Bh���`�cD�֜d���{��k�0�!sHP�"�P�M�Y�AV�+@�j&�D�Y ��N�m���� �`��~F'KU�eh��<��+�h͢�f����%S��)^�7��g[��iəI�H��މ�w�h"�b�jB��kC�����IJ�\>�]gN�(b�o��'��/m������w05]���܊E+�9��kUĖf���3�O,�6l -���٘�h@VO ���^,v��
���
����b���� -�
endstream
endobj
84 0 obj
<</Filter[/FlateDecode]/Length 12210>>stream
-H��WkO������3/��OI(�WP��� ]]��=!>u<>~������&MBi3�\�8' �3�m�k����]R����8Q����]*_�W�#��%:��D,��,Jn�7~qY�������W�� ��U�����=���(("�����Yډ4)�W�,v�(3����w8�n��lR�2 �m -* -a�8zO�x��OCU&!�6T��D4��Bf��ȍ�f�� -�WQ.MTFf�qPʦx2��qa�h��qL�⦐&"������f�3F���q��Q�LQ���(�杺f�8B�&�����VML(������8ӯP�\���c�7�o8+cUf���L���'�ڻ�%[�i�&��HT*3Q���Ҡ���y��0i��p��.�}|"��M�x��촲�!Cls>����|�/�7^��`��ņ���~w�����hiC�l�d�O}(�fcG�N�&q�a<>H��0h#�r;�D:��}Q;�$�+gW�O^�'�k$�C[�V�Zrg���H$�:�]9��&4�ea�������j:�冮�Io5pv������d8�әxv�n��.5��� d���U�z���T/�TQq�[[L��Xn1~�ݍc�u_Xb+0]k�S]��|&B�m�O��t���P���;���ahS��T*3Ql�� -��Ak\7R�T�Q!;�wa4��������'Žej����-���8�(�5���Sp���$/Db����vb]aۥoͦqh�f5y����Y��d�C3�i�+Â0�����e13ˏ��'�J���`S$2�/�c@+�i����s�4��L>T|~��R{�$��Te,��r���D2��l-#~6l�1S-�}�=U�|ʥ�A���A/�}�t�K�d�����;��ƪ�9�ә0�M�k��vC8�`kZpS藈T*3Ql1Z����H�S��*�+�`�οlع� -����2�}_�9��@̹�K�l��a- -�WQ.M��66,�ś�5Ve��囆!]�٤�e'�+��¶)����i&�*!w��X50Q�"*��)ʼ�}��݆�l�?J�r~ ��uh�&������ -��<��>;A�����+���+�J\l� -�:�]N��,e����F�! -xzj��nQu�n��h��N�����6�~�H�2�ʌ1-
Z���T�Q!;D
O��.u���^�X�v������z*��(3��znW�\��y�k+�h,^�0 ��1�������Z�i�TN�$��!6ٻ*�\��?���u�b�� -�
���;�L��L$9(���X�Y A���(0Wj�kR�vD�uA��jD�6�nS���T*3Q���Ҡ5~�("� -�!j��٭����7[pkbi�H���h�5H+Zzy���DNћދ�;�o�&����ie��l�r�^%�<�߯���6JVo�ާ�3x}k|7���w�B��.�(DE�LԷ��~ :�at ���;��/����!�.п��Q��{}�"�]�'��)�м�-�)�֨�lj��^_/�بO��0��ş��{� �p�)с�m&��"�e�
���ڵ���mϳ�g�6Z~�.�����,�< -xe�z�#��)�h����G-����`�g���A϶��ËO�7����w�q�)�lδ��a_[R˃�->a�m�!���jC��l�U��� ��r<O�͕rh.�N��K:���!Ȋ�G�X�e>�s3��} -DY�Z��S�tǂo���)p飆.�8�B���Itt8�������5|�����D<O��(���O�[�ێΛ.��is[��w-k��]�>���8m�rl�
,�sٯ��PZ�
�{;�a@�|��y��#ī��|Rz�2�B�S̡�a���]e�b�����⦄?ԯ���ƌ��\Կ׃�h���퀣z\t}p��lR���ݟ�U��O�G�b��~���>0� ��>C���� �|t�]�x)��j��c����V{�=[#�(C�4�߶��cq�h�i�q�=VWw��G�j��W-BW��> p(�T
�j����u��-m���( �^�$�������t/u=�V���h����:�6ܮ���kS�C�����kR�oj�ռ�<.��+�\#3R5�^"z�� -�Z�-�uT~�k�[y8Ԯ�/�����U?!��^
�%T�S/2\G�9u(8q.���)��e���ǚM0��Ԗ@>�N��(s��o��I�RLߴa������
���@��{ԯy{Ba��� ������?��r4�D����<�Efe>CWJ�qL7�������1{��{�p6�O� �S�����_��~����5x4��[�=�9����� ��Q���R5W��T����(fZ7���|S�>�v4|�=�v�r?�R��CV�j�
X�.�+���ն�Ʊ����/tD���<��pp -Fb�$'G{#X��z�Dc���d�:[M�L�J�_ B���< -}���ϣj�d��?}7r�Qp�N0�B��B�Z�N�20nt�m�~��e]��;�1Q�9��ք��� -�P')b�� �k�9�<ߠ�Ա!2� -[��&a@���:��5�zzb�.��1��H�Gn�,����)z�?Z�5G4CԢpN��i� Ϩ@bo���.�PJ'��_���+�ýW�͊�5�x;����J�0�(t_�t���~���Ax`L��,�$��d,˺v�U$� G�Hw-5O��ߢW�4�@WBU(?�rtꀄL��U���r���U�za!`�^(4�/8�ū��Q�0���Z��Y=��T -����/U��^�k��e��%�68��������O���OI -��
�Z�˒�2F�jr\bXy~�*���g|���-ȓ� ӈ'�T�l��n2�o�6�|�F͙�e��P��5��mELd�����\��r�JU��Ѱ�;[
�:�� -*Ի_���2�`��k�'�^H��`b�;��u$�,����n>�
�$r�
��Dy���+q��n��&�"m0 -��� -Ш��_�v�K��sHD�Tҷ��t��E:��E�x@���dm�[�Z��k�%��zM�.x�}zl#��������6�%���} �<���6�$RR F -��O}�Z4���m����a~.�Wb@�Sf�w11z�Ȯ��%��Dl_I<�_�Y�����Bq -IN8bm0pu�"��0����R -:<Ye�TWS�{�.o��<»�: +�c��1�1���Z����!5�%����eܑe�q�pք�Ԟ��>�R��c�(�+-WWW.\���!(����[�z��A�x��ҝ]��������?gw����[l��.��ԛ����|�웜=�����]ʓ����}wz����v����Y�nTX����w����_�י��}�|�~�~�Sw��Ҝ���AX=�)5�Mu����j����^�;7�^/�f��bz1{�M�/�/gw�>9����ߋ�'p{� -w|�U#��y\Z�������M+�Ag��x@ԾGD�W --�\�3 -C
�&�G@��[�Zs�$5s��T9��ds�(�`-ZU����'G<�*����/u4�W�3.����������c�˴SI���@��&�I����KL�`��T��S���`�[�wE$����m㚛��:|0���g`�3L��fn��%�'՚-Q�U�JDv2�I+H��>tk�`k燰�P�1W����up��Y -��C�����zed-�B܆ΚY�Y�P2J��4����d}{����)�i߳����_1>����;;�V -�Po+�K��B����r��f�b���V$�d1�T��5�3#S�6b�~���1�lv���Eߚ3T�)zN����&�P��Q�~(C
2��!@<�*�V -6/� vzgi��u7�~p�6O<��P5��{�Ƥ���K -AT��j�W�4�a��$ dS䊽FI�7uh�Y�ff/8�i.;�>�0=yƵ�a$W��}���~]Q�-4�Lm:5�����5�.�k�ac�Vyض#�^���Ra�, ��\ -|���F�ؑ��|dFhI����#{Ld��.����Ƥ�EuE�4���D�6k�DF���6#��V��<�@s��<&�(�\��L�XT �_;�j��hD���-�&WQr4q-F���-]���U���������A�WA����;8�&�,p�3�*��-�BA�]?��P/�8�#�:8����=�>~ABh���Rr�3���L�X�i�m"U�1b\A`��I�vY+[`�_�m��[�~��a^�>X&�yE�<�\HP�i�� ����Q;h��g���]r%��� -��'��Q�L<6��2�r$1�%cF*�
��.�z��sH Q
=`�S::�o��,' pi�T.ى���V��E{"�����>�Q���N��)t��#CS�LJW� -҈� -C�����)�P�I�tCAH�����z��P*z -�"�-�R �(����@C�`��0�hL.Ս��غ�~�+�9[]�J�Lm -s�]���8OW��l��nF�F|�$]�XA'��\iWP�raq>K��ӡo;���!<aש���Z.�Pץ��B�Oz!�A)�?�ӏ@�+��<_�����ϼ�����
:�)�����9�<T)
0�j�T�N��˙�βX�GFh�m�%����u__�ɒr��D&Ipm.'ĈO����W���c�סGSZg��ui����bj��@JC0U�Y�tw�]��M��B,�j��Xdb%�0\���&�+��8�` m�R-���t:� -'m���,1 5��i�Qb��e�3v!n��"�>��P«Nj)�X��4eR��J�÷��Rǽ�O��g� p��� -�#:T�1 �Gi��� -H��WmO#I����H ]��]�;�¬8��V03��t�2I/� aw������$!a���f����.�����T�!����j� I�B�M!$ -J��zB/$�G3�~�>V��훳������sc����ӛ/33����b>\__�2�xo�~���d�
�s�Lrd��(����8����к�G���9^~�8::>b�B8��L�����lqq�No�w �����E{n:�'��f>�q���o��������O0^���o^������q�0{�����~��4n��Si�o&d����p&��J����\��]��'��Jd�c��?y�F�m���q��W_�`�u����%ȟ4�K�wr}�����w���x�~|1�j���k�4/_������[���Cc|V���R/�w*�ە�^�?fYo����.?�ۻŴ�5��t1��'�7,��<9���ݫ��+�Gz���H�%���&�U�4W���z�2m���g���m������
r+�"D-��$�G畫%s��l�3�b�(�胄ǚ��&��u�A��D=�N�WvH�:� I �a��*�#��j��2��+u�ˢ"�&�x�0��;�%ʩv.a��w��YL��uY-VQ!�*���rDIRQ�`���g~4�Xn��M&�3���+�бKt[.�P� Nc���^�HJ�$�x�oN����S�j[B|Um�̀��ZH�e���L��JX�s�nGm#��"�:����%��j -ڝG�C�HQ��W���^�bF�9��LY��/��ٰ��Ji����W��w��ES���e�A& -�C&L��(�2f��ԁ)�3�v_��HZ;O�w��)m9�Z3��{�+�3����/�2zgޛ�Ӛ9�g'U1B�!�&q� -�bVQ�)y� �0��!@�&c�5pO�^�=�U|�Q�@�Z� ʏ>�/\N��W(h0ɬx5Y���8 R|�J���9��/ ��M(cic0)`� -$J�4��xFUE^y|�z(����SGu!<'X=����]\17Ϊ�$����8�a���_�q�mwng��Ф�!YR -�K�N�:@���m�i��Jf�BТ=��bE:�q -p�8t�`$�d�
ʠ+�A�!� 0��Q� @aE̿N���H�F�0�@�8CQ��u<�9ɮ�>SA'[ܢ�V�m�5�q��(E�2潎%-X -`K�v��)���.�u���%�����4��v�m� -�R���`��� � -m-�P�U�T�LM� -��/
t�-��uV�ʎ#��U@CQy�?ғ5(�"�]T��#��x$�ҀA${=�T�+:z�=��5!f��L�6XHL��H�.྄�*���s�Si�|i�p�LN���`?D�g�gV -uS�P�1˕y, �G:=(�יf p��_��J@�Ɉ���!�;4��q��"�A8B�:��C�3�L1�x
+�5p�p�Py���� ���]ƈN�Ь ��Φ`��q��֤G�ݱ��̗��]���@�p�4#l^7Y&jS�p���&���-�lM ��H�37/?.�Hi/��3�&��q�`;�9N����}�0���#�Ky��;Ե:Y��9�:�+�5*ŻFw Y�H��3t�>�%��)w����5f�_'\q���d��y@`�ozC���ns����b�����MN<�2VP����K=}Q�}�@W��W���F�qE��Q��bA�`����o���?_���ӹ�v�K���o�g�"{|yA�ͦZ��Pg\��Il�<A� ]��!ELb�S��T�t]t��/7ƒ2�i+\P���cp��f��v�Z�Y���:��k?��ӧg�[��lW.'b�ϝK�_%�����r Q�H��qe\z^���2��\��^�u��ͺ�weKZJn�W�rݕ.v�5?�44̲̎u �镥��Q:�J�M��+�go5P:(%1q�j��I�t�� ��&{��6�tc�[^*���O���C{��o� -������,�����!�Þ��x���{��0���I@X��xs���x_S��}{�hR�1K~�Q��-�)} -y��*N�l7o��`�:�r��:_��3d
�6�y��UK��[¯�1�����՝��me��ӿW]E�l�o:�I��U�|y�<�Ǔx�gT�n�D����m�}|�rW�Y����G\��2�F��p�n�ʒR"��b�(1T�q��CQJh�%���C�s���R/a�P�)����ڦ@���
��ב��F���yU5��͓!bh��_��7s����K���9KEpun�hg�8�, 02t����r�:s8~�����i�Ϟ�ʆ/+�����8t6r2֢���ɫh�$�Z��0��a �Ѽ�07v��|���s�+�⾞��gQK�K-���|�^Za��FM�<�{u:��bo���]Dh�dwC.4�B9��xث���i��Ā�4���M��
^q��
�Svy�
pdp���r�)��q����s`P�F�*���P�o�t�v}�8�g-#�2�����~n
�J�g��v�2�[^���x�f!� -�+�A�O���x&����Z����T�� -�A�H���J�<�,�&��&��;J�i�h -��-Εt,��H��{�^����UP�K'��mV��f�)ϘT���R}�8=*L�mu㉢�t�Pu -ą -a�v]!N��s�O��o�~/���z�A����D�W -���CR,�-$0mpxV��9<��� �B�齣�j�m\{�W1�{I�-�S̺���s�==�=X��1�ʒ�+u��v���ή��,�_�˶ծ�ÿ`���Eh�]֬5/k>j��T�1E��I�j�B���{�랝Jk�)4�̙5���r�8�(Z�y�\�3�e�*|`�.S��a���0�I�k9��쯃��Q��$>VS�Ya`�z��hP�j�5҉fE�0O�[��LK��1�R�n>�;~s������]�����P�K���J����8g�Q�j�`�Np�Q� -9�؇U5T���-�d(IW'/`-K�3C����=��@/���Au^�bG�i���>���=���W��V������|��f?ΠR�p���G�3�t��grPEK�[�-����@є�p���<k� ZG��J{B�{��jF� �r -��F%uﻮe�m,��S����\�+�A�FE�1G[�c��ml�0X<T�:�$��H"�H�#��s��'�u���p�Z��Z�=�˼GvJ ��0�{�N����@Q�т���R�W����di?&��� ����;[��`�ܺ��K�t���em_�g�.���d�H�Ԍ�/�n0+m����s�z�V�.��ɡ���~���v�l��R�uбky�%���h�.�����e8y�O����&Q�|龫�������p}w �3����w���#5��'�݄�=�� 4�3
eK�J��`�Y{�G�+`!��� -Z�Na�!��+�<�#L�0�U�7���`p�k����]A
SeXT\�N�oD���'�=��HZT�-D����T���7���`�Fe�J���B^�s̥3p�g�T9���?�{T%�I���BZ���E�'� �E�b���a�a�9�[��3S��2?����"R�ko�J�^��C��66����c����Hߑxu5�)���q�v8�i�psC�e,������t)�X��1��a��Q���ݺ#M��l�W#�Da6{J�0;�k6V�j`����5xp�]��YM<��N$���Z�u��! -��s� ��1���� -u�҅�qf �N�f
��_��7n�}����#:�!�a�s�ћ��܊!�*Ctmk3�>>��2���͞�O�ޕ�����gn9���)Ά{ʶ�)�[�E��I����?�~�`�;o�S�CNc!w4�lq'G[�8�S;���~����ɖTU
ɛc�k�PJ��H�)�{1�?�f��i�H's(#�q -��.Q�:�%{�=*&ӫ�q�;]�X��<Ĥ�;�"ԭd����f�`�f*��� -�D����]����+�DU�X�ݩCw -
���k.�ΞD2l���m�N�MI_E�y�"c�ǭ2������eM�G�&�ᑀ}�B��v��q�� ��\�hU�H��qw�i�Tم��; ~D��<
-!h{�ka���:��~a�P�%�3Huk>C"R}w��F�&��(9o�����z.尟��������|���Q��.۲�2(���K��Q{e
�V�)����>5̍�(�F��&��Ҏ��� )��Bx99��b�E�d&�n��3S5˔?��;�a�;-���;�?y,��kڍ�%ܗJ�~*]�x�7D��%��ئ:~�Zddn��3���� -�S�}[0A���dNt�i-w����^���������d�lt����s�M�Sڏ�-n)���mn��M�Rc�4)��~}u~T��U<��d��'���p�ۥ`;x}�~�` -
�9h;��8wI}r�q�}E������\�R�]ZytEW��z*+趱V��M�vQ����k��g'�:���_�(�ao�Az�Ⱦֽ5q����qR�y�i�w���,
u�
4�Օ��������b C~���L�Z����_�����T�J?�����)�uͺ�2 -�$1N� -|a��p��9u-p�y�5�Mxjq>�`���J�{|T��.�ʛe�Z;*�2c��o�F���[78��<}�t�i`��8m7d��������K��(�A�N����rA�M"��t��_��n���3�O���n\ �ȇv���u���|���9u��$�ZrY�s���|mݶ4v��3��y#k����v[�P9�x0�BY6U�9%Z�Rns�
��U�l�-��W�y��{Q���%X4�O_�9�Jc��ޙ���O�7�ڽ��SB�������Ho�)��D�9%1���A?����7wE��`@c�7�#YQǕ~nl�'Om$Ս4�������^i���7��s�jZ�u����0�I�j�++E�a�'s5`���ҭԽ��`�(R��ͼ�����N������N-�Q�͜tŢ�u�k�r�̚tj^�ĶEt�{��=7���W㌽�|�7ց���m<�;}�n�75N���%%:&;���1�>�%k�_���h����!� -�7$]���R/Q��_=2�4�F`;b��I,��ϟ�Gf$�Nj6�-�� �I�g�j��c�4xU�L����e2��V� g\�&�MqԔj0Yk���������Jh�H�� ��9 -��l\@"���Ώ)}!��> -~�@��8���R�~蘔����̠й!��Wl*��u}U��J8�����"�L����h���A�1��/� -����� �R>0>2���F�������d21[�LO"�����N�{���.�K�s��˪X�a�Eq�M��������O'Pv��8^��0>0H��.��@�-�v��5�}^�*�E��Ɛ�^���m'���.�o{ "Um`y�[�}�|���Ηš�.U�x�Xh�ud����]���@�ݦꤐy����t�&u!!���]Z9o�t4��U�$�.zSeRdI���)�icR�Jc\
�U<To�ރ��"�SyA�A��\�%�(�G�/�{$���mX��?�?���"�t��E�����גъ���~eL��3 ╂�"�~.�+
�t@wQa�)����K�w�R��ʹ0�[Q�a��M����5-b܆�l�P�E} b��� Y?��b��VWވ���}2�l;̢�YvR��i�B��-G�y�pB:�h;�U�x(�id��ѫE ,�_�����lA��p�j[��qFx�P�QT��ۼ�����(�U��=_r�D�o��c5�_�W��`�]�<�s�K�=�1���8�)���X�K�K��@�� ���U�M�3��R4��d� -'z�����+��Y0U -XY-��1�;������(����F��>��J�Qv,���i!K6�9v�۔My��FC���q�5��Bq��04o��ٽDF��O
��J;&`��̑�)d����;�J�!�9^�m.a���AZ7$�.����e��-���i?��Κ���F-H�X���G`�[�ʓ
L�3�8s��{g���Ȗ�êf~.˝��1[|1��3�Z$�pp�WB\](�L�ETs�[�D*d;���7��L��*�˾w3K��ɺ�dj��z���T��lY0;݆��)��~Zޝc�����-2����44HXݦ*��sP 1�!Ľsl?Gɻ2�*�Xy�*xD(��}����/��:�r��YnuE�����v���DEfβ��*���UC�� -c�"��nBX��
�{��y�����
�ϙwB
����бe�!x�{��%Ú_�{fgV� -���z�e9\P�"�%���_��X��H$�7k�$�B���GAnt�� -ӟ ���
Z6��<W�U�o�=(Y�E�5�h�x���B�p���IwԌD.���%��~�T���o���HQ>!<e��4�H�e�ɶ�.�h|Ӷ�P�a�����ş{>*�˂��оy
�C����s�:�~�jscҲ��ZK -;J���J7��W��,$8�4Z��������cK�A��{�z�1�\}}[bQ j������.��\�~��44y�� ���{ -4D�`"j�(�n�3C@>�� !0��1X'Le�R����ߨ�[�����`�v��إ�/�X�Σ���_�|�5���yN
ۨ ���b����x&M�*�A5���-��z�� ��k��l�9(�נ?tPkH}��YS�����y��r�إ���Xh��c 9�}�;P�:i�\{�$�jx���_�
3�&�E|d�|q���6�(�9E�+d�4���"+�ʼn0l��:A!l��?]K:���p� -dYħ���'���D��@Hm�*a����x�$����kL WFM�@_��Z�/t.´�8�K -]ld��WWË�L�#��jr���E�� -��\�a����P������J�HWw��Ub�ZI�..���J_ -e#�T��F{����U�ڧ"o�;K��6�o���e�狈5Y��6�9���e��KtBEM�\<���3-"�YNknܞj��("j�L~`U�Ҫ黻pE��,R��l�>�[1r��Q��OF&/P�� ��~�{�hMu�����P�:�t_ -yo5:�
Jώ�7Y(�>�C�w9�g�Qx��.
��S���2*u�����*������ц -u薀ڋ�u�h����~l=���h����(�;^�l5��e���A�.wv�ȸb6��g\��ٻ7�W�J�h�N{[F~x�<a��״�������,�:��$j|A4@A��]P[�m@H��*�2.l@��0 �N3'կ�GT�a���"[�F'�b�'.�]��LU ��T���|h~�l�}����u��(k�D�|]VA��ql��#4r'�h -�H,N�]���<t�fJz{��ʗX����k�bC�7��U:M��_Y-����ZlƵ�k��Օ�O�h���Hf]T��a=�3N Z��#;!�W���:�Zx����
Ղ}'I'r�n�?*)�$4�W4������R��0��h��iQ&�P���m�%gf3��I�^��R�7��N� �)�Fm�eQ�
�5�5ȯr��M�8��IK����`�A�������kn����6xd�1�db.�Mݎ�2]�ȕ�F]��
��`ӕ���=h�:��BY� -( �;�X Z����L�F���Y��C�X�&������b)%�^ D��~��!�Xd�z[BK᳤@ͥ��8��>�.'���;��0,�Z���|�^� -���������a&���7W�|��֨��ߒ�����,Z##�^��x���}�69�z�,�[9�I<�@kk3k��[��^�~� -�w�V����$Xx`���e�5�Q�"BҀ�܀�b�)m/��f���|_����K�7�����"���2H�~n}��X�N -K2�uMZP�$��ᥨn���r�!�χ��ϻ�(T�\ѐ·�����ϸ�;�7�Ri�9g�qo*�gc�/�/�rv�z ���g(SNO��b�|� -x##�ҷ߀���
~F��:���l�[�f ^��m�/5�����y�lL��4�B�Q$B����}���b -X!�R]@�(���ͦ��C�a��������|�+�[�N-��s��M���Kw/��U0+*���q��AV8�43����p��ˬO -����@�� 6��cF�A����vN�����Q��l�O�-���M��<C"�zW4ֿ"���F���}N��/a -���F��Ҁ8�] �Z�eM�|Q-(������k�)�r��Mp>.�%�:��:%������<��o�?_��rƉ�\�����}F�!2}dõS~���@�ݓ�_r�TUԬˬ͏�`�4G��T��'���q��RF.�Ym�n���(�5@��۬����;Ь�\AM���JBׂ��k����;�-��K:a��-�1����0Y�f�3g���ۿ64�pZ(7Q�TIr�@���_4=��t#�9N��L��q�㏇����[%�}T{L�����4M%ݲH��iS��wF��.��( �s -2T*�~
q]�@�i$�OnM��� -2y��DJa\�V���i�?���(��,��VM,-Xn��^��7��:�՚�7I19��, h����Y�\��1���.$��"a�dN� -�(`�W��K�oO&� -��";*�Q� /�ݑ��॑��؏��U��m�#�d�X�_�/�c��|5]$A�E�'6u�6���r�%��ٖ�B �q�*#M{��� 8~5�@���Z�A������5g0����ži�5�I��8�O�/rW�c� -C�T�c}A���9��c#z�#g��7�� ¿z����m��s�~tN�c�I7y&7�?z�:�0�\�:�%1<#,�͖S�Ȗ��
_"ײ��ߪ;��d��� -܁I� -��\4�ե��O%��}}���X�R�=^;��x¡)�
�"�i�|��iTzh(ޠ�0�1��W4�p]q������kn���y���F.�/ݷ��pvW:�#��b����ePp?O}�0?�`�$��̖��w&��h!H+�����:2{N��1�)��v&=�0�~SP�9ޖ/.��O4��XZ�Q��O%��� ��<�� - ۢ���F,������"�ṻ -l&��M�?��K=�� $я�n�4%�� -�=��%7�u^���U�`��������y��;/�����ȯc5E`�y���j�e�E!A�ٝy>�,���6"��$��§]�oR֔���!=˞/��QӚ�����z��(:�H%�@��B��d�~� ڵGM�IfSWި���1<�rD�p��5�όZ��x��H��?������G��yrB]ĥ��t�,��G������=�r�����pݢG�z��R��X���Z��`Tv��_��_!f���lk���t�Yp[Q4�0 ���6]٪[90~�s�dɚi|�o�˺r����(�5j��N��F��k�Ԓqe�P����P$������]�$�B���1Sk��I�-*s5�p]3��蟪�����ϩ� -D��ڗ��xߪ�X܂��Y0��%��h�i�Iȳ���i\�&* Mc7��"��@��l(sz�A�dѡvQ�!#�7��*HA7EBd-��S��� -ҩ������7�aI׃y+ޮv8@\54�[ɇ�H�%�^zH�&e�����,e�X�[� -��J�Z�K��f����N���~x,�'���[;#A�T�-�m�Ŗ��l�5u��`�-A�*}���ٝ�JS�U���hJf�W��:��-3��+��0��賮�U�����:�pr��F>Pe�!��$��,��j�� �C`��byJ,e� �w�� -�]
W5�PJ{�P�k�,Q�A��Q�NI�W����'�Y۔��O�$���u"Ŷ{|�����$���+�^�aJ��>�4�����n��nhQmJ��L��Z�Wp���[��S�z���Y( -T���K,}� ~H요�_�h�G8��L��I�R�YZ���a[c>wS�5A!qI ��S���U���=�{��[�eP` -��13<��;BU��ebqi�565�}��W�C~w7Y��}E[
�nB"�RVEk�R�K)o���Dn�=ōnd��Q��F�N�隊��I���gM���YQ�;�Ч�g0�g�z�d���A1sۢR���*|�u�r>Eg,�kK�@�}�,4�ə*�_
i%���P6��N�Աˊ����C�Vp6���!�ϴ��9D�@��&S� �S�Ȼ�p���}��nh�����!CSL^�����U��n=��DJIcS�w}�D,��#I -w��gI��_�71�V�\�����?@M�3屸)$�&d#J U�&��1���v���zx��� ���-���8z���_�ܷV�g�?ifS�#2}Tզ�~���O���Z��Z�ʓ_uym��H��Ո�JNq��.:�e�>"����'�bG�m��que����k��*�c,�k�G�z���U-˩�3��z�����֠� mD�G -���{�촋6��%F�L���2�nM��}i=*��ϕ��N=8�"f5&�{*~�<��9c�x��u�*���[HaFh��]�Q�Y����B�-)�~r�^�I�=h��V�Kɐ�b��N��*��>������ ���b&�$�g��q;/����$73hl��j����3���9��q�%�$'�}��X"Jq�#�4%��]�Δ��ʪ��Za�'z���*�[d�B��&�F�j=�M�������n���0N�@�jeZ�6}�Q��� -#J)�����&�:gGAR��ii���`J�n�����>w_t̕�X�+EhQ�S�O����E -�#�<���EJz<!������N�A�Om�{��O�,;[����d`��`�.4�ZÜ����Z�m�ٜJ>Z�W�2_�*��(�;��+;�^��TD���#fJV`�g}O�� U'�@�!��m��ED��k�("ߛ��@m[�V�!^V�2Ը|fBQ��&���+���a�"AG�(���ߘ/�c����>]Cj��o�BW���W�0Tռ� �:�d
��ѓ(�s�f�oQC�zxY���]R��c�s�~��������y.j�!��'�WNZG��rW&��6Gn�0���K˦�<g)���vU+����IMp�dZ��Î�}�*!��q�U9����?b��sS�K�l0�p���&,���1�]�����+�� -*p#1F�P{ϕEC>��M�3⢪@���AC���.3:���g��k�z��xi��u�_�����p�s�|��v�9�S���G�?h�N�e��ڀ�T�g���cN30��U���P�;�[ ����}ctQ�A� -��ջ/]�Rt=�B��^�3��0-�P���@7k���{�������� -���0������!)�S�N�Z����<�g�*w���.�S -�mI)�Cb -b�ÄL -OR��֓_H�?����7���|�\׳�S���q*�.�Iq�v�Yַ��d2��������Ɵ�+��kQH��FV2�,ћ��$����ݐ��}A��e��(� ��*�>p��c���T��?�Ź�n.� -V>o�|�)jӛt\8Y���b���¨A `K����;�1֣]�M��8��^��!��i� -�"cJ^�f��k<&ءي�)F�n����6QF^\:
ӆXgO���O��J�U�
���k�c��X r���\�B���\U��-���ot�~�d`�~>��n �~�Rl�xeʃ��R#RL@� -M5FgS��5Yb��B���R�@n�M|��Y�P�H�^ -�C���P�ϑ��P$-�"��\r�9CeLr9��k `�ˆ�Rou�t�n�_��K�u�n�{���.͒��Y��&��R�NBAU������} -�c9��(r������ F�_��Iᔍ�Y!��x��:6]�(/: f���k7�������TIl(�����"~�O�N"�2��! "����~�4#�V�V �,��>�ʥ�1PuJ�0$������أy.�j����{O:;�N�|� h���*�X� -����
XZ��A�]�$���w�tԭI4�r0fcC�Aڈ��k:�j=�@ ��ܡI���lw�"� ����:��GЖ�jI�ڸ��K�HHRs����L2�E7��a�� -C~��ߒ4g�\[1�̤�T˘�i�k�E�;.��Tè.�F��%�9˻�`�a+뚘�R
�_*yw��j�N��q�S�d��o�,Uf�� �X�5v�jy���� gĿ���),O@}���G�8� -��9�f�*Sh/�#��˷W�Yr*����u��T����`��
�X�6|�� -[���I�9��|^�_
�EN�?"֟�� �L�z�<�EDs��j[G������t:ҳvգ��H�~���!�}|��֨$敔xw�펍K%��yǶQ���ߦ��X�$�8��z1GX�?�:��r��X%��dP�*���2<߸�5U��T�1�k%����C��en`��]�V�H��V%�v٦[ֆn�PZY/Z�������H{��ޅ��A�5״�egh�D���@�&g�e�2˭@P27H0gt:���d-�Ȟ��?�D��f -ȋ���o\gLR�JL��Ƭ%=�L�G���/S/t{���x��߶��й�ޜw_�zC���)�h��oq��f(��wkt��|�7�0u�&��f�r��w{D�������unϰm��;>�i��i�k�9�5�PV5�.�Gr�a��m� �Msf̣O?z��7�B��*>&��1j
S(�<��2������Xb\����ldς���GAx�?�f���ٵI�tRFi�� ��3Չ��=O+�������+�����e�Hl}�$(��v=��|�g��n�oV�ٛ�Mp��P'�%���4������6�n��0�:"�f!�n�؋� ���i -|�������o�]6���;�h�d�&�3����6�=Fu��MTs���o�����-��(�>��J�W���Nn�2'�U������:� e@��0�P��1Q*$Gq�E�v~[���3r,
��а��sC���<�.��)�i ���=r@���H�ix�],'w;#�kj%>��8f�h�" -ȖQ-<�k+`��: �eIxQ��+�{���b -
jzeS
�� ćncNl$��(�1?�5Q�\|ƽ��h��&�nS���c�*��Di��tE�1%������)�أy��\֭ y�c��J��l��gBtƺ�v�l���z8���%G�".�ͼU��`.'n�U�;�� ����]ݛ�q�}���\��4�Ơ�n��}�����mN�ԭ�9��݇�?|r{�p�������{Bn���7o^-����_^=<���}zw�����������;V�����/���7�}���X�4Y���Į%x� H�f�P��W7W���z����-��~u{}���իۻ>��}��w���_��p�����nr>�����.y���O�^~����o^�s��c6ޭ���zs����3\�[svj)�Q
ԲW �s��gX�hȥ�K����?��߄������r�ˡ�6O��dۃ!�L�W���b�I)�H��o��p��-���$k ���8HA߱& -�]�:x� m���~�ϳX|kh�����G?0ԵB��fN�j��^��z�O�M�K�K����.�m�dEM����F�4��F`�̸N+����{q8�&6��%.� -|롎i�P�e0�"��3������]=�\��|ēUc! -H��W�n�H��C�����{�'O�3 ��ā�d�X,FbMhQ�hg��s�)���-GY`ʅ,V��ԥ��a¤�j��D��f��T��H\ʽ��LX-�E��j�D�ig-(_�����~5��j��n�o ��8X������xr�������AU��{�^��%�&�����?�넳A�So8����`<��o�l��fS'�� -$�zሤ���I�a�`0�k��Mғ2�2�L�T�[��2����m��h�Rn�g8���a�,s��L9Pf����p�9� C%2�� ��|p�
�Lf�b�Ҽ���^K��L�S25�YxDŽ�P�RGX��f��+��$�q�,��KE�,���T�B���' 0�"3�ᜂp�zB�Ne�)�Jo=,)wJ�ωҩ� �I�����)r2 -L4�G[z`V0��8F��3���VA�� W 4��۠�:�����(�r\z�� -|�Lx�VB�W6\a��-ϼ����]�!��4����:�{��H�K$:3W���I�xgd'��F��$����6uz���]��{�W:��q��_}jzBLy��5CW�t�C��^!@0�gA�����$"��C?���]@Ȝ�[�� �pA��<��9�����n�+j�BP+T�)yIi@=X�� - _É^f:���1�#Z�����1��A����U{·5Ѥ�w�Y\�O�P��y���狚B匥�`졄�c�!NM��ڻX��q����xi -ĭW��Nvy;6�\�g6>4��܇�H��~��n�G������_!��X�c��v�B��p�b�6Z���h9m����PGZ����s���-j�@۫Z���em�"^�b�4�N�?w���+��T��E}�.�˰����r�����'ՄY#������'��۫/UI�^/�W�H�jz��|q����)}ɚ/�k�{���bX'����K��f��o�]>�/�;�������X��8/���,�~��s�I6�Svz��9f=`=�X�7�w��˼~�_�Au=��ܦ1o�0� �����&��[>V�N�+��`��O�Y1b(��{��Ɗ�e5�Kv6]a_dX��D�fՏ�D<~�MU(L��B -��ӎ�r�ȿU��b@8o���E�>d����'wP-�g��wj�/Q�Z.c��sx�s�
�TkA�a
�>���J�0&�"(�a�U
���u-�q�o�.+���aײ��d�O�I~��nx��t�-�T�5sk*���l�6X��}6Z%d�YwF����C[fI��1�� o�0�i�5��������'�8��v�h�DolfUXSAX �����k�?�<T����a痚EpQ6 `��R�!�Xy��eZ �%[g�o� ���۲�'�?&ՏIx��\��� -w~>��EW�[��dj��(�_Je9J��HeÔ�vz��ɜS��j�L��L*�q��WJ㻼1�:��kkێHpǻ�Oo�����rC��伣�dW����xsQF�f�l�c�&�-��x�z�H�$�F��W6���Jҁ�<2�n�e:?� -�x�l �; n\�䊍A�9�A�/�Yp��(-Z ����2|<���R��'���*�Q)�T�rT�g(e.�b �FQ�P [c��S�b�@�[F%h�9�I�"Zh%^�|&\�&� ^������i|�7�ݫ�SeiV�8�f%�R*�^+�UA�q�����L������#�\��.��ۥ��g���*I�h�ւ���~p~�7eHo��;f�t���N�o c8�l�gd��*�WMRQ%�����]~�6�R�2�u�I�R�N�G��G�p}D6{�v��`!fm�AUB@O���(����l�$�q�+6��`�Y��g�E����h�JNW�����|2�J�j��&S{(F��R,�Q,�!��\`|j��b��d���GP�D
F�V�F3������M������wyc�U@�� ֚(�C,�&��t�-���v �q����v���i07D�J<Z�@}��ϊ`~p~�7e�n��;f��Bڲ;�w�a��J�l��3(���g$P�ȿj"��*I��X��%�i�-�(��Q[����=�H/.��`]D6{�v$�p�*d�~Pu�Γ��9 -�x�l �; n\�䊍A�9�F@�/�Yp��(-Z ����2|<���R��'���*�Q)�T�rT�g(e�!��j����!�X���S�94(�VeZ�D�z&\���I� -=��"x��Q�*ޖ0 -F -J5�O� - �Nk�WMRQ%���)N�.��uNl�D������_ѣ���!��Ed�hG>a�T����J��'��s���@6wܸ����s0�
�`Ph��"D�QZ�@$�+��e�x>]�n�O|��=�P~)��(��,�Q[E8S���k�
f%S���àA9�2KX�j&\��� �;�c�+���]�n@��E|��������hB�!�)�<{�mҖX�X;Hwď�8�E~z�������]%�u��ZX��o����:�`��YH[v���7����O�����f�G - ��iM#���@*�$�cv�K�o�ӆ[$���3MZ(���=�H/.B��"������n��: -w~>�k�w�Y�UT5�ʦ_{�o�r��e��LOM��/ �5�\�n�O|�K�4�>��~��p�/�����T� -����*�M���uys{��Ӭ��~�@���Z�ҧ|Rf���e�n�����)QƧ����[��!P{�N/���y�/�_�9�9=�M��Պ���]|2?�?&������h�
y�W|�vG��q����,���п@��#D[p���t�k�g���:l��{u�r��������\��%a���������n�^�7��sUӒ0p���V�5c�V-�J��y�z�˒��+�I�c��qb�RR!<Z��9� ��/��Y����� -�燏 -�����)�.�zAkw�>�Viȅ�r������u�� -��o�
�������'8mw�7�^8l�l��New� ���|��+��i�� Գ�������~j��X�k��D�܀�m�Z�����~��8�x=zk�Ӥ��������E�Wg����tR�g�"5
^=����� -Ύ�e�Z��&e����>g,{��Y�.7�7[M���a���b�'��0=B:
����ifײe$R��PnzP��� -e�b=�F� �z1�[@���4�08��M#.��=D�7��b�ӖQ:��1���js{��! -
y`�<��,xIch���m��P��)e�6,Y,t��,<m���m�tPxTL0��Q�h,�˭I�a�v(˘P�1G,�׆���:¸��-N���Sa$p��$�����2҅�D0O�l�L�F��\&���\����B�)!O�]?���AiR2A��ubr2�rB�K�6����>��$�Fc2�����D�+�F��4���B��J������W�*�1f�4 f�f�W��
�-L"�>=1��Q����sJh -�H�A�?
X�\�H�0IvVI=�u.�"g��|.�%N��"z=�.���AR`}����L�.�ހ���\KO���!�mH>�
�]4n���=�Qh�=<�@`��M>f Ee����c�$�NVA)��ĭY��J�ç��݅x �.(ii(c$60tGh������[uۘ맣�� -��k�\4�ԉ�0�ܓ4��d�{Y�7Ac�U�ghd#d���[���!��-@S����ܬZ�.~�'@�QS��.�UQ�3h'^�DF����3� a��J�)IvA�i��BJ�+H@D���.[g�����w9�^��g��!6R�y�ƶ긗F��-4�|8��$����V��dT -t5U�m�e� ��i��i�� -z�m�FmSh��S!g�`*j�}ԸxAi��+��� -TZ���v -�V����4��j����3��m�~ż� -0000000016 00000 n
-0000000173 00000 n
-0000045527 00000 n
-0000000006 00000 f
-0000207674 00000 n
-0000000007 00000 f
-0000000008 00000 f
-0000000009 00000 f
-0000000010 00000 f
-0000000011 00000 f
-0000000012 00000 f
-0000000013 00000 f
-0000000016 00000 f
-0000207931 00000 n
-0000207962 00000 n
-0000000017 00000 f
-0000000018 00000 f
-0000000019 00000 f
-0000000020 00000 f
-0000000021 00000 f
-0000000022 00000 f
-0000000023 00000 f
-0000000024 00000 f
-0000000025 00000 f
-0000000026 00000 f
-0000000027 00000 f
-0000000028 00000 f
-0000000029 00000 f
-0000000032 00000 f
-0000207744 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000207815 00000 n
-0000207846 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000046843 00000 n
-0000208047 00000 n
-0000045579 00000 n
-0000045904 00000 n
-0000047143 00000 n
-0000047030 00000 n
-0000046124 00000 n
-0000046282 00000 n
-0000046330 00000 n
-0000046914 00000 n
-0000046945 00000 n
-0000047217 00000 n
-0000047603 00000 n
-0000048584 00000 n
-0000069960 00000 n
-0000085678 00000 n
-0000094131 00000 n
-0000108214 00000 n
-0000123920 00000 n
-0000142479 00000 n
-0000156457 00000 n
-0000160374 00000 n
-0000172657 00000 n
-0000199033 00000 n
-0000208072 00000 n
-trailer
<</Size 88/Root 1 0 R/Info 87 0 R/ID[<F744BDF41FE14BC9945784F7EE756AD5><483C8ED581764D708BA6E8CB7C460DB4>]>>
startxref
208242
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/omnibox_more.png b/chrome/app/theme/omnibox_more.png Binary files differdeleted file mode 100644 index 438cd3b..0000000 --- a/chrome/app/theme/omnibox_more.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_more_dark.png b/chrome/app/theme/omnibox_more_dark.png Binary files differdeleted file mode 100644 index 4ed7ccd..0000000 --- a/chrome/app/theme/omnibox_more_dark.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_more_selected.png b/chrome/app/theme/omnibox_more_selected.png Binary files differdeleted file mode 100644 index e336e2a..0000000 --- a/chrome/app/theme/omnibox_more_selected.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_search.pdf b/chrome/app/theme/omnibox_search.pdf deleted file mode 100755 index 91d8953..0000000 --- a/chrome/app/theme/omnibox_search.pdf +++ /dev/null @@ -1,1278 +0,0 @@ -%PDF-1.5
%����
-1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 30 0 R 55 0 R 80 0 R 105 0 R]/Order 106 0 R/RBGroups[]>>/OCGs[5 0 R 30 0 R 55 0 R 80 0 R 105 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 44167/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdf:Description rdf:about="" - xmlns:xmp="http://ns.adobe.com/xap/1.0/" - xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> - <xmp:ModifyDate>2010-04-05T10:32:25-07:00</xmp:ModifyDate> - <xmp:CreateDate>2009-11-11T14:17:05-08:00</xmp:CreateDate> - <xmp:MetadataDate>2010-04-05T10:32:25-07:00</xmp:MetadataDate> - <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool> - <xmp:Thumbnails> - <rdf:Alt> - <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>256</xmpGImg:width> - <xmpGImg:height>256</xmpGImg:height> - <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXEgA
kmgG5JxVieu/mf5R0ktH9a+u3K/7ptQJN/d6hB7/ABVzIx6WculNcssQwXVfzw1iUldMsYbVP55i
Zn+YpwUfccy4aGPUtJ1B6MWvvzD86XpJl1aeMHtARBT/AJFBMyI6fGOjWcsj1SefVNTnNZ7uaU+L
yO3t3OWiAHRhZQuSQqw3d3DT0ZpI6dODFevyOAgFNptZ+dvN1mQYNXuqDoryNIv/AAMnIZXLBA9A
yGSQ6sk0z86fNNsVF7HBfoPtFl9KQ/7KOi/8LlEtFA8tmYzlm2ifnH5YvyI74SabMe8g9SL/AINB
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</xmpGImg:image> - </rdf:li> - </rdf:Alt> - </xmp:Thumbnails> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" - xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" - xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> - <xmpMM:DocumentID>xmp.did:F77F1174072068119B30B52A3A51FD83</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:bd407505-de62-e649-b02a-a5414552438c</xmpMM:InstanceID> - <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> - <xmpMM:OriginalDocumentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</xmpMM:OriginalDocumentID> - <xmpMM:DerivedFrom rdf:parseType="Resource"> - <stRef:instanceID>uuid:cb58d661-cdc7-e34a-aa9f-b935d8a59714</stRef:instanceID> - <stRef:documentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</stRef:documentID> - <stRef:originalDocumentID>uuid:f1395a26-f825-8041-a99d-c8a014968b5b</stRef:originalDocumentID> - <stRef:renditionClass>proof:pdf</stRef:renditionClass> - </xmpMM:DerivedFrom> - <xmpMM:History> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <stEvt:action>saved</stEvt:action> - <stEvt:instanceID>xmp.iid:F77F1174072068119B30B52A3A51FD83</stEvt:instanceID> - <stEvt:when>2009-11-11T14:16:58-08:00</stEvt:when> - <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> - <stEvt:changed>/</stEvt:changed> - </rdf:li> - </rdf:Seq> - </xmpMM:History> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <dc:format>application/pdf</dc:format> - <dc:title> - <rdf:Alt> - <rdf:li xml:lang="x-default">o2_mag</rdf:li> - </rdf:Alt> - </dc:title> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> - <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" - xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" - xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> - <xmpTPg:NPages>1</xmpTPg:NPages> - <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> - <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> - <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>19.000000</stDim:w> - <stDim:h>19.000000</stDim:h> - <stDim:unit>Pixels</stDim:unit> - </xmpTPg:MaxPageSize> - <xmpTPg:PlateNames> - <rdf:Seq> - <rdf:li>Cyan</rdf:li> - <rdf:li>Magenta</rdf:li> - <rdf:li>Yellow</rdf:li> - <rdf:li>Black</rdf:li> - </rdf:Seq> - </xmpTPg:PlateNames> - <xmpTPg:SwatchGroups> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Default Swatch Group</xmpG:groupName> - <xmpG:groupType>0</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>White</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>255</xmpG:green> - <xmpG:blue>255</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>Black</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>27</xmpG:red> - <xmpG:green>24</xmpG:green> - <xmpG:blue>24</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Red</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>7</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Yellow</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>242</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Green</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>157</xmpG:green> - <xmpG:blue>62</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Cyan</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>160</xmpG:green> - <xmpG:blue>239</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Blue</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>35</xmpG:red> - <xmpG:green>28</xmpG:green> - <xmpG:blue>129</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>CMYK Magenta</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>120</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>199</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>26</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>16</xmpG:green> - <xmpG:blue>29</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>55</xmpG:green> - <xmpG:blue>10</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>123</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>157</xmpG:green> - <xmpG:blue>32</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>251</xmpG:red> - <xmpG:green>237</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>202</xmpG:red> - <xmpG:green>221</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>101</xmpG:red> - <xmpG:green>192</xmpG:green> - <xmpG:blue>39</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>173</xmpG:green> - <xmpG:blue>54</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>136</xmpG:green> - <xmpG:blue>51</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>89</xmpG:green> - <xmpG:blue>42</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>173</xmpG:green> - <xmpG:blue>94</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>155</xmpG:green> - <xmpG:blue>140</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>154</xmpG:green> - <xmpG:blue>221</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>96</xmpG:green> - <xmpG:blue>176</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>29</xmpG:red> - <xmpG:green>36</xmpG:green> - <xmpG:blue>128</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>30</xmpG:red> - <xmpG:green>21</xmpG:green> - <xmpG:blue>80</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>91</xmpG:red> - <xmpG:green>18</xmpG:green> - <xmpG:blue>128</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>141</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>126</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>158</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>79</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>235</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>69</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>101</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>184</xmpG:red> - <xmpG:green>165</xmpG:green> - <xmpG:blue>135</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>142</xmpG:red> - <xmpG:green>113</xmpG:green> - <xmpG:blue>100</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>97</xmpG:red> - <xmpG:green>82</xmpG:green> - <xmpG:blue>69</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>75</xmpG:red> - <xmpG:green>57</xmpG:green> - <xmpG:blue>50</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>192</xmpG:red> - <xmpG:green>134</xmpG:green> - <xmpG:blue>85</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>162</xmpG:red> - <xmpG:green>103</xmpG:green> - <xmpG:blue>58</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>128</xmpG:red> - <xmpG:green>73</xmpG:green> - <xmpG:blue>42</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>105</xmpG:red> - <xmpG:green>58</xmpG:green> - <xmpG:blue>27</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>84</xmpG:red> - <xmpG:green>41</xmpG:green> - <xmpG:blue>11</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>49</xmpG:red> - <xmpG:green>26</xmpG:green> - <xmpG:blue>15</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>R=104 G=127 B=173 1</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>104</xmpG:red> - <xmpG:green>127</xmpG:green> - <xmpG:blue>173</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Grays</xmpG:groupName> - <xmpG:groupType>1</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>27</xmpG:red> - <xmpG:green>24</xmpG:green> - <xmpG:blue>24</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>49</xmpG:red> - <xmpG:green>49</xmpG:green> - <xmpG:blue>50</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>70</xmpG:red> - <xmpG:green>71</xmpG:green> - <xmpG:blue>73</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>89</xmpG:red> - <xmpG:green>91</xmpG:green> - <xmpG:blue>93</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>109</xmpG:red> - <xmpG:green>111</xmpG:green> - <xmpG:blue>114</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>128</xmpG:red> - <xmpG:green>130</xmpG:green> - <xmpG:blue>133</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>149</xmpG:red> - <xmpG:green>152</xmpG:green> - <xmpG:blue>155</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>173</xmpG:red> - <xmpG:green>176</xmpG:green> - <xmpG:blue>178</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>197</xmpG:red> - <xmpG:green>200</xmpG:green> - <xmpG:blue>202</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>224</xmpG:red> - <xmpG:green>225</xmpG:green> - <xmpG:blue>226</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>237</xmpG:red> - <xmpG:green>238</xmpG:green> - <xmpG:blue>239</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Brights</xmpG:groupName> - <xmpG:groupType>1</xmpG:groupType> - <xmpG:Colorants> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>0</xmpG:green> - <xmpG:blue>7</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>68</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>255</xmpG:red> - <xmpG:green>216</xmpG:green> - <xmpG:blue>0</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>0</xmpG:red> - <xmpG:green>151</xmpG:green> - <xmpG:blue>56</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>17</xmpG:red> - <xmpG:green>43</xmpG:green> - <xmpG:blue>137</xmpG:blue> - </rdf:li> - <rdf:li rdf:parseType="Resource"> - <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName> - <xmpG:mode>RGB</xmpG:mode> - <xmpG:type>PROCESS</xmpG:type> - <xmpG:red>118</xmpG:red> - <xmpG:green>35</xmpG:green> - <xmpG:blue>135</xmpG:blue> - </rdf:li> - </rdf:Seq> - </xmpG:Colorants> - </rdf:li> - </rdf:Seq> - </xmpTPg:SwatchGroups> - </rdf:Description> - </rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[107 0 R]/Type/Pages>>
endobj
107 0 obj
<</ArtBox[2.75 2.75 16.2495 16.25]/BleedBox[0.0 0.0 19.0 19.0]/Contents 108 0 R/LastModified(D:20100405103224-07'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 109 0 R>>/Resources<</ExtGState<</GS0 110 0 R>>/Properties<</MC0 105 0 R>>>>/Thumb 111 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
108 0 obj
<</Filter/FlateDecode/Length 373>>stream
-H��TKN1�����v�8ɖ���P�TP�e���3S�p -8;V'g&!$eu0E;4r!KR~>
endstream
endobj
112 0 obj
[/Indexed/DeviceRGB 255 113 0 R]
endobj
113 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 -VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< -PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
105 0 obj
<</Intent 114 0 R/Name(Layer 1)/Type/OCG/Usage 115 0 R>>
endobj
114 0 obj
[/View/Design]
endobj
115 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
110 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
109 0 obj
<</LastModified(D:20100405103224-07'00')/Private 116 0 R>>
endobj
116 0 obj
<</AIMetaData 117 0 R/AIPDFPrivateData1 118 0 R/AIPDFPrivateData10 119 0 R/AIPDFPrivateData11 120 0 R/AIPDFPrivateData2 121 0 R/AIPDFPrivateData3 122 0 R/AIPDFPrivateData4 123 0 R/AIPDFPrivateData5 124 0 R/AIPDFPrivateData6 125 0 R/AIPDFPrivateData7 126 0 R/AIPDFPrivateData8 127 0 R/AIPDFPrivateData9 128 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 11/RoundtripVersion 14>>
endobj
117 0 obj
<</Length 936>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (o2_search.pdf)
%%CreationDate: 4/5/10 10:32 AM
%%Canvassize: 16383
%%BoundingBox: -7 -7 8 8
%%HiResBoundingBox: -6.25 -6.25 7.24951 7.25
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: -9 -9 10 10
%AI3_TemplateBox: 32.5 15.5 32.5 15.5
%AI3_TileBox: -305.5 -395.5 306.5 396.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -38 25 16 1283 706 90 0 1 62 237 0 0 0 0 1 0 1 1 1
%AI5_OpenViewLayers: 7
%%PageOrigin:0 0
%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
118 0 obj
<</Length 14725>>stream
-%%BoundingBox: -7 -7 8 8
%%HiResBoundingBox: -6.25 -6.25 7.24951 7.25
%AI7_Thumbnail: 128 128 8
%%BeginData: 14590 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD25FFAFA984A87E7E535A535A535A597E7EA884A9A9FD6AFF7E7E
%535A53532F5A5353535A5353535A53532FFD04537E84AFFD63FF7E7E535A
%535A535A535A535A535A535A535A535A535A535A535A2F5A537E7EFD5EFF
%847E2F532F532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A2F532F7E84FD59FFA9595A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A53A9FD55FF7E5A2F5A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A53532F5A7EFD51FFA9535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A59
%A9FD4DFFA87E2F532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F532F7EA8FD4AFF
%A85A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535AA8FD48FF7E53
%2F5A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A5353535A53532F537EFD46FF595A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A5AFD43FF
%AF53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5353A9FD40FFAF535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A53FD3FFFA92F5A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A53532FA9FD3CFFAF535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%53AFFD3AFFA92F5353532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532FAFFD39FF535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A59
%FD38FF5953535A5353535A5353535A5353535A5353535A5353535A535353
%5A2F532F5A537E59847E7E597E53592F532F53535A5353535A5353535A53
%53535A5353535A5353535AFD045359FD36FF7E5A535A535A535A535A535A
%535A535A535A535A535A535A535A5354537E84A9A9FD0AFFA97E7E535453
%5A535A535A535A535A535A535A535A535A535A535A535A535A7EFD34FF84
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F7E7EFD13
%FF7E7E2F5353532F5A53532F5A53532F5A53532F5A53532F5A53532F5384
%FD33FF5A535A535A535A535A535A535A535A535A535A535A535A535A7EFD
%19FF7E5A535A535A535A535A535A535A535A535A535A535A535A535AAFFD
%31FF7E2F53535A5353535A5353535A5353535A5353535A53532F7EA8FD1B
%FFA85A2F5A5353535A5353535A5353535A5353535A5353535A2F7EFD30FF
%A92F5A535A535A535A535A535A535A535A535A535A535A53A8FD1FFFA853
%5A535A535A535A535A535A535A535A535A535A535A53A9FD2FFF53532F5A
%53532F5A53532F5A53532F5A53532F5A535353AFFD21FFA9FD04532F5A53
%532F5A53532F5A53532F5A53532F5353FD2EFF845A535A535A535A535A53
%5A535A535A535A535A535A5AFD25FF7E5A535A535A535A535A535A535A53
%5A535A535A535A84FD2CFFA85A5353535A5353535A5353535A5353535AFD
%04537EFD27FF5953535A5353535A5353535A5353535A5353535A535AA8FD
%2BFFA82F5A535A535A535A535A535A535A535A535A53547EFD29FF7E5453
%5A535A535A535A535A535A535A535A535A53A8FD2BFF53532F5A53532F5A
%53532F5A53532F5A53532F5359FD2BFF59532F5A53532F5A53532F5A5353
%2F5A53532F5353FD2AFFA85A535A535A535A535A535A535A535A535A535A
%59FD2DFF535A535A535A535A535A535A535A535A535A535AA8FD29FF7E2F
%53535A5353535A5353535A5353535A53532FAFFD2DFFA92F5A5353535A53
%53535A5353535A5353535A2F7EFD29FF535A535A535A535A535A535A535A
%535A535A53A8FD2FFFA82F5A535A535A535A535A535A535A535A535A53FD
%28FF7E532F5A53532F5A53532F5A53532F5A53532F7EFD31FF5A2F5A5353
%2F5A53532F5A53532F5A53532F537EFD27FF7E535A535A535A535A535A53
%5A535A535A535AA8FD31FFA85A535A535A535A535A535A535A535A535A53
%7EFD27FF5353535A5353535A5353535A5353535A535359FD33FF59545353
%535A5353535A5353535A5353535A53FD26FF845A535A535A535A535A535A
%535A535A535A53A9FD33FFA92F5A535A535A535A535A535A535A535A535A
%A8FD25FF7E2F5A53532F5A53532F5A53532F5A53532F7EFD35FF5A2F5A53
%532F5A53532F5A53532F5A53532F7EFD25FF595A535A535A535A535A535A
%535A535A535AA8FD35FF845A535A535A535A535A535A535A535A535A5AFD
%24FFA8532F5A5353535A5353535A5353535A535353FD37FF535A5353535A
%5353535A5353535A53532F5AA8FD23FFA9535A535A535A535A535A535A53
%5A535A537EFD37FF7E535A535A535A535A535A535A535A535A53AFFD23FF
%7E5353532F5A53532F5A53532F5A53532F537EFD37FF7E532F5A53532F5A
%53532F5A53532F5A53537EFD23FFA8535A535A535A535A535A535A535A53
%5A53AFFD37FFA9535A535A535A535A535A535A535A535A2FA9FD23FF595A
%5353535A5353535A5353535A53532F5AA9FD37FFA8532F5A5353535A5353
%535A5353535A53537EFD23FF7E535A535A535A535A535A535A535A535A53
%FD39FF595A535A535A535A535A535A535A535A537EFD23FF53532F5A5353
%2F5A53532F5A53532F5A2F7EFD39FF7E2F532F5A53532F5A53532F5A5353
%2F5353FD23FF5A535A535A535A535A535A535A535A535A7EFD39FF7E5A53
%5A535A535A535A535A535A535A537EFD23FF5353535A5353535A5353535A
%5353535A2F7EFD39FF7E2F53535A5353535A5353535A5353535A53FD23FF
%5A535A535A535A535A535A535A535A535A7EFD39FF7E5A535A535A535A53
%5A535A535A535A535AFD23FF2F5A53532F5A53532F5A53532F5A53532F7E
%FD39FF7E2F5A53532F5A53532F5A53532F5A535353FD23FF5A535A535A53
%5A535A535A535A535A535A7EFD39FF7E5A535A535A535A535A535A535A53
%5A537EFD23FF535A5353535A5353535A5353535A53532F7EFD39FF7E2F5A
%5353535A5353535A5353535A535353FD23FF7E535A535A535A535A535A53
%5A535A535A53FD39FF595A535A535A535A535A535A535A535A537EFD23FF
%59532F5A53532F5A53532F5A53532F5A5353A8FD37FFA85A53532F5A5353
%2F5A53532F5A53532F537EFD23FF84535A535A535A535A535A535A535A53
%5A53AFFD37FFAF535A535A535A535A535A535A535A535A53A8FD23FF7E53
%535A5353535A5353535A5353535A53537EFD37FF7EFD04535A5353535A53
%53535AFD045384FD23FFA9535A535A535A535A535A535A535A535A537EFD
%37FF7E535A535A535A535A535A535A535A535A53AFFD23FFA85A53532F5A
%53532F5A53532F5A53532F5A53FD37FF53532F5A53532F5A53532F5A5353
%2F5A5353A8FD24FF5A5A535A535A535A535A535A535A535A535A84FD35FF
%845A535A535A535A535A535A535A535A535A59FD25FF7E2F53535A535353
%5A5353535A5353535A537EFD35FF7E5353535A5353535A5353535A535353
%5A2F7EFD25FF845A535A535A535A535A535A535A535A535A53A9FD33FFA9
%535A535A535A535A535A535A535A535A535AA8FD25FFAF2F5A53532F5A53
%532F5A53532F5A53532F5359FD33FF59532F5A53532F5A53532F5A53532F
%5A53532FFD27FF7E535A535A535A535A535A535A535A535A535AA8FD31FF
%A85A535A535A535A535A535A535A535A535A537EFD27FF7EFD04535A5353
%535A5353535A5353535A2F5AFD31FF7E2F53535A5353535A5353535A5353
%535A53537EFD28FF535A535A535A535A535A535A535A535A535A53A8FD2F
%FFA82F5A535A535A535A535A535A535A535A535A53FD29FF7E2F5A53532F
%5A53532F5A53532F5A53532F5A2FA9FD2DFFA92F532F5A53532F5A53532F
%5A53532F5A53532F7EFD29FFA85A535A535A535A535A535A535A535A535A
%535A53FD2DFF595A535A535A535A535A535A535A535A535A535AA8FD2AFF
%535A5353535A5353535A5353535A5353535A535359FD2BFF53545353535A
%5353535A5353535A5353535A535353FD2BFFA82F5A535A535A535A535A53
%5A535A535A535A53545AFD29FF7E54535A535A535A535A535A535A535A53
%5A535A53A9FD2BFFA95A2F5A53532F5A53532F5A53532F5A53532F5A5353
%59FD27FF595353532F5A53532F5A53532F5A53532F5A53532F5AFD2DFF84
%5A535A535A535A535A535A535A535A535A535A535A7EFD25FF5A5A535A53
%5A535A535A535A535A535A535A535A535AA8FD2EFF535A5353535A535353
%5A5353535A5353535AFD0553A9FD21FFA95353535A5353535A5353535A53
%53535A5353535A535353FD2FFFA92F5A535A535A535A535A535A535A535A
%535A535A535A53A8FD1FFF84535A535A535A535A535A535A535A535A535A
%535A535A53AFFD30FF7E2F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A2F5AA8FD1BFF845A2F532F5A53532F5A53532F5A53532F5A53532F5A
%53532F7EFD31FFAF7E535A535A535A535A535A535A535A535A535A535A53
%5A535A7EAFFD17FFAF5A5A535A535A535A535A535A535A535A535A535A53
%5A535A537EFD33FF84FD04535A5353535A5353535A5353535A5353535A53
%5353542F7E7EFD13FF7E7E2F53535A5353535A5353535A5353535A535353
%5A5353535A53537EFD34FF7E5A535A535A535A535A535A535A535A535A53
%5A535A535A535A5354537E7EA9A8FD09FFA9A97E7E5354535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535AA8FD34FFFD04532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F532F53537E597E
%597E597E535A2F532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A2F53A8FD34FF595A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%A9FD34FF5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A53592F5AA8FD33FFAF535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535AA9FD33FFA92F532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5AA8FFA8A984A9A8FD2DFFAF535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A59
%5A535A537EA8FD2DFFA9FD05535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A53532F53
%7EFD2EFF595A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A7EFD2EFF
%7D532F532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A2F532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F537EFD2EFFA85A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A537E847E535A535A535A535A
%535A535A535A535A535A535A535A535A535A7EFD2EFFA97E2F5A5353535A
%5353535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A53532F7EA9FFA85A5359535A5353535A5353535A
%5353535A5353535A5353535A53537EFD2FFFA9535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A5AA9FD04FFA85A535A535A535A535A535A535A535A535A535A
%535A535A535A53547EFD30FF7E5A2F532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F532F5A7EFD07FF
%A85A2F532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53537DFD
%31FFA9595A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A5AA9FD0AFFA95A535A535A535A535A535A535A
%535A535A535A535A535A535A535A7EFD32FF847E53532F5A5353535A5353
%535A5353535A5353535A5353535A5353535A53532F53537EA8FD0DFFA859
%2F5A5353535A5353535A5353535A5353535A5353535AFD04537EFD34FF84
%7E535A535A535A535A535A535A535A535A535A535A535A535A2F5A537E7E
%FD11FFA95A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A7EFD36FF7E7E53532F532F532F532F532F5A2F532F532F532F5A537E7E
%FD15FF53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%537EFD38FFA9FFA8A87E7E5A7E537E597E597E7EA884FD19FFA95A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A7EFD40FFA9
%FD20FFA92F53535A5353535A5353535A5353535A5353535A5353535A5353
%535A53537EFD60FFA85A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A53547EFD5FFFA92F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53537DFD5FFF7E535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A7EFD5EFF84FD
%04535A5353535A5353535A5353535A5353535A5353535A5353535AFD0453
%7EFD5EFF7E5A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A7EFD5EFF7D5353532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F537EFD5EFF7E5A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A7EFD5EFF7E53
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%53537EFD5EFF7E54535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A53547EFD5EFF7E532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53537DFD5EFF7E5A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A7EFD5EFF
%7EFD04535A5353535A5353535A5353535A5353535A5353535A5353535AFD
%04537EFD5EFF7E5A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A7EFD5EFF7D5353532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F537EFD5EFF7E5A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A7EFD5EFF
%7E53535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A53537EFD5EFF7E54535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535AA8FD5EFF7E532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A2F7EFD5FFF7E5A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A53FD60FF7E
%FD04535A5353535A5353535A5353535A5353535A5353535A5353535A5353
%FD61FF7E5A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A59FD62FF7D5353532F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F84FD63FF7E5A535A535A535A535A535A535A535A535A535A
%535A535A535A535AFD65FF7E53535A5353535A5353535A5353535A535353
%5A5353535A535384FD66FF7E54535A535A535A535A535A535A535A535A53
%5A535A535A84FD68FF7E532F5A53532F5A53532F5A53532F5A53532F5A53
%537EFD6AFF7E5A535A535A535A535A535A535A535A535A535A84FD6CFF7E
%FD04535A5353535A5353535A53532F5484FD6EFF7E5A535A535A535A535A
%535A535A535484FD70FF7D5353532F5A53532F5A53532F537EFD72FF7E5A
%535A535A535A535A535A84FD74FF7E532F5A5353535A53537EFD76FF845A
%2F5A535A2F5AA8FD78FFA87E535A537EA8FD0AFFFF
%%EndData
endstream
endobj
119 0 obj
<</Filter[/FlateDecode]/Length 15646>>stream
-H��WW������R�V�@ky�ŋ�J�=U�� -�c��0ٗM�y��0�XZg��&�<��ƀmJS�Q!�1 cqŴ�fnb��ܟ�QJ�#�U��k -R�)�MmS�X�����oS0��*�Oy�!�m�*�AL�Iv�����K�j��n��-+���bj -��ok�K%���!��z:�!1 Cp"����J����3��?F���LE -�)Ce4 -ȯ�N���ˈ�"���ae5�"�"����� 6'�3y�L�i�&<1.W.{y�͉�']S˶�z�I\�)���.��� ƂG\F��a]�1�ܢ^�V}����y�꣖-(��\��CbwJ�X���aC� -Un�ۍ6���_�Έ�ܐ��T�.[� -���ϾH�R��X^�9<�8F%cl랽�R��Dž����JԔH?x��%cH�^P��j��F?�h�Ť'��ՠ0�$�8 G<��ܞ�(�m�B��
8�F��y�&�T�f�E���!��Z�<���t�eu����i.��6�+vbVN�Y��=œf$�f
F�����yU��$��o�a�K<�/�6�Ϗ4Y���L�u� -]�)�; -+FH8�_��<�##ԡ0��!;���~x���tFp���X�K���LD[lC]W��8R�8h��$�
�7g�!l#g�c~�M�X���nnL�R7��
[p"�̠�h�+���̐�f��Z�,��ؑ3`��t<��um���<*��J�61��:�Q�T���P�z��a>҄�SGB]�
��7�/)B��<�#+����5|��8�R�O0'�,ʵ��r�U`�ck����R���SNƛU�ۜ��YDs�32�� ��r%1�% -Z��Y0����������kۚ@��Q��f<��)�i�<D��Dl�e�1w:,Օp���� -�]Z��i��� -�.�a')�Ϣc�z:��4��� c�
1N�
l�g1����_�k:�<��M�:ꃤ�R R7���c��|)X��#����#�DRd���Y��[���y���8$�@�:�= -���|}j
;���J�����_���ܽ�k௹��ݫ�v�����|u�{���u4��;�/Ϊ�����ˣ�����e��J�wV�|�)m���ԝ�;������I��M��ra+�l^1t!ړ�͓#2�h�N�n>�7Yzj���պ�L���\t��G�r-�8�NL�O��v�{�s�~���2�q�b�x�N�x\��t�����߮~4��?6Of��f���n.c����x+�8���Ǖ�?���zS�Z���3�}+E��s�����'����{�2�|�|����n_��j�}�i
�M��W��[���r�T>e;ӣ��V�pw��1�s��������������(x&���ƃ��r�X�5����k�/Զ�y�w����`��K��l\L�2���c�e*{����F�f<��j����/����F�{�o�m�=R�;,�u�S�����A���ڵ�Z�� ���O���r�q��W�Ok�}��V���Gۏε�f:��ٖ!���U?��O�������ԑ$�~LF �@ �2�s0��h�����-���̙����F]]��Cfh��E�:KR��(�2����qA$Onr��Cg"�����*&��3���o�]��d�`T��&��+����#�ɛ���"�M)@$n --(�k� Z�з�C��ji��}z=�Қ���z�?>�.���jL��m�Q�JZcu�Ô��b���٧�}yLm!��+����՚����[WD-@��I"Q��-y��q��b@U$�\��\�Ʊ�?�5"��8b�2t�K7��|�p�|7�YWGtO�+�dNE<?���ܭG'lV"�w�� -N��\�l���曥9&�HB���I[Di���$�%��X�{䜫���M+R�%2�I��m�V�4E�� �Uڨ���|;��J��! ����l����*qcp���rT���-��l�h�����/i�<
� -��n�Z�A�:l�(���5 -�D�Ɩ��}��y�zs�M��!U4���~_ Ya�;�6G�l��_|�1�^b+�9�Ⱦ�c��4�ɾsB��o�� �~�ҠbϜq��l|cR�[��pl^ɤ
U����e�7.͘u������w��<�[�����lE�L$�'Y88R��d���J�y|*�^8u3�탳�t� -��dj�U2�C\@C -6q4��
��d��BR��T~ZdMl��e���.�+,���3��P"�wE��� �x���+�o!R���k��#�p�u�`��&� s��Lg���"ǐ�]�_l�� ���Ѽ��k���_�/¢�(ڭ�B�;X��X�V����ذ�lxC��jxcʻ���Ɩ���A�N���fP�X�*�������R�LH㙑 -�g���� [Z����m���]T��ƽ������mgp -�s��)��X��m�%��� -��[������ճ�(�r0��, -��W��`nr_ؔXD�Z� )c1 ��ú�;��ﶤᦂm?�iAa����KB
NE��@VF��.�#+���Y� Ԫ\5���ʦ������mE�ϯ������C&6�i�,���Weqz�lf�����'�-$�tZ�b�R'���lzblw"�1⛍w� ��E �`��q���g�j�vь�+�br�;=�J��A���~�Bw�+���X��p�t��uj�'�$+h~�Ź�:W��0Mř���!�p -Lp�}��������c�g��y�c��/�F���6E��Up����
���0?�G�#�Y��-�r��6�Q2�������B�Du�HRT�Q�����g^�Qs��W�<��;&x
>߳�y��$杸���L8L��AԢ���ij0q�W#�6\��i��On,��J���= -���
�U)w -��������������rV �Sނ���Aa��n� -�� ����vGlVChYQ�[��a�5���-\���"��@*�Hv���EJv��IE[a����!j�|q�hދ�`���:ӭ~�j����U^Z�n-��:� - -rk���?�;��7�:;qJ�d�Gr���TvB{Cy�ɾ\a'h���7%�Gb -�?�h2sg�e$�@��=�T��VF^�V��n����Y9*���[^<eK��L�3�Hpw�᪠�44/Y���z�0s��J�=h.��&�}���0�@�h����Ŝ��Ƀ�4>��B�|�P�YXu{q�I���� 7^[b��H˩� `O��S��T+��koX^��I��z� -g�*��,��;�0�Z�ddͩ�P�vv#D��)��b�&oq�!Ő>�$���8pۉ�qb����<�ʊ������ױ ���:���c}����1w�%�h��W}�(�fy҇�F
-<����MV���Ra9���z��Dk���oqz� �>���8;�G��*�d�^�`�v'!u�0ė<�����腟���L���= dp���^;�i0���fBf^�y,�.7C!Wk�,ʩ!���p�~��8_
id���S�$⪾<��H�2�ئ��_)1�U!~��`%\�~��Ej$|.���OJ������D�S�BՔJ���G�W��3P��0����"��ز�A���4=e���O<m�P�z
�zk)��,��D~��D7���9��,��z{�f&�Q�n�W��RB���m���V���{Sx���$"@m����2/^�[��o��F��"�f>��^�2��)I�|-Y���x:����,t]$ -=�4_���^`}���/W�Y_��CdՔͰc�����J���'H�� Ͻ6��֦�����L.��W�ӞXM5Ϝz����b��ۿq��'�=hfW�5]�3���LS���)1Y]*�y�k�jn�l�{j��Ӑ
�c��}�늜r���զ���$���ڊ��4}ٕg��D"}&��͊�h:����j���7ɩ�k���wW+�j����w,N����x�ӹ��s�g��K$y]�rf�{uc{-��z��k�����oN�,sm��@TͶ�I�">p���������sȱ�zt]V��_���_>6�}�^M��v�������ETEݣY�"���0um)fY3Mm�}Y�~�$�����lk��r�)����OW44Ų����&G8KO���O��ѭ�9�h���5ҝ�#�D��tϔS8���
�� V�(����/WS4�W���0�_в�|i��l�\�F߶��f�J��P����/�o��)�]9^��^�o���ř=.��1i��G�Yd;K5 K������v���Dc꜍EJ�8K1�)�)��̭��^��*K��AT�5��q��5qH�4N�r�@@�>��O5�Қu��Ă~������U(P�;\�K��|��{��ݳ3"k?�Y�J��aC�����Y�.1� ήw�������d�������R��H��4.��?�8nv�b%VFhe��̆�o��`�O9.����`�z��1`;�A��VN�t�X#���@�ߜ��B���;�S�o$���q�S�U,�!nm/1U �y���
\�o��X}pui�i�' ������s������Jg��#W��/�'��]��q�T��}�w�3 q -����?���z�\M�^ -}�xL�x|?4�V� -v.N��}`ɚ+b �}�a#]Q���:�,1��k�o
�}�om
�e���XJ�������Z��ZB��IWO?YAm$U�Nk�XNr�u�8(CՃ�Wkh�*zXor$Cm�9�g��BG!�)��n,���:���q�j'C���6Rr4X>�gB4`���~��cM8��Um��V�������L�6�3[�۷��=Q,��D)+(R��{��}�X%�c����}^K談���ֽ�R����X���룐�����K�!��� --�4a_�u����'��X��v����7�ZB�O��E��e��Q|U�@')j*}���ݭ�J��&(Pd�� �A��@G/Tu�oYBSݐ�x��@� -��e��'�ωf�Ļs*�P�"%&̻O��F��Q����'���*5Cr� -SE�&M*>_%�G�ë -T��{^�����rP���x+��:�1�yl|6R�P~`w����s���5f!j^_�$�������L?L֕�"�Ҷ�]���r?%�>�W��Օ�FV*�>����[����Z��w���8ݺ�w>YF��]JϬj��(Vz��z�n%�4�'�`�dgF��8,�0����� \q���B��U�[UQY]
����hVfdfD��7����
��2�aQ����06�@>�F�������؍�!������b@i�p��h#�+����͎���'��h����2���-m�W� -1�t�
)l�5���1a��u�M���$k�P-���Uz��<v&���i1˫�"�c�l�q��w�3ս�o��Ix���2�O��)���Χ'cT�b�x�#j'B�n(�����&��\ܞ��K7%*/R˺)��95�"Os�u?��¶[�]|��vK��~.L�z^�LM�I�3z�����%M��&Ƥ�=�v���� -�LJ�-ytNLW�eG�bc��HA�/�m:1�'��=�۩���R"���
�����^'����=�2����缼�J����*���poN38�_n>�x�8|b��`H�a��,ȹ�vhz��"; -f���t�,?F����ȝ0�]��-�Mu���wۗ�eB^���w<�s��tٜtx݃ -��t4;���B -��/7��ÿ=��W5���)�,E݆\��O�U�p/�<��:_�y}E�X�C��^d��Q�0\(�p���ݣ�X.{<ܬV��z����^��@�N���<f���0�&��^r�N&�~�D��݊=�5�g/y�����k�z�j�1���УO����Q�ѣ_�k��'È��w�5#�g��'�����hb>��=.0�?K�Z����^- -���{�QMg -��[�] -joX/����4;(��hiy(�9Ŗ,0�?0����!l���O2�;�"�f�X�Y�X���̲�c�jf�X�'# -à��80t�CC@ -��^p�(#*��Ow�$�Mo!��7���>U���SO#����8��PJHs5����=�R�6���y�qm��P�t�'��20$,�,�� ���M��R����$�[H�aᎤū�o����w�j -����(7-:�P�Y�d� ��k�=c�ɇ��1�`ė]�h��g]��W -�Go�j|!�4�w�/�6Z��|�������C���M�706�(y��8_i���hõ��G�ʥ�e�����B�9�����?r�Zl���e9I�����<�wL���ŭy���$�P��jC�-1 -u��a�3
KѬ`�2��b��ơ�/^� -֎Dx���ar�^ ,��A��0�b��h���s�d�<'��<����� -�B�EI�.?i�>�p�f��[*��3�a0t�_띗�M��H���p8�$],K��u�n��I\莛Ǜ����$œ����������y����'�a08?\���z�ܤ -N��S�j/|1F+E��-�������\�8��L��k�q��l��^ ��646��^r���,���G�Cq$������{�3�V�M�NF��>-T��Q;v$0�]Q���W���9)�b�n�{5��ץ!��c4��TB���@��3�نq�d��:5��Fb'� ��2A�m��An.�s���^��c���>(��C�Ӿ��|@����D�=}�4*���3�i�t��Ҝ=h -��=��*��a�}��C�ꥢLfU�õ{�� -���ڌ6]��\%���X~1�#�0Z#��i��m��[��q�"��M�r -�Z���h�}!�=����+�7#���옋2lmK^��Cŧ�Y0κ�c6H�@tС��������tGn�ҭ_���P���f
ry�,�8������MjɎ���gJr[|qf�A�n���E7�4Gr[ -�?颧��T��ct)��ށ���Z��Y�|�n -F�'�nc�V�@�Yd�(E�d�@�#�R@s'��_R�F@�`���~U
�[���f_H�ԡ^�o.�ĝ�l~�[`�R�-��[a�� -)%�F��ބ���g�f�>�3ֽ�ox{�CIVf���f;V�$3�g�QHkoK*Nо% Q0R��K�BY{�FJͲq�C]>��dW:�'��@�e�~84�\+<��7�UYf���B������H -DD,n��\�8���t�>Щ����2�0{�(��ˉdQr�������$�C5�*��c�`���;�;��w/6. �!�r���v_1�Gd�uU
���8R�T͆���|��l������o��
������h�}AGVE��>�hH��R�!hDڋ+Y�q�_nV{����H3G�Ǹ4�_z�j�큆�A��L¾�/� -H��W�Z�L��\�@H ����e�T�
\�� ���f&�d�%��> -���{�#�O�z1���ɫS�r�XTN̛�ޞ$e�z{:l�S�E���Ԫ�����z�Z������_�H�p^��!��"���㠔�{�=�T�$�8�mZ����J�V�>���P������V�����4�Yy�;`�A
����6 -�3��9�����L�+U�L���Z�uS����!�����3���)`����T��_i�Ze��q�6������.�C�G��`�%����=烁�u�N� -0?N\�5o���%�+�YN:���^�I*�>R9i'�<+#d���%p���uJ;:T�]R���Jr������3˘&�6}�T����H&��3n�JLeBA+j�+ܾ�����~U��9
*���Y���uO�5�J�lI�e�s^�X��pl/0��� փ�рK�����h3��_��\��YG��uca�k��]#>�\Ir��]]����f�Os��>���J%ְO{W0����pRSF�G�i}�Y�F��p���ǯ�l�oG},��xA؝�����J��0�[)���O�s��v�.������w���vR2��0���t�a�8��2H=1���FA,�֪��U7��7L���,��k����~��X@c$������d2���/ɵg�0z��R�hF%&� �5h4֚f�F�V�{�a�8.6&Ȩ�ǂ s���c�Q�2~O3*ɨ��߽)=��рm����-�h�y�BFݍ�&��3�o�'��t9�>�s�����}��$]�Q+-7MM��GERt��)(7����Y��]Br�| -�� �G)ț?1
� w3y���� -���who�������G@�QD5d��)�[`tԠT�D�,X�$d}�����KM�@���Q��eD�3p*_�?�0��P�\��.���N���(A> ��F�=����eo��9��d�����s�A���o{/0kq�/x�����_�^���2�RR�?-c�홱��#�b@0-M:�׆�à>l�1����*a��! -���~��� -֧Ah*?4�����.�K�N���_qTI;*zW���d�R-a@�mp�vz�nu%�+w���8y/FO�nZ�E����7�;;��2:�.Mx�}�P���A��%;i�%W��${�z���l�U�143��k��wD�RaV��/��'aZI��@pA�-�P�#�AD��� -k~���=�d���}�oN���.�iBi#l�����\�:[�U/���g�1��� �-!G���
��}]m�l�Z�Vrx�U'g�J������V�`�n���ΩK�1����̶?z�1x�<�#z��c�ko�}� -S���gC���]���T��ӡR ���:ٝJ��R���k���2~9� ����&�xN���.��{�ֺa�lq�+$�u���YkQ��}�jt�4E -������s�)QQ�ǹŢ���W��R+�=����@�<^�LMu�k����A,@{��1�?��ޢ!t����p� -!�%9��(cH�w��`��!�6y-~@�ׁ�kȓ@���q>a| -��77���x)r�1�V������1,�:��|@l����S9^s�-\PS ��L����5JLe�e�U�f��1�Y����8`F�\<�����ϸ+A-���B0��|ޒČ[aJCV{eCvDN�^h�}�R���zV��}ah_�Li8��g8�������k� -۱���;�ۡ��=jGR -.�,3���,�[ -'���~�:������ -��^ -8�|<�J�NH�K����HB�
!�I���0O�
��͞��Y�/DZ2�5l@���^����a����3�@
P{�|8(%q�w��6�f���1\��ļ�p�eĚ�RxTZ�}���g�'�� ^%Ƽ���nl�l��S�g���y��� -e-� -��?���������S1��Y�6̕��w�� -��!Qig����SN�̯��N7柄��p@Q��\�u�밨Hd�ӝ
'�kP��&?)6]��`�`������pb�whyx6?-��q�q�%���_sls�GL��_r�w�5dž���O`�I��4}���(U�}����;F�g��wH|�B�I滯b�Ul>��g� -�j�#���T�ݏ��ח?To�tC�D���_�q���
��{+Fv�w��_&� -��۶� -$�}
0*�O��6���p�-��/I%�.�͖����u�Ȗ����n�u�������eW�u �&(���w�>��&ø�4g:�طt&x���p`�����9��<�&t -���7��Ѻ�"�8�E~z�%5
g�Ρ��p��g!�,}?��63�2:���[�zЊ� ���'����*�EA؎p�����֫t-q� _�0���0�(�0�%E��<��u����zf��O��Nuw��ւ?t�2䝑m�L�<۷J^A�V�]�猗��d7N�A�Z���y�>���$�ھ� �p�E[�P��1h�<V �U�8 -@RY~���Ȑ�ψ�I:c�p���#;�xru�Oh�mkO`%0�/_e6<lj n(4�i�V�F��/9�Y�Q��ʄE�1�"(�4g!��oΗ�I����uN+}��??=�0�KW�Bo��T��~��s,oN����#��+v�z=�(���ۑ�fN���K�M�[r��Ht R~L)F-���ˏ��s���d�w;�Y��|$A?�$�L#��]"R;0h��)*�ݒ������Y�����3(��ҩB7�ޱ���Zjv�d}d�WI���S�����a��-pG~�3�Ӗ�o�����@�sd��q�<|T�&Nĸp�i��-�r�#�P@�W}�A�A�<+J�ijDt��b�KZ�Aki3NGe���Su:� ��`�c�t������z�����o)�z=�|����(b�^t�)�>����5MGb}` -l{l�-����b?P���=p㘲�A��rY�#��-�!>�"�4��mQ�sR��h�Q�\a��kޓ��8�<g+u��(pzL#�R�^�>R:�J��v��=�?�W�UL�P�%4�9��_P��������PLc��]�=�6j:�k�$��5PL��=irb_![4bΡ3�v���<J?�ýj�q��Օ���fG7�[t��p-��ur_�(�s�����Jަ�J�����E��ؤ'�or ��,x�����^Z+�S�b
�g�^��֨S0 V��&b.U�W�\B�/�X��Z��5���i��ƀ��6F�=��h��p���nc,$�`BHSx.Zg���bY.9��Ex$�ы\yÌ�fP��@��I���'o�f�m�>�8q� �G~3E)A#�}+E)A��o��/%h�?��1,��\�n��!inKelXĻ�04ŷu����.��Y��'=^�'8���&B2~S������7�b�|+��aߪX�z�h�nC=HЏ�7X=`-y2s|h(^y�E��W2-S��D�o����FE-T�R%�
��: -L�|�B;�G)eyrX�Mo���O`��G�;L����gM��n���3�A����ۼQ�!�~Ӕ����b�U��� -��T��Ա�_��x�z_��X��L�u�gcL?�y�q6���1�n�z��@�;� - -���Y -Y6��)��,hX�S��_�f�̰!�c]�S��s���$ޤ���3�D3g�J����(�]T3��%�4&b���T -�1��� -H��W�n����� �z�,��}����bm�v��Z�$��p����������e�0�h(��S����T��Og'�M��9Q�(���w�p�h������@C�ΏC�"���qW㋿5ö�ק<œ}�ջ�����m�s��������1y��ӽ��6�p}����xa��w���?�(ѩ�a������z�m��Ya�S�����]�e��N�K?.t��k{�lϚ���ݮd�hA�5^.���C�ޝ
�u���}���0�R�÷�f���M����YW_ -�}}U�]��>�;������*۷�ͻ���>P�Ұ�b��naf陆�՛�\4� B����l�2^}8o�Z>��ǣ١�<��'|�$�����l6\ɛWr�C�q��Ʒ� ���J����=1��f5������]�n��aw�%��������k�_���34�xG��o��O߯�����ݿpYw���w�G�;0�ѿ�_:-� �o��e���D��-L(�S��L�x�F�RّГ ��J6���4��'�~h����0{�zho�ӳr��կ��>~���n�e#n�8�Vo/�Y�o���ܾ�XG -'t6�k���wu��1�z���7��>x�s�r���Z���?��u��.���Y��������� �$��~��Es�|���G����7��H�� �V�o�>��u=�<>Y�����>�m�c���zwEh�7�ɦ��=?�m{�C�
��}x���d���d}�Qz���8�/�߯���3�/<e��p,x��0�#[��k�zs�^�D����������������O���zص�]s�e�k�f��qۮo�,:�j��
����4lsw_��A}a\J���W4Q�0[/�_�M�E{���
�p���;��
����&��9���d( ��'��0R�d@�O�{J��*�v�3����n� ed@��DE+ -$[�t) fh� -�_�:б6�j�S��.t��+�Q&�m��bޘy��̞W2����g扗X5x�N��XKf%Ne�1�g����4�XXeck���&6��-li+�����ig�uΥ.s�+\�p�����?��|��
�6*�J�`�@�H��� -�@����85��Ę�Lnb�'ˑ��ƲɈ-L��)�B�IY^Xy�ӕ�i��.G��&�y��9�\����Y��Y�!T2��~�!�3�����2-�:O�4M�1��Ԥ:�SD}*!�4�G@��#�y�=�&�X�iL�3��\Kl?Ƿ�$I\b�h�B��$��o��.AX��v1冄�E���m��I�Dɤ-�x]ee:i�e��(<�?)����>^,+A�j�� gM U(���Bx�J�G�b��#E�#c�t��b�r�j >$����8hJ�HU$�fe9hˬ.�[�KB��є��@,&���8� -G'�ڇ�]��Mq�9κL+�)��_�Ch���RfU!x$�#��C��y��'1gʌ�#F�!D��j��Ʉ�H����X��] �+�������F����eQQ�B$�� �R;�T��9 -Zd�P���<�:-ANP�V`n�
���\��(����%�P�3.�%u_�5�[��j�~u���C>�߲��E�³�%J<V -�-3��(\$��tkV��~,dR�`!"���B��.�\�8T�zE FIY��#YY -����B���M/��sq -��S"Iq�(e%�#}SNd���Hm��A�e�DUȑI)6����q��C�� %N�t$�9�� ��q��*�m���=2?�~���Z- W��^Zց�Jg$��%�.�@�H�Df�M�Mt�s"vcD�D�G(�T�O�8O�[���ԏyp��=!�UY.ðj�n�|�H�ڷ��1�c�(�..9�-{��E�eD.�D�Ŗ˻�$���G16<���6!��h
�'z�K�ؗ@��kuS��rS�d�. S����[��С`A9�Ji-��'q��� -�[Eh��U~'{��)��-�"NȨuQL[F���_.;nI������7D>�2
o*�a��3/���#4������FDf=ؤ-�i�Ȃ�E&�2n�8�ZI�J��!I)7Ϭhk�������?�w����O�ӳ����N���o��������N���ߪ��7��G��=3�����C��3���3O[�H(�C�F�4&� U�� ]&FGt�s�&��:��DY����`v���L-ҥ��T �g�cn�F��+Y�ȗ{���g�����OܒA0#c�a�ŋ+���-�(<0�W_(���2��� -�wEG��+��A��z��20F�
Z*2��p�����bp�ؗ�Ud��ŗȏ�~Z���3`�(�V�������=�G:�u��aK0l���gV2
��m!V��X��#�Y��zƑ���Z%�
���+9�At�=#��Ӏ<���(���J �1�K)7�,+�*K�*��Z1XJ��$p�z�P@X�$Nhd��47U�<*J.fA�!��S����(�%9�q�S�'>NqF�q0DU2�8!�`�?q>�< n5�Ѹ�/;�;ӫ�OA�r0u��H:e?��cTi��߬�i��V���Q��vZ|t�:�59�� -l�{Q������ޣ��@[����lS?ds8����2�T�i5f� -TU�%�q��\2��ř��^���7�x� -ω�`Mhnl��D���Sllc�� ��'iŷ�ͻ��?a�wp�����W<���
�=��!j���5�%˹x�h�3���N���y�N������ػ]6b�Пm�0D^ރY�� -z��Zҳ�yh���(�P�,C���� -H-*1��e>�t -e>�����e0Q�RL���02� -�K�G=q��:���B��,"4�E�4R�}�H�Rt*���XҁY�8H����^EjC]��ɠ�[;,AV�r�*�kr(�`=TE��"�EI\E�b���W6��NK�n�w��j���S��� -i�];�M;Se�����z��jC��E�W�[��p}K��������S�k�k����VK��^-`[�Zs�z[k���^��8�=�Qg��n����\1�NR��RTI�E��CJː⎇�D}#+�Bu����1ezD�j���I �����xh&�!�b�(~D�G�נ���ѕz��y[8E�K��rC@��C���3�$��� �����;ͬ�AtD$��������B����I�3��`�1
��v�a��-�Y#�N�8C�Q$�r�f ��N,���<b�L�k���a�Fe��2a���H�l��j�����C�}Т'|��a�F�L�C��'�h����w6\�����!��^�е���Ǧ��� �P����-L��TV�b:�p�~��A ��8/��o�~�ό�NK�h�A4ִ�������` ��!o3N�^7B_*KP[�h1*�f�G�2����u�Zݨ�\U*��eU���U��TJ��xM�9 -v�NC�U�ڣ��4o��N���K���8=���g)R�J�.�$�o|�S�M�[8���"���(F�^ၧE�'V�{� -=%�� �KRcǼ!����^ -��s�j�ꮲ+w)��P�d&7� -w6Cz��:��z��( �Q��D�)@~r����J-��)�B�e(���!��m�u��a�u�(�XC��U+y��e��M��d)����b����咳�)���6���ɧ��49��K��]����M�����B
)��Ư��|���#�k�b��+���a�ڶ�%'[��>!g�3�n�M�E.��<Y�πЀ�;4�&u���T}E�,5v�ҝ� -�7��" �Df׆�2��m�du����a;�Q�j����T�)L��N�E*@}�9i}m)L_�vƮ�����b���5��V��_m��c�X -��Fܹ���T�uE��/7 -C�]6����}�R�����ª -���V��r,�<�2�DK���v뺉U�8�*՟T�����cT�)3����sbM���Ռb�ҀaX&��+���mf� -U �0Z7d�Y` -1�r,��& -)�2���f�\1X�30�� ȶ�Etݗ -���.���+h#a��\��^��, -G�x- �[!�F�}ns0�i�aGT���C�徏������[��Z{���f:3��d�\ ���ȩ��c��3��/�F-�w#Q4�m��Nx��QH���q!ӟp�����s
-�ۚ�\��\k��w�)n{��"�?�x�m}�u���v���꺻oϷ�7nW�ёM��N�(�G����S����qH�zxٯ��w�s����. 3�nL��$9��gF�ȇU�!l����~Hx
[ZhK��$�PS��eؒ��D�jd�)uCʬ0Z/*`E�
�K���_6;��F~�|��`_"E��1I��
�|,0��܇����$)J�ꞩ./�V��X��(5�c�P�p�hsp�Ȁ� ���ڮx,�lX�dWb
U�A^E'!BcĘ����q��J�06E�K�2T^���cD��?NY�3��F?%�d��%vv$�ID�$���G\�Z���9�r�1����P�B0��&Z!��oigӇ�c��Ŋ��ْh-g�����Bg��Nԝ�e�n��]I&��y����m�Ҭ�Ó��>H��L�Bӄ��جw L��K.�%�R�o��DŽ䨵JP��f�)5�'
�#��I.٢l�V��ȑ,�^V*uH(j -ok�7'��c�����L�M��는țƃ���lk�)ʏ2���-J+�Q�����=��wס�i]� -&Li�*s��]j��� �ݣ����b�� -d������p>�%0F�����(9F��,�g���Q5�Q����Aj&���@�C�_���D���
��v����Oq�7� -���#��Q����pH(D�C�C -���ʠIiD&a(Y̠HZ�H��Ğ���$uB�j��Qe�SH�W-����J*�Y�Ka�x�ೡ'&�1'+����Q�l�Q�$�P�L��"�fK�JŔ̓�$�!�*�؈QsB�Pa_���.Uz,'_�G��+m%ܛ*H��f�f�R<5ᦖWt�|w3�+�yh�Ot��C��]>}����֚��?�b?�ӎ��y�q�Ac0�����<�
�P+�ft�� -�̧N�����̬<�b�[&�d�a�� -� -L��.�p�X������Q�|w��<)��J��t�1#iKǴq�7���ۣ��v�g&<��m������-D��e��7ֹ���1̹���6B�Û`�Ŀ-;"sb����'-R��g��X3�mk|�ثX6�qo�
�I��� ���mt��U����}ܛ{�q���ͳq�Ը��q������ ���O��|��3�5^�9�����!�a����}����������ѕ�W��g�|rR_�S�I���v��x���sY��N����l�<�dQ��&�����
��F?r�2�.���^����W%��J�A.�䫭d+�$no�q-�E!����
.z��!ɋ�$ s+�"#R0��>$H����(��0�"8�Y�Lf\�(B��ȗ�6�=�:L~��Bb -/ 3�d@�G�6E�oD��B�ņ{��y��UL����n@�##�IQ��� �u��DT�h �Pl0l& �t�<��w��.����ǎ�j �1�c#H�A1'k�����������,EU -������#N�MK� -#��gE�@;�o8��@�P+� -s�8v�aH3q�yP�:���;3�A�(F-��0�����@Kd�Bf -� -@� ͬ�۠�����4���r�h'��h}��'3�G�<K�8A��Һ������*�~�m�jT��
k��}kol=�*����m�#��-���o�*\8�++l���+�]��UL�_�D��ۼ�_Y�پF߬�a�}��^^�Ƚ�� -��r/�o,HIr��˽�`?��ʆ,��g!�7�I�P&��+ >-��"R�dī�#b�X��e)�r�U@��UkS��d���Z4� -m1E�}�\sAh��V Gj�mG�,) h�d��}w�Ќ0�x-"�ĥT�ֈ -�\u��>����TQ!�*-�,2ɀ -�L0�chQ@�E
6*�)H����� -bn���������i4_·�ɐVdm8��/��w�������3Ia��/���k���ۚ_*���^�З0G�K����c�|{w��?���E��rB��N8��1y��¾qAu⫻��0���\�^�]�K/��!nH'�eF�z���}�e�3@���� ��$&3�e*3��f[Pε�@�1"$/JGiM#�qZ� XA�Q��7��GyK v!�!~%��*��Ϊ��:����!�D�h�%ΊX�!z" -Wc�H}]B,�
�p�'�p���!43bdE���D��L��8�g
M ��9���ǀ���T+�Rq�u��1eD�J!�y]9�Kn���jܠ�#��RJ��$:�VWCM�Ԋ��D���Zh���`-�Mw=��������>,��P����M��r���z�"��:�*��� ��
aC<!�&G���Y�vYӏ��9�����8g����=�}f���4[h���Dp�2��)z�$��4[i�Rf/-fZ�4�$����(�R�ZR�)��K���cS��S
W �թ�� Ko��gi��䰖me�Vgq�!.q%����:�F��<ԕ�� -y�y�����j�Зb}y�W&}aʥ�M��[^ �v�c�$0L��f����]�INr��'''%%��U<|8�Q�G{7oi�4�-�;O[�Kxf�w;�_h�=bi�]&�_'�C0�O_؍�r'%^+=)@��Ý������)]��N�ʣHӡnl��&�/�C~������O���ӧ��˦��~{~������il���Q\܊�v*�xdt% -+ ]� ��6��?:XlO��78^Դ4]����;7��;�
IqM�uo�Xa<�W��OR�7��p��� o9��p������\^~�%���z�ozmW����
�K����*�x�U�����]|[�,��e��2s��|���ؾ+�K�z�LY�B�"�7
� �^����n0{�A��bA}`Yځr �0��@`:H�l�rJ��ޞ+�VAa05�t���SK� �ô���Kn�@O0w��3R6��)�
+��,�O�dY`<M�멑��{�u -�A/9�<0W���Nɘ�j�6��,v�=qY,w4Ķ����i����������XqƎ#��0��[��sk�F�q�@f���uW� �ظg@;�a�/���wOx�0���8~��#�/,��v:�R�A��n3��NZh1 �dQQ:��PFBF�h?�NT�(!�ܩ_��Vh}�mɐ.�T��GL���ʿ1���1���'<�N_���k���Ƙ���#�[�kܒ'F�W�c�iw�;劒J���{=��a���R,�-'�]��tK�z�(�9�s��
�i�R�!�fXo��H$�y��-Mo�;�>�.[pE\�:lQg�@�s`���`q'���4p��>����}3����O -H��I����Cmp6�L� -{�o���F�C���A���H��6=���CO{���}��ފx�W'�e�eWy��M`._�W0����P�V�5�
��o� WD�˺�I��I�t�[X���8�� -<
[bG!��D˔���VX��-�s�zI��SE!�S��� -|����x�ϥ�����Y���!uC~Ȃ���eO�W�Ac�/�<��� -O+���'��{���7���O��7��,R~��0~�<Ÿ��0xpF)�7�G�f���!����F���3��~�Q��m5y��pf��O�o�K���������o��=v�o?��}���������}�z�i�I�'�p/!�M�,�qk��s b.8��������0o2fP�lr�WsL֎9W1���Ĵ�TU���0���<7���,�D�H$�!#u�,���ɟ�� -v�|`MLq؎tuk��=�!{�nE~E�E�UF���`�\,�.F�W�ep3��.7�ju8�`s�}���(0ltdudv�;^���p����,���M�{g��-wř��|����m�zrW���uk���U��PF�*��qB��(�E�=nB�Mɸ]��"N���"bI�C���D2�,�r�<���̳s����~�r���ͳ��b6�hjgGf7[�Nv��k{�a�ھ��W{�`9C�=�ݺش�����������l���Ϩ�9�q)�N�}K�#�z1c�j/�vhg��,xb���*�`��mv�Q��u�vi�i�� -�^������_�V:,v��0岹�p�.h%��I~�����"4�&��-f�SW���9�5��ˈ.b���B=i���g�A��ӗ�6��1p��&�qE�P�V?>��n�����.��˵��O붖a0n��*;�b.�aVe��<)L�4���B����䐖t�0��hPb�T�M��eP.��\\�UD��h�eE[�Z�wK��b��|��#2��
X��F��h�Ϭ��^��βv�]�f`t -W��$Pŋ"=����x��~�QָQ `��8�����,,OX���Z1�9SшN -����ڐ�i*� ��f�1B!��^F��0�7����t. -���Z��^���RpJ�9;Kj��Y5�>q�� ��#�������I�,�)��[�]f?�
5%���7�QX;�]fj���}�<�c�c�����9B��`� HgȩF�"�"&�bM���<�Q�L�ת -�듦�|�a���ӮN]��]�H���YI�� -T:0@�p�����"4��E�"@�Y(Z�B0.�~ ->м��3�/-�̉mj/7���Sw8z�ms[J{[�%�ՕgK��e�g�<^��5m��r4\2h��n�O��DҩDR_������X�\�ysdjX�JX�s\��V�j_�*�O:H5�.�S�rJ55�RL�OS��[�� -�5�[It~ąQz��|1�b��@�X�q�TY:�(�[�WE��L�Al��I�CV�JJ/;W۷�Q��" ���n������dk��K��7C3�e��e�T�ۺ�J�j�[a[�UiU�-T�_�ڡh���Ep�� P %g3���1X�����&d�Qy�*Uo -�I�7(�:h� -�{�S�{:�Z��X�1sѱXz¡g���R�m- -�� -�'ߏ�rg���7�W�ՙ��:%��"�� -�\e2U�\�d��ӏ���d�zS���u�7�9K^m$��s��1.u�:[���Ƈ,��m#�d����v��&�L8�pk�Xc�cn9и�k��B`ώ��k��2��\F��Ks(;\nw��Ό��V����0 -�0p��T#� -�X�s?@1��`pĂ3�� �����4 -Gև^Z�dtA~��[��ʈF�7ꗳ,����E�j�N�1�*&��M�Ъ�*�,�HO���D��� ���ĈHG 4Yw(�uPȁH�%�V �Z!;�҂qR���
#�@��e��Zu@�q��y#(�@���C`-�=��T�H�O�^+d`7P]M�
��#GED��X�v����H���!2�/ArVH������ L� �E(U�b�P�"n�d�A�<$.B�Do���Ps9 ��!�1�8ӷ����{��7~��5Mc��>�fܳ����ͱo�y��I��V�~�>�����3�� -��ƧGӓ��<��懟�}~���7���:qл.��#�Gk�� -!3%RfZfbfj���&ٙ��J�f�vb*�jDW��%iI[�ԍJ*I^D�UD��KD���cy�n3dWA�7ir�
M���G�3�'gLW��TfN��=��P�f,Ys.Y�92M�\K��J���{ɜ���^���}»�)?A��[|᳂�R�W!~�J�D���)���q�l�IM� -HRc=f�uRzZE����D��ˑ�uH҇"�&�72)�M�.V��6Zt�VV�Gߣ�n$)G��E%�����D����|_���N��M'�����L-p+lkI*��4��g�6 =��8��<�81-a -
��r�����3����{��sv��x�� -/�^;�ܴ���=[i>3��t:ʏ�Cv�l@K�@A-ȕdՄ6u��s�F4�Y��M�(�٨y��Q�Ȫ mP�Ԓ\�IVMi+]iV[�$����4m�MI�)�:9��^�iW�ZT��JԤ5`����&5Hܝ�`�rغA�ҩV�R�[$YNR֫`��Q��(���eJ���4��������� -CΝPC�X�����t�)Soѹ�Gn��� �ѻ*��%4`�&>���X�b9a -���O� -�
��|��C� �P8?e._�ԡR{OL,�=���,X�r��#/�%��]p���\�3�\:ɶ����j�w� �px��I��;`��� u��Wyy&6 `U�L���U�M�Shs�y�%
n`���s`�L6��<����p��Q�̊_��X�Y�
�:a{ETgP]P1E vK*EA9�?r�tA��;���۵�狵��V���/En3%WP�G�f*,匪��j�N�S&\ -KR�͑� -�*���0�S��H�s���zA�4�$�lj4\`;\=V���/.SH������<#�N`���5+���_<7c�V[��v��}2����d��3<�����j[�܈��迈���]���a�9#6��5����ZJѤ<�p�'��3�{C����Z4刾�p -����E,8��B�(r4��"�ee'���ZQ�T1�F8��� AvHo��t0���Ϩ�T�0,���F�UJ���}
kWV�q��D�?��+gy�|�gˍ_����W<��=�����^��ɕ�'=�nSvP��+��K�KUK�������!����)�e�V�j#�IC8\���W�~��D�7��%�ho��*Ϗ$�@���R������"S�1��BvVԞF�j����j�/���9uӌ��9���#�z�h.6������y;�ˉ2�D�����2o�L3F��`� �r��ʾS��i�^����z����_��3�!�||K���fکH_6q�X6�
X��
V(B <�z�`Xh&��rŪδ�Ҟ��P8U��z.͒8��Θ�!O�}�wg��d��NSݙ��L�s����K%ǚ�����jU��RY�֔�j���Rd-�ZK��f�[*���*s#�䵀�2�L��^w�-�c��m�B����}�4�ހ>�z@s�uF���Dn��yɠ� -� -\�}o���8�Ʈ�i=�Q�L�(�qG -�-�����ԥ&U��-IռUaO{f�ڠ�ТwF��g�J��z�B��V٢�$sy��{0#y�����4�䯩$��ܫ�W�e�-Q�0��%��%پ�ȸ��'*�Ow���u����c�������O�Rʼn�� �� S.��<��;L��=���\�B���5�I�rz���Q�x��8�S��VL'L��W����;�F�a�WY�Ѿ�����,�p)�8�ß���|�o�_��˿�7A����P�r������m���w�'Hyi�G\�JG~����瞤NQ�eg}<�?u��c�3��k�T,D�`3��a��2��5pRm��?ɏ�����U���ĉ�Z����d������Nj�#Ch_�LqrR;<2���V��U0Գ~���㷗��4������������_��7�Ͽ������˟���˯�����r���l����L/�'l��I]q#�G*�x�V�W �%*+/�ZyAq�!��u.G=��,`n8�� -1�M`�a-&��1��o�P��4�O��������L�f�45��qIr�c1�N]��S?�zĆ�W(�g��� .�A����O��[��~Z���n����+�x�ޒ�-M4�����t�)�X�]�YT�Ң:-婪��^�fh���72��>�����a(��������4���BKҬk[���eerk����̖��lڿJW���k�����{o�;���շ�ǒ���yzy�r���|�6���9�FG�i�y�XC?v� eӜ[��7
�c1h����h���ob�[���_�ku���J�$hZ,q��6�_����ܭ���(�/\��:R��Spr�=.U�&�R�WU�ƫ9��v -'7�A�Q'��n�X���ֱ,v�0=�䅺��p5!����=�2�>��i=��A�L�E/v�Cɐt/AR7�}E��ݣ�1��
9x�f̮��� � �.����?N������vx*��ϴyEqKfAͰ�&f","���lEz;��¶f@M6��.v6���d -I)E�I�7�Z;��ԟ4�A�<�3$*O��~�����H�|�X�氄5l����ό�oC�1aq��5n�x 4Z�'�[/o���
�*sU�ԉحb"���|0�Z�Ȏ���l���9b6�r -y�CK�#��Dk�-�7�k"ܙ��1�f����l��a�b��oXa3Æ�
&�֓ -O�) -�p2D>��8l�-ΦH���@M���j���Hci�rvL��� -���O�F���֍j���'�����z�se�YyVL�.V��4.C���V���ZI,����\á�&���y����
p���I���Dԇ��V.a1�.,<:���}��Gxۃ/3��S��A!��� -'Xx��'X���X�0NXHL -?��� -?�p�¨��w�JT[�����I��/:|^L�q�KG�E����C~���>��ߩ;��|��h�d���Y|���������o���巯��)o,_��u{�//����/��������Ko�,w�ʼn�����:y�ONx� i9忡I����=��-_!?,���D
�'I�,��LU���$�J�*_����B��Y_X+;n ܊��so�nC�{�z�\,l^*�}Ep�00 -�J�Rؓ�ర�t�6�C�#�֤�OFQYa8�ظ�(]}j> q�v&V6G$[ y`��eU"�#[�~���1R�bZ@꾬��j�NƪR��߬�r��]�!�a��������D�
aE��@˛����[ӻIn����J�y#����Mr���h��V́eӱnN,�Z9KgWk����u04��4!���82��"�17�-��B��"@>?���y=҈�zF6ђ�Qe��B1G�bX��"�gF�Y0N �'��*
No�`�ty����\�����UG��;��`[���}P"`� !�eu -�i�(�+�f�fO����@��$�&�#g$�@C
�B��R�YE�]Ӭ�R���\����2�d�[q��o8U����Ƴ��f��;��[��~���[2�%o��;��ɝ��Gj��k�>��h��7*�R�"����]�窉q�P�0����@�z�}R��a|���NX&�c�,R��G���c�Z#Q>� -qC�+�� -n�vOd{�uE5A��VD+��+�\��@.0V+����^�na��� -P��]���V��5 -���Ġ%�fR.ͫc=B��{�xB��+lf�B�4�A� \\�2�4i�*�K���7�4�� �&�QX�0��) �Z� �-�zf�Ք��UD�a&�l�-Uw�m��lP��m�27�jx��^~��\� �Hs��0NU5�K;����P�4S�7"�� +�˛��VK��ی�Mf�1G��L�_���U�^���F��2���js�kkɵ�̵�8��b@���,�*�Ų��%�X2˂��0x�g�Xzm,X�̲�Ԫ�YTF�)��-%��,�'��IJ���(��dV��$�zX����`��D��Y�� -X��]�`�4 -MX��R�c���,&,,�OM?#ӏ��F��]Po�=S�w�v��rBM8��f��� �&�l35������F�
u�W�H����Ja.�/�Ƹ[ً�E�����j�h�h�(��=N�u=.ae�.�>Xc%m�q��r0Y`�1����;��g(9����5�'ܫ.r'�eI�M���>#Ē��:X��^S�#x��aM���'���fO��j�g{u��������_r�������/��5�ȿ��mJ�u�$l�P���f���S��%o}.n�5o}.n�5o}.n�5o=�[�=A���(U�� -�A�N��ӓOWu�ϓN �TţX@���ĭ�;0w{z��9��]�O�A�D��5�a"/����6�����l~xE.f��ʣ\^\�ydw��"�A��Ps�$����B=Qaꆺ��^Za3�������c�98[���?i�+�{U�i���x0��9��E�)�p�EB�y#5G���~Z�@M��+�� -j���4T��U���U�N=Z�[�[�*}{!��ʃqU�b�Er,+9Wݮ�y%C#Oʴj�I��κ��Fjɢ����X�ܺl�UQ�:^�]�R�8�w��p�!M�ϢD,n���w�]��]#u��8Lɦ*S6�\!�f���W�K����+�m��#}�3���ڿYp�y�����O���x_���'����dǛ��Zl����u�6��ݮ�R#
��Z�1�Nʈ�\���D�{�&8w���:O�` ��Űx�Ҍ1������T=&w�4;��D(�p� -A�ЖH��H!��N){rׁ���]�ٌ6ё��e�\v䶙(�|m���K`Ѕ����00Ë����#���Z�tw�g��ϟց�jI��K}u�0]�U�z�i��j��թ�եf��Z��_���R�\�Yi\�7�e#Zm�[-h5��j>�j<��J\hU�YV���[q_p�J���l -��`C'�!N|���N��9�!}P'��w�������>@[��O# -T��Z -VV���Ԙ6�\$2���T#� y����h[�
?��c���~&.�m����<�4_��~�v�;�Otxa�V�XDLNjf�)�c�?�I���, - -���5��X���ce�1�s�1Y܀(�d
d�2����!ͯHKg��8��\kX��Mot o -�⪴ -.�<�����G>�l%�O�g�/�\�h'�&���n^�?/q��k�_�V -����+�����G�^�䛬��f�΄����,�$!zbIOU�x`t�@$�Q�r���#�`D�w�_=(ؓ�x�q��w��'�a�F -��B��T������'Tp����L��&rp���s�nR���`n�މ�E4��'�6t���@�.����yaF������ǎޣ���BkP�֫��PE��"�UoWm${P����]er����j}��h�E�U'~�ܓӪQ�����n3� -������^��,�N�MR�%�ݼ����ww���vG�aw���;�#쎰;���w���ݻO�7!{�mԵ����G\Nj������Dt�$I�m'Y�[��wNv�/��W���k���7|�L�T/�ۥ�3w��{�pë����!v������:�;-{�S8�����>�:�ot��'�Y�~q������>?|}|��^�|}Z.����������/�Rg�/�_�&q|�%{�*��ݕ�*�3Cgm��bO��0#7��^���k;x�z�s�a�c����� 77!3�)�Q�D�E��R���l< /O� -2��.��"|� -]/C��ĶuhU�9��(�OHxuL$m��[k�'-�a�Sm������>i���_�C}?��� ���Z9�����ƪG�6�e�v��k��⃧,�\+��a�ԩ��7�|��9����o��y`ET��CŘGI1��r(�U�*�$�$-� 9� -a����)e��E��ahQ�!]l5�)n��:K���M\i0ǢTu�̈�5�G��> -LT%�W��ŏ��}|��b8 �ʹU�A�P q��]*t%sb�c��C�r�7���c���-��[��(Uv�Ϋ5�K�1S�y�>;|=-��2u]�7���㺼�.0��b&5�)��'?��O~���Tp�V
���aČ�V�i̴�|��-NG.s�P���/�hl��/��5�Q�+�� -���H����nUِ@r2�9�JCLҼ�_W���� -�D?��jzT$���.WJ:�����vj�=Y���ʾ��i��u��Bm?�\�=g�@�����٩�� �W�L��(�0|�fm��M�?G���ΣZJ?$�Yj_��H����y��fm� �ۭ�!(#���[�{aJ��[�����O48eJ�1���*�]?=Rv��������S�����%ҎM:N��?��V��f�� -�bu+:'�*&~��p^�����nh��Ӝ ���
L)���Tӊ~��?3�u�"�Cu�P6��'͑�:F�1Sz�
��� -FX�kX`)CH����[Y`/��&�� -h��L3�dT��G��\�`�y�xP�/�*W�����u&��,u��b��Xib/=��j���l�>��p��)]h]�]*Ħ� ����`�!��Bri�h� �Z��Z�e#ѻKu=��h�b��ڦ#�K@�C/},]?�ca�����x�[��U���_/�x���!�s�_��q{�#̽�������d�Ͷ -#�D�T1!-�F/T%�� -H��ˎ$�E���P��M��1@&I�k�+-f h�Y���F��Ŭ���� @Pޙ��,&'n��Sby��x/䓯oP-҇˲����(�e�6Y�&;�I�VFY� ���*AY�AU5�1��tm��� -$Dd@�8��A� }G�Ud\A�Q>RfR�R�R�RSJSrS�'�����Y� -@q�@�A��7#h���BH�� -(��^U�g5J�np�n6�
�~��J�p���ڇ��%�i�uVOn�����zc�
��m�rk�嶍�.چF [W�EWݐ`�̛(��*ԕ�4ʁc|��q[�W��7V]Ԇ�㥇�r��;���I������o�."���8�jRw�`�bg�Le5��Me��`�P|@��j6�ʱa�(��c��б��G4"S��� !�r(a�B{�X���aB�rC�����(�ϡy�|��v�#P�B��\
�u��6����i�q��(�j��5��8`�3D� -�w�Vq�`f�� -���(_%��V�
�Fe�:lQ�n�Y����.��~���uHB�t��#�*���G���kKk�&�5n� -Iy*��TX�{-�9�����^6�C����e�q܌�O�w�ɦ R�H� -E��a0`Ȭ�������Oz��w-�A���3���)!ڈ�d� *FqX�n}`n�a���殷��ʈ2�G��c�A^9F�c+�� G���"�1��8���Hz\I1S��0q���։��O:�ĬR�����Z�}��O�����j�s|�%?����ɟQ{Q8�����+�:c���W]\t&3j� -��h�sMZNI+���F�1k���5]1Y!W)S1O]'��<e��ڒ���(O%�)��2դL�\�d�tլ��)����Ӕ����Z�����O^�]ka��
WM�~N�����\׳���5��b�6��W��ֺ>|ޏ�ׂ˺y��쎟NUﰩǛnon�s���L��� -��t�x���
��CU -���<��Rp��VI�H�a�0�m@����b+��`4E(�@GD���� -Y�t�g�l�9`(��|'�p��9�~�$�u�����A��� �¿Љ�%�At<�;���vՔdؒ ֗Z���dh���x=�v�R?C�k&��a���d9�Z�<���"n]'���v�2�˨טgZ߃��z����rF�֫��7C/�kXG�w��‗U�7��Nn���V�����C٬�Ԋ�x�Z�g��v��"S7p��]����k�����}C�U�%?T�`�8�G�A -��6(%a��'�Տ7h�@�X}��Ox�D��Y�|�\`v���T.��%�!%A*R��=����vh4�u:v���M2+�����6��&��0��fhg_�Wd�Ѽ�VWɆ�������%�-�a�b����`��ڪ�+�Un�� ��|�� 9Hfp��p)o -�B��PL�E�J�A&m���2Jf�*o�層�hN}|:��`]�Ǫ�]��C�O]PHZ�eB�^�/ni�e��3u�N�f?����i�&L@��|'�9bGT�Uq��H���h��2h�.sz�y������n -T�
�Z��d02*4-A�f��[�Έ�����Q��� ��q!�f�N� -�V�?<D�8P�Ґu��$#��
M���a\�q��J -"XP�Po�#}��"��%���j�Z�Ÿig�`6<��M�Jݕ�b��������Uc|���U��3?V��c�yp*� -�H�HR��y��`��i���!Bh' �'�0�A챐�<N�!t���)�!jq�c -a -]V���)q1'Y$��!����1�Q��B�抄, -r�G��Y�,�J6�.�\5Ic����j��7�����:£-2u�]�vin�,����^�L�74ޓ9ٙ�#s�{x��{�A�#��IiC�R��H���~G������*���X�b{��Y
O1;a�9F.gER:@�e$�Bi�'�Ȕ�
J��P��P2�+G(�KFd��n���`�h2+�^D�9�N�d� u -��:�� -*s�U/�X����{tƸwQ�q���$��)�f��Kk_�(���7����6]����=6bkAm����l��f��h�xq������=���|����wc/
�]l{ ��j��:�f��S�Eg�ب��?����q翸>>�jp��5O�����؎��\Ds}о�̓�0�#|��~��o?��������/�~]w���ӿ�~��?_>_~��.)�Ŝ�E���?��~4�CvS{={�d�,�n:��:��g�vϵ{���x_����焉{@����t������?-oX�[zSA��8�#��V;܇�c�fL�-�|.�qi�z]jƥ�bq�Vw� -q8�g
C_��Y����ѽdٿ.V�#����[�g;�7���{\ io�Ĥ -�H�V�($�knU%VX9u��X�5�[2�o�PI ���0�yr̓
i�p���Y�U7*"��?�S��_s�5<C�� K���� `I��Q#HY_�'������C�ٞ8�H��%�o��q22�J�9W!�_�⯠⪢�_�*��_ǜUC�m�Ps�PP��KPSt�2E����!�O"e�V���T���WQ(�d'��Yv�'�fS�h��u"\�qqB���M�pAZ4�諦�VixA�A��)+�*K����C���"KԦ�D���]U �\+P�6|i�IՆ8�!�U�d�>�6��=� )�Z���bo[���2��j�qW��V=r@�����A]�>�E��T��JbfQ^S��x"�6t�㧽�!P�R!��� ���U]d��@�U��ԟfΡ���?v�Ѣ�mȆ����E|LOt���{<��5��0&`�6tG¿��!<�N�=�,<�Cv`��CM`��Yt p���4&�)�gJ�9^�\m*8tUz�*7ԝeN�Wņ^j�zq���� ������t#@�@�o��%��C;1�DϷApEF3LA�9Dz�2���t�.du�*0��%�2��
�� ����s4��a�L@.�� -��ǯwqڱ�dn -}c˸*)�8Y䓣: -��㛎1�Zj�dw��9�H��X]�5�&YJ%�dk����1��5O�i�)#Qz'p���q]lM6�a���q�^�XGH���6�G��+� -��p"%k<�M�FkD��J:^��+�M��A-�/:c�����Yyi�Y���`�'��5=�.NMt��.~�:�(6�o@s���/2��� -w!Y<o�?�@5J��P褊gN1�ڽ��P
������B�C18�t1DY%P^��o�N#�9`T���-���Fi�L��ܦu�@�<K
Zu͡c�pY���b���O엷�����ׅ�I_��"PlO)�*{�)��������}�K+{�K+y�S�]��K���zv��U�yyW�M% �6�^x+p��H2���T2�r�R�����z켉�/8�ao�ڋ�l���/i��*��"��j�YPI���y�˯Ϟ���
��t�g���|=3�����Ys�=�d���l�(�:��:�|�`#4����*bl�$I����O���U1gF���\�30ۖ����� C�gD5���&<�!ˎ4��7�Z����>9G1�5�\v�Z�3#� �*��ᭂ���w�˒���:�{���9��� ��gg��eɄ����{>-aph]����Rº�X+1V��Uf'%��iq�k�t�s�0#a�)�, l���G����6 -A3q��Ea�&���cv"��C��;-�������}��ë��}��������� -ay��<{f��������Ӌ�_������ϡ糗߾y� -%�� �ÿ�<���ɚ���{|�?� -�Ǜz�?�)ݼ�ߝ����`х�JrJK}�:+���|wc�TI��p
;�?��ߞ@�iH�����I��kR�<�Hh�� -�@Wy?P֛f��V��"�5�4Si$��n -�R��ltn@���R�M��٫B������U!+ۼzذ����q����;�<͛�>������9�"8������ - �� -��� -08�C��h�U�� C��f�� -��X�'���ˢɰ�r��j��19� -��Iw� -���$PSi6f/�%[�+m�l��6��0{���7�i탊:m�2�ԻR�e�_/��=��t�yu�O5`��WYVß1d�|Yۤ��iZ��GTֽ��'�4��I��Re _�-�0o�\َ~ -0�Rucu��s��w#K�p�b�% �������a2nX���z((X1�Y���.-���,�U -#@�VX0����S��(��������0 ��e -�¸g$o�t�#uU:oI�a�4��@fS<�[��ۀFrR(��Xkp�a�a8?W�O.��QnK�G)�ҁ�(����'dvw[g5 -Has[�=���{�<��"es�����6�{����Ȩ~S��*��k� �E���i88jg���� ##yzr �u�� -)�x�y`Mͭ�4Bo��f����Gr+�z8)2it6��bu �=���߆ͱ�^��������*���T4b;QTy�����fjQ���N3�VԖ�`��X�3\��<��0S}���\�H�x�@w�@�7��D��6�aI_;3�8�Z�@ -z�6�5�-j��ΰ�pfʑ��'*/��y��D1�$"`���BA�.@GZ -��t����] �������±��7�]9�5H�Y4���i��E�n}R[��}�p��Q(h�+d-��4��6��$��~�n�!�W��a�u�Ҟ�QF����;z���4��L�b -���:r�.���`�+u%�p
9�M:���Dw��|g�����{�`&��G�,F�R� c#�L��~Q� -�-�#��@��Ի�5��W(�e�k[�ó���*h�0��Ϥ���X�*�͑���9�5D��H������]+0�/�f�r��?�k��!��r%�[d'�H�ޫ˖��k���*ȲhEa[�%� ��Ok��� o���y��\TH:�%[2 -�Y^���V^����zv,�=�|.1@|ru�f�����4X�h
�̚�B~h��� -����e�s�G�i����oF -� ���� -� - -�T�Έ -}���=!���n��g�����#W�
�"��Ví����yq�p���g9D<�^ct��S���ϥV�Y���������@Pe��= -M�(]��w��A�r�/��6�mԤ �kQNˁ(s�p�P�e(�R08F�K2�z� -`�-[N4�BOy^�Ħ�v�k��؝���o&��w�j��`��`o2���ߒ?.O}���ҏM+�b��|t7�\(����?��ZMz�U��p��UN0@_��i��84�0k3�Y��)p����������g���2؇��]z�f1�Z
���~�Z-� -�2+JbK�P[�B�����\�bT�.�
�w:Q��{�{�"���|�GA�b�q�^ִ%wP��4V��wP�a"3��G��P| -��l�V|����]��f\��{��
Y -��kn&��(��h[j09ɶjߠ��{�A"��6���`�dF�m:����4�sޠ��3@- -��fH(���2>�G��&�i����c?���%�k��K]����'�^���0 -a|���t���= -���+ƲǞs�⠛�*2�w��FK�-l[ �T��g�<����u�$Ӓ��i�b9����` -��*q���s�!�\��ɾ^G�Kf���Y�g�n4����bj -�kA�_��9 6vHp�R(8�� -�Jh�4P{�h�I��;�������ۨsI׃Sٔ���@�d��sB�j�����P��v�o�G���f��������D[��ԷgϷ��4x�L��nY��ª-�4�4lY�ۃ4�lF0cuչ� rҎ!+G?�J���� 9r$�/��f������{�Α� R�?U4'ԗ��0�w��A�<�y��t�<H��i�R+��1�=r]��� )�8H -?����?��T���2 -���~y"�O -�o�S -�s�AB5�B�f -��0����چ8Gj,�]fN��h�W(u�(V�`�Z2s�bՔ@���R5��f�0��p�C�x��2��^9�6ԏ���x����Zy59��ٟe[fX��E�A�)��:8*�=gЌS��W]=^F+tJ -|?#ؽM7�N�?�������D�v�p���:�� -k2ƕP#�:���L�2C%�ʃ8�0Pjq��<L�N� 0 -H���ݪ^�
��`��wRh�ؒeˇڃ���)�RJH�?�M��$���ڒ���J{R�0_�hٲ,K�r�g!.�wO��\ڳ���f`fy��e���ko�K@���JͿOI�ۖ�� ���T�Y����M�d�l����ajk_�g���J�a_��\,�\��Z�6V���#��A���4*�X -,�u8������R]����awRp@���<���Dsovhs��f��h�ZG�*���M�q�ͽ\�?J�Cp�c8v?o�Q�֎�,�{� '���̩�G]�ʟ��x٥�4a��ŶD�QV���x���#�����}#o���F֒g��)�����-Գ�֔��?���ղT�������=g�ۢ�u�]�ާ\�V �����◧+��z��a�b�06+^�N��Z�˖/"[X�m`�'[\�C��W Z�� Wk�&M�+l�*��f�t]�g�vX��fI���J� �DBa�q����v$��� '��-�0�_�6( �qɵ��H��7�K��n���qؓm��pڿPo��Kқ%k����~��|�N����=A�z�0J�lw��4�Z`k�Mݪ���Yjz�?���%1_B�C��~|�0TwlG\�Q�q�Z�����R��M�i��wx=�f۞[�.��+�1��^6Ȓ՛-*�/�s�;����{���ǍE-�'���P��-j���α*��c��L0�l������q�� -�`�h��b;��Ŷ�F:9�b��gEi�z�����[�� $��@k��;���yg��d�@�s�@�Շ7�䰕�}$k�S�e�b��sN8�G��f�u�1�:XLtEG*�-s꾓���1��
�<�D��BV�M�*7��6�F���o��i�Cuδ�@��a����A�]N9en���6d��ո��;��'��X���Ͷ�Ԝ�FI$ڶ����X�7 (�YNN���6��%�ѯ�2j��%i���S��ͪ1����ie�b���DS������-`��Dn��J��%���X�y�PҪ�;��4���S\B.]bR�d�7S�q!��K��%�nj8�*�d��I�KD�p9[�Q��M(e���G�9��F� -mj�����90f��,}���h����Q����V�\��ˠ�&'�GZ=����j��HB�ҏ�Yվ6W�����CG�!��m���H�lkIu��@S���m�<�'���7�`x��6k2I��Z��Zph@#p4��6D`�"���.��Z��*6
��ࠫa���aոEx�s�#0�K��l�u�i-p`2nla��h]cl�0���Ŷ,� �Ө9�iʃ�3�����gQ��m�n���X� -�x4�,�¤yc��n9^R��%V6F�n?ᙜ�WY�?BPxo�q��$_l�X=5R� �"��
�WN!p�A��F1�d#�f���(�a^�3A�V�<`�.6�x�Sf����TM�!M�//��-�"�_!�U�v,d���)su�o��W��#�S -[ɉ7%|��V�8p� �ß0ji�p_(���!]��Ox��7_��"�(�C%�W"h�z)�E�m�
*}��`�� -��5�A��#�� ��PLil� �d{��z_U��s^""��*�[ge;�_M��~�uB
�Ew8�n,p`���8��D�j��0Q�p�uԯ�uMx�3.�ClE�0�[���t�EZ�k�{?hT�#Ң���_K7X{o7�Zt��C9D��2��U[�A�>J�>Wy�q��ԈT��r<��B})���"$��a��k�����{����l\�9�ڛ\l��v�$[w�@x���PH�;qD��ӊ��+��xx���2i&+����P����h\| -Ą���L���+[Z�Ol���������Yd<�.kG��-ؠ�z�;O� �S�Wp-���=��.�[��sy^�\�5%�8`�``�O�f�L{@���-9����/zZ�]��v���p{}�e㗉��cztH<L�L���2�h{����K�7yT[i� -,gQo�f`\�ū���|�����<�d纳�;L�+X�;���A�b�`L���g���#v��\P`���p�ݛ�����~��?]��m��8猿/m]�`�v�X���|I�VWa�O������H�ZN0��]�X��t�|�z��*��DD>Y&Ka�Ko��|e-�/��O<�w�`?CJ�y�0����Ol�l7H9&�T�MF:̥{}*63�~������8M���\vb,���|@��3��e���8`<K��W���W��V-1�jf��9��ի��X�7R��p�D�^��S�_�x/8��״��u���?a�N�֟X�BK��^*�1��3�ĺ�ֵ�)ڣ�$��S���L�B ��0;�챞���7��D귊�bJ -(9�ͅ�����6D����R
��Xj=`,Ps�#v|�Ai�Y�!8�-�&�_|���S�|ciָ��uبc�>�c�*����<���fw>�������XT���K/�x����s۪�=� �M�!�~��A�&CW�iӜ6=cN�ǭS����������
mm_�?���sB�`���|4�}�1����}0��I/`���k6�Zx�� !�@W�H�X<F\��6��2�:��g9�J�BFrxͦ�Nh�gh
�'�e -=`q�#�F��ڡ-�m7iO,!pu�p"���_V#�u��Ȯ(���R��#��FC�u�x�9��p7-�6�ID��?���1�u�wX�1�S���,,+Sdv�F̏�j�0�߳���"�4U��� \2���B��E�Uz� -������ -.,Q)�����"aԙ����������N�}v�ܔ�͂5] -�c�6�\��|�#�[�O9�M]����7N5U��$mSp��f�h�Ҡ'V��>����cl�(�l��g�y5�7� -K@Iy-�� c7�w�`�
[Q ݥ[�����n$�,����Jڳ�S���� -2���P�P�QڽX� ��gÍC9�[uu=��z��N�ҠO{�6mD�`McV�s�.=�j�
?lv��_JE�Ҙ�?�hn�*�Q��ly�@`�X��Ct8������h}�Q>���K]5�q5�Jظ�M�D�.O}�J���%v(��5�Ez�%{���s®.y��c$2Q\"a@�q��T)�D��ݱ�\ގ;7��[xzo|�R��Θ8�9{�D�nÉ�7�(`ʑ���F�0U����-�Y��!�*eP�;�Ag:`(B��O,�R��e�
q���q���_
B'�n�~`�
��-8F��b��C[ -'ڪ�[�����B��i?G�#��~�{������9��$KC�i�7 `����3қ��l@XwPR�kV��ib\�b -��a�=:TJ�,�)���"�,+�� 9!I�%*.\�+�0��q�l�C��#����({&.� Xu�r�H� -�m���I��g2�(z͖H]���K�rh��f�&5:�X>�#���!sg,�Z��"�]]�pR�3 �id��zA4ټuy�Z#֑��[�d�t�J�ذ� -�0@��O솨���{V�pK��f���H�?�h���+��&<�B�c=B���ځ7�+v�Z�-v -@W�:&�3.k��X��#P��}�Cn�MB���`/�7r>�J��ݡ�<n��ȶdKYt�v{u�T��`�Q -D%쎿�ǔ��\J���ؑ�y�^ -{o�G���� -��V��-��(�@K�;vd<D�� -�v��^l2���Qc�0i�$�Tc��M��<p -pˏ��o�{��4��]�ȋ���W���c�U�q5S���C���x��`Mu@N�l8��6� -�+�l�ȡ�hp��Gg�W����r��*m}�
�F�@s�Q�z�r�%�)���iK ϦVC -4�S\��_l�T����T�����/�^�5���-,>o)�/,QB����!H�EO�a��Yio/��; ��p�^�O��{@�!s�����Xn�P�ٔ�� �K>,\��# -���S[a�w��������|� dY\I��bE�p;�/�nW}A�Os�����).�yx�@�Vvs��Ul�{/�::�L�����n�P��7��^?�����_����?��z��O~|6�݇�������������>�,��|z��o�<}~ʏ�����H�ϛ������_@_���I��j���'�/A����=�/1����~�����ӳƤ�|����������1�sKg��Jhwh�R�ʵ��/�Q ���
v�k�Ǘu�ּp�=T�\�چ?>�ٟ��4��-�� -^��""�n���,5��i�"���Qu���?r������4D������Yt;Uٰ�]F��Xd�ݮ��W�!p�^�y�g%T!�!��1B�=�R1����ko�q�j���'Sc�Q�J*r�?4lr�M�Zئ�L��y=g����c�{��32����"����6
� 5Ysā�՝$�6��X��0D�l�W[�O��|��V��vv0��� �<F�3>"8�f_o�圪8���8[�6G��[t�9G�b��T�n���;w�ncp�9���$X3ڜ�jY� -�C��2,����y˦r��h�C� -�T���ůӞ029��]l���y�i\����wC�l���Z�Fљew�s@����ڬJ��0�A"�E���쨄�>������\���i�a$QiV5O���� ��gj. ���!�Ű�x�P�2�`�c��QK$A�9����
��\#��?������`��W?�&[#��?�jO&�8p���<�ER�$L�}F�s�"�v��(1Gc��RWDV���f=�[��g�N����p~_U��%�ls�<v'(-n�!��d;�a=]# $Qf7[���͒�K�BT���S��g�cG�1��s�T���s�V�b��{����Z6��Y(N��(E�_��Q�k�������/��R��ш�S�� �aljѢ5��č -��a�#Oba���VK�]pip�o,��!����o�����qB�]�N��`��1G -;�rn��qs�C�ЌV�0����g���a��;�+��T����a��ʡ-�P��>�e�8�C��#��S(94�e�1Dm(�����/@��'�X�� �߬�5Z^���;j�R�X�C�
���J�3��~�i��xB+��p��&^�q�>�+0����1�Bt���[$����i�1`���X<\�f}�7ybe��9��$�A�*��QC�F��bO��il�L9�ߏdr��.��pk����G�m-0ϸ�G�뉅n����*�ݺ�w�v��h����5 :�c$�c9�X��)b��������ô���[c�I�!��<4����L �)�CzWEM������&�,v�3:p|K��`�0��s�$s��ş��6 -��q/����?����S��Q�mvA��n�|t3H{"J���\���\�lOT'��K��֖���I�Ut-š����@*XHC��B�Ct{9`�Ķ��3vA���u9���P�w�%j/}9ؘ�:B�M����� ���_Ē��"��-Jz�X`��olet[I����X`����c=�B�؊�#l�mm��8u�5c����Y����'Eܧ�HH:a���W�ju������a���P���'�
�}�p8��(�
���b[n>�� -f�脱���\�Ғ�!�k~�<�Z`�y2߁Kp�ս� K��I7�r�a�V�?���M$�'6,%,kߐ#r¯��bIS�m���gÍEz�Jj��Hy���ʡS�=�%����)�k���(f^�З��W,̀lcx����!�ɇ��U<VTr�+�����e@��|�����IW��X -��Cu<�xw����eN�c[ҀRZ�3c����3�Ts����͜�!�p<T��Z�\�m�Y�~b����������HM�[�XM�G��h\H�B���(q\�q-���]pN����k�j�r�Be (�,��ت�8��^>~�ir -W7YX�*�v�B�Z��"��~V�"c���|h���h���:V�e�f@DX�SAbr�>�(��&�9 -��a,APf�A�i_�� �z�m���!��_�x"�f櫓�Lc!� "^�N,Sm��+���h�:p�U����!�D^�L��"�����@]�O���IƊ����#}�JA-
�*=y����N�ZJ��lA���7'��
�̕1#���@ȱ��bT�_z�0CE���P -�M·T���l��Rg��*AI�Ļ�e�bA���h;p��^Q"d3�^=��#f�$�9�rh�@#
Z��o���K#(d6Y��s�c��� - ��� |��ƂL� �4��!�H��~7V��$f�L�V��M.&t��o�/�6��� -V�6@F���삠J������t��n - -'�0�N�[�H_4�0�[�A�@I���� - \�V;3�V�8�;� -� ݠPԃB����+��)(����>� 4 -M6������f���qCG�~gY��g]l�����wO1 ���!�?���n�`�goԝgX��M��vt��妍��\�/jg̝g�ƦVm/_Ϛ��-2K��a���~z���'��9�_R:�y�7l��EY�8ô���;���z�����jQ�Ƨu����Ԯ��L�U�Λz=:�8`o��i}��7e3���h���o?+.�?>��C����f������p{�$��U]n����=�`���M�v�@����=ؽ�wxvO|�v�9��wľ�w�L������"��_ޏ�����qC�u�,W��[i��������*z�̟���.�!�7M�<�n6e^���/Zz������|�8>��j��Vu8t6�/.6Esz���k����]��UǰңY���?|Y83����;�;��F?\�?��fU�^ow܇��F�V��v����զɫ�
�}��Y��uUW���ex�Y��In���8���Π��M�(�?c7g�&ه$9��He�N܇L<b�9��F���5ț���3��G�?e瞇μ��Gz�ޮg��r��Njv��_6<�����]�3�W�:o��6�)�+=�/W�ƹ��B�ç -69 -z�5>1>q�N��xN��J��?|2>�f���u�Z��o�e.��M^��g��Y\��������k?��[_\l��t��qH���� _��_�:
�P�����Htbj@EС�%�Kld��8�����Jm���v���ɾ~��:�ߓ� ꊎ!��xp����t�ڣ;J�o�F���Y��$���z%9���٦ܾ)pM_�K�����Ô*XM�B������>��*%CM�M0�Y+,��jT�F� U��zo�j9�}֥��ǵӃ|\���%um9���?�M�}����~��
^�ͩ\r\��iҗ�Ʉ��>F�G��\I�U=�&�Z<�
f�DN0;��_Q Ós��`(�i�;���L1Go}�����TG����u38��J���ż�8�|��?�y�?� -�i�()O�s�˺�\-�0 GUM�������� -'���|�ר��l��_ҏ -H���r�Ɵ ���n�� -y�/���hsh��L -
���Ex�D�r.xw����Uw���]�� m>{3���w���xm��3���n�K�&<��+�^j�朽Ǜ7�J�2�`�&3m⩩���m���A�~Z�����P�������vo,�AК.h���=;�E���g=;�Y���l�s���ꛓ_Y���I���:�av��5M�܇�����ͯ�6d�C����C�I�����L`5��̜++w�suG%*K�B
���G=�uN{~x��w]�=ʧ1U��v��版u��j���I,}Y(b���Y&8������y@�̤17�
��>>����G�N����븿���?pt���+��l������w�\ۄ�dD�����Uq~"წ��R����� -0x���l3���$�� X��O��e�S����=3�s��H� -H����nCi������`��"�B0VV3<��Ht��s���9+�G��
(7�V"c�&Eҁ)^��s�,`[�l�K
ٜ3zyt�Q�ۨ��T���
ҏ����'
u�~K�2�`�l�i�Ŧr-�� ���R�B�_-:� �$H�s���U�[Q���A���;�>2�3m���ז� ��y����~�Z���߽n�wF���W�P��;@�/��`�f��3x��|Wd4�n������P|���g�˙�B1��SM�"3���ĝ�\�Q��R�P���n''8�i�sJ���Q���<h{�Vc���X��1v��h[���m@~�#�Lp�1�������%���J�ˆ��q�ep���^BS����&<8����[�T��ƵMNF��-��w_�'>� -�)�$�<0fS+�x�UR��i�0:^�p��^�>!8� N��u���f�`����i-�S���6p]&��?p���4�0VV3<��Ht��g��ǹ+�LF��
(7�V"c�&Eҁ)^��s�,`[� �ө���tE�R��K�giڢ�d5�z����Yl���M -ק�{����$�l��X�0����G[���'�ln�篙�nZ�Q&VS���Tխ��ȅ ?�28�m>��-뱙$�N�Gf���c����%��i��5��H:3�iD9p�\&|�����d�4��ՊW5O��� N.�D ;47�ȽC��&D �O�-��� -"惬�RI���lj�JJp6��p���$��X��O��D�\�RT%5C0C��Wɠ�`����tk*"yZ������A�����;O���o�&>�e��̄���:����Mqȋ��J� w��P,�֣�EWޙ��0�Q\j�!s�J�5�sǪ�5�ǩ��#ro
�E_��'F�})��˜ڃr��dJ���������ݤ�-���8� -��4��i��jLU�G�.����nsͶ��I<�kR��0=2�g�p��-,�Ln��^Ӱ���@��4�,Qu;pN������ g�V+^�<� -�&<8������`#��k���>
*{�� -�*�� 2fSgY�^%%�Ȅ�d�$����*�}B��)���UI���c�U2(���Y�<-o[[���[�z�yj͜~�6�q����kLw�h�Or�P�V�!U2"u���Y!i>�kV�8�r��z����-j����@���~�W���|���GKoc����O��+�v�"<�l��5�:�Za�&Dӧ�f*���Ԃ|����b�j�g߷:�I�A���-�4�A�� �@>�ڜ��4h�N�RC6�쥌M��'����L���S4�Jfg��0;��f>;�
��{�gM�����-��|��������7e�z�V���T���$���w�H_΅A]���!N;�W���wEF�������u{C��I-q\8��+2s��L��������5�_>K��@����]]v��KAyX9`y�B��� -����aF���5=l���]�/���?��t[9��K�'�* -=1O�gY��:f��m�u�҆
`���Bh���`�cD�֜d���{��k�0�!sHP�"�P�M�Y�AV�+@�j&�D�Y ��N�m���� �`��~F'KU�eh��<��+�h͢�f����%S��)^�7��g[��iəI�H��މ�w�h"�b�jB��kC�����IJ�\>�]gN�(b�o��'��/m������w05]���܊E+�9��kUĖf���3�O,�6l -���٘�h@VO ���^,v��
���
����b����` -H��WkO������3/��OI(�WP��� ]]��=!>u<>~������&MBi3�\�8' �3�m�k��EG��q�B�������/ѫ������S�8.�(�]ߘ�y��
�;_���/���:z�;>��"R����ۛ��(�A���ye1�2�`G0��0���O��Xkq���
��\�٤�e����.AE!�� -��Y��3#5OU&-�T�e㻏O����?��V;�b��_�V�LF�3�i���x�o��[�� -��ݍ#�sD梥
��
��?���Tx� s�=�:}����� Ն �����,�, -�E�l����]�>y�ȯ��mq�[5jMȝ�2�#��v��c���|��m3s ��"lC_��4���;$����qn�3�<�� Ng�ٙ�%2�\�`Whl���*V��I,�/oP��RD��klm1��b����v7^��}a���t��Nu!v���շ�>��ә;J�C��z�Flۇ�MX"R��D�)�+���q�H�S�G��߅�tZ�&~w�n����� -��R�̦"��@l�HGL��'w����y�~��]�u�m��5�ơ}���m/�ng��h���L�ծ�W�7����8,?�7��*!tnw��M���hw��X���N����u�d�3�Pq��}'wH��<�S���.�
ӳ{�x�.b����ٰy��L�p���T%� (���{�K�����A.䒩�{�^�2� Ng�\6m8K��&�
�tЂ�i�M�_"R��D��h]��O#5OU^������:��a�J*���K�x�}��@�N1��/mP�9f�� -�b['��� ./�~��}:�v��<mO�P4C3?nQn;:o�d��m!k�ߵ�Q�w!�S��a˱�6�\�e�ΛCi�7���l�y -�qH����cV���X�`r�t�H�Tz��+��jŶ�Q�)�Ao��P���X: -4��SXV�Q�n�U� ��_g����:����[��� T�F"�#`�th���])�1�P��z/0;����G����>e'd@O�6�k?|�X?�rN�0x��Pco��g� -5j�:�[����i�y�qD�uA8�;��XD�� CZ -�:+�;b@�x��QJP'8���|�|��R��Ȅ+l9dN���:�l�c����a�<��8zB %����2ߧ���hU��,Q��9��9�0p<�����S��C)�(�~��w���^7+J�(w��>W�w(A�$�p�|���ς��g���1Ew��@W��,��-V�\�)s =ܵ�<q��^��He\!U��P�A�ѩ2Ƀ^W1G��Q�,V9녅�Uz�������RGa�`tR~k�opTf�$�S�.��*�6C���r"o��в�������V��'��0�_Bk�㓢�lʩC�L��c��v>8y�-�,iw5B�].�6P�(�y?-6$���$�tG��U�Q��HK�u�V� h1�n�E��&��r�F��Xp=7H�hz{��#Ge{>�(�������q���+�509����3\�8� -:٦�A�)��d�RE���Xb�3r=�ѼW��킄���>�ŧ�%[�$���dbk�6E��H�뿯VOl&�� D���묦W}��^Z= ��ԡ�!j�Wy�p����J�2g1\��@V�ŏ�l� -W�xT>l�-x=�c -�08Riݨ2�Dk���e-�o+��[l�T��{A(��+������(��*����?_{�2>%Xk1���7�&� �* n7pk.K����q�a��ݫ�z>�!��F�� O�'L#��Sy�F���b�Y�l�5g.�e�CI:0h��:,K�1������s��yh+U��F���l5l�b�2suJ��L������q�>m7� F�Gp�k^iU7��7G�4���5"��>�"9�tB����x"���i��V��G`Y����8V9�RU ��5z�e1Ŝ998\jK�:u�L�\��^��"1�%�>/&Rh����k����2��/���rj�f��������_>f�����csqIp���_��\ܯ~��~��U��2�/!���7��Y��ʠ#/nW�����������v}W�����>{������3���<Y������ss�/A�
8v(:�ȡ/��y�Ч�|�R��'��ۓK3ެ��j>[<.�7������%��<��{����:��ܧuc���*AƇ�g�$��h2L<�&Q��h��-p�G�mmA�u��M���o�k���A�w�W�0��{W�J���Oߍ�8�o�B¥`dޕIG�[1'� �-�c�����ٍ2� #FS���Z�@�7O;Q����~^?��\�6.]Az��Y�#�Uq OO�1>:�V��tE�tp�%� -�����w�1A2�Bt��A��!�)�1e��T<���Ǔ���0@��Xq;�Q�G�a%)�P�~%�R���4��Xpz!E~��%��Rԑ����D7�~��A70/�A�B��
d��f�t���� -Jr�kJv���n�f�D=�=��lQ}����6&�R�&��[�q��
&�R�0����NzD}��B?����n�m���jI�g5���TSq71ykM��Ԑ�m� -�!=SI�Rb������Eާb�1��oqkm���|��5���e�鱍TN|��c��v�8����%��`j���ȓHI���8��P<��"'��T�,ɥH�؆s5�s��j=:&�ʪFJ�k'!��I�o�LU�~�7�zl+�F>�
j��RζƒZ���`_� -�)$9ስ�������¤�r@JTJU�y�)F�Bpk�7�R��<٪�s�g¢�X#�H�F{�2ʸ�Ǒ�g��Kd*���#�8�o1���T)��d��S]MM���g��z�$�Ď�CV@�x��/kuL�'��X3��'㓖qG�AƵZ�YZR{��N��K�#�q���\]]�p�:��آ��oM�I�.�����Kwv
�w���������-~��n���?��So��+���or�����w)O�n������O������fy��Qa���/��>,
^g6����������O�i�dKs~jSa�ԦԘ�6���~�k���>�{]��@z���-����a6������=���Z��/�x�� -V����o>p���YgK왙,�Ĕ�F�� |�(�J;����tl�|�ְ��p��8Q^��|�\(�X)�A/p���Lr��(��W��V�qi2����n<6����[�Q�^)�P r�� -�|�S�\eڨ+�q2N�R&h6�m�꾵Se( �J�Jvk�Q���� -q:kf9g�C�(q�^�0J�����7R�h�}��*��~�<��C�"���Z�&_3P���� -��!�`r�8�Q������������
�=���e�d���u��z�S��x����<@�S��Nj�5[��%������0�L�d#�]���i@)���9�'�V<���4x#x�Z\��J���kk4���2�L�:h�N
?�j��̋�ͬ�����:?*��F�P}���^���,4l�����&���3�x+g��z�B�k1Z�9�܆�^kH���(a���T��=#Ù[;�$��Ii+B���/�S -_���1䎚!�N\�[�����S��אΌLaۈ-����d<,��UR�}k�Py�8�9�.:��B�[F��
L�x�5�8�� -���`'Qģ�S:�#K���#W��5Cp�n�P��^(�MM�(ؼ�'�靥I�������<���5C9�4�����w/)<Q�ʫ�_!�3������M�+�%��ԡ�f)�a��@� -ی�[]��X͵J�8��rqD�3abQ%L<~���10���#�FT���\E���E<�Tmv�w�b�t:@�FW�#�#�wbHH�;��_J����������]�^�J����|��v!���B-��t����0�C��pP��E�m`CSKYt��Į�2�2`姹��T%Ljq���&��e�l������6n-���y9��`���}�Xra A�)�&����'F���ߟ�6Gwɕ�6�5n�˺�Z���؈6ǃ���,�4���]� -C��I -��,U�= -H.�*b�U6@O��[��:�'\���Edڅ]��K����z_�Hb+���٤��צ�|�:��yj.n`��������Ӈ�O?�7�j���F��qw�=.����q -�ɨ�������� K����l�#�I�DAG���нʬ�/��\G��-�����0��jA�Cq���Fͪ1���[�w>A%*��Q�����FК�������` -�ኃ$�'2%To�]R�M�&��f[6R��W�L�T˳��!�g�˞�A��f��t�1�9��'E��� -Șx�3�\�!'�[΄�%�Ƅ�����a_��Fk���#F�j �5��G�[;m��Ȃ3����@���uEO[�?k�&��~���]��-���\�����5*
� -�.��/�dn��m��7Mv�
�eOdO��Xrw�l[[$�;�S_x�/n#� T6:� -q[� - w�
�n[U�a
�^�� �� -?hi�0�D���^��QA~��B[3�=��9&A"C��A����g���B8��wf��� -u]�-,����>7(��;�{�w�w������� ���/\�[�|�A�?�7pz8G��*��Qm��ɚ~9S�Yk������D�Թlm���dI�^Z"��I��\N��"���\\�<��L�C���Ό��ROO����b��*��`L�Ytw�]��M��B,.��D,� -0 -H��WmO#I����H ]��]�;�¬8��V03��t�2I/� aw������$!a���f����\vُ�j�.��:�
q-�G3�~�>V��훳������sc����ӛ/33����b>\__�2�xo�~���d�
�s�Lrd��(����8����к�G���9^~��::>b�B8��L�����lqq�No�w�����E{n:�'��f>�q���o��o�[Yck����=T� -��?n�<���va�N?}?9�2�i><�4k���-�LȌ�w5�L�͕ -mm-��
��eO�HU��Q���P� +\0�o��MUؾ�K7�m�]��I3�4{'����m��N�y�okN����ӫf�ܮ�FN����=�l߽5{n��4�g����y�Ѽ�����e��/^�-w�<n��v�L���tr<����l,���o��^\WX���[#�������z����Z���m}V��A�|~� -�EUlM��veεwX�(�ڹX����E�:���ߩ�z��B�U�Eg划�b��O=��H�hT�2� -}$�3B�rp�j�إ�
/TE|�Ӝ�:E��d3��R' y#������i���(�ږ_Uہ�� -@ͯ���.1�B���e����Sb( -����!
`J�������.Dz����;�ꔶT���=�Ǚn�lŗ=�3��?�i�ҳ��8!ΐh�8S -3sh�VY��K��8 -@a7��$/3�.B�Hĕ�%T567�
�A�㹶)dR��9��P^�-"$m3��"�����($����}��p�CFv��lf�_�-e"zD��waB ��Q�d�������fU��ˣ1h��<&���/��[_5��7=��)�jxƺ��bc����;�%[*�XH0-�Ib%�uVB�� ��`�ǝ��o�}VX]'h��k��xNH�S֠��\l��u�ݶ�-�m7�-^o��ٖ0.m�?=��{Ě[^��ʅ���FZ�(?��!D�2��! ݁Ţ�s����5�2 � ��B�`=&)���a��7h�W�����+� -;�e��m3���úNRl,s��Xʂ!uz�m��z_E�l�_�%*����AF�kt�����7Z����M�BD�'Ўѻ`����I��K<�$�{6��w!h<gFi I��_I#4J���2n�3l����-��.���2�)P[?���3S(#���u���%�����4� -;ҶQ�ZCWl�עf����v�"*F.�v�yZ*�u�#ʃ�(`;�(���Pޭ6��n������q������w������M���Yەvn�L>��p��3l,�|֚N���;��o�msww��;}�O^�����.�ەי����=�l_�5{n�:���M/���6��i4o7�{��X����G�:�ۻŴ�5��t1��'�7K��yr�[3�W�V�Gz���H -���]����1��Q;?}��|}Y��dԜ_��d�]��in�Ѿ�WZ�՞��_��S*}w�n`�2��_.N�)]���k�x$�����E��ͮ�طԁ�z9r&�'�A_zg��K\t*��M�SXܖ -h�!�ďtgP
-�(euM��uk$�ӀA${ݧT�+:z�=����c�@,"&h{���/�B� -h��T�=_Z�@l�,��-;!��%������A��j*˘��<�% ��t�יf ��_��*@��ț��)A8�^ٸ3D�� �� z� ���Lo�y����~8y�<f�\�ջ ��5K;ĈN���$���ΦX�5N��b[A��w�F|)�����y�Г��A�5X���|���u�Q� ��L3��u�e�6U -��Zi~�|������T�Cq��s���Q���>}����<���Z��SМy����]�;�,|� �q��}����K��@є��P� � 3i����8sjc2]�< ��7�!�Ob|�9��Kt��m���&'I+�J��楞�(�>]�����]�f�ϸ��ɨy� `��������~���/�����_;ڥ����3p�=�� �fS�S�Pg\��Il�<A� ]��!ELb�S��T�t]t��/7ƒ2�i+\P���cp��f��v�Z�Y���:��k?��ӧg�[��lW.'b�ϝK�_%�����r Q�H��qe\z^���2��\��^�u��ͺ�weKZJn�W�rݕ.v�5�ih�e��@��+K㵣t��~�\Y50V���j�tPJb�P%Ԃi���b{@M��8mJ��"��Tfs��2+x7��*k�02+t����k��<b��tX{�B��s��[���'aa��͵ޯ�}M�2��M�I��,�c�*��eh�L�S��덎Pqd�ax��`c� ���$�����!kp�Q�{\�Z&�~�����ԭ�\�Wn+Ӟ��^u���G��(&�V�o���O�e��Q�n�}������E~�]�Od��r�q}x��<P��ջib(KJ�L̛J�Q��P�I�E)Q�ї|�b=�ϱvJ��=C1G�$J�k��/0�74��}�# #��jL�'C���%��o��ם�&1"V�s��������Nq1X@`d趡����u�p�^7���П=_�
_V�+�ץq�l�d�EE���W�>I�':���a.�@ �yIan�Zk�H���V -0���4��������VS��}9��d��1j������U��1��d���Fq��ZF>�e��}]����<��ϔ�7�Je?��\���,�B��W����`!e�L:w^7� -��)��K� -kw_�9�HU[�ʎg���ӟ�y���1I����b�'Hj����* X }��w|5��aJ��������$�'�З;���rH�m�&V��}�PU�!�!���@�P�M6����+�6��?����W��^[�?��4(�|�b��|H��]���Z,� d��Ю �|Q�aU�`hJ9����u�E��3!~� -�A�H���J�<�,�&��&��;J�i�h -��-Εt,��H��{�^����UP�K'��mV��f�)ϘT���R}�8=*L�mu㉢�t�Pu -�(�cW$yĤs1�Dk��P)O�o�s2U)�5:��Ӹ=ȣ��4v1E p�O15���A��sw�T�ը�O֙��J�<a�N,!�pǘ���W�-ѤeUTz$�R)@w5�S��j�����cs˝��]L��>�׀�N��"?6�S�Vr�Ʌc&r�v3��s�������hT����^�I�ͭ -���k�0M���P�9�'Z�7K�K�q��� �`sT}"�+�����!)���68<+m �B�@Y����QW5�6�=ſ+����~���.$��\iOO־{Lz'����J]����9����+<:K��(F���\���e�*p�� -�e�l[���0���_�V�e��z��Q���X�)"EO�T�����{]�ک$��|�Bs�s��<�y�_�b��Lʇ��b�0&9���x����J D����XCMZg�]�T�)�u@m��H'�=��<�fm��3#���<dK�+������[��CowN]n�C�/!�{+�� -���.��rWS�w�k�����m���l%H|�y�'�<7.���"�C�RV����"�vR�i<uX>���C�y��Q��g=`�l�h�}�&JQP����s&�#�}�|�8m�B�S��y��(�z�<UL$����Hǧ�ڙ��d
��)_5��qt����.�ɥm�| ��� �|�mo���?l��K)�m����<��|��e!xAm��*����#�,��g>fT�w}<�~O����[XY�|��c���t�B�R�����5�2�s1��g:�Lo��w��'�; -"�a�,����I������D��GY)���dr��YZ����q�St��LV��Й�P��s��3UN!�gu��d9�&]H�7���$d�iUL�q�?�22b��seJ�]��T��]Dj}�
�B �k -�Y�[w��m�jD�(,��L�� -?�b�;�oȷ���B�ŝm��N���G��P�۪K$[JU5XoJ���U�B))P�"A�%G������P����N�PF,x�xk]�$}�Kδ{TL�W���w���u�I�wNE��[I����v�d�f*��� -�D�9��]������|"kƪe
�r��ԡ�;���^ԵQgO"�r��6U'ڦ��"���"c�ǣ2�������ڮs#.Џ>֗��G��5ڝ{��z&pD@!� -Ѫ�Zm�~�&�3F鲁���;~D��<
-!h{�ka���:��~a�P�%�3Huk^C"R}w��F�&��h9w�����z.尟���`�y���w~�����pّ��A�%^�����+kѕ�bM��v/���an�Da42-7�V�v�
7LH�U��AȱB�5�S� �%��L�,[�`&KP����ti�w��XJQ״�mK�/��T���Fo�K��Mu��3��<��Ƭ)fZ�T������ciDOG�m�s��=�at��ܩC��{��N]tWc����s�
!DO��r���5Z�Rv�J���śƥ��
hR�s������E�x���(�O�5;� -��K
�v�����V� -
��p ! -�7$]���R/Q��_=2�4�F`;b��I,��ϟ�Gf$�Nj6�-�� �I�g�j��c�4xU�L����e2��V� g\�&�MqԔj0Yk���������Jh�H�� ��9 -��l\@"���Ώ)}!��> -~�@��8���R�~蘔����̠й!��Wl*��u}U��J8�����"�L����h���A�1��/� -����� �R>0>2���F�������d21[�LO"�����N�{���.�K�s��˪X�a�Eq�M��������O'Pv��8^��0>0H��.��@�-�v��5�}^�*�E��Ɛ�^���m'���.�o{ "Um`y�[�}�|���Ηš�.U�x�Xh�ud����]���@�ݦꤐy����t�&u!!���]Z9o�t4��U�$�.zSeRdI���)�icR�Jc\
�U<To�ރ��"�SyA�A��\�%�(�G�/�{$���mX��?�?���"�t��E�����גъ���~eL��3 ╂�"�~.�+
�t@wQa�)����K�w�R��ʹ0�[Q�a��M����5-b܆�l�P�E} b��� Y?��b��VWވ���}2�l;̢�YvR��i�B��-G�y�pB:�h;�U�x(�id��ѫE ,�_�����lA��p�j[��qFx�P�QT��ۼ�����(�U��=_r�D�o��c5�_�W��`�]�<�s�K�=�1���8�)���X�K�K��@�� ���U�M�3��R4��d� -L�f�#US�ҍ�]w -�JCts�B�\�|K�1��nH]@KA�@�[ sM�~2��5KI�Z�����gݏ�,���'�8.g�q:��w����9�-'D�U�>�\�;ec��b��+*fZ�H���L����P�F����f�T�v@C�o�-��D�;T:�}�f����u���vC�:�6���ٲ`v�
��SH�.��;ǀ 9f[dhK��ih���MU���b84`C�{�&�4~��we�U&B��dU��P}��9�e_X�u�Y�vT�,���c���� sቊ̜e?�U(:d7�?��2!l��E��݄�ܷ��0��%���1F7��3�Z_�ѡc�� C����K�5�(=��ά�سMO��4��
!`ɐ�&Q%fMF]݁6��(UȘH�ڏ��r�r������j$�O2{�r�|0> -$0NA۰C!S?L�F:�*2��P`5+�\=��3;C� O} -��}2��R�2�o1p
�/y��[�.�nwF�g7$� -VDjL�m*�h��ҏ�ܑ��H�B#���M�����#��}Jش���tUޖ�k@h����U���T� �M���p�[#�X�r���EK2h����B;�H�o>��=I
D-Q�����<#�?���lj'y���v�@
zP���`k����y��������\Rg=K�6�|�3�$+Ց�|Bx��%Ri4�f����m]����m%�44�ҋ?�|T�-`��}� �&�G����;u�����Ƥe�+���v����n�կ.�YHp�i�xg17�����1� -��c�����8*Ģ@������E-�]��P���hh�Lc)@fV��h���D�\Q�7�8g��|AB`�)c�& (N������Qq�6y�%#N���N5H�K�_ޱ$ʝG��A���Hkv���Q~������L�&�U� -j,=�[^���oABC���sP -���jg<� -��`�x�-�ygZDx���ܸ=ՠ�QD��(�����U�ww��d�Y�\�ٌ}~�b�^ۣP���L^�{/\�����1К��{�K���}u����jt��'+n�*P\}�;�P�r"���Q]-ȧxe8T���18��U*��g���
��-��� -I���h��<�ͻ���ۀ�2'RU�e\��a@��fN�_3����niSE��N��jO\������<��������(�~���E���[�Q�h��
����������G>h�>N����X�&��I# -�y6�͔��"�/��91�@ņ%n�ūt8�@)��Z -�oI�،k1���+?�R��ّ̺�$��zvg*�%�@�j�GvB �P�m�uH��*[?���N�u�N���2TR�Ih�hc�����}�4��a+���ӢL�A�P�2$�fK��f�ݓ���;��o���A�Rh�<ژ���=Vk�k�_�J�:qh=x��L�[��.P����)y �;��p7g�m��\c���\��a��f��h&q#�֚�����t�#W�Qt�7� -̃MWvG|����뜋� -Yd�+��� -�\h���#����r�j�c
��ea�:ȷ�՞����?_�پ -�yf��zs����n�|�.�-y^]L -����1��8�e�%ꧼ!�P{GQ�m� �K����^^V^�g,"$
��
8-����i�-�����;)�d}�~-�h�� ����������� -�U��!G;Rk9O�eOq�[B?��\�q�'ņ�~��� -<J���$��QפUO2�_^��f,���|�H��ˈB���
�|�����k��,�p�,�ƛs����}6�B��+gg(��PO��}�2��-��� Ҵ��Y -+5Xv)��o���w<��Vs�)�G@!�� -
P��U�=ײ�mn�[glVT������&ŝ���ydZ �� -]�b�âh7���pWN�vAyw#���Ova�4�l~?%Lr����ZhQq}�U����,�,�'���^�2-���n�5N��3IPV+����=�x:3'��
m���R����72�+}�
�~��g$ޮCi�F��j�E�����Rs��������\�Hs/tHE"T� H���{*0j��T{כ@��i-�����&s�"WFW�Xo
�i3dt#����,���b ���446����� -N{Ek�
�X�����=is���Zt$���-� -x" -(�((e䒜Ֆ�a�n��P�(��� -�z�E������\s�?�XX��]��T;���ԏ�"w�>��0t�L�<��yN��<1V0��<r��}c
"��w�(�a�֙9��G�t;�y�t�gr#���g���Uy�s~[��3²�l9%�l�ر��%r-Z���#��L�����ĭ0��E^]���T���ׇx��ա(���U���'�B��P)�����<]�F����
J�S[.pESn -Z������j{�a�B���}[*� -3�7��m����Ds9���E���T��ߛ@?ʃ���Ѭ��-�h�o�2x�-.9��*������aXؔ�#���c��A���vYAS�|��`ڳ�Xr�Y�,M]��6[�j����XN��2Z��L���:VSV��졭�[P&Z4T�ݙ��r���h#ҁ�Nr�/|���&eMynҳ���5�9j
N\�������T����/lJ6�72�]{�4�d6u半����`(G�G�_c��̸����'o)�4��3N��;y��=�''�E\J��H��B/�qT\�̿N�P� ǩ>ݯ��-z4��X�,����%�� ���Fe7OX���bv8=Ͷ�h?� -� �v�W�������g�i}��Pl(kz�A�T�P��Ǎ��[�ڇC���"!�Oѩcm���Xxhu���ݰd���oW; ���C�$�Z/=ʤIYj��_�#��E�h�-m�i%k@-�R��Y�k��K��e^K��C�/��N$(��p��-��҂LӀ������$�ҷ�Ș�%�4�[��)�Ơd�{U��eýeft�_f5}���*��Z'Bny�H��,=d��D��ŝ\T�qds��^,O��쿂�]x@��hW�U��>�֞7U�Z$KTa�=~��S���tB�*E� �6%�s��$�}�h�(�#����M*ɽ'�����nX��g��
�r�e�[5E1�ZT��m)ө�����r�mA�t��hlVE�jw�z���5����]�v������P��� �A*�5K+�G�֘���GhMPH\R�5�)��Ī���3�{��[�eR` -��13<� �;BU��ebqi�565�}������n�le犱4݄D&�� :��z�(���.ގ�Q'*����7���^�GU"�>���隊��7�r��/�5us���`�>�:�Q~p���)��58(fn[T�����X���n\Χ���wm����������69S���!��X��f>�۩�:v�Q���w�� -�&��}#d -��v1U&U}�����eA~9,�J�I��V�w�v^�����ʠy��Ϋs�[ -&rK�)N��0y�E��J"�4-��]�Δ��ʪ�XZa�'z���.�[d�¼�M����zڛ]������߀L�����A�L�ޡ/5� 9�[!cFie���7��0Y�5; -��oMK�Kژwt̶�����c�ƺ^Y(B���2�W.M'c���K�y�!η/S�� 9�=���iF t: -f�y���U6a��������]ѭPP����w@�=W>�y��o �Uj�7Z�v��iT?а��P���Z�d�/�'u��/��=���\�����=FN��st@�Q�ƃ���G��6 -����Fñ�����*��7���H��&�l�]TrP���b���/C��G�U(0�W��'4��j��`_�V
�}���S?x�!� -�x��p�Hk�.��r�CѸ4᧴� -�<
�l;u�kMI�D -?�B�9aO��>�deM�fviy`)�P������gS�n���J�'�o����5���Q_m�m$G���b@ -�Uߦ�;����Pbc
��UE�e&�P�(����S3�3�h��Ƃ,v����.�N d����Y�OCŎ1BJ���_ɱ�@0�!��� <jE$>1*A'Bm�!Ȱ2�qN�F�`C��N�ij)�!e�ԊM���-s -AN5(!v 2�́�:{�B�4�\Z���8l>Ҝ���|��/���JT�3�� o���w�����z�M.������c��>���n��v���U8�\�Wr�}3�n�M}^�nV����zhN��=i����f��龽�@X8����M�I� >���ùL��䪚�^�����90�]-����l����,���x�Uu�|�n��
�Ю�^�)��z����f�����P�[���MU��d�Y:=�G�dU�~�����',�����S���?�����W �D�v��bm��朐d���F��QJ8��5���w_w�V{�����>�۰�.o�AG��zvW-���l���������t������A�wY���}��<��+E�|v}7�X�aw(���P�Z4i�=xD9�(P���7�X~Ӎ��9(+rP,���+Kd -�+���GS����FLTƼ�NH��#ܢ -pM,�,h%�Z�hqG/�|���C%[0��{��vI��PC��+���b�0���c{��w㊁�cґ=�"���0Y�>��y9U ����#�b��2��d�s�H�Q��F�1e�㌓�Gq�c��r����p�kM����d�`ݾ&I,�X�v0�T>Ѐ�l_ Cf8�#R����4�%�M��
�i}:�[�n���Tk��@�-P4ј3 -P�<R-��쿸������5@�����vV���W:g��@V�Y��(���ϢΡ1��c��[-�����Ȉ5�����c�� -���{9v -(��W�}T�p����O<�k���pd�� -] f���k7������TIh(�����"~�O�N"�2��! ����~�4#�V�V �,��>�ʹ�1PuJ����7 3&1-�G�\�� >�b -�=�t������Tc�U���`��{����;�v�,I�c����[�h8�*`���i#�:��(��@��Vs�&�����y��0^�����t -9����k�QI�+)����J&&E�m����M1���I�q -��b��~tTI����J��ɠdU -��o�a�nM\�� � '���2s���9��ܞa��v|��?v�V�Bs:k桬j�\b��d� -$j��D60��̘G�~�"U/n�F78U<|:L��c�2�P�y�e�����ĸl��i�Ȟ)��M���6�P��k�j餌�L�A�!f�G�z�VV?}��%ZWf{?���ԑ�:��IP�(`�z,k��.I�z߬V�7g��N�N�K��!�iTc/g�lJ���a|uD��B�ݪ��0K'�� -4/+{�.9�V��X,N�vF���J|�q0̌ђE -��W��&�03���ʦ�5�kA��Ɯ�H0)J+Pdc4~*k�v���{'C��
lMLݦsW�DUd)���r�pcJzq����Sb�G�Ź�[��P��R#���τ�u��:�,Ӌ�p0ĵK��E\6�y�މ�\N&�6��wX109��7�����)�
�4Yi��A�/�:��6+` ��ۜ./�[}�շ/>zw������ۻ�w�o����o߾^�}�������yw����w�o>{�����_��//>���������7cI�d�rRoD���-' ɛALB�/o�^qu���g�<z_������W�W�o������?�<�Ϗy�����t��~����vɯX�����Wo�{�ڞӷ��n�<�����n�?�ս7g��r��@-{�P?ט~����\z�<���$��%-_,��[^
E�y -�X$��e�`�*��MJ�G�M|�O�#�.�n1e�%YK`/ -���(|w���q:$��j���>�b�U�C���<P� - 3��>�9-��m�{z��~�.ƛ��>J��=)]j�&Ɋ�v��7�Ni0��*2�6�q�V���.���p�Mln�K\�bdDYQM��[���zy ���]�틼\�xd,A��2,�pn�ѿ"Z���ٞ4ę��?�� �(k,��i�D��Yf\���H.yGtz�HƉ���}&6I�a�앜� �~�P����wNA�Hd ஊ���Y -_I&Bu�n$�O�LO7� �_>~�s�}]�=??]�/�O�z�).[���8���PuV�2z�焇�᠇�O�$g��2N�0�P�赕���fS`g����] ���ij -��'qs��DPHd�"t*��3Jع����Vb�QY\�x@�}��s= -|롎i�P�e0�"��3��ST�щ���� -��yI��c>�ɪ� -����䬉�h��� e���^6z��
]!y�%k�$�8>�e�@v8�ѹ5���7����e���J��s�˛��J���';��O�Ƥ�U�Y�`a4̌J�&1
��~�K��u�a2�&B�WJ1�e���a��������l}$�&A��SD�Q�Z*9<��7 O)C��LJ��Tb��{��0p��v�Ú� -H��W�n�H~�C�1`��1�e;�`v�8������H�� - -����~�jJ�Ħy�v�d�������2�re�c"��Y˪�K�w�?�-^���q=)f7���{,R -q��g��xr�������A�(���� -� -j`��!��F�C��'�2�~��(�$�em䆻�Hۘ�LC -��zR<(�&p�i�*8�� ��I���݊����K�8E�dG�s�^#�:|����� -A�P���%��`IC�Nby���$z -�cࠇx���Kh�Y"�/8���!���C�Xp���B�!�� 4w1�hp�B�1���YF7]@�.���4��^Bb�m����s��aN���
BK�.V ��C����
���R��
�kL��Z��U���d��c�ADӅ�C�C�:�-Yl���j���r�d�����ӡz�~�5���\ǒ�ۯI�k�(5�mW%�s�,���I�H�ze�@�d��c͵y�އ淜�p���/ٽ�������+ft{�s�#;�.qBh��X�b�&��,g�M�׳�dA�P��rN�4ВE�h{U������]��Z�b��߳���ߞ|�������rq�.�˸����j�����'��Y#�����_'�����uE�^/�Փ�H���z
��&��wS��/�k�{���r���G��ͮ�_��bR\�3v:��������qQU��Y1�:.9? -�&�����㼼v��:��J1�?�7�۲P��Y��;������[�⧨U-����:��۹�j���ְ���\���R�0Ȫd���ȸy��U�k�Gb2���ɤ�BA7<`g��V?B�Ϛ�5���|6t�X��}�J�n�n��5j���̒�c�kA��������1�Tצ��?��a�;G�(&zc�UqMa�*�s�}����t0%F;�,Xev� �!���wΝ�J�-��:3B�9|����y��}R���L�q���`2�b��^�����)u��� -X?��x���z�̫K�������1�_�J8[�o[H8*����dt=^<��ˌ���E��zҲ��^cy����P�&�O�&�8R.��� -ۇ�"J�Q|u:k�Y��� ��bPk��#|˕�V��*��7ȫA��6��k�=�Z=)i�[��"3+��p!"�"�U�I9�oP�9����v��-���*��d4?M�JX�d�P��U�>�iX�����7�n ��8��ExI�Ӫ�i^#�M����d� -��/yڙxI�h�#�\:
��av�#��
^���?�A9����oٿ����1����K���5�d�Ks��J+͏*@�E�<���(��y\>uG���ǝw��W���d_��������r7��IM��˗y�����Í�a$��د�ݶ�$��=&�J��e�l�,� #N�]�Ș�������[ŋ��\Z&�p@0����Su�T%��u �ڇgE�>8�ś�2b7�d�3p4!mٝ�;���G�?%y6��{H����D U���$��%ɷ�ip-�̺�h�~�������j�9n�{,^G��'B;���᧲��]%�6e6?�&E�I/�����|8�o�#zt�^\�����l� -w~>��EW�[��dj��(�_Je9J��HeÔ�vz��ɜS��j�L��L*�q��WJ㻼1�:��kkێHpǻ�Oo�����rC��伣�dW����xsQF�f�l�c�&�-��x�z�H�$�F��W6���Jҁ�<2�n�e:?� -�x�l �; n\�䊍A�9�A�/�Yp��(-Z ����2|<���R��'���*�Q)�T�rT�g(e.�b �FQ�P [c��S�b�@�[F%h�9�I�"Zh%^�|&\�&� ^������i|�7�ݫ�SeiV�8�f%�R*�^+�UA�q�����L������#�\��.��ۥ��g���*I�h�ւ���~p~�7eHo��;f�t���N�o c8�l�gd��*�WMRQ%�����]~�6�R�2�u�I�R�N�G��G�p}D6{�v��`!fm�AUB@O���(����l�$�q�+6��`�Y��g�E����h�JNW�����|2�J�j��&S{(F��R,�Q,�!��\`|j��b��d���GP�D
F�V�F3������M������wyc�U@�� ֚(�C,�&��t�-���v �q����v���i07D�J<Z�@}��ϊ`~p~�7e�n��;f��Bڲ;�w�a��J�l��3(���g$P�ȿj"��*I��X��%�i�-�(��Q[����=�H/.��`]D6{�v$�p�*d�~Pu�Γ��9 -�x�l �; n\�䊍A�9�F@�/�Yp��(-Z ����2|<���R��'���*�Q)�T�rT�g(e�!��j����!�X���S�94(�VeZ�D�z&\���I� -=��"x��Q�*ޖ0 -F -J5�O� - �Nk�WMRQ%���)N�.��uNl�D������_ѣ���!��Ed�hG>a�T����J��'��s���@6wܸ����s0�
�`Ph��"D�QZ�@$�+��e�x>]�n�O|��=�P~)��(��,�Q[E8S���k�
f%S���àA9�2KX�j&\��� �;�c�+���]�n@��E|��������hB�!�)�<{�mҖX�X;Hwď�8�E~z�������]%�u��ZX��o����:�`��YH[v���7����O�����f�G - ��iM#���@*�$�cv�K�o�ӆ[$���3MZ(���=�H/.B��"������n��: -w~>�k�w�Y�UT5�ʦ_{�o�r��e��LOM��/ �5�\�n�O|�K�4�>��~��p�/�����T� -����*�M���uys{��Ӭ��~�@���Z�ҧ|Rf���e�n�����)QƧ����[��!P{�N/���y�/�_�9�9=�M��Պ���]|2?�?&������h�
y�W|�vG��q����,���п@��#D[p���t�k�g���:l��{u�r��������\��%a���������n�^�7��sUӒ0p���V�5c�V-�J��y�z�˒��+�I�c��qb�RR!<Z��9� ��/��Y����� -�~�G�|�~g������ܸ���)⺛�d4�u�WV�f����t0�����q1MK�s����Rh�#�<��ρ��SR���k�e؝K��ކk��BI.m��3L�Ur\`@���m�D�p�т���y@ -�r��-��\�ia��;����b<�(6�i��d3BmxUY�� �波j�u�g1Z*8;�I/h9gܛ�}�������žg�c��0�l5C8�b���4�2���4@n"2��]˖�H�BC��A9�n+�Q\���)'$$�ah��snQZ�O�0��C�6�������8�f܊AN[F�8�&�<�j���}C�(4�Y�xB��%��u~�E,B
Ok�p� ۰`f�ЭF���"��A�QY0��N�FŢ�xT -,�&���ۡ,cB��p��^RVK����Bڶ8m�zL�1��m��4J{O@2�HB�<��M2�(r�0V*r��2F�1<��<v��V<�I�#�i�q��<�Y@d�/��xb�N���8�H ���Ú]�D Ӹ -/� -�J+�.C�*K_y��~X��:Ę�>� $�!��^��7��0M� ��ĈK�F�C$w�)�����FQ��!�3� -\'M��D�
�K�V��Z0���'7�]��v����`C� -"�O(F�ֱʐ{���lK2�Cy)�"Y�G�4` s!"��$�Y%��ֹp`C���*���8 �.���L����2�I����jH2��z�S��s-=E� -�Է!��6�wѸ���T;D������U�k4��%���2�Y� :EX���d�&+���v>���A������������B�F�n�mc2���*:� r�R'Z� rO�L@����e��0��W��� ���I�bn�BT躆�Ӷ -T*�S�$��� Z -)Y� X��l��~v� �4z�CJ���r��H���۪�^n��L�P�!�����>�[��Q��H���R
жkq��%45�^A�I� �jˉ�x<���V�̳�Gl����*�Tr>-AV���$s��x��x���}��0�Y����p������9��������d� �f��� -�+�������Xu��\T��j#�_o5�p�\u�s%��k�}X�γIf���`u����*[�-�RGR����&�$9xh�*)��:u�iw�����9�x�����w!B��`����j�1��B�/��hUzM�
7����
Ġn���敀}����@(���@��@u��b"ъ��T���작V�v��.bD�C���F�}���ږ=\�m�yEbD��+XMO������r7aM+�"�St���`�Ռ���iZ�Ҟh�%;�@0SR�[��"m.QGO3�NcLTЛ�m#��0j�Bs� -9+SQ����J�M\�5XE�a�J�����P�Mv۾��Ê˙c���E�B0h�>�K�$�eI��Am� HTK�����nH��ȧ)̣f߆�SA��rv�t%݁y��Oo��Y_trs8%�� -��\C�����P���<!}��1\�K�d؎qZ���mo���j������7a���y�H�+�t �h�Ĺ���8����=Ȼ_f-q�2�iڍ��d�ق8��=8ҧ?U�I>�f��Ŭ�N�-�I]VMY�v�-�o����WQk�0��?�e��M���Md'�0�1Fڞ6,M$Iu����v(L-L���>��w�˝&��cڔ��Lh��k�g@}������O��4���p�F12� ϐq�N4.y�|b��I봕��� -0000000016 00000 n
-0000000204 00000 n
-0000044448 00000 n
-0000000006 00000 f
-0000200574 00000 n
-0000000007 00000 f
-0000000008 00000 f
-0000000009 00000 f
-0000000010 00000 f
-0000000011 00000 f
-0000000012 00000 f
-0000000013 00000 f
-0000000016 00000 f
-0000201205 00000 n
-0000201236 00000 n
-0000000017 00000 f
-0000000018 00000 f
-0000000019 00000 f
-0000000020 00000 f
-0000000021 00000 f
-0000000022 00000 f
-0000000023 00000 f
-0000000024 00000 f
-0000000025 00000 f
-0000000026 00000 f
-0000000027 00000 f
-0000000028 00000 f
-0000000029 00000 f
-0000000031 00000 f
-0000200644 00000 n
-0000000032 00000 f
-0000000033 00000 f
-0000000034 00000 f
-0000000035 00000 f
-0000000036 00000 f
-0000000037 00000 f
-0000000038 00000 f
-0000000041 00000 f
-0000201089 00000 n
-0000201120 00000 n
-0000000042 00000 f
-0000000043 00000 f
-0000000044 00000 f
-0000000045 00000 f
-0000000046 00000 f
-0000000047 00000 f
-0000000048 00000 f
-0000000049 00000 f
-0000000050 00000 f
-0000000051 00000 f
-0000000052 00000 f
-0000000053 00000 f
-0000000054 00000 f
-0000000056 00000 f
-0000200715 00000 n
-0000000057 00000 f
-0000000058 00000 f
-0000000059 00000 f
-0000000060 00000 f
-0000000061 00000 f
-0000000062 00000 f
-0000000063 00000 f
-0000000066 00000 f
-0000200973 00000 n
-0000201004 00000 n
-0000000067 00000 f
-0000000068 00000 f
-0000000069 00000 f
-0000000070 00000 f
-0000000071 00000 f
-0000000072 00000 f
-0000000073 00000 f
-0000000074 00000 f
-0000000075 00000 f
-0000000076 00000 f
-0000000077 00000 f
-0000000078 00000 f
-0000000079 00000 f
-0000000082 00000 f
-0000200786 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000200857 00000 n
-0000200888 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000045998 00000 n
-0000201321 00000 n
-0000044501 00000 n
-0000044831 00000 n
-0000046304 00000 n
-0000046190 00000 n
-0000045274 00000 n
-0000045434 00000 n
-0000045484 00000 n
-0000046072 00000 n
-0000046104 00000 n
-0000046380 00000 n
-0000046779 00000 n
-0000047766 00000 n
-0000062544 00000 n
-0000078264 00000 n
-0000086991 00000 n
-0000101076 00000 n
-0000116788 00000 n
-0000135345 00000 n
-0000149315 00000 n
-0000153230 00000 n
-0000165528 00000 n
-0000191920 00000 n
-0000201348 00000 n
-trailer
<</Size 130/Root 1 0 R/Info 129 0 R/ID[<F744BDF41FE14BC9945784F7EE756AD5><BD77DDF9D2694593B7CA60D65FF6FA9D>]>>
startxref
201519
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/omnibox_search.png b/chrome/app/theme/omnibox_search.png Binary files differdeleted file mode 100644 index a428789..0000000 --- a/chrome/app/theme/omnibox_search.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_search_dark.png b/chrome/app/theme/omnibox_search_dark.png Binary files differdeleted file mode 100644 index 7f3d0e8..0000000 --- a/chrome/app/theme/omnibox_search_dark.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_search_selected.png b/chrome/app/theme/omnibox_search_selected.png Binary files differdeleted file mode 100644 index 603389c..0000000 --- a/chrome/app/theme/omnibox_search_selected.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_star.pdf b/chrome/app/theme/omnibox_star.pdf deleted file mode 100755 index 14ba712..0000000 --- a/chrome/app/theme/omnibox_star.pdf +++ /dev/null @@ -1,231 +0,0 @@ -%PDF-1.5
%����
-11 0 obj
<</Metadata 12 0 R/OCProperties<</D<</ON[13 0 R 29 0 R 46 0 R]/Order 47 0 R/RBGroups[]>>/OCGs[13 0 R 29 0 R 46 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
12 0 obj
<</Length 18811/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdf:Description rdf:about="" - xmlns:xmp="http://ns.adobe.com/xap/1.0/" - xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> - <xmp:CreateDate>2010-03-31T10:59:39Z</xmp:CreateDate> - <xmp:ModifyDate>2010-04-05T11:11:33-07:00</xmp:ModifyDate> - <xmp:MetadataDate>2010-04-05T11:11:33-07:00</xmp:MetadataDate> - <xmp:Thumbnails> - <rdf:Alt> - <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>256</xmpGImg:width> - <xmpGImg:height>248</xmpGImg:height> - <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA+AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYqpXd3bWdrLdXUiw28Kl5ZGNAqjqcIBJoIJp435t/OHU7uWS20GtnZglfrRAM0g8
RX7A/H3HTNnh0YG8ty4s85PJ59eX99eyGW8uJbmQ9XldnP3sTmYIgcmkkl1nf31lIJbO4ltpB0eJ
2Q/epGJiDzUEh6F5S/OLUrSVLbX63loSF+tKAJox0qQKBx+Pz6Zh5tGDvHYt0M5HN7Ha3VvdW8dz
bSLNBMoeKVDVWU9CDmsIINFywbVcCuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
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
irsVdir/AP/Z</xmpGImg:image> - </rdf:li> - </rdf:Alt> - </xmp:Thumbnails> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> - <pdf:Producer>Mac OS X 10.5.8 Quartz PDFContext</pdf:Producer> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" - xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" - xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> - <xmpTPg:NPages>1</xmpTPg:NPages> - <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> - <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> - <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>19.000000</stDim:w> - <stDim:h>19.000000</stDim:h> - <stDim:unit>Points</stDim:unit> - </xmpTPg:MaxPageSize> - <xmpTPg:PlateNames> - <rdf:Seq> - <rdf:li>Cyan</rdf:li> - <rdf:li>Magenta</rdf:li> - <rdf:li>Yellow</rdf:li> - <rdf:li>Black</rdf:li> - </rdf:Seq> - </xmpTPg:PlateNames> - <xmpTPg:SwatchGroups> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Default Swatch Group</xmpG:groupName> - <xmpG:groupType>0</xmpG:groupType> - </rdf:li> - </rdf:Seq> - </xmpTPg:SwatchGroups> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <dc:format>application/pdf</dc:format> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"> - <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> - <xmpMM:DocumentID>uuid:8070e083-2488-dd4d-bcc9-691d852627e3</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:9a3a8343-3848-9e4b-bcec-cce7b393a9eb</xmpMM:InstanceID> - </rdf:Description> - </rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[48 0 R]/MediaBox[0 0 612 792]/Type/Pages>>
endobj
48 0 obj
<</ArtBox[1.41162 2.0293 17.5889 17.5601]/BleedBox[0.0 0.0 19.0 19.0]/Contents 49 0 R/LastModified(D:20100405111133-07'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 50 0 R>>/Resources<</ExtGState<</GS0 51 0 R>>/Properties<</MC0 46 0 R>>>>/Thumb 52 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
49 0 obj
<</Filter/FlateDecode/Length 415>>stream
-H�\SKNC1���@�|�|�� -!ĂT��"�/��k�'�ڗNl���{x>������H��Ŏ���ϻ{�oXb!{w�w�J?�������](R�'R7��%D:����[�d��#�(�A'@3�� -��O\r!/\{�/���v�r��P���e$�8l�%W�k�.,y���8bH���)|�Si�� �<jm���j�t��#2���℻Z��*���]��O6@�0���;slWsf)��9ݑC��=B��K�+��x�5�Ң�����+
�s�_]�BYb@+]Z�7���%��Sj��ۜFT�0�z����p��:w,�Lprؙz��T�+���}�[�grTu6/u��-�`�ĚJ�N�1�V;��:�i��b�BOj+@���*��}���d��'� -8;V'g&!$eu0E;4r!KR~>
endstream
endobj
53 0 obj
[/Indexed/DeviceRGB 255 54 0 R]
endobj
54 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 -VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< -PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
46 0 obj
<</Intent 55 0 R/Name(Layer 1)/Type/OCG/Usage 56 0 R>>
endobj
55 0 obj
[/View/Design]
endobj
56 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
51 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
50 0 obj
<</LastModified(D:20100405111133-07'00')/Private 57 0 R>>
endobj
57 0 obj
<</AIMetaData 58 0 R/AIPDFPrivateData1 59 0 R/AIPDFPrivateData2 60 0 R/AIPDFPrivateData3 61 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 3/RoundtripVersion 14>>
endobj
58 0 obj
<</Length 957>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (omnibox_star_action.pdf)
%%CreationDate: 4/5/10 11:11 AM
%%Canvassize: 16383
%%BoundingBox: 1 2 18 18
%%HiResBoundingBox: 1.41162 2.0293 17.5889 17.5601
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 0 19 19
%AI3_TemplateBox: 9.5 9.5 9.5 9.5
%AI3_TileBox: -296.5 -386.5 315.5 405.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -18 25 24 1107 729 90 0 0 164 109 0 0 0 1 1 0 1 1 0
%AI5_OpenViewLayers: 7
%%PageOrigin:-296.5 -386.5
%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
59 0 obj
<</Length 14483>>stream
-%%BoundingBox: 1 2 18 18
%%HiResBoundingBox: 1.41162 2.0293 17.5889 17.5601
%AI7_Thumbnail: 128 124 8
%%BeginData: 14342 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD3BFFA8A95A5A535A537E7EFD76FF5A532F5A5353535A53532F7E
%A8FD71FFA9535A535A535A535A535A535A2F5AA8FD6FFFA82F532F5A5353
%2F5A53532F5A53532F537EFD6DFFA9535A535A535A535A535A535A535A53
%5A535AA8FD6CFF535A5353535A5353535A5353535A5353535A535AA8FD6A
%FF7E54535A535A535A535A535A535A535A535A535A5384FD69FFA85A5353
%2F5A53532F5A53532F5A53532F5A53532F5453FD69FFA9535A535A535A53
%5A535A535A535A535A535A535A535AA8FD68FF59545353535A5353535A53
%53535A5353535A5353535A2F7EFD68FF5A535A535A535A535A535A535A53
%5A535A535A535A535A53FD67FFA92F532F5A53532F5A53532F5A53532F5A
%53532F5A53532F53A8FD66FF7E5A535A535A535A535A535A7E7E535A535A
%535A535A535A5384FD65FFA85A5353535A5353535A53532FA98453535A53
%53535A5353535A53FD65FFA92F5A535A535A535A535A535AA9FF535A535A
%535A535A535A535AA8FD64FF7E532F5A53532F5A53532F5353FFFF7E2F53
%2F5A53532F5A53532F7EFD64FF7E535A535A535A535A535A53A9FFFF845A
%535A535A535A535A535A59FD63FFA92F53535A5353535A5353535AA8FFFF
%AF5353535A5353535A53535354A8FD62FF7E5A535A535A535A535A535A59
%FD04FF7E535A535A535A535A535A2FA8FD61FFAF5A2F5A53532F5A53532F
%5A2F84FD04FF7E5353532F5A53532F5A535353FD61FFAF535A535A535A53
%5A535A535AA8FD05FF535A535A535A535A535A535AA9FD60FF7E53535A53
%53535A5353535A59FD06FF7E5353535A5353535A53532F84FD60FF7E535A
%535A535A535A535A2FA8FD06FF7E5A535A535A535A535A535A59FD5FFFA9
%2F5A53532F5A53532F5A5353A8FD06FFA92F5A53532F5A53532F5A5353A8
%FD5EFF7E5A535A535A535A535A535A59FD08FF7E535A535A535A535A535A
%53A9FD5EFF5A2F5A5353535A5353535A2F84FD08FF7EFD04535A5353535A
%535353FD5EFF535A535A535A535A535A535AA8FD08FFA9535A535A535A53
%5A535A535AA8FD5CFF7E5353532F5A53532F5A535353FD09FFAF5A2F5A53
%532F5A53532F5A2F84FD5CFF7E535A535A535A535A535A53A8FD0AFF7E5A
%535A535A535A535A535A5AFD5BFFA92F5A5353535A5353535A5353A8FD0A
%FFA92F5A5353535A5353535A5353A8FD5AFF8454535A535A535A535A535A
%59FD0CFF5A535A535A535A535A535A53A8FD5AFF7E2F532F5A53532F5A53
%532F7EFD0CFF7E532F5A53532F5A53532F5353FD5AFF535A535A535A535A
%535A535AA8FD0CFFA9535A535A535A535A535A535AA9FD58FF7EFD04535A
%5353535A535353FD0DFFAF5A2F5A5353535A5353535A2FA8FD58FF7E535A
%535A535A535A535A5384FD0EFF7E54535A535A535A535A535A7EFD58FF53
%532F5A53532F5A53532F53A8FD0EFFA92F532F5A53532F5A53532F5AA8FD
%56FF845A535A535A535A535A535A53FD10FF5A535A535A535A535A535A53
%A9FD35FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA87E5353535A5353535A53532F7EFD10FF7E53535A535353
%5A5353535459FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FD12FFA8845A5A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A5354A8
%FD10FFA9535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A537E7EAFFD0CFFA953532F53
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53FD11FFA85A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A2F532F7EA8FD09FFA8535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A537EFD12FF7E5A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A7EFD07FF
%7E2F5A5353535A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A5353535AFD045384FD12FFA92F53535A53
%53535A5353535A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A535359FD05FF84535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A53FD13FFA95A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A53547EFFFFFFA92F5A53532F5A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A2F7EFD14FF595353532F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A535384FF
%FF595A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A84FD14FFA9535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A537EFFA853535A5353535A53
%53535A5353535A5353535A5353535A5353535A5353535A5353535A535353
%5A5353535A5353535A5353535A53FD15FFA85A5353535A5353535A535353
%5A5353535A5353535A5353535A5353535A5353535A5353535A5353535A53
%53535A5353535A53532FA984535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A537EFD16FF595A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A53547E
%535A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53537EFD16FFA82F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A2F5A5A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A53FD17FFA95A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A53535A5353535A5353535A535359847E7E597E7E7E597E7E
%7E597E7E7E597E7E7E597E7E7E597E7E7E597E7E7E597E7E7E597E5984FD
%18FFFD047E597E7E7E597E7E7E597E7E7E597E7E7E597E7E7E597E7E7E59
%7E7E7E597E7E7E597E7E7E535A5353535A5353535A53535A535A535A535A
%535A535A537EA9FD65FF7E5A535A535A535A535A535A5353532F5A53532F
%5A53532F5A2F597EFD62FFA8FD04532F5A53532F5A53532F5A7E535A535A
%535A535A535A535A535A7EFD60FF84535A535A535A535A535A535A535A7E
%8453535A5353535A5353535AFD0553A9FD5CFFA87E2F53535A5353535A53
%53535A53532FA9FF535A535A535A535A535A535A535A535A53A8FD5AFF84
%5A535A535A535A535A535A535A535A535AA9FF842F532F5A53532F5A5353
%2F5A53532F5A2F7EA8FD57FF595353532F5A53532F5A53532F5A53532F53
%7EFFFFFF7E535A535A535A535A535A535A535A535A537EA8FD54FFAF535A
%535A535A535A535A535A535A535A535A5AFD04FFA8532F5A5353535A5353
%535A5353535A53532F547EFD52FF842F53535A5353535A5353535A535353
%5A535353FD06FFA95A2F5A535A535A535A535A535A535A535A535A5AFD4F
%FFA97E2F5A535A535A535A535A535A535A535A535A53FD08FFA87E2F5A53
%532F5A53532F5A53532F5A53532F5353A8FD4CFF7E5A2F532F5A53532F5A
%53532F5A53532F5A535359FD0BFFA9535A535A535A535A535A535A535A53
%5A535A5384FD4AFF7E5A535A535A535A535A535A535A535A535A535A7EFD
%0DFFAF5353535A5353535A5353535A5353535A53532F5AA8FD46FFAF5353
%535A5353535A5353535A5353535A53532F5AA8FD10FF7E54535A535A535A
%535A535A535A535A535A535A84FD44FFA8535A535A535A535A535A535A53
%5A535A535A537EFD13FF7E532F5A53532F5A53532F5A53532F5A53532F53
%59FD41FFA87E2F532F5A53532F5A53532F5A53532F5A53532FA8FD15FFA9
%7E535A535A535A535A535A535A535A535A535A53AFFD3EFFA87E535A535A
%535A535A535A535A535A535A535A59FD19FF842F53535A5353535A535353
%5A5353535A53532F84FD3CFF7E532F5A5353535A5353535A5353535A5353
%2F547EFD1BFFA95354535A535A535A535A535A535A535A535A2F7EA9FD39
%FF595A535A535A535A535A535A535A535A535A535AA8FD1EFF59532F5A53
%532F5A53532F5A53532F5A53532F5A84FD36FFA853532F5A53532F5A5353
%2F5A53532F5A53532F7EA8FD20FF7E5A535A535A535A535A535A535A535A
%535A535A7EFD34FF84535A535A535A535A535A535A535A535A535A53A9FD
%23FFA85A2F53535A5353535A5353535A5353535A535353AFFD30FFA85A2F
%5A5353535A5353535A5353535AFD0553A9FD26FF84535A535A535A535A53
%5A535A535A535A535A53A9FD2EFF7E5A535A535A535A535A535A535A535A
%535A53547EFD29FFA853532F5A53532F5A53532F5A53532F5A53532F7EA8
%FD2BFF59532F5A53532F5A53532F5A53532F5A53532F5A7EFD2CFF595A53
%5A535A535A535A535A535A535A535A535AA8FD28FFAF535A535A535A535A
%535A535A535A535A535A2F7EA9FD2EFF7E545353535A5353535A5353535A
%5353535A2F59A9FD27FF53545353535A5353535A5353535A5353535A2F84
%FD31FFA85A535A535A535A535A535A535A535A535A7EFD28FF7E2F5A535A
%535A535A535A535A535A535453AFFD33FFA87E2F532F5A53532F5A53532F
%5A53532FA9FD28FF84532F5A53532F5A53532F5A53532F5359FD37FFA953
%5A535A535A535A535A535A537EFD2AFF535A535A535A535A535A535A535A
%84FD39FFA9535A5353535A5353535A535359FD2AFF7E2F5A5353535A5353
%535A535AA8FD3BFF5A535A535A535A535A535A53A9FD2AFFA854535A535A
%535A535A535A53FD3BFFA82F532F5A53532F5A53532F5AA8FD2BFF53532F
%5A53532F5A53532F537EFD3AFF7E5A535A535A535A535A535A7EFD2CFF7E
%535A535A535A535A535A537EFD39FFA85A5353535A5353535A53532FA9FD
%2CFF8453535A5353535A5353535A53FD39FFA92F5A535A535A535A535A53
%5AA9FD2DFF535A535A535A535A535A535AA8FD38FF59532F5A53532F5A53
%532F5359FD2EFF7E2F532F5A53532F5A53532F7EFD38FF5A535A535A535A
%535A535A53A9FD2EFFA85A535A535A535A535A535A53FD37FFA92F53535A
%5353535A53532F5AA9FD2FFF5353535A5353535AFD045384FD36FF7E5A53
%5A535A535A535A535A5AFD30FF7E535A535A535A535A535A2F84FD35FFA8
%592F5A53532F5A53532F5A2FA8FD17FFAFA8FD17FF7E5353532F5A53532F
%5A535353FD35FFA9535A535A535A535A535A535AA9FD16FFA9535AA8FD17
%FF535A535A535A535A535A535AA8FD34FF7E53535A5353535A5353535459
%FD16FF842F532F547EFD16FF7E2F53535A5353535A53532F7EFD34FF7E53
%5A535A535A535A535A2FA9FD14FFA97E2F5A535A535A5AFD15FF7E5A535A
%535A535A535A535A53FD33FFA82F5A53532F5A53532F5A5353A8FD13FF7E
%5A2F532F5A53532F5353A8FD13FFA92F5A53532F5A53532F5A535384FD32
%FF7E5A535A535A535A535A535A5AFD13FF7E5A535A535A535A535A535A53
%84FD13FF7E535A535A535A535A535A5384FD31FFAF5A2F5A5353535A5353
%535A2F84FD11FFA95353535A5353535A5353535A53532F5AA8FD11FF7EFD
%04535A5353535A535353FD31FFAF535A535A535A535A535A535AA9FD10FF
%A8535A535A535A535A535A535A535A535A535A84FD11FF535A535A535A53
%5A535A535AA8FD30FF7E5353532F5A53532F5A535353FD0FFFA87E2F532F
%5A53532F5A53532F5A53532F5A53532F5359FD10FF5A2F5A53532F5A5353
%2F5A2F7EFD30FF7E535A535A535A535A535A2FA9FD0EFFA85A535A535A53
%5A535A535A535A535A535A535A535A535A53AFFD0EFF7E5A535A535A535A
%535A535A53FD2FFFA92F5A5353535A5353535A5353A8FD0DFF7E532F5A53
%53535A5353535A5353535A5353535A5353535A53532F84FD0DFFA92F5A53
%53535A5353535A5353A8FD2EFF7E54535A535A535A535A535A5AFD0DFF53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A2F7EA9
%FD0CFF7E535A535A535A535A535A5384FD2DFFA85A2F532F5A53532F5A53
%532F84FD0BFFA82F532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A7EFD0BFF7E532F5A53532F5A53532F5353FD2EFF53
%5A535A535A535A535A535AA9FD0AFF84535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A7EFD0BFF535A535A535A
%535A535A535AA8FD2CFF7EFD04535A5353535A535353FD09FFA85A2F5A53
%53535A5353535A5353535A535353542F53535A5353535A5353535A535353
%5A535353A9FD09FF5A2F5A5353535A5353535A2F84FD2CFF7E535A535A53
%5A535A535A5384FD08FF7E5A535A535A535A535A535A535A535A535A5354
%7E84535A535A535A535A535A535A535A535A535A53A9FD08FF7E54535A53
%5A535A535A535A59FD2BFFA92F532F5A53532F5A53532F53A8FD07FF5953
%2F5A53532F5A53532F5A53532F5A53532F5A84FFFFA853532F5A53532F5A
%53532F5A53532F5A53532F7EA8FD06FFA92F532F5A53532F5A53532F53A8
%FD2AFF7E5A535A535A535A535A535A5AFD06FFA9535A535A535A535A535A
%535A535A535A535A2F7EAFFD05FF5A5A535A535A535A535A535A535A535A
%535A535AA8FD06FF7E535A535A535A535A535A53A8FD2AFF7E5353535A53
%53535A53532F84FD05FF7E2F5A5353535A5353535A5353535A5353535A2F
%84FD08FF7E545353535A5353535A5353535A5353535A53537EFD05FF7E53
%535A5353535A5353535A53FD2AFF535A535A535A535A535A535AA8FFFFFF
%A87E535A535A535A535A535A535A535A535A535453AFFD0AFFA85A535A53
%5A535A535A535A535A535A535A535459FD04FFAF535A535A535A535A535A
%535AA9FD28FF7E532F5A53532F5A53532F5353FFFFFF7E532F5A53532F5A
%53532F5A53532F5A53532F5359FD0DFFA87E2F532F5A53532F5A53532F5A
%53532F5A53532FA8FFFFA85A2F532F5A53532F5A53532F84FD28FF7E535A
%535A535A535A535A5384FFFF7E5A535A535A535A535A535A535A535A535A
%535A84FD10FFA9535A535A535A535A535A535A535A535A535A537EFFFF7E
%5A535A535A535A535A535A7EFD28FF5353535A5353535A5353535AA8AFFD
%05535A5353535A5353535A5353535A2F5AA8FD12FFA9FD05535A5353535A
%5353535A5353535A2F5AA8FF5353535A5353535A53532F5AFD27FFA95A53
%5A535A535A535A535A53A8535A535A535A535A535A535A535A535A535A2F
%84FD16FF7E5A535A535A535A535A535A535A535A535A535A7E7E535A535A
%535A535A535A53FD28FF2F5A53532F5A53532F5A53532F5A53532F5A5353
%2F5A53532F5A53532F5353A8FD18FF7E5A2F532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A5353A8FD27FF7E535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A5AFD1BFFAF7E2F5A535A
%535A535A535A535A535A535A535A535A535A535A535A535A53FD28FF535A
%5353535A5353535A5353535A5353535A5353535A5353535A53537EFD1EFF
%842F5A5353535A5353535A5353535A5353535A5353535A5353535A537EFD
%28FF842F5A535A535A535A535A535A535A535A535A535A535A535A2F7EA8
%FD20FFA9535A535A535A535A535A535A535A535A535A535A535A535A535A
%7EFD28FFA8532F5A53532F5A53532F5A53532F5A53532F5A53532F542F7E
%A8FD23FF595353532F5A53532F5A53532F5A53532F5A53532F5A53532FA9
%FD29FF5A5A535A535A535A535A535A535A535A535A535A535A53A9FD26FF
%845A535A535A535A535A535A535A535A535A535A535A537EFD2AFFA92F5A
%5353535A5353535A5353535A5353535A535353FD29FFA85A2F5A5353535A
%5353535A5353535A5353535A5353A8FD2BFFA82F5A535A535A535A535A53
%5A535A535A535A7EFD2CFF842F5A535A535A535A535A535A535A535A535A
%84FD2DFF7E2F5A53532F5A53532F5A53532F5A2F537EFD2EFFA8FD04532F
%5A53532F5A53532F5A53537DFD2FFFA9535A535A535A535A535A535A537E
%A9FD31FF7E5A535A535A535A535A535A535A84FD32FF5A532F5453532F5A
%2F5353A8FD34FF845A2F5353532F5A2F532F7EA8FD34FFA9A87E7E597E59
%84A8FD38FFA97E7E595A597E84FD3AFFA9FD60FFFF
%%EndData
endstream
endobj
60 0 obj
<</Filter[/FlateDecode]/Length 12855>>stream
-H��W�r�8��;`k+[rUL������$�Y*�9�2)DBb`�l���.J�̬��I�?4��櫿GǃP��q�qQ�ի3I���Ut�X��4K��#�@���}�H����X�%�3���4� ����1����f�"�t,����X8q89�%��s��j���<�������1�c��w�z�f� k�"�!��S���G^>@����JuZ����~�����������z��\ID�J��R����� -O��ѿ c��2<����w��<�y��Ͽ?M(��hL�&�N�,7�-� -x[sm������� *hly���,,�w��-�R�0�ף��q��Ja(�O)w$��������[��� -5�B�,pI&�FRxd<D��=/��ۂ7�ȩHx����s��C��~V��O��PID�AE����\��&�%J��d�W`�� -u<'��c�y��{��N�!� r -*��tА�YU�Z�R��>.�%��A�H���=%W[�߰���"���IU -�X0��ed�|g5ͩ9 <�pS Ը�Gȹ7�Q��� ��j�cB2� ���x~j��`���D��)��d~ -�x��%��٩��/{���`M�ݠ� ��cA6�2a�e�&ƫ�m2d҉`w�`2t��:��g�y)Ӷ��&�y���+$����ݑ�b��L -
}2��[�r=8J/X�%-�%o�;1��"O�vB�⒭��s���NR#s�*dQΘ�Ԭ�p2��Ƹ���0�TK�����S3Y��[Q��r�2T���̧�Y���0��� -�]'[Vc�#\Qq4����xk���C�6�R�Y�c��� -���&P��x -[m�3�e�!��+fsZk��,�<kY��G�r�h�<�H��I���1b�cShh�� ��h����=��=`-:�(�7a%�)�D��߫覓�`0�S��� sOY�i"nj�f�R4��c��N��^}�����5���Vda�*�?-�XQ��)�V�.k�5fѺ,@o��QL�Ҍ$c�!!�b&�_�P�^ -sI�?��F�1����))d�x�|T�,���& -��E���ۊ/5CAZ��!E]�����K�Us���ܕ�ʝ�V Z{UAV�E��ש�V��A��Ph@���Ġ����-l �#;���� � -䜕V�GP�_jF��������60�x�xc3�
Y�:�A0���� f�_�_�|3&�^�ց��)URq�Q}�v9?J�.�7/P��Mq<���Ru>�7 -�#��]�#x8�D��z�0�AƯ7+����<ܳT�GF���U0�[�=���U�̱��~N5Yq�{��Z�~����#�#���N�@ ��1P�̓plKlJ}�������4Z�W��u� -��
_�)U�۲® a
�|�&b8L�~�E�=J�_^dpL�X��P��k������Yq��9�������y~��)#5�o�G�p�Xm��V -+ȓ��,I���bVx���t$���F�Ԓ�r~�����h��z�SN�VO�#n�d�R<M�= �'lM?�,������6y
IxH���t��Jú�r9*���"��������V�����2;L��DI���IpF$`���O��X��gE��!��'��;VO���U奄'�M�7)����s�P�7Y�h�!;p���}�+"��9��S;�a!�
��2͊̆�i�S����O�T�n��h�Lٜ���������%Fb�?C���Y��&?I����{�z=+����L�#���A:�k�|م������md���&�"پT(}�T�5��S��G��i�w�_�=�ڝ�t?ڜv_f��{Z/7��G��o{۳_7�Kv?����ѕ�=ݨ���2�md"�d$��_�����F�vJ��٢͉P�n���s7b&YK�%:(��]z�������,��'�J��+�������8�4n.!bGF
�����:��7���Ɋ4� K=w�d�v-��b�Nn}���%;.祴�d5����VW���d�Is�%�Vo���[��v�j�h�{�:ɠi�CND��ы�W�95X�}�����W�{T&�FG�t��6���y��L<zZ$_�JX2�;��^>o�AW/O(�����s��4�L��߁v���FR�j.�B-N�Ɯ���'����g5��k} -�mAw��N����J�-�N�5 n� �����f� �)�#]Vyeө�.�\o��&d�5�{��ވ�����e�_ -����v41��9h�V�YV�Z�"���^�~�W�[T�]e���4;��
Y�[X ���6�+SrߧV -��c�t��䈍�B�م1�)�u����$9���X�[��;��C�<.1z)�d���*�C��*�� ��P��Q�Rgc,4�و�#K\h��KFd�e2��E�����(*��Ԑ�ŗ��/,-��l��-�T�k�brҌ�,�WHT�h�=�wv���������ł��C�l�ҌDž��>}�����w�A���Av�
�j~��N��}�VU��I>��{p\����s�;��2��0ƚy�I���*F"�#�s�4���d�?���k�Jɻ:6c[�ų�: &h�8��ʔל�'��Z� -���w��O5���ם�>|艧��Nnr�Y��A�q�����r�:�ַ�i -F.ٵ -�}q�&�������8���@���8��.n��&j�JQ��(�z��e86#5-I�}��kT�''7��o&%J�n�$���Xp� ̐8�SP�1c��}�� -)��V)M��{�n���N�i�Dh;%L�nQ'iP%o1OD�n�¾ԭx����<z��n��<�U q��^���A -��)����h��j��i�����-{O1��!�4'D[ϒ�+�8�cw�KC�v��ь�[��h]��<��h�FҰr�L7�8��,$vIRYqf6>�9�dv�C�(���C &J�l���4q3�旧Hv���`;i �0�yY��L�,T�e��(��.S�x�@]+F�!�����
�eg'�+YQ� �c��7�)�1ua1��n�Ņ2�+����Đ��������@`�9�!0��|dr!qY -xZ��@y|"�G�5$��j��b�,���ҀIK�]醘&k�#M�K�a
Y��ْ� -t���xe}j8�}���Oi����y���BC�S�z�� -��(өRΟ6NO}��r�p:x�Dv�B�?a;�TVéJ8=�������)���/��ԃ/p���9}|�����=���''��{���u�v*��(L�J���1�BuAX�ş&,�c�%�tʉ������멏�N�t�W�l��m�T��pa�( -��^j&Rۮ���vZD�(��H)y�HjZ -U��hײr}��}Q���H)!��*���5��;��c����Y�k�yj���<�S����7(�M�ڰ�>�ڻ�z��,�ֻbeJ���8y�LE��Z��1�ӮP�T����z�!�BaM��װ��nJ����b�5��/�� -'�wI)�%Am�i~φaa�㭀ܚ���~s�!��1���[$�V����n�d898�J�5�
>UM�����m�ji���q&0r�� ��Hf�w���%�;C�HJ�������x5O>b�J�G�b��9�/�PJ��űɉ �0������~�~��/�VJ�_4c�K���P��k�W&���&��J����Z�eK��)>L��rG�ZHI"�=m�&��=#��)�� A~Boe��r���=)��/�D���V16���f&�������`�UY��� ��|c�9��*b3z���x���/��[�@�i���,g�q-P�qBo+� -����'S�L������*�J�U��`}(�D���/�V�uƕ���x3)�x�;��_ê��)�h9J���Gy�b�'f��쐛�>ئҳJz���y� 0,���,0�dD���S�d�"�b����h�8�x@M,Ϻ�X֬���\�4�rP0���.�5��^�3��κ����)W{���,�0#-M8��}�u��'�P�|����K�/�a���;��rI��vNu��E�x7!�O�Ho���7��I��!)�����Ί�����¡�w8uGV�Ma����e<ږ���/^͓�S���á��PX��T8Xi�k�[s��mW'��j���풤qXӸR6����@��hF�kqm�sKr�`�}�ć�.�+6��sd����]ؕl�d~
Q�5���cʷ��B%�g��DD&K~rt�N�x�\b>0��^l��o��5��@9�:��F�{K>@*J�
u���-i -����L�v���(���~4��GK����B,��� �ug8�<j%��G�_��Q���(%�;C��%���^��"3��������'�����aQ�w�F����/�/K��w����ti���<�ᅨ�t�Am�L�KR��-�`��̦?<^m�[�T��5�|8c�E�,�<�ӷՅy��P}�������ZR�9��)���?�n��^{�sz�� -�H���K ]19N��S�w���È�8�����Ci�%�C_z�%0������(5�6O��4z}�a*4������x5�:�,GSҒjIMڗi����U��Ҳ��rYu�/=�
jRͻ�L�m�:l��\�5dž>� -)H��k� -6�mVج?me�.�#!� ��b@N8�V^�'d��5x�)�?�n�t�Dqf����`2�HJ�r}K�����QA^��g�%��z��:TzZ�^�ܗ�#iĊ����"0h5��(G��C4m��R@����ꇖ��Z� -j#�\��K����bR����@�%e�D)�W��F����:��Y�֦ĕ ��# &�^�*��%<�<�D�B]�\QA��g�̄�̀~���pz��O��� P��,{/ic7"c{#zk�����v;�s��&�^½2����_�L�mo�����%�
�&I�4��L�&�Y���EIjdK���;�Iߛ/��- -�ҕM^����ܧ��$�\��1�q�w��h頯�}�yoN;X�°��Fu�m�W�à�<Y�HTls\=�J��ԩv���L�;�S������P���T�[�� ��r^G��!��-�q@-�>Xˍ���b/�����N�%������X��s�/�-��LVA��_�z��{%�~�|�[SR���Z�q
� Q��nmh������H��%��$t�&!u�m-T^c��Kb�Po9�����) �[�Mt|���L�v����%_@��'��{�}q�gY�ח��O�-��|���7��i����!��� -\ A9s�c�f�M2�)ߚ9��I�J��� ��Lj(r��Ʈri��[�;9<��c����v��|��}��ޅZ$Lvk14�Fe9M�.������?�ɺ��J�g{: ��e�*-Q7R�0�;(��_��r���P[��z���� (I��K�v��f���H�Gxӷ%U���<K�8]$�h� ,
�t[$+Q�ck}=�24D�+�!���!��I^�DC_���m�ݞ
KB�9�О�4�w�ނ}Q��j�Մ�}��>2�+��}6*�q�o�*͠lH�]ߎ֞�ex` ���`s��bI�ѯ����9臍P-�J��a�����k�L� -x��+et�m��m�"ct�u�%��1��h���9��yp��M����E�g9�o�۸����2�zV��l�]L�S���x�,;(=�}�X�6�>I&�Ò~�D'�>�iz�90Ϳj1 1��}��)
����GBg ��
���t)�߮Ū2�
H�K�����d�@Q�����ZK�r�@���b0+X����7W,W��w�c�D/i����+���*z
杌!�1|)_O@!g-#�3�8�e�D�ڠ1Dc��'(�"g+����(@��b��Z�`-���C�b?d��n$ݫ�����d+vX���
jK�~�F�M��ÒH�>��tG�'�M��T1�<��<����8ŋ�y���Z,�����X�~���h՛�ݯ������M�b�����J�^���^�띯����"��a.����u�5;�y2\)�bq��ӱ[QgC�)\[��]��Ƌ0��T���(���P�A��C3z&{a��=����&4]�Wz�����T��o瞗+z��:��>��],��% �<�l����v� �x����t��Ձt������b��ǥ�K7W6hAU? -�[~м=���eIPϏѹ��~��'ϏP� /(�_֭t��N��G
����{�4���HPJ�UB���_��^��] �N��/�m)�|���n#���t:ĭ��O��'*��H<�c�'veL�c�K��t�Y�V*�ͣj&^y�{7��>6�~��c���^ U,�R���n] �$j��n�u��U�c�.���^W�tG���U�Ż��u�π:EBP��` -H��W�b�P~�<�%� �б;��.c��h�E��ϽId���s)�=�;�w�t=���{vf�<]��d?J�;�S�R�.)�R�̥ʫ\Zx*s��}~�K��˰d~8�h�lݑ����Xk
��/�O�^Ud0�Q~Q\Ke2't�r���=�k���"�\�,�mQd)-ѯ��j
�3^�
��Wb�;�L����?*g���&��Ë�cfA���d`�d�'�W�0��(����_�0.�b�2����r����<%�i��NkhH�h�8�90�/�[���g�"2�3���/��y�٥p�����d�������m�Ll����$� -��m�a��|����`�����1��U�k\�Ѵs�P/�sN�=]���G�b��z1�\���d����\��C �m���P9��]�(Ǣ��Y�tKC��-��3�1�� ?�6�U�ӹ��&�e2� -O�ֽ�a��E��r�J5g�Bْ�""���KW��-�xG�lڜ��^�&��V�^���m���ӕk��*X�9� -Cw��������a"�%f$��3�� -<P �\�k�zl�'�`a4X>�7\E��a��`0��t�a��ܦ��N\JP�� -�0H0Đa�� z��
�a���.�AUJ�[3�8ͤ���\P/0�����W�2��:�����c>7��MU&�>��� XO3 d*��!.Jc>d XvV�1�_>͛(�%ۻZ��O��/N��L_jJ��J���?����Jݦ�HiY���Q]�JG�O�G�����n+=�?�s� �e|��o��&��W��vr�zm�+���ec�O�������lo�����@�Z��D��'���>:_]��mC>v"���}��bM�tpyyl��i��m�_MX��wY�/�"�|l��I��M� -��ѕ�� --�mZ贗������e���X{��d�7�-Of��`H|������z"J��X���mCR�2Y�D1'�ʏ��f%{���9Y�J��R�Q�����d��� t�X��j��
��W���4���Q7��泈w�B���k�d:Ժ�տ��@����u3�҂�H�J-��_@&��V���h����|���1�d9R�+�����C���@��$�P��.Z&��9U��j�k�o���m�j�&өl���^K/�@U��-�I^)��4@����)L�c����j�'��K�3��������i��������6g|�}��q�k00����2졷�'��T*�?� -k�1C�1�so^d .b�����*�J]Y�O�;lP$!! sdE�I&A�Y����~��;I�Q�s�d�S��ꪯ��J��C�w�=��t��ނ�W�����?/�y'� -4��n���2�vzF�u]�e�F�q?]XW����r -;��n#߭����z��-[y$���Iv� ���͘�QE��vӨ����6�˪F���L�Hl�h��5���=�D!�p�.�]&�]�|����V3��r4c��g4l�D�� ���L�����~ܨJ36�1����|��E�S`�K�
����
HCV,�;���u���l�2tA�g�"<RXF��aƞf�h��͎>0�%"v.]��4f�H�R�s+��r9�>��@�.�~���G���K�U�M~�*`��#,' -����y�Cf�4!Ʈ��e���d��8���D���,���)kRO�)R��Wt�"����$�w��|=y;��,#����DtO۪��qɕN�͝� eܾcoՂ��I��B$�:
^Ex]<T��M����h��"+D��_����\ê�g_�o~�u�0�a��_/��#�;��?����[��ƚv8�EoI�ϼ� "��*�x��6���M�Gl�<��Z���P -:S����k� -�_��"�Xa�� -��P�˟ -�������Qa�R+�KEg�q��O+�em[;�����7��`>�ط*��ر8y��,��c����_Up��5x���_a�S(��8�"�}��
���
>*�0W�����A�6Vd����
<*-D|R����ߩ���mq��ӊLƾ��L%
�� ���!Y�+L� 6��Ck�k������F��s���d���@!��^�5MPT:���C������G�Jr��
GʲĖq��r�-�!�F�wkޭh��uuG�O�<~�13͈���.�%JI�h|�KY�\��n��TTG<M�3���ۂ`ڻD$�R~�+�RN��ɥ��p�=�%�
��=nu�^�ܰl��f�U�L(������,��?�I�(����-u�.�o��l�~������;p�I��a~��N�q��:e�?���8y��|�b�zq�#2w��R���y�Ǹ���-���`�*��h�LO��'^Fobђ�[L�fw��4�fp�u�w������P�Tq9<a��C���<�&� -�>Zs�=P�˾�*Xx%:1�ɱw$�+�6r�Sِ�GI���.=��."3��4Ɍܗs�Ef���d������������o��Ŗ��"����k���^��\�#��v�ӛ����5~E
M���m}�g�g�Kv%\j����t]��fw�����O�����W���i�*�h8?{ZOg�4�ؙ"1�K5 =hn�7"H`��c�E��65�?kӖ�*��r�P}��pH�"���1����Fϊ[�Ǜn��λZ��*"��|����Wf0
Fϻ��d`T\G��ԑj��,���LM2���2}ۙ�r�A)����¶����b箘ʤ�H�S���[��_]�]��X�"
7xi���A�h������G��p볁[��4݁�M�-=)1,�N�=#�����Q�G��� ���_�4}�N���xHX;��kg˷���eȷ�N�-H���z�{d\�v��)��b�ȥ'�\3$pEs*qK�s��0�'-AN�j#�<fQ���A�T��|�8���'��Gm��R�)>p`X�T�رTאo$V�J-�6��9��>�Ս -�������J����K�w��ՐtxLq٦j!_V��1�SEd�N�B")�SW�)��@|��>/ֳ��I��W�Z����Cd -�(�,�q��;��g�U�I���a����U���_mHr���[%!��*|����8(Wg�{�ğKl�HT6�7J�Fr�S����ŋ��JTӝVZg�_��$�#�W'��^]�M�A��4Q/+_ˊx��.E
���*��˨�Ʃ�5@ik�����=X�@b���a�L�k�:g��bJ�EZ��.�TFl��F����˿K�| ���o8���A�,if��4�r����lz�y�sMuMU�酪�r����*�^W�t��cS�[�k��f��f��,�.&�Y�[p�q+��I�%ڀ_�����za���>f��9�csƃ!�?���4Ǖ�� ����Q-���
�o�~=�a�X�V=P��R�A�.5}Q�ߴ�uB�^-�[��{;�6�ɼV��b���G4�&:l˹�WA� ���~9�Gk['q`��^�Oq(-��ݹ(LIk���G�U�T��gg3�|�fv�l�T%*B}�,�Ȕ�� -�LӧV���kcQ�9-���H?1,O&�#��y��M,D�A�җD4�'�Pģ� -, �3tS."�������,�k۫����Ӌ}�y���}ao�eV��G��W�:R�C�O�\�"����WH���D��^#�u�ğ]���c�Z�mUs���:Lr��F -�bo�����)D���=�'*���6�e�c'@e���3@Q-��*|���3sj�OQ�L|�7�$"��_�[��&X��5̣�s�Oq�3��|���u�_F�i�vu�Y��)��Sp�TX����%���7���^J����%B���`�ۼu�:�XE��7�`�K�h�P�
<zl���u"�m�τl�Q��a}:��7f�r٬�]z�]n` �;!@�<e�+����:���+�0��ܨ��� �����"�,�ڶg�v��[��,�J��۫ -��k��/�q=���.����[� -d��pK ��L����}]ϊ�5�qHD�\�1�g;�g2ÍP�5�K����h�
��H��Z�g�Wc�E���6K\�4P�e�L.�B�m���~�D5�)�@?^H������0�npa�D��r�{ 4wmj �24�f�o�e�����P ,����9� �K&8�6�v�
5�%�̀bp�a�
����,�v�`[��0��6�B� ��4J
���{���_ރ�I�sp��k[c� ��B��]7�0qh�yF�g;n(p���`� -0000000002 00000 f
-0000000004 00000 f
-0000019066 00000 n
-0000000005 00000 f
-0000000006 00000 f
-0000000007 00000 f
-0000000008 00000 f
-0000000009 00000 f
-0000000010 00000 f
-0000000014 00000 f
-0000000016 00000 n
-0000000177 00000 n
-0000057684 00000 n
-0000000015 00000 f
-0000000016 00000 f
-0000000017 00000 f
-0000000018 00000 f
-0000000019 00000 f
-0000000020 00000 f
-0000000023 00000 f
-0000057942 00000 n
-0000057973 00000 n
-0000000024 00000 f
-0000000025 00000 f
-0000000026 00000 f
-0000000027 00000 f
-0000000028 00000 f
-0000000031 00000 f
-0000057755 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000057826 00000 n
-0000057857 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000020674 00000 n
-0000058058 00000 n
-0000019140 00000 n
-0000019471 00000 n
-0000020974 00000 n
-0000020861 00000 n
-0000019955 00000 n
-0000020113 00000 n
-0000020161 00000 n
-0000020745 00000 n
-0000020776 00000 n
-0000021048 00000 n
-0000021231 00000 n
-0000022238 00000 n
-0000036773 00000 n
-0000049701 00000 n
-0000058083 00000 n
-trailer
<</Size 63/Root 11 0 R/Info 62 0 R/ID[<A78B44F0012A26A4453BD72CD1EE62D5><4ABD15A53E9A4ABBA0EA3290E25F4C1F>]>>
startxref
58213
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/omnibox_star.png b/chrome/app/theme/omnibox_star.png Binary files differdeleted file mode 100644 index a3800bf..0000000 --- a/chrome/app/theme/omnibox_star.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_star_dark.png b/chrome/app/theme/omnibox_star_dark.png Binary files differdeleted file mode 100644 index 1ad8495..0000000 --- a/chrome/app/theme/omnibox_star_dark.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_star_lit.pdf b/chrome/app/theme/omnibox_star_lit.pdf deleted file mode 100755 index a6aa7b4..0000000 --- a/chrome/app/theme/omnibox_star_lit.pdf +++ /dev/null @@ -1,222 +0,0 @@ -%PDF-1.5
%����
-11 0 obj
<</Metadata 12 0 R/OCProperties<</D<</ON[13 0 R]/Order 14 0 R/RBGroups[]>>/OCGs[13 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
12 0 obj
<</Length 20649/Subtype/XML/Type/Metadata>>stream
-<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> -<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> - <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <rdf:Description rdf:about="" - xmlns:xmp="http://ns.adobe.com/xap/1.0/" - xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> - <xmp:CreateDate>2010-03-31T10:59:39Z</xmp:CreateDate> - <xmp:ModifyDate>2010-04-05T11:10:22-07:00</xmp:ModifyDate> - <xmp:MetadataDate>2010-04-05T11:10:22-07:00</xmp:MetadataDate> - <xmp:Thumbnails> - <rdf:Alt> - <rdf:li rdf:parseType="Resource"> - <xmpGImg:width>256</xmpGImg:width> - <xmpGImg:height>248</xmpGImg:height> - <xmpGImg:format>JPEG</xmpGImg:format> - <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA+AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYqpXd3bWdrLdXUiw28Kl5ZGNAqjqcIBJoIJp435t/OHU7uWS20GtnZglfrRAM0g8
RX7A/H3HTNnh0YG8ty4s85PJ59eX99eyGW8uJbmQ9XldnP3sTmYIgcmkkl1nf31lIJbO4ltpB0eJ
2Q/epGJiDzUEh6F5S/OLUrSVLbX63loSF+tKAJox0qQKBx+Pz6Zh5tGDvHYt0M5HN7Ha3VvdW8dz
bSLNBMoeKVDVWU9CDmsIINFywbVcCuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV41+c3mqW41BfL9s9La1CyXlD9uVhyVT7IpB+Z9s2eixUOIuLnnvTzPM9x3Yq
7FXYq9N/JnzVLDft5euH5W9yGks6n7Eqjkyj2ZQT8x75ga3FY4g5GCe9PZM1jlOxV2KuxV2KuxV2
KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kqd1cxWttNczHjDAjSSN4Kg5E/cMIFm
lJfLmqahNqOpXV/N/e3Uryv7F2Jp9Gb+EeEAOuJs2hckh2KuxV2KovSdRl03VLTUIf7y1lSVR48G
Bp9PTIzjxAhING31FbXENzbRXMLcoZ0WSNvFXHIH7jmgIo07EFUwK7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWF/m3rJ0/yhNAhpNqDrbLTrwPxSf8ACrx+nMrRwufu
as0qi8CzcOE7FU28q6b+kdfs7YisfqCSXw4R/EwPzpTNF7SdoflNBly/xcNR/rS2Hyu3I0uPjyAN
eadM/Ruv3lqBSPmXiHbg/wASgfKtMPs32j+c0OLKfq4al/WjsfnVrqsfBkISrN447sVe/flLrP6R
8oQQs1ZtPZrZ69eI+KP6ODAfRmn1cOGfvc3DK4szzFbXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq8R/OrWfrXmGDTUasenxVcf8WzUY/wDCBc2uihUb73Ezy3p55ma0
OxV6B+Vem/Feakw6Ut4j/wAO/wDxrnlP/BL7Q2xaYH+nL/cx/wB87fsvHzl8HfmpplHs9TQfaBt5
T7irJ/xth/4GnaNxy6Ynl64/dL/e/NHamPlL4PP89VdS7FXon5Kax9W8w3Gmu1I9Qiqg8ZYasP8A
hC2YWthcb7m/BLentuapy3Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
Vk80cEMk0rcYolLux6BVFSfuwgWr5e1vU5dU1e81GSvK6leSh7Bj8K/7EbZvoR4YgOukbNoLJodi
r2vyjpv6P8vWcBXjIyerKD15yfEQflWmfOHtV2h+b7QyzB9Ilwx90dvt5/F6bSY+DGA15v006j5e
vIFFZVT1Yh35R/FQfOlMPsp2h+U7QxTP0k8MvdLb7DR+C6vHx4yHiufRzzLsVRuianJper2eox/a
tZkkoO4U/Ev0jbITjxRITE0bfUUUsc0SSxMHjkUOjDoVYVBzQEU7FdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVYh+ausjTfJ10imk1+RaRj2epk/4RWGZOkhxTHk1ZpVF8
+5uXCdiqZeW9N/SWuWdmRWN5AZR/kJ8TfgM03tB2h+T0WXMPqjHb+sdo/aW/T4+PIIvcc+aHp3Yq
8O8x6d+jtcvLQDiiSExD/If4k/4U59Mdgdofm9FizXZlHf8ArDaX2gvL6jHwZDFLc3DS7FX0H+Ve
snUvJ1qrms1iTaSfKOhT/kmyjNNq4cMz5ubhlcWXZjNrsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVeLfnbrH1jW7TS0aqWMXqSj/iyahofkiqfpzaaGFRJ73Ezy3p5vmc0OxV
nv5WabyuLvUnG0aiCI+7fE/3AD788u/4JfaHDjx6YfxHjPuGw+ZJ+Ttuy8e5l8Ho2eQO4dirzn81
NN43FnqKjaRTBKe1V+JPvBP3Z6//AMDTtDix5NOf4Txj3HY/IgfN03amPcS+DAs9RdU7FXpP5Jaz
9X1q70p2ol7F6kQP+/Iamg+aMT9GYOuhcQe5vwS3p7Rmrct2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxVp3REZ3IVFBZmPQAbk4q+X/MOqvq2uX2osSfrMzugPUJWiL9C0Gb7HDh
iA6+Rs2l+WMXYq9n8l6Z+j/LlpGwpLKvry/60m4r8loM+dfa/tH812jkkPpgeAe6O32ys/F6XR4+
DGB37p5nMuS7FUj86aZ+kPLl3GorLEvrxf60e5p81qM6b2Q7R/K9o45H6ZngPult9kqPwcbWY+PG
R3bvGM+inmnYqmPl3Vm0jXbHUlrS2mV3A6lK0cfSpIyvJDiiQyiaNvp9HR0V0IZGAZWHQg7g5oXY
N4q7FXYq7FXYq7FXYq7FXYq7FXYqkfmPzp5e8vrTUbkCcjklrGOczD/VHT5tQZbjwSnyDCWQR5sG
vPz2hDkWekM6dnmmCmn+qqt/xLMuOg7y0nUeSG/5Xtd/9WeP/ke3/NGS/IDvR+Y8nf8AK9rv/qzx
/wDI9v8AmjH8gO9fzHk7/le13/1Z4/8Ake3/ADRj+QHev5jyd/yva7/6s8f/ACPb/mjH8gO9fzHk
7/le13/1Z4/+R7f80Y/kB3r+Y8nf8r2u/wDqzx/8j2/5ox/IDvX8x5O/5Xtd/wDVnj/5Ht/zRj+Q
Hev5jyQWtfnNfalpN3p6aclsbqNoTMJSxVXFGoOI7e+ShohEg2iWckVTznM5odiqP0HTjqWsWllS
qzSASU/kHxP/AMKDmr7a140ekyZusImv63KP2024MfHMR73uYAAAAoB0GfMhJJsvUt4FdirRAIII
qDsQcIJBsK8M17TjpusXdlSiwyER/wCofiT/AIUjPpvsXXjWaTHm/nxF/wBblL7beWz4+CZj3IDN
o1OxV6No35zX2m6TaWD6alwbWJYRMZSpYIKLUcT2zBnohIk23xzkCqRv/K9rv/qzx/8AI9v+aMj+
QHen8x5O/wCV7Xf/AFZ4/wDke3/NGP5Ad6/mPJ3/ACva7/6s8f8AyPb/AJox/IDvX8x5O/5Xtd/9
WeP/AJHt/wA0Y/kB3r+Y8nf8r2u/+rPH/wAj2/5ox/IDvX8x5O/5Xtd/9WeP/ke3/NGP5Ad6/mPJ
3/K9rv8A6s8f/I9v+aMfyA71/MeSJs/z2hLgXmkMid3hmDGn+qyr/wASyMtB3FI1Hkzny5508veY
Fpp1yDOBye1kHCZR/qnr81qMxMmCUOYbo5BLknmVM2FfmV57Pl2xW0siDq12pMRNCIo+hkIPfsv9
mZWmwcZs8g1ZcnD73g9xcT3M7z3EjSzSsWkkclmZj1JJzbgVsHDJU8KHYq7FXYq7FXYq7FXYq7FX
Yq7FWc/lZpvqX11qLD4YEEUZ/wApzUkfJV/HPM/+CV2hwYMenHOcuI+6PL5k/wCxdp2ZjuRl3PSs
8bd07FXYq7FXmv5paaY7611FR8M6GKQ/5Sbj71b8M9k/4G3aHHgyac84S4h7pc/kR/snS9p46kJd
7Bs9MdW7FXYq7FXYq7FXYq7FXYq7FXYqqW9xPbTpPbyNFNEwaORCVZWHQgjARexSC94/LTz1/iKx
a0vWA1a0UGUig9WPoJAPHs39uajU4OA2ORczFk4h5vHfOOsyax5lv75m5I0rJAPCKM8UH/AiubPD
DhgA4s5WUly1g7FXYq7FXYq7FXYq7FXYq7FXYq7FXsnkbTfqPlu1DCktwDcSf89N1/4Tjnzz7ado
fme0shB9OP0D/N5/7Liej0OPhxDz3T/OVct2KuxV2KpB5503695bugorLbgXEf8Azz3b/hOWdV7F
9oflu0sZJ9OT0H/O5f7LhcTXY+LEfLd43n0M847FXYq7FXYq7FXYq7FXYq7FXYq7FU68mazJo/mb
T71Woiyqk48YpDwf8DX55VmhxQIZwlRSYgqSCKEbEHqDljBrCrsVZf5c8reW9biAiv5obxRWS1cJ
y9yv8wzgu3/aTtDs2Vywwnh6TBlXuP8ANP4BLsNPpceUbSIPcnf/ACqrTv8Alum/4Fc5r/k5uf8A
1GH+mLlfyXH+cXf8qq07/lum/wCBXH/k5uf/AFGH+mK/yXH+cXf8qq07/lum/wCBXH/k5uf/AFGH
+mK/yXH+cXf8qq07/lum/wCBXH/k5uf/AFGH+mK/yXH+cXf8qq07/lum/wCBXH/k5uf/AFGH+mK/
yXH+cXf8qq07/lum/wCBXH/k5uf/AFGH+mK/yXH+cXf8qq07/lum/wCBXH/k5uf/AFGH+mK/yXH+
cXf8qq07/lum/wCBXH/k5uf/AFGH+mK/yXH+cW1/KrTQwLXsxAO44qKjIy/4JmorbFD5lf5Lj3lm
6qqqFUUVRQAdgM81lIyJJ3JdoA3kVdirsVdirTKrKVYVVhQg9wclGRiQRsQpDCG/KrTSxK3swBOw
4qaDPSo/8EzUVvih8y6v+S495a/5VVp3/LdN/wACuS/5Obn/ANRh/piv8lx/nF3/ACqrTv8Alum/
4Fcf+Tm5/wDUYf6Yr/Jcf5xd/wAqq07/AJbpv+BXH/k5uf8A1GH+mK/yXH+cXf8AKqtO/wCW6b/g
Vx/5Obn/ANRh/piv8lx/nF3/ACqrTv8Alum/4Fcf+Tm5/wDUYf6Yr/Jcf5xd/wAqq07/AJbpv+BX
H/k5uf8A1GH+mK/yXH+cXf8AKqtO/wCW6b/gVx/5Obn/ANRh/piv8lx/nF3/ACqrTv8Alum/4Fcf
+Tm5/wDUYf6Yr/Jcf5xSTzH5W8t6JERLfzTXjCsdqgTl7Fv5RnS9ge0naHaUrjhhDD1mTKvcP5x/
BIcXUaXHiG8iT3MQzvXXuxVsAsQAKk7ADqTgVkX5g6DJo3mq9g40gnc3NsexjlJNB/qtVfoynT5O
KAbMkakxzL2t2Kr4pZYZFlido5UPJHUkMCO4IyvLijkiYzAlE7EHcFIJBsPQ/K/5jJLwtNaYJJ0S
86Kf+MgH2fn0zyX2k9gTC82iFx64+o/q9/8AV5918ncaXtC/TP5s8VlZQykFSKgjcEHPLpRINHYh
2reBXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq0zKqlmICgVJOwAGGMSTQ3JVg
fmj8xki52misHk6PedVH/GMH7Xz6Z6j7N+wJnWbWio9MfU/1u7+rz765Oq1XaFemHzeeTTSzStLM
7SSuau7EliT3JOetYsUccRGAEYjkBsA6ckk2VmWIdirI/wAvtBk1nzVZQcawQOLm5PYRxEGh/wBZ
qL9OUajJwwLZjjcntPnryXa+Z9MEVRFf29Ws7gjYE9Ub/Jbv4dc1eDOcZ8nKyQ4g8A1fRtS0i9ey
1GBre4T9luhH8ysNmHuM3EJiQsOFKJHNBZNDsVdirI/LHnXUNGZYJK3On13gJ+JK94yeny6ZyHtH
7IaftEGcf3ef+cOv9YdffzHmNnN02tlj2O8Xqelavp+q2oubKUSRnZh0ZT4MvY54f2n2VqNDl8PP
Hhl07iO8Hr+Ld7izRyC4lG5rmx2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KoLVdX0/S
rU3N7KI4xso6sx8FXuc2PZnZWo12Xw8EeKXXuA7yen4pry5o4xci8s8z+ddQ1lmgjrbafXaAH4np
3kI6/LpnuHs57Iafs4Ccv3mf+cen9UdPfzPkNnRanWyybDaLHM69wnYq7FUbpGjalq96llp0DXFw
/wCyvQD+ZmOyj3OQnMRFlMYk8nv/AJF8l2vljTDFUS39xRry4HQkdEWv7K1+nrmnz5zkPk5uOHCG
S5Q2JX5g8taRr9kbTUoRIoqYpRtJGx/aRu36ssx5ZQNhjKIlzeG+c/y71fy3I0wButLJ/d3aD7Ne
glX9k+/Q/hm1w6mM/e4c8Rj7mKZktbsVdiqL0vVb/S7pbmylMUo2NN1YeDDoRmB2j2Zg1uI4s0RK
P2g94PQtmLLKBuJepeWPO9hrAW3mpbah/von4XP/ABWT/wAR6/PPEfaP2Nz9n3kheTB/O6x/rD/f
cvc73Ta2OTY7SZNnGOa7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWM+Z/PFho4a3gpc6h/vo
H4UP/FhH/Eevyzs/Zz2Nz6+smS8eDv6y/qj/AHx297hanWxx7DeTy3VNVv8AVLprm9lMsp2FdlUe
CjoBnt3Z3ZmDRYhiwxEY/aT3k9S6LLllM3IoTM9rdirsVZX5M/LvV/MkizEG10sH95duPtU6iJf2
j79B+GY2bUxh72yGIy9z3Ly/5a0jQLIWmmwiNTQyyneSRh+07d/1ZqsmWUzZcyMRHkmmVsnYq7FV
skccsbRyKHjcFXRgCpB2IIPXEFXlXnf8oAfU1Dy2tDu0unE/eYSf+In6PDNjg1nSXzcbJh6h5PLF
LFI0UqNHKhKujAqykdQQembAFxluFXYq4Eggg0I3BGAi1Z15W/MWWDhaayTLD0S86uv+uP2h79fn
nmXtJ7Awy3m0YEZ9cfKJ/q/zT5fT7na6XtAjafLvejQzwzxJNC6yROOSSIQVIPcEZ5FmwzxTMJgx
lHmDsQ7iMgRYX5Ul2KuxV2KuxV2KuxV2KuxV2KuxV2Kqc88METzTusUSCryOQFA8STluHBPLMQgD
KcuQG5KJSAFl515o/MWWfnaaMTFD0e76O3+p/KPfr8s9e9m/YGGKs2sAlPpDnEf1v5x8vp97p9V2
gTtDl3sFJJJJNSdyTnpgFOqdhV2KroopZZFiiRpJXIVEUFmYnoAB1wEq9Y8kflAB6eoeZFqdmi04
H7jMR/xEfT4Zr8+s6R+bk48PUvVY444o1jjUJGgCoigBQBsAAOma4lyV2KuxV2KuxV2KuxVi3nL8
vdH8yRmUgWupgUjvEG5p0Ei/tD8cyMOolD3Nc8Yk8M8xeWdY8v3ptdShKE1MUy7xyAd0bv8ALqO+
bbHljMWHDlAx5pVljF2KuxVOvLvmvU9El/ct6tqxrLaufhPuv8re+c7297M6btKHrHDlHKY5jyPe
PI/CnJ0+qliO3Lueq6F5i0zWrf1bST94o/ewNQSJ8x4e+eGdtdgans7Jw5R6T9Mh9Mv2+R3+DvsG
ojkFhNM0je7FXYq7FXYq7FXYq7FXYq7FUr13zHpmi2/q3b1kYfurdd3c+w8Pc5u+xPZ/U9o5OHEP
SPqkfpj+3yG/waM+ojiFl5V5i816nrcv75vStVNYrVD8I92/mb3z3PsH2Z03ZsPQOLKeczzPkO4e
Q+Nuh1GqllO/LuSXOicZ2KuxVNfLvlnWPMF6LXTYS5FDLM20cYPd27fLqe2V5MsYCyyjAy5Pc/Jv
5e6P5bjEoAutTIpJeONxXqI1/ZH45qc2olP3OZDGIspzHbHYq7FXYq7FXYq7FXYq7FUHq2kabq1k
9lqEC3Fu/VW6g9mU9VI8RkoTMTYQYg83innf8rtS0P1L3T+V7pQ3YgVliH+WB1X/ACh9NM2uDVCe
x2LiZMRHLkwXMtpdirsVR2h/Xjq9oljK0NzJIqJInUcjQk+1OuaztjwBpMhzxE8UYkkHrW/z7vNt
wcXGOE0Xuoz5iepdirsVdirsVdirsVdirsVccVeFa59eGr3aX0rTXMcrJJI3U8TSo9vDPp7sfwTp
cZwREMcoggDpYv59/m8tm4uM8RsoHNk1OxV2Ks68kfldqWuene6jystKNCpIpLMP+Kwei/5R+iuY
mfVCGw3LdjxE8+T2vSdI03SbJLLT4Ft7dOir1J7sx6sT4nNVOZkbLliIHJGZFLsVdirsVdirsVdi
rsVdirsVdirsVeG/nBo2haZrVsNOh9C5uY2mu4k2jALURlX9ksQ1abZttHOUom3DzRAOzAMzGl2K
sw/LLTTca3JeMP3dnGSD/lyVVf8AheWef/8ABE7Q8LRDCPqzS/2Mdz9vC7Hs3HeTi7nqeeHu9dir
sVdirsVdirsVdirsVdiryv8AMzTPq2tpeKKR3sYJP/FkdFb/AIXjnuP/AAO+0fG0Rwk+rDKv82W4
+3iHwdF2lj4cnF/OYhnfuudir0D8ntG0HU9Yuv0jF691aos1pE9DGRy4uzJT4ipK0rtvmHrJyjEU
34Ignd7jmpct2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvm7z9rP6X82ahdK3KFJPQg8PTi+AEf61
C305u9PDhgA4GSVyY/l7B2KvWvy5036p5dSZlpJeOZTXrxHwp+Ar9OeDe3/aHj9oGAPpxREfjzl9
9fB6Ds7Hw4772U5xDnOxV2KuxV2KuxV2KuxV2KuxVi35jaZ9b8vNOorLZOJRTrwPwv8Arr9Gdx7A
do+B2gMZ+nNEx+I3j+kfFwe0cfFjv+a8lz3h592Ksh8gax+ifNun3LNxheQQT+HCb4CT/qkhvoyj
UQ4oEM8cqk+kM0jnuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpN5x1n9DeWdQ1ANxljiKwHv6snwJ9z
NXLcMOKYDCcqFvmfN64DsVVrK1ku7yC1j/vJ5FjX5saZj6vUxwYp5ZfTCJkfgLZQjxEAdXvFtbxW
1vFbxDjFCixoPBVFBny7qM8s2SWSX1TkZH3k2Xq4xAAA6KuUpdirsVdirTMqKWYhVUVZjsAB3OSj
EyIAFkqS5WVlDKQysKgjcEHGUTEkEUQoLeRV2KuxV2KqV1bx3NtLbyiscyNG49mFDl2mzyw5I5I/
VCQkPeDaJREgQerwe8tZLS7mtZf7yB2jf5qaZ9RaXUxz4o5Y/TOIkPiLeUnExJB6KOZDF2Kvpjyd
rP6Z8s6fqBblLJEFnPf1Y/gf72WuaLNDhmQ58JWLTnKmbsVdirsVdirsVdirsVdirsVdirsVeWfn
jrHC10/R0b4pWN1OP8lKpH95Lfdmw0MNzJx9RLo8hzZOK7FWWflrpv1rXjdMKx2SF/8AZv8ACv4V
P0Zwn/BB7Q8HQeEPqzSr/NG5/QPi7Ds7HxZL/mvV88Kd87FXYq7FUFq2s6fpNqbm9lEafsL1dz4K
vc5suy+yNRrsvh4I8R6npHzJ6fira8uaOMXIvK/M3nTUNaZoUrb6fX4YFO7U6GQ9/l0z3D2d9kdP
2cBM/vM/849P6o6e/mfsdDqdZLJtyi7yz501DRWWF63On13gY7rXqYz2+XTH2i9kdP2iDMfu8/8A
OHX+sOvv5j7F02slj25xeqaTrGn6rai5spRInRl6Mp8GXsc8P7U7J1Ghy+Hnjwnp3Ed4PX8W77Fm
jkFxKNzWtjsVdirsVeUfmTpv1XX/AKyopHexh69uafCw+4A/Tnuv/A+7Q8bQeGT6sMjH4HcfpHwd
D2jj4cl97E87t17sVev/AJHazztL/R5G+KFhdQDvxeiSfQCF+/NbrobiTlaeXR6lmvch2KuxV2Ku
xV2KuxV2KuxV2KuxV2KvnP8AMXWP0r5v1CZW5QwP9Wh8OMPwmnsWq305u9NDhgHByyuTGsva3Yq9
X/LbTPqugfWmFJL1y9e/BPhUfrP054X/AMELtHxtd4Q+nDGv847n9A+Dv+zsfDjv+cyzODc92Kux
VjHmjzzY6QGtrelzqHT0wfgjP+WR/wARH4Z2vs37GZ9fWTJePB3/AMUv6o/3x27rcLU66OPYbyeX
anql/qd01zeymWVuleijwUdAM9t7P7NwaPEMWGIjEfb5k9S6LJllM3IoTM5rdiqL0zVb/TLpbqyl
MUo2NNww8GHQjMHtDs3BrMRxZoiUT9nmD0LZjyygbiXqPlfzxYauFt7iltqHT0ifgkP+QT/xHr88
8R9o/YzPoLyY7yYO/rH+sP8AfDbvp3um1scmx2kyfOLc12KuxVif5k6b9a0D60orJZOHr34P8LD8
QfozvP8Age9oeDrvCP05o1/nR3H2WPi4HaOPix3/ADXlGe6OgdirJfy51j9FecLCZm4wzv8AVpvD
jN8Ir7B+LfRlGphxQLZilUn0Zmkc52KuxV2KuxV2KuxV2KuxV2KuxVKvNerjR/LuoajWjwQt6Vf9
+N8Mf/DsMsxQ4pAMZyoW+YySSSTUnck5vXXuwqq2tvLc3MVvEKyzOsaD/KY0GU6jPHDjlkltGAJP
uG7KMSSAOr3iztY7S0gtY/7uCNY0+SCg/Vny9rNTLPmnll9U5GR+Jt6qEeGIA6K2YzJTnuILeF5p
5FihjFXkY0UD3Jy3BgnmmIYwZTlyA5lEpACzyeceafzEmuedpo5MUG4e76O4/wAgfsj36/LPYPZr
2ChhrNrKlk6Q/hj/AFv5x8vp97ptV2gZemHLvYOSSancnqc9KAp1bsKuxV2KuxVwJBqNiOhwEWrO
fK/5izW/C01gtLB0S76uv+uP2h79fnnmntJ7BQzXm0YEMnWHKJ/q/wA0+X0+52ml7QI2ny73o0E8
NxCk0EiyxSCqSIQVI9iM8gz4J4pmGQGM48wdiHcxkCLHJUypKhe2sV3Zz2sv93OjRv8AJhTMnR6q
WnzQyx+qEhL5FjOAlEg9XhF1byW1zLbyiksLtG4/ylNDn1Dp88c2OOSP0zAI9x3eVlEgkHopZcxc
CQQQaEbgjAr6c8q6uNY8u6fqNQXnhUy06eovwyD/AINTmiyw4ZEOwhKxaa5WydirsVdirsVdirsV
dirsVdirzH88NZ9LTrHSI2+K5czzAfyR7KD82av0Zn6GG5k4+oltTxzNm4rsVZT+XOm/W/MKzstY
rNDKT25H4UH41+jOI9vu0PA7PMAfVlIj8Ocvur4uf2fj4sl9z1rPBnfpVr3mTTNFt/UunrKw/dW6
7u/yHYe5zediez+p7RycOIegfVM/TH9Z8hv8N2jPqY4hvz7nlPmHzTqetzVnb07ZTWK1Q/Cvuf5j
7nPc+wfZvTdmwrGOLIfqmeZ/UPIfG3Q6jVSynfl3JPnQuM7FXYqm3l3yvrHmC9Frp0POn97O1RFG
D3dv4dTlWTLGAssowMuTXmLyxrHl+9NrqUPCtfSmXeKQDujd/l1HfDjyxmLCygY80qyxi7FXYqnP
l7zVqeiTVgb1LZjWW1c/Afcfyt7jOe7e9mtN2lD94OHIOUxzH6x5fKnJ0+qliO3LueraD5j0zWrf
1LR6SqP3tu20ifMdx7jPDO2/Z/U9nZOHKPQfpmPpl+o+R3+G7vsGojlFhNM0be8k/MXTPqnmF51F
IrxBKPDkPhcfeK/TnvXsF2j+Y7PED9WEmPw5x+w18Hn+0MfDkvvYvnbOC7FXsf5H6z6unX2kSN8V
s4nhB/kk2YD5MtfpzWa6G4k5WnltT07MByHYq7FXYq7FXYq7FXYq7FXYq+d/zN1n9Kecb11NYbQi
0h77RVDffIWObrSw4YDzcHLK5MWzIa3Yq9T/ACz036vob3jCkl5ISD/kR/Cv/Dcs8P8A+CL2h4ut
GEH04Y/7KW5+zhd92bjrHxd6zzT+YNtY87TSytxeDZ5uscZ9v5m/D9WW+zfsJk1NZdVePF0j/FL/
AIkfb7tix1XaAjtDcvNbu7ubu4e4uZGmmkNXdjUnPY9NpceDGMeOIjCPIB0spmRs81HMhi7FXYqz
vyR+Vuo636d7qXKy0o7rtSaUf5AI+Ff8o/RXMPPqhDYblux4SefJ7Xpek6dpVmlnp8C29vH0RB1P
ix6sT4nNXOZkbLlgAcnarpOnarZPZahAtxbydUbsfFSN1I8RjCZibCkA83ifnf8AK3UdD9S907le
6UKsxpWWEf5YH2l/yh9NM2uDVCex2LiZMRHLkwXMtpdirsVVrS8urO4S4tZWhnjNUkU0IzH1Olx5
8Zx5YicJcwWUJmJsbF6X5W/MG1vuFpqhW3vDsk3SKQ/8at+H6s8b9pPYTLpry6W8mLrH+KP/ABQ+
0ee5d3pe0BLaexXfmbpv1jRI7xRV7OQFj34SfCf+G45D/gddoeFrZYTyzR/2Udx9nEvaWO4cXc8s
z290TsVZV+WWs/ovzjZMzUhuybSbttLQL90gU5j6qHFA+TZilUn0Pmlc52KuxV2KuxV2KuxV2Kux
VbNJ6cTyUrwUtTxoK4Qr5SlkeWR5HPJ3JZmPck1JzoAHWrcKuHXw98Csl1jzjcTWMWk6byttNgjW
KvSSUKKVYjoD4D6c5Dsr2Ux488tXqayaicjL+jC+ke+u8/ABzc2sJiIR2iPtY1nYOE7FXYqr2Nje
X91Ha2cL3FxKaRxRirE5GUgBZSBb2TyR+Utnpvp3+uBLq/HxR2v2oYj/AJX87D7h79c1mfVmW0eT
lY8Nbl6NmE3uxV2KuxV5z53/ACls9S9S/wBDC2t+atJa/ZhlPfj/ACMfu+XXM3BqzHaXJoyYb3Dx
u+sbywupLW8he3uIjSSKQUYHNnGQIsOKRShkkOxV2Ksl0fzlcQ2Muk6nyudNnjaIN1kiDCgKk9QP
A/RnHdq+yePJnjq9NWPUQkJf0Z0b37ie8fEFzcOsIiYS3ifsY1nYOE7Cq6KR4pEkQ8XQhlYdiDUH
AQr6thk9SJJKU5qGp4VFc58uyXYFdirsVdirsVdirsVdiriARQ7g9Rir5c1zTZNM1i90+QENbTPG
K91B+E/SKHN/CXFEF18hRpA5Ni7FXYq7FXYqyDyn5I1nzLccbVPSs0NJr2QH019h/M3sPwyjNnjA
b82cMZk918reTdF8t2vpWUfK4cfv7uShlf6ey/5IzU5c0pndzIQEU8ypm7FXYq7FXYq7FUj80+Td
F8yWvpXsfG4QfuLuOglT6e6/5Jy3FmlA7MJwEnhXmzyTrXlq543aeraOaQXsYPpt4A/yt/kn6K5t
sOeMxtzcOeMxY/l7B2KuxV2KuxVHaHpsmp6xZafGCWuZkjNOyk/EfoFTkJy4YksoizT6jAAFBsB0
GaB2DsVdirsVdirsVdirsVdirsVeX/m/5Jlul/xDp8fOWJAuoRKKsyL9mUAfyjZvanhmfo89ek/B
x82O9w8ezZuK7FXYq4AkgAVJ2AGBXpfkj8o7m99O/wDMCtb2h+KOx3WWQf5Z6ovt9r5Zg59YBtHm
5GPDe5ew2lpa2lvHbWsSwW8Q4xxIAqqB4AZrSSTZckClXAl2KuxV2KuxV2KuxV2KqV3aWt5byW11
Ek9vKOMkUgDKR7g4QSDYQRbx7zv+UdzZepf+Xw1xaCrSWJ+KWMf5B/bX2+1882WDWA7S5uNkw1uH
mhBBIIoRsQcznHdhV2KuxV7D+UHkmW1X/EOoR8JZUK6fEwoyo32pSD/MNl9q+OazWZ79I+LlYcdb
l6hmA5DsVdirsVdirsVdirsVdirsVdirAfNX5Q6Pqsr3emyfo68epdAvKBye/AUKk/5O3tmZi1ko
7HcNM8IPJgV5+T3nWBiIoIboDo0UyrX/AJG+nmWNZjLScMlWx/JrzhcOBcCCzT9ppJA5p7CPnX78
EtbAct1GCT0Xyj+WOh+X3W6kP1/UV+zcSqAqH/iuPcA+5qcws2qlPbkG+GIRZjmM2uxV2KuxV2Ku
xV2KuxV2KuxV2KuxVh3m78sdD8wO11GfqGot9q4iUFXP/FkewJ9xQ5k4dVKG3MNU8Qk86vvya84W
7kW4gvE/ZaOQIae4k4U+/M2OtgeezQcElKz/ACe86zsBLBDag9WlmVqf8ivUwnWYwowyZ75V/KHR
9KlS71KT9I3iUKIV4wIR34GpYj/K29sxMuslLYbBuhhA5s+zDbnYq7FXYq7FXYq//9k=</xmpGImg:image> - </rdf:li> - </rdf:Alt> - </xmp:Thumbnails> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> - <pdf:Producer>Mac OS X 10.5.8 Quartz PDFContext</pdf:Producer> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" - xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" - xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> - <xmpTPg:NPages>1</xmpTPg:NPages> - <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> - <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> - <xmpTPg:MaxPageSize rdf:parseType="Resource"> - <stDim:w>19.000000</stDim:w> - <stDim:h>19.000000</stDim:h> - <stDim:unit>Points</stDim:unit> - </xmpTPg:MaxPageSize> - <xmpTPg:PlateNames> - <rdf:Seq> - <rdf:li>Cyan</rdf:li> - <rdf:li>Magenta</rdf:li> - <rdf:li>Yellow</rdf:li> - <rdf:li>Black</rdf:li> - </rdf:Seq> - </xmpTPg:PlateNames> - <xmpTPg:SwatchGroups> - <rdf:Seq> - <rdf:li rdf:parseType="Resource"> - <xmpG:groupName>Default Swatch Group</xmpG:groupName> - <xmpG:groupType>0</xmpG:groupType> - </rdf:li> - </rdf:Seq> - </xmpTPg:SwatchGroups> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <dc:format>application/pdf</dc:format> - </rdf:Description> - <rdf:Description rdf:about="" - xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"> - <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> - <xmpMM:DocumentID>uuid:496e2a28-b71c-f441-ba06-aa5e08cc250d</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:1c1f2091-19b6-344f-bdfc-1ff7fdba2d20</xmpMM:InstanceID> - </rdf:Description> - </rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - -<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[2 0 R]/MediaBox[0 0 612 792]/Type/Pages>>
endobj
2 0 obj
<</ArtBox[1.41162 2.0293 17.5889 17.5601]/BleedBox[0.0 0.0 19.0 19.0]/Contents 15 0 R/LastModified(D:20100405111022-07'00')/MediaBox[0 0 19 19]/Parent 3 0 R/PieceInfo<</Illustrator 16 0 R>>/Resources<</ExtGState<</GS0 17 0 R>>/Properties<</MC0 13 0 R>>>>/Thumb 18 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
15 0 obj
<</Filter/FlateDecode/Length 490>>stream
-H�\TAn1����dQ�H�Z��)(�� -��%?����J�4�ޗ��T�7�)M���8�:���}cG�cI�)=���B�2��o;�dn�Y�Be"^Z�v�`UK��i ����!�>ȕ�g�k�p�,�u�푰.>���+��4��`��-�d{7��"���]����,��M0�W��/�ҝ[5�b�����}"�~�1�Z�C+�Vİ��Ժ�4�(���~z�ŵ]\�q��M��zF�AK��R����݅x��3�9y3�:���`C�Z�P�1o��+�<rojk�fi�-}��zSc���yN���Cy� -8;V'g&!$eu0E;4r!KR~>
endstream
endobj
19 0 obj
[/Indexed/DeviceRGB 255 20 0 R]
endobj
20 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
-8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 -VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< -PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
13 0 obj
<</Intent 21 0 R/Name(Layer 1)/Type/OCG/Usage 22 0 R>>
endobj
21 0 obj
[/View/Design]
endobj
22 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
17 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
16 0 obj
<</LastModified(D:20100405111022-07'00')/Private 23 0 R>>
endobj
23 0 obj
<</AIMetaData 24 0 R/AIPDFPrivateData1 25 0 R/AIPDFPrivateData2 26 0 R/AIPDFPrivateData3 27 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 3/RoundtripVersion 14>>
endobj
24 0 obj
<</Length 964>>stream
-%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (omnibox_star_action_active.pdf)
%%CreationDate: 4/5/10 11:10 AM
%%Canvassize: 16383
%%BoundingBox: 1 2 18 18
%%HiResBoundingBox: 1.41162 2.0293 17.5889 17.5601
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 0 19 19
%AI3_TemplateBox: 9.5 9.5 9.5 9.5
%AI3_TileBox: -296.5 -386.5 315.5 405.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 2
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -10 31 24 1107 729 26 0 0 164 109 0 0 0 1 1 0 1 1 0
%AI5_OpenViewLayers: 7
%%PageOrigin:-296.5 -386.5
%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
25 0 obj
<</Length 17441>>stream
-%%BoundingBox: 1 2 18 18
%%HiResBoundingBox: 1.41162 2.0293 17.5889 17.5601
%AI7_Thumbnail: 128 124 8
%%BeginData: 17300 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD3BFFA8A95A5A535A537E7EFD76FF5A532F5A5353535A53532F7E
%A8FD71FFA9535A535A535A535A535A535A2F5AA8FD6FFFA82F532F5A5353
%2F5A53532F5A53532F537EFD6DFFA9535A535A535A535A535A535A535A53
%5A535AA8FD6CFF535A5353535A5353535A5353535A5353535A535AA8FD6A
%FF7E54535A535A535A535A535A535A535A535A535A5384FD69FFA85A5353
%2F5A53532F5A53532F5A53532F5A53532F5453FD69FFA9535A535A535A53
%5A535A535A535A535A535A535A535AA8FD68FF59545353535A5353535A53
%53535A5353535A5353535A2F7EFD68FF5A535A535A535A535A535A535A53
%5A535A535A535A535A53FD67FFA92F532F5A53532F5A53532F5A53532F5A
%53532F5A53532F53A8FD66FF7E5A535A535A535A535A535A7D7D535A535A
%535A535A535A5384FD65FFA85A5353535A5353535A53532FA67B54535A53
%53535A5353535A53FD65FFA92F5A535A535A535A535A535AA4CC535A535A
%535A535A535A535AA8FD64FF7E532F5A53532F5A53532F5453FEC67D2F53
%2F5A53532F5A53532F7EFD64FF7E535A535A535A535A535A54A6FEFE7C5A
%535A535A535A535A535A59FD63FFA92F53535A5353535A5353535AA5FEFE
%A55354535A5353535A53535354A8FD62FF7E5A535A535A535A535A535A59
%FD04FE7D535A535A535A535A535A2FA8FD61FFAF5A2F5A53532F5A53532F
%5A2F82FEFEC6FE7B5453532F5A53532F5A535353FD61FFAF535A535A535A
%535A535A535AA5FD04FECC545A535A535A535A535A535AA9FD60FF7E5353
%5A5353535A5353535A53FEC6FEFEFEC67D5353535A5353535A53532F84FD
%60FF7E535A535A535A535A535A2FA6FD06FE7C5A535A535A535A535A535A
%59FD5FFFA92F5A53532F5A53532F5A5354A5FEC6FEC6FEFEA52F5A53532F
%5A53532F5A5353A8FD5EFF7E5A535A535A535A535A535A59CCFD07FE7E53
%5A535A535A535A535A53A9FD5EFF5A2F5A5353535A5353535A2F7CFD04FE
%C6FEFEFE7C545353535A5353535A535353FD5EFF535A535A535A535A535A
%535AA5FD08FEA5535A535A535A535A535A535AA8FD5CFF7E5353532F5A53
%532F5A535453FEFEFEC6FEC6FEC6FEA4592F5A53532F5A53532F5A2F84FD
%5CFF7E535A535A535A535A535A54A7FD0AFE7C5A535A535A535A535A535A
%5AFD5BFFA92F5A5353535A5353535A5354A5FEFEFEC6FEFEFEC6FEFEA52F
%5A5353535A5353535A5353A8FD5AFF8454535A535A535A535A535A59FD0C
%FE59535A535A535A535A535A53A8FD5AFF7E2F532F5A53532F5A53532F7C
%FEFEC6FEC6FEC6FEC6FEC6FE7C542F5A53532F5A53532F5353FD5AFF535A
%535A535A535A535A535AA5FD0CFEA6545A535A535A535A535A535AA9FD58
%FF7EFD04535A5353535A535453CCFEFEC6FEFEFEC6FEFEFEC6FEA4592F5A
%5353535A5353535A2FA8FD58FF7E535A535A535A535A535A547DFD0EFE7C
%54535A535A535A535A535A7EFD58FF53532F5A53532F5A53532F54A5FEC6
%FEC6FEC6FEC6FEC6FEC6FEFEA52F532F5A53532F5A53532F5AA8FD56FF84
%5A535A535A535A535A535A53CCFD0FFE5A535A535A535A535A535A53A9FD
%35FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA87E5353535A5353535A53532F7DFEFEC6FEFEFEC6FEFEFEC6FE
%FEFEC6FE7C54535A5353535A5353535459FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD12FFA8845A5A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A5354A5FD10FEA6545A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%7E7EAFFD0CFFA953532F5353532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FEA45953532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A2F
%532F7EA8FD09FFA8535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A547DFD12
%FE7D5A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535A7EFD07FF7E2F5A5353
%535A5353535A5353535A5353535A5353535A5353535A5353535A5353535A
%5353535A5353535A5353535A535353547BFEC6FEFEFEC6FEFEFEC6FEFEFE
%C6FD04FEA62F53535A5353535A5353535A5353535A5353535A5353535A53
%53535A5353535A5353535A5353535A5353535A5353535A535359FD05FF84
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A535A535A53CCFD12FEA45A535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A53547EFFFFFFA92F5A53532F5A5353
%2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A2F7DC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FE585453532F5A53532F5A53532F5A53532F5A53532F5A53532F5A
%53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A535384FFFF59
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A535A535AA5FD14FEA6545A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A535A535A537EFFA853535A5353535A535353
%5A5353535A5353535A5353535A5353535A5353535A5353535A5353535A53
%53535A5353535A5353535A53CCFD04FEC6FEFEFEC6FEFEFEC6FEFEFEC6FE
%FEFEA45A5353535A5353535A5353535A5353535A5353535A5353535A5353
%535A5353535A5353535A5353535A5353535A5353535A53532FA984535A53
%5A535A535A535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A535A537DFD16FE595A535A535A535A
%535A535A535A535A535A535A535A535A535A535A535A535A535A535A535A
%535A535A535A535A535A535A53547E535A53532F5A53532F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53547BFEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEFE
%A62F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5A53532F5A53532F5A53532F5A53532F5A53532F5A2F5A5A535A535A535A
%535A535A535A545A535A545A535A545A535A545A535A545A535A545A535A
%545A535A545A535A545A535A545A53CCFD16FEA45A545A535A545A535A54
%5A535A545A535A545A535A545A535A545A535A545A535A545A535A545A53
%5A535A535A535A535A535A53535A5353535A5353535A5353587D7C7D587D
%7C7D587D7C7D587D7C7D587D7C7D587D7C7D587D7C7D587D7C7D587D7C7D
%587D587CC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFE7C7D
%7C7D587D7C7D587D7C7D587D7C7D587D7C7D587D7C7D587D7C7D587D7C7D
%587D7C7D587D7C7D535A5353535A5353535A53535A535A535A535A535A53
%5A537DA4FD64FECC7D5A535A535A535A535A535A5353532F5A53532F5A53
%532F5A2F597BFEFEFEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FEFEA5535453532F5A53532F5A53532F5A7E
%535A535A535A535A535A535A535A7CCCFD5FFE83545A535A535A535A535A
%535A535A7E8453535A5353535A5353535A5353535453A5FD04FEC6FEFEFE
%C6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FE
%FEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFE
%C6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEA47D2F53535A
%5353535A5353535A53532FA9FF535A535A535A535A535A535A535A535A53
%A6FD5AFE825A535A535A535A535A535A535A535A535AA9FF842F532F5A53
%532F5A53532F5A53532F5A2F7DA4FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEFEFE585453532F5A53532F5A53532F5A53532F537E
%FFFFFF7E535A535A535A535A535A535A535A535A547EA5FD54FEA5535A53
%5A535A535A535A535A535A535A535A5AFD04FFA8532F5A5353535A535353
%5A5353535A53532F547CFD05FEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6
%FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFE
%FEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6
%822F54535A5353535A5353535A5353535A535353FD06FFA95A2F5A535A53
%5A535A535A535A535A535A535A59CCFD4EFEA57D2F5A535A535A535A535A
%535A535A535A535A53FD08FFA87E2F5A53532F5A53532F5A53532F5A5353
%2F5453A6FEFEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEFEFE7B5A2F532F5A53532F5A
%53532F5A53532F5A535359FD0BFFA9535A535A535A535A535A535A535A53
%5A535A5483FD49FECC7C5A535A535A535A535A535A535A535A535A535A7E
%FD0DFFAF5353535A5353535A5353535A5353535A53532F7DA5FEC6FEFEFE
%C6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FE
%FEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFE
%C6FD04FEA55354535A5353535A5353535A5353535A53532F5AA8FD10FF7E
%54535A535A535A535A535A535A535A535A535A82FD44FEA6535A535A535A
%535A535A535A535A535A535A537EFD13FF7E532F5A53532F5A53532F5A53
%532F5A53532F5458FEFEFEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FEA47D2F542F5A53532F5A53532F5A53532F
%5A53532FA8FD15FFA97E535A535A535A535A535A535A535A535A535A53CD
%FD3EFEA57E545A535A535A535A535A535A535A535A535A59FD19FF842F53
%535A5353535A5353535A5353535A53542F82FEFEC6FEFEFEC6FEFEFEC6FE
%FEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFE
%C6FEFEFEC6FEFEFEC6FEFEFEC6FD05FE7C542F5A5353535A5353535A5353
%535A53532F547EFD1BFFA95354535A535A535A535A535A535A535A535A2F
%7DA5FD38FECC595A535A535A535A535A535A535A535A535A535AA8FD1EFF
%59532F5A53532F5A53532F5A53532F5A53532F5A7BFEC6FEC6FEC6FEC6FE
%C6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FEC6FEC6FEC6FEC6FEC6FEC6A653542F5A53532F5A53532F5A5353
%2F5A53532F7EA8FD20FF7E5A535A535A535A535A535A535A535A535A535A
%7CCCFD33FE83545A535A535A535A535A535A535A535A535A53A9FD23FFA8
%5A2F53535A5353535A5353535A5353535A535453A5FEFEC6FEFEFEC6FEFE
%FEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6
%FEFEFEC6FEFEFEC6FEA5592F5A5353535A5353535A5353535AFD0553A9FD
%26FF84535A535A535A535A535A535A535A535A535A53A6FD2EFE7C5A535A
%535A535A535A535A535A535A535A53547EFD29FFA853532F5A53532F5A53
%532F5A53532F5A53542F7DA4FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEFECC58542F5A53
%532F5A53532F5A53532F5A53532F5A7EFD2CFF595A535A535A535A535A53
%5A535A535A535A545AA5FD28FEA6535A535A535A535A535A535A535A535A
%535A2F7EA9FD2EFF7E545353535A5353535A5353535A5353535A2F59A4FE
%FEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFE
%C6FEFEFEC6FEFEFE53545353535A5353535A5353535A5353535A2F84FD31
%FFA85A535A535A535A535A535A535A535A535A7CFD28FE7D2F5A535A535A
%535A535A535A535A535453AFFD33FFA87E2F532F5A53532F5A53532F5A53
%532FA5FEFEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6
%FEC6FEC6FEC6FEC6FEC6FEC6FE7B542F5A53532F5A53532F5A53532F5359
%FD37FFA9535A535A535A535A535A535A537EFD29FECC535A535A535A535A
%535A535A535A84FD39FFA9535A5353535A5353535A535458FEFEFEC6FEFE
%FEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6
%FEFEFEC6FEFE7D2F5A5353535A5353535A535AA8FD3BFF5A535A535A535A
%535A535A54A6FD2AFEA55A535A535A535A535A535A53FD3BFFA82F532F5A
%53532F5A53532F59A4FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6CC53542F5A53532F5A
%53532F537EFD3AFF7E5A535A535A535A535A535A7CFD2CFE7D535A535A53
%5A535A535A537EFD39FFA85A5353535A5353535A53532FA6FEFEC6FEFEFE
%C6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FE
%FEFEC6FEFEFEC6FE7B54535A5353535A5353535A53FD39FFA92F5A535A53
%5A535A535A535AA4FD2CFECC535A535A535A535A535A535AA8FD38FF5953
%2F5A53532F5A53532F5458FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC67D2F53
%2F5A53532F5A53532F7EFD38FF5A535A535A535A535A535A54A6FD2EFEA5
%5A535A535A535A535A535A53FD37FFA92F53535A5353535A53532F5AA4FE
%C6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFEC6FE
%FEFEC6FEFEFEC6FEFEFEC6FD04FECC5354535A5353535AFD045384FD36FF
%7E5A535A535A535A535A535A7CFD30FE7D545A535A535A535A535A2F84FD
%35FFA8592F5A53532F5A53532F5A2FA6FEFEC6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FEC6FEC6FEFEA5A4FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FE7B5453532F5A53532F5A535353FD35FFA9535A535A535A535A53
%5A535AA4FD16FEA6535AA5FD16FECC535A535A535A535A535A535AA8FD34
%FF7E53535A5353535A5353535A58FEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFE
%FEC6FEFEFEC6822F542F547CFD05FEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFE
%FEC67D2F53535A5353535A53532F7EFD34FF7E535A535A535A535A535A2F
%A6FD14FEA57D2F5A535A535A59CCFD14FE7C5A535A535A535A535A535A53
%FD33FFA82F5A53532F5A53532F5A5354A4FEC6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FEFEFE7B5A2F532F5A53532F5453A6C6FEC6FEC6FEC6FEC6FEC6FE
%C6FEC6FEC6FEFEA52F5A53532F5A53532F5A535384FD32FF7E5A535A535A
%535A535A535A59FD12FECC7C5A535A535A535A535A535A5483FD13FE7D54
%5A535A535A535A535A5384FD31FFAF5A2F5A5353535A5353535A2F82FD04
%FEC6FEFEFEC6FEFEFEC6FD04FEA55354535A5353535A5353535A53532F59
%A5FEC6FEFEFEC6FEFEFEC6FEFEFEC6FEFEFE7B545353535A5353535A5353
%53FD31FFAF535A535A535A535A535A535AA5FD10FEA6535A535A535A535A
%535A535A535A535A535A7CFD10FECC535A535A535A535A535A535AA8FD30
%FF7E5353532F5A53532F5A535452FEC6FEC6FEC6FEC6FEC6FEC6FEC6FEA4
%7D2F532F5A53532F5A53532F5A53532F5A53532F5458CCFEFEC6FEC6FEC6
%FEC6FEC6FEC6FEC6592F5A53532F5A53532F5A2F7EFD30FF7E535A535A53
%5A535A535A30A6FD0EFEA55A545A535A535A535A535A535A535A535A535A
%535A535A53A6FD0EFE7C5A535A535A535A535A535A53FD2FFFA92F5A5353
%535A5353535A5354A5FEFEFEC6FEFEFEC6FD05FE7C542F5A5353535A5353
%535A5353535A5353535A5353535A53542F82C6FEC6FEFEFEC6FEFEFEC6FE
%FEA52F5A5353535A5353535A5353A8FD2EFF7E54535A535A535A535A535A
%59FD0CFECC535A535A535A535A535A535A535A535A535A535A535A535A53
%5A535A2F7DA5FD0CFE7D535A535A535A535A535A5384FD2DFFA85A2F532F
%5A53532F5A53532F82FEFEC6FEC6FEC6FEC6FEC6A653542F5A53532F5A53
%532F5A53532F5A53532F5A53532F5A53532F5A53532F5A7BFEC6FEC6FEC6
%FEC6FEC6FE7C542F5A53532F5A53532F5353FD2EFF535A535A535A535A53
%5A535AA5FD09FEC683545A535A535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A535A7CCCFD09FECC535A535A535A535A535A53
%5AA8FD2CFF7EFD04535A5353535A535453FEFEFEC6FEFEFEC6FEA5592F5A
%5353535A5353535A5353535A535353542F53535A5353535A5353535A5353
%535A535453A5FEFEC6FEFEFEC6FEC6592F5A5353535A5353535A2F84FD2C
%FF7E535A535A535A535A535A5482FD08FE7C5A535A535A535A535A535A53
%5A535A535A53547E84535A535A535A535A535A535A535A535A535A53A6FD
%08FE7C54535A535A535A535A535A59FD2BFFA92F532F5A53532F5A53532F
%54A5FEC6FEC6FEFECC58542F5A53532F5A53532F5A53532F5A53532F5A84
%FFFFA853532F5A53532F5A53532F5A53532F5A53532F7DA4FEC6FEC6FEFE
%A52F532F5A53532F5A53532F53A8FD2AFF7E5A535A535A535A535A535A59
%FD06FEA6535A535A535A535A535A535A535A535A535A2F7EAFFD05FF5A5A
%535A535A535A535A535A535A535A535A545AA5FD06FE7D535A535A535A53
%5A535A53A8FD2AFF7E5353535A5353535A53532F82FEFEC6FEC67C2F5A53
%53535A5353535A5353535A5353535A2F84FD08FF7E545353535A5353535A
%5353535A5353535A53547CFEFEFEC6FE7C54535A5353535A5353535A53FD
%2AFF535A535A535A535A535A535AA5FEFEFEA57D545A535A535A535A535A
%535A535A535A535453AFFD0AFFA85A535A535A535A535A535A535A535A53
%5A535459CCFEFEFEA6545A535A535A535A535A535AA9FD28FF7E532F5A53
%532F5A53532F5453FEFEFE7B542F5A53532F5A53532F5A53532F5A53532F
%5359FD0DFFA87E2F532F5A53532F5A53532F5A53532F5A53542FA6FEFEA4
%592F532F5A53532F5A53532F84FD28FF7E535A535A535A535A535A5483FE
%CC7D5A535A535A535A535A535A535A535A535A535A84FD10FFA9535A535A
%535A535A535A535A535A535A535A547DC6FE7C5A535A535A535A535A535A
%7EFD28FF5353535A5353535A5353535AA5A553545353535A5353535A5353
%535A5353535A2F5AA8FD12FFA9FD05535A5353535A5353535A5353535A2F
%59A4C75354535A5353535A53532F5AFD27FFA95A535A535A535A535A535A
%53A7535A535A535A535A535A535A535A535A535A2F84FD16FF7E5A535A53
%5A535A535A535A535A535A535A535A7C7E535A535A535A535A535A53FD28
%FF2F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F5A53532F
%5353A8FD18FF7E5A2F532F5A53532F5A53532F5A53532F5A53542F5A5353
%2F5A53532F5A5353A8FD27FF7E535A535A535A535A535A535A535A535A53
%5A535A535A535A535A535A5AFD1BFFAF7E2F5A535A535A535A535A535A53
%5A535A535A535A535A535A535A535A53FD28FF535A5353535A5353535A53
%53535A5353535A5353535A5353535A53537EFD1EFF842F5A5353535A5353
%535A5353535A5353535A5353535A5353535A537EFD28FF842F5A535A535A
%535A535A535A535A535A535A535A535A535A2F7EA8FD20FFA9535A535A53
%5A535A535A535A535A535A535A535A535A535A535A7EFD28FFA8532F5A53
%532F5A53532F5A53532F5A53532F5A53532F542F7EA8FD23FF595353532F
%5A53532F5A53532F5A53532F5A53532F5A53532FA9FD29FF5A5A535A535A
%535A535A535A535A535A535A535A535A53A9FD26FF845A535A535A535A53
%5A535A535A535A535A535A535A537EFD2AFFA92F5A5353535A5353535A53
%53535A5353535A535353FD29FFA85A2F5A5353535A5353535A5353535A53
%53535A5353A8FD2BFFA82F5A535A535A535A535A535A535A535A535A7EFD
%2CFF842F5A535A535A535A535A535A535A535A535A84FD2DFF7E2F5A5353
%2F5A53532F5A53532F5A2F537EFD2EFFA8FD04532F5A53532F5A53532F5A
%53537DFD2FFFA9535A535A535A535A535A535A537EA9FD31FF7E5A535A53
%5A535A535A535A535A84FD32FF5A532F5453532F5A2F5353A8FD34FF845A
%2F5353532F5A2F532F7EA8FD34FFA9A87E7E597E5984A8FD38FFA97E7E59
%5A597E84FD3AFFA9FD60FFFF
%%EndData
endstream
endobj
26 0 obj
<</Filter[/FlateDecode]/Length 12838>>stream
-H��W�r�8��;`k+[rUL������$�Y*�9�2)DBb`�l���.��̬��,�Dh���W��������ګWg�`-� ��肱Xii��G�k;.������HE?�$K|gvׯ�?+�;�b:=B�# �Q��E��D<�+��=�5��?�D��(�ϱ�
�F����N�:�2t�X)��^��o�ک�y@��T<�"j"��@����Nuڞ�m���6-���N�?��]׃-�C��H -�(u&����-1GWx��M��a��V�ܿ���B��g�1����1e�uN�����ֽe�A/`k��r��"��1�D��IoߟŀE���%3j���z���" -�|P �� 厄sZ�N�"@|K=n�@8n��O�����v2��8dA�� ��$J=N��n�nrM(�1#��$k��Ab�+�|�;�g*S�[]��3�����چ^?;L|�����K������:-��6���C�� -��:Wc8�-�Dh<�L�Cp&f -���G�&���5����kK�ߏX��R����Z=��;�}����7�kH�tau7��&��Q)#PK�a�}�~�>'SH���d�-_&��|� -+#,5�/�&a7c�)��-:+iE�ގ�s�S��Y�8gع��X,}���5q�PL?�KFT��/.�}@'��(J8f��j\㐠ƘB�%�E75��N�M���a�-l�uܦ�v{�n�eo�f�iZ�k:Uҥ>kYs��%<�7�`������E�~��Y�A���75� -�1�4I'�&�r^�PJ��a�'�/��9L˒��D��LN5�4in��ru��R��,w�U֠��k���N`�$j�������a��HP�2����5��MΫ���V�������^�%*�O�*�Ы�R��,*���>sD��Xi>o%����Da3��)V5�� -Q��Dh�.�T�H -��U������-xcK��������==�!�8�9�g�������W*�����4�-Q��&s�����3�6��<t�nD0��z� '�$QD���V��n�S�����,�&$j�I.�A�L��N�2{��v:��~�W� � �Al.@^�嬁䂠;��ۀj<����9�m+_b>���(����ˊTQ'���L�$�X=l,aFՆ�*i���Z� ��hx����+M$�N6x�D8��P4�!V@���۶�9Τ����!(� [�����9��Cnv�
��\��n��TI��O3d�D��ʅ�s����.��}Yv�.�k��9n�B�aM ( @�l<s3�K]5ύm�YH��^e�Zb�"5�_�4 -u� ���`����{7���FN�%� r*�j:h�δ*zmb�PO��bƲ �H��@���`;EQ�Z�!g�h�:}#���� -&��,��d�c�������7q���7؋*���s23h�D�RRn7�������:�ߐd?�(�.�X�
�T�rپ�ɺl��tB�]&�!gN��)fQ��(�cF2^q��-(b�r�$��2�FC�� -�Ψ����KVbI��ږ�ƽJ�~��\;[s�N��'�V�]')��a%�(gBMj�B8��U_��ׂ�c�g��D��x��9�,�؝(S�8Q)���q�S�l�]SG� - �mà������-7���� � -䜓VTGP�jƘ����-iɯa> ���l7H��8X�<g��^���_�|�&�Z�����)�R��Qs�69�K�)�� R۱M����R}>�7 -�#�fS��B�)� �VO:������|�>��g�WoY �ol"[DTŲn��Į�n v�E� -��I�&���B�QǦ��G8F{��@��1�.�a�.�)ͱҮ,��O���:.�B�)�8��r���֬���"���F�k�kO������"Z�s3� )D�e+���W�X�^�3���<�Co��+^�>"��o��
��H��r����q��[��"� -�+~�����M'n�D2w��̬PT�ڕ��i�O�)-�>��S%�m�8��('#%d�dS��^����6-`�R]���(jf�(�ʰ)bs��,����71�n�4N��d%L����n5�L�vV=��8�f������c -2gn���|3��y^e~@�F���� �G��� -����$st�ʻ�c�����-�b�{g��|
X�r�ܲ�v{p�@��>�����+��G��=�Ez�Zh�$TL���� �����e6?�J���8�(���9��$������oQ���nT1�� _����>XP~�(L��� -��P�Z�H����j���g44:
VQJ|7�y�R�� -��`�+k�'x���l@�~�Nx�yy�PA�gukN����]��j�)u٩� - 3�J���9b�O�e�1[䈠�v\��k�+��%�zC���+�R`�2y+A'�Y� -��a__���&����Ƞ��ǯ�Z!H}��ϗ}_��!߽(C�~Ƞ�� -(�hG�SO��+i� -��Z:��w��.3=��,_\[��囗׀��}*��G�m�/ -U��,��|��'�D�o�z��?7�j��~���lR�ۯ�"1�����;��IB�-�bϱ's��=^=xHy;d��ƪ�lpW��3������g#@}+<v�D��H{�^��]NP����'��gJ�v��������k�?G*Է�ל��W�v�b�}>�~�M�_�ѫ�y�-H.�O�^r��S6O�3�i�_|�u��J^�]9~�͋O�����2�h���ϴ��9�����<�nϿ#��б����+�m0�_~ -/P�N���u �w��Z�\*��_ڱ3
��8��n���i���`:�k��6��i\I����rK8�88U��SU]M� -T���zpu�N�d��q���^��us�-��������V`8mK���p�v�����$ݢہ�\��v���N�N�W�3W�H�N���+YN5uA��ۺ����@��_z#�vo��kg��g|h�y߭w㹀���D��fѶ��ג/-6w���P�5Pa�ʚ��{�Ʒ��(�
X �Ĥ.�+�RߧN�c䩬�=�@��Ea)�����t_J}�*|M1���-��J:V����̈́{�BU� -��b�_7;���GO�/�kZ��WL�nh�q�!zLZ��)Ň߷n��n�y�����A��1�by�z�
r�U,c�a��nK~��^'˚+�b�d-ғP���I>��Ӎs�9�b٠g(}ۡ�:*/qf�$�p�k7^����F5M(����.ʨ[Y���� l��� ��xX��l�Xm�`���QfjJ�u�+5�ŴR���k;� -D�M�}++|ƈ��a�F�Ғ� ��SU�kH̹<�$äV��TPG+TX�# -���X�k��Mr��X9�����:N��n�Y��n�Yy�;�C�<��1z)U%���*�M����*%���`'���$p�f�F�c���B��[1"ˬ2�?Mz�RI��0{KPC���0?_�Z~�_;b�W�Q��Djbrӌ�,��$�b�� >�;?��WO���Oy�b��R�!]�Ҋǃ��>��������A���Av��8j~��n��{��&U)�$c�-2�:�� ^���Nq��ocͼ�$-U�#��Ȋ���b��0-S��Z��R����X�Vj�l.ȁ Z:���3�5'� l�V�C�h��V��g�w���܇=����mQ�js9�:��>P][�UG�|�i��`�R�X���mr:�l�hJ�� -x Į-�����p�*�*Q*E���EB��$�U�Դ$A_���m`P=,��X��s�5�Rj׀�<L�>��� �0C�_A --�:�0D~: 5�h��UXˊ>�_My��?"u��- 5w$�*�9�^�VX��,��.VY��a�y��cAA�]��r��}�1�̭��RZ)��ʤ�n٥4Y|���bZ�A�<�v���!��>NJ��ݲEҠB�b��0���}i�9��9�uy��Ӥ��y�/(�'�e#�� -��(����h��j��a�����lwO1�v!�47D��3�+�28���~��h�~�?��ݷ�9����\y����ʵ<��Sh|8���h�%Ie������"�7 -h�f��/��0���`;i �0��Y��L�.��e��(�y����p�@]�Ľ!�����
�Ű�����J�1�v؛Ô䘺�K�7��B 틝
���Đ�V�������B`&���!0��|dr!qY -�Dq�0�j���~ -�ŋ�a$�M�Ø�Zp��w��Ie�:�:�-_o�<[Q��v_GQ�/q���p��K+�\���x�^ td�a9͑:�ґ,ȵ8�#y���|�SC�Ur����0v�)!A�/�l��@Jq����"��i�T]W���)�$)U� -����;��QV�?�
S�L%����@�R)��D^J���AR��� �G�]1�
����(�N�OG���=cF'B͘W:9��^.���6���SL���r���&z)��އ�>�RB��ۗV-��R�93F8�T9^��5�WYUV'�-G)=�,�W���l�ts��綩�lD����x^,I�`|��R����)M2�"�b�lM�e0{��<�&��R,3k��q��^q1(
� -�yޚ�����1�A�R�k�*����I�v��ƜO��;��N({>Aύt���D0�zA�P���$u;����X��OKo��kw'm�$s��!)�����N��:���¡�w�s�*V�Ma�ĝ��e2��2�/Z�S���`���PP�qd'Wq�`��g���o�\"�]��]���ll�$�C�ƍ�A����l�n���9�$# -F�GvJt(�"�b��?��|��dW�c� '�k�m��P�̐S�]\(��Pb}q�M&"Ri���I+��r
���&��b��${㗯&��A�Y��7�ߛ�RQn������L���`���w������ -hq�p/�tiLbz�}p*`BI�1P��ɹP��d�$�/�L5iv����~����R�`F�b7f�,Uo����I0��I���y/yi0�q(�c���p�o�����q�}���qv�_.�<l?�?7�7�g�U��\�>�^5^
-^��۷��}٨f.�N?3G�OV�R�7��SQ�D�&l=Fu,e�OQ��)`H"��ˏjOd��hqPRo?s�?����{ʕhI��o �/�J�~?��+�����bq��J��X�.֏e2��h�YHw9�Ec������zT�c�F���Q+zw�}T?�����Z��~����2��;,b�>%Q^�8��-��M%������Z���F����B���y� ?��xd�z0�bG�G�_�;�Q���(���Nx������p<f��M��1��Y�O�/��i^�w�z����/�/���w�������O'�yx@Q�%錃Zg�*��\7ŵT���� ���x��_l�SU�� ��T�n�!yЧo�s��dP}�������ZR���)E �<�n��^{�%qz� -����ŚJ \11N��S��u텭���q��l���҇'}1p�A>��䏀u��M S�j�d�|����/D�����vQ��7��fJZ\-��rG��Q|X�:*8aZ�S.���'���M�9��5�MS�m�]�}����Y/���Rsk -�����ee1��Q�ȳ�lu�GJA�めp��;m����qb�����{%�!���/|q����Aw�_3v�_q�[�%n|�T"W,���G�}^R�j���~��5SI l%�Bʥ=���S�� ��x��alI�e��v5@jd� &������*["��]9^�1�0TAl�����}�UE�l��6+�٬?-e�� -k -u�bDA��v7$�����˲�����&����认g,�&I۽+��"&�s�����I�1�y�9�=�Z���$<8�"����t�l�0=*U��E_)��?$��d�Ќ����f[e�\��3O�9�`�C�,=1��n5On\
��b�c^v��q�K�6R;۹��+
}��6Lvm�ǀ+�P�[�5w��&�b�Z�����mRQ@=�}H�
f���~Կ�LѽZ1�>q,���C#��ݟ[~�whe�dD���OX��yWP�%�9�oM�;��~���WR`b -������fu2c~I�w$��� -��Et�"@u��&H��^I8/X-G7^ݺ�u+�z��c1���~z�qَ�c0ߢ���c���$�|(Bq%+���8�Qq%!�c'�xv��-=8.�<��l0B�2\P�#�H�m���̷��g����r&9�$�3F��|��j�1|Vͯ@ -���!XV�]�T�N�T���>"��8�^c���k��ۿ0����ۻ�2��
JR��7�6��2�0���ڝcg=�(�+�=XJ+'J�W}A�T ovw%Gh|���+�6wq��B+�]��h`@�1��m���@�m���5D�h��w����ػ_��6�z�dl������@�C(�ǘch-�c(��a�9��H���k��|g|D�W�s���X��U�@�
!T}�=����P�B�-�x�'�G�N/"���6Cu_)��W���9��2�oH�cx��\����9 -��%p��q��;�Z��O��n�k,j����u�N���ӯ�a���I�Dۼ�a�2���c�B{À���1$d��bs㩜�<��b@82 �O%r~��o�Q��%����mn��� -�����e��?c�����w%���8/pW2V*��-{1��ǠS��`u��04��GB+���Aah1�!��\Ba2r�:��X@���,Ʈ��s�"�*�.��C�}��E�,� -4�C4L�j�U>k�������Z6{�`��|Z#�C�Ov�#��Bt���1>=����M�I�foW���\�*������A�%)���5���W��\-���1ͪ���o�6�(o�{�ۿ~ɹ(�����y�|�F���G4m�GIY��Bc=�y9s2*è�@3���~����d[����ׅ�V�s��z7�c�P�B|'�fW��5b
7�
��tcP�ӌJ -0[�����GZ��胏�f�3����kt�.jkdh���G�N�6�|Í��c���M�5��<dt�Q�1�����+i� ˟��=�h�3����g�QW�ᱦ���iT�Lg�,�S�Qp�l[�?b&8]�7FO."�҄e���b�,���9���"Tܫ>���;I����w������Mv -�inct��<A��+�B��y>�'���I
�S�W�7�k�D���z�RJ����������)�Ș�S����D�������jp��Z�Ap��U��Z���ڦ�$)�<��<EC�K')4�H�{h�\JG��_� -H��W�b�\}�<�!�h/��"b�����U�V[$��wN��$A��n�������fh��%��e8�����rQpD�ES�X�ļ��7)_)|���;*?��߸�r�Кy#f<C'� ��9���06R��8�E[k�#;�r)��W*��% ^õ�TNor��^�87>v$�:%�)�L�&�WJ�L�+>��g�S�y;�����6�
B�)��LsLu_C"=#�qtsP�_�o,�?���L=���y��ѰA����(�ri�g�I�"Mؕ�����b����@�S��l��lt�F��I� -x��6��0�$�0#<�t�!\}�Fe��02�D�Ѵ��/ZpN�=C��#=9/*f1�\� -�����ܽJ@��m��P9�]�(�E7ҫ�-�oyޞ)�A����s��R�s��MT�d��Bhl��p{�d�g27���}*�����1{�0sn��#����}9��K'�R�{"p%���y��MP�L��Y���y"l[h3�CI/�TL>>�<4�2[�bJ���F!��FY���F�i=o�ɞ�)�ˇ�ƶ��������}vWvn -��:3������0��� -�Z�k�bE�ed��*f"��#���h^(i���#R���<S��3�{���G1�[��O�Ek��b�-{�"0�/����b��)���b��T,��)�P��P�k���r�Q/��_��?tp�(����pg�( -�U�m
������j��a���h���@eWZ܀��c���b���I�k��G(䅩�d�$3i��i�+�cP�z�I��s4�b`�W9\��t���;At�2h.y=H���B�e_l���ћ(|�����i7����{�5f��fx�~|'D�\�4M� -�%�t]�ǔ����;�y7���eq�N�KՎ�{$��$u��QI5��R����6_�y�.Y��D0��c��;}��ن����\u&3�n<d����֫E�
y�!���i�h(h����Ќ�0�C�g�Z�MC`O�! -O2[�{\���\U
�Lj�E�%|�E�F"x�h��Zc�\�ٰ� -E�lM�~�^� �l��Y����ր�s��7.Ȑ�eќ�y�X֤�,ʮtv�P�����ٽr��G�w��-������B��⾃ECfR�0�LT~�Q� -��R�S� si����wq�����Z�]q��G��/g���sb�v���G����&�mJ��ٷ��O���V3'��g�����[��s<^j2���@,�8<���0�,��B��ޣ�j͚-�r%�MD8"�Q.]
~jo�y�;�e��4��z���BZ�g�g#�k�J^Nw���*��`�w�<�뻴g��Ou�Dž6\[�E�18���L6�'k8��vtyT6&^��N�1���ʽ��G? -�0H0Ēኣ z��-�a�Hy���:%潙���fҁ���l�*�ʆH�+Z��m]��=��c=7����2�̱d��z�����oC^��|�@p�*a�z�/QK�w���O�/F�x����)�"'��"��;:�gB��V�6uEI���ψ��O:� ->�}�]�w[�����U&����O�I,���_�������������E?�n?W��>�i���w_�n�!LN&%*�9N}v������z,�D�O�����Śƙ��&���oH���������(�3]_�Eh��b狺�/Y`*L>�T�*�X���^��G>&�9B"��9�'�A��<���~�)�br|����(��`Wv�I��dQŜ�+?Vn���m�?������i)��m�^�/6�_��'������ݠ�bU"�O��Hu�n��x�/ԉi��M�C�+����>��g>v�}���*��R��ďP�x����#���dl�)�e,4�N�҄�����c�!M`�p�\�(n�z)S��.�\� -2Q��D���ie~j0�����W�V�H~�� ���l�,Bd'(�(��Ƚ�� �̯y��^��\u�ON:թ����*nv_����j�� Ǐ�}V�ԧ�Ha�Գ#�A�W�enD|S�T�o�����R_�8� ���Ih�JKB����W�:�hi��>�辕Ȗ�F�e��/> -�49�!=���V�X5��j'����Mm%��X�@z/c�!�'��+�)��iƲ���O_h>�@��P����J�4������C��h���]Rj^l��f�&}� -$��N�������y]Wv���ǡ/C�O��e7`F�J�N���w�:�}~R�зe��o�������n�р��R!*�4���X�eE#z�;�{(��uƚ���y���R�e�����t�J��[X�Ԇgh�a��h��4 '�-y�Vw�K�5���^��f�4C�J (�� >`�+�
����
HCVX�vH�:���2���=����Hm`
�ya��PoN�aP["�Υ��Ö$ìM�~n&��@.���G�<�@���T��G���K���F��F3�YN -���o�m���}�>�x�ulm?�;c��J<��ƾU�ƎŹ�b�g/�|.��T�`�G�`1��k|��Om ;�∊���[j���T8`>�"뉀��cm8�ȁ#��{XTڈ��"��[��'��b*r��}����>��f[�3C��W�/�V�I��.�j�]��M2��f�h{}�4AQɸ:
��2��+���74RZ]&�ZA���� -a��y��e^ו�?5k��f�Q�`�=�-JI�h�˥lA.� -�l�yiʪ+�.�[P�A0�/�K�����])'3��RYAp -�o�0VAø������,[*����w�56���Z��� ���υŁؽ6��7�y'낁p�ix<|����#��${�0`QAq)]�CrU*<�,th�Q -� -'�
N���\P��b�x;wU�8�+3���b���N28,���!m�J5k0ˡRi��yss����̘�|T��N����u�|�ؾ/�2� �=z -����Wץ -<� �
^Z���/��-N���~W�q�3�:���ω��&\��8i��Q���H���c8�\&������^{$��v�Hw�:H��d�8�IOSv\���^-e�T�1Kq~dғE��9��-H�*X�'�� -3��r�YT�Ӿ���$�_�ɥ���>{v���>8� ,S���X�i�o$Z�JM1���9 �9���r���x�h��+ -)��Tk�;
с�)Z��Zȗiaѧ����eI�-��BO�������ܯ�b-����H��N��Q�o�<̍����*]K�Y�W�{� Lz���"���������8*(���s��Tu'!2�3��<IuS]��[�KX�����i����$��l�-W���J����y)���g���_f�MV�5n[ab<��:q�v�X�T�B��T����j���ĩ�� -$�TP�&����-��]Ψ�X�x�b����{�apawi�/Q�z ڌz�GX4�Ka�Y�8�@��D3�f yf0�nc�<�\S_�œw�Lr6�(�C~U���yF��K�����s��"C�q3C{^�˸����쮍\� �o���a�l��px3L^�9�Ck,�!m=�s�h�kۿP��{;����A� -myh�N^�|��]v�iU~Ӗ7��;E�Bc
����#����{��ة|-��� -S�l�)��b����1n>}3'b�D�W��ͨ�U�Ś�̴Fv�e�s>-�R�H�����W�õ�J��<Jll��*�]¶fT�Z�HŃ� -��2*���'��o@!�&c+���Lu(! -sw��a&#s2��)�U�)R��)� -�-u�"4���s�`�v� -��%�y5����"O��v�y��t_Zi,q����'�N���Z*X����R>��&�Ef|�~�[�@bKɭ��!o -L�l$n"i.>�^����R|�e��d(�0����A��֝:q��Ѭ{�R�eN>̩M��L>\�:�$[,d�(3Ֆ[��z�l��m}_~jo/.)�;0a"8��Y�Ǐ�'y<֙�,G����b$=�S��o\�V�iRr'de���#`�N:�U��,e�Ĉ'Q�N|�7�$��Z_F��� - ��b��^�2��̸8^�{~��σƨ�sv֙ҋ��cx�UX������ͪ[T�^K�����B���d����m���q��ؽ�*l��}QB���k?5��m{r�t����>�����Y��
���i��w�Fw�����FI˔A��T -��< -߳�N���F�I<�)59q���wx\�L�2�{&��P�M�aT�&�|�I��1�� -�"f���ĵC,lOZ�\�+,(�1 `�(ށ�i - -�!\ӆ�x -�%15��|W��$�^L2kqC� -6�~������yC+��� R�}pa����SC�3s��~zqbY�Bb^^~IbIjPF!�(��$�(U�8#�$�S�>��x -0000000000 00000 f
-0000020949 00000 n
-0000020876 00000 n
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000000 00000 f
-0000000016 00000 n
-0000000149 00000 n
-0000022549 00000 n
-0000062606 00000 n
-0000021271 00000 n
-0000022849 00000 n
-0000022736 00000 n
-0000021830 00000 n
-0000021988 00000 n
-0000022036 00000 n
-0000022620 00000 n
-0000022651 00000 n
-0000022923 00000 n
-0000023106 00000 n
-0000024120 00000 n
-0000041613 00000 n
-0000054524 00000 n
-0000062631 00000 n
-trailer
<</Size 29/Root 11 0 R/Info 28 0 R/ID[<D2B085C8EF9425BA7048C04C9B839056><3C67E84257574E33AD87C6A0321F10FF>]>>
startxref
62761
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/omnibox_star_lit.png b/chrome/app/theme/omnibox_star_lit.png Binary files differdeleted file mode 100644 index b5bd800..0000000 --- a/chrome/app/theme/omnibox_star_lit.png +++ /dev/null diff --git a/chrome/app/theme/omnibox_star_selected.png b/chrome/app/theme/omnibox_star_selected.png Binary files differdeleted file mode 100644 index 5dda354..0000000 --- a/chrome/app/theme/omnibox_star_selected.png +++ /dev/null diff --git a/chrome/app/theme/reload.png b/chrome/app/theme/reload.png Binary files differindex 99550be..c033579 100644 --- a/chrome/app/theme/reload.png +++ b/chrome/app/theme/reload.png diff --git a/chrome/app/theme/reload_d.png b/chrome/app/theme/reload_d.png Binary files differindex 37a4d1d..ec5811a 100644 --- a/chrome/app/theme/reload_d.png +++ b/chrome/app/theme/reload_d.png diff --git a/chrome/app/theme/reload_h.png b/chrome/app/theme/reload_h.png Binary files differindex 7ee1024..196727d 100644 --- a/chrome/app/theme/reload_h.png +++ b/chrome/app/theme/reload_h.png diff --git a/chrome/app/theme/reload_noborder_center.png b/chrome/app/theme/reload_noborder_center.png Binary files differdeleted file mode 100644 index d0d7a9b..0000000 --- a/chrome/app/theme/reload_noborder_center.png +++ /dev/null diff --git a/chrome/app/theme/reload_p.png b/chrome/app/theme/reload_p.png Binary files differindex 47aee77..a4d6ddd 100644 --- a/chrome/app/theme/reload_p.png +++ b/chrome/app/theme/reload_p.png diff --git a/chrome/app/theme/secure.png b/chrome/app/theme/secure.png Binary files differnew file mode 100644 index 0000000..c65d05a --- /dev/null +++ b/chrome/app/theme/secure.png diff --git a/chrome/app/theme/security_error.png b/chrome/app/theme/security_error.png Binary files differnew file mode 100644 index 0000000..6dbe71c --- /dev/null +++ b/chrome/app/theme/security_error.png diff --git a/chrome/app/theme/security_warning.png b/chrome/app/theme/security_warning.png Binary files differnew file mode 100644 index 0000000..09026ec --- /dev/null +++ b/chrome/app/theme/security_warning.png diff --git a/chrome/app/theme/star.png b/chrome/app/theme/star.png Binary files differnew file mode 100644 index 0000000..987aa04 --- /dev/null +++ b/chrome/app/theme/star.png diff --git a/chrome/app/theme/star_Template.pdf b/chrome/app/theme/star_Template.pdf new file mode 100755 index 0000000..3e995aa --- /dev/null +++ b/chrome/app/theme/star_Template.pdf @@ -0,0 +1,1641 @@ +%PDF-1.5
%����
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 30 0 R 55 0 R 80 0 R 105 0 R]/Order 106 0 R/RBGroups[]>>/OCGs[5 0 R 30 0 R 55 0 R 80 0 R 105 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 64336/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> + <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <rdf:Description rdf:about="" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:format>application/pdf</dc:format> + <dc:title> + <rdf:Alt> + <rdf:li xml:lang="x-default">starTemplate</rdf:li> + </rdf:Alt> + </dc:title> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmp="http://ns.adobe.com/xap/1.0/" + xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> + <xmp:MetadataDate>2009-08-11T10:37:28-07:00</xmp:MetadataDate> + <xmp:ModifyDate>2009-08-11T10:37:28-07:00</xmp:ModifyDate> + <xmp:CreateDate>2009-01-21T22:28:19-08:00</xmp:CreateDate> + <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool> + <xmp:Thumbnails> + <rdf:Alt> + <rdf:li rdf:parseType="Resource"> + <xmpGImg:width>256</xmpGImg:width> + <xmpGImg:height>248</xmpGImg:height> + <xmpGImg:format>JPEG</xmpGImg:format> + <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA+AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYqh9R1Gw0ywn1DUJ0tbK1Qy3FxKQqIiipZicVfJv5o/85WeYdUuZtO8kk6TpSlk/
STKDdzjpyUMCIVPb9r3HTFLw3VNb1nV7g3Gq39xf3DGplupXmcn/AFnLHFXaXres6RcC40q/uLC4
U1EtrK8Lg/6yFTir3P8AK7/nK3zBplzDp3ncnVdLYhP0kigXcI6cnC0Eyjv+33q3TFX1jp2o2Gp2
EGoafOl1ZXSCW3uIiGR0YVDKRihEYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
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</xmpGImg:image> + </rdf:li> + </rdf:Alt> + </xmp:Thumbnails> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" + xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" + xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> + <xmpMM:InstanceID>uuid:8467cc14-60a8-dc4b-8446-0f23925977fd</xmpMM:InstanceID> + <xmpMM:DocumentID>xmp.did:FE7F117407206811B4F28F4470BB07B1</xmpMM:DocumentID> + <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID> + <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> + <xmpMM:DerivedFrom rdf:parseType="Resource"> + <stRef:instanceID>xmp.iid:FD7F117407206811B4F28F4470BB07B1</stRef:instanceID> + <stRef:documentID>xmp.did:FD7F117407206811B4F28F4470BB07B1</stRef:documentID> + <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID> + <stRef:renditionClass>default</stRef:renditionClass> + </xmpMM:DerivedFrom> + <xmpMM:History> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:D27F11740720681191099C3B601C4548</stEvt:instanceID> + <stEvt:when>2008-04-17T14:19:15+05:30</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F97F1174072068118D4ED246B3ADB1C6</stEvt:instanceID> + <stEvt:when>2008-05-15T16:23:06-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FA7F1174072068118D4ED246B3ADB1C6</stEvt:instanceID> + <stEvt:when>2008-05-15T17:10:45-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:EF7F117407206811A46CA4519D24356B</stEvt:instanceID> + <stEvt:when>2008-05-15T22:53:33-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F07F117407206811A46CA4519D24356B</stEvt:instanceID> + <stEvt:when>2008-05-15T23:07:07-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T10:35:43-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F97F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T10:40:59-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FA7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:26:55-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FB7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:29:01-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FC7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:29:20-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FD7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:30:54-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FE7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:31:22-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:B233668C16206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T12:23:46-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:B333668C16206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T13:27:54-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:B433668C16206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T13:46:13-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F11740720681197C1BF14D1759E83</stEvt:instanceID> + <stEvt:when>2008-05-16T15:47:57-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F87F11740720681197C1BF14D1759E83</stEvt:instanceID> + <stEvt:when>2008-05-16T15:51:06-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F97F11740720681197C1BF14D1759E83</stEvt:instanceID> + <stEvt:when>2008-05-16T15:52:22-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FA7F117407206811B628E3BF27C8C41B</stEvt:instanceID> + <stEvt:when>2008-05-22T13:28:01-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FF7F117407206811B628E3BF27C8C41B</stEvt:instanceID> + <stEvt:when>2008-05-22T16:23:53-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:07C3BD25102DDD1181B594070CEB88D9</stEvt:instanceID> + <stEvt:when>2008-05-28T16:45:26-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F87F1174072068119098B097FDA39BEF</stEvt:instanceID> + <stEvt:when>2008-06-02T13:25:25-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F117407206811BB1DBF8F242B6F84</stEvt:instanceID> + <stEvt:when>2008-06-09T14:58:36-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F97F117407206811ACAFB8DA80854E76</stEvt:instanceID> + <stEvt:when>2008-06-11T14:31:27-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:0180117407206811834383CD3A8D2303</stEvt:instanceID> + <stEvt:when>2008-06-11T22:37:35-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F117407206811818C85DF6A1A75C3</stEvt:instanceID> + <stEvt:when>2008-06-27T14:40:42-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FA7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:25:39-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FB7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:26:20-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FC7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:27:11-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FD7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:28:03-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FE7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:28:17-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + </rdf:Seq> + </xmpMM:History> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"> + <illustrator:StartupProfile>Print</illustrator:StartupProfile> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" + xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" + xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> + <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> + <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> + <xmpTPg:NPages>1</xmpTPg:NPages> + <xmpTPg:MaxPageSize rdf:parseType="Resource"> + <stDim:w>19.000000</stDim:w> + <stDim:h>19.000000</stDim:h> + <stDim:unit>Pixels</stDim:unit> + </xmpTPg:MaxPageSize> + <xmpTPg:PlateNames> + <rdf:Seq> + <rdf:li>Cyan</rdf:li> + <rdf:li>Magenta</rdf:li> + <rdf:li>Yellow</rdf:li> + <rdf:li>Black</rdf:li> + </rdf:Seq> + </xmpTPg:PlateNames> + <xmpTPg:SwatchGroups> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Default Swatch Group</xmpG:groupName> + <xmpG:groupType>0</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>White</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>255</xmpG:green> + <xmpG:blue>255</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>Black</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>27</xmpG:red> + <xmpG:green>24</xmpG:green> + <xmpG:blue>24</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Red</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>7</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Yellow</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>242</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Green</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>157</xmpG:green> + <xmpG:blue>62</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Cyan</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>160</xmpG:green> + <xmpG:blue>239</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Blue</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>35</xmpG:red> + <xmpG:green>28</xmpG:green> + <xmpG:blue>129</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Magenta</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>120</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>199</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>26</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>16</xmpG:green> + <xmpG:blue>29</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>55</xmpG:green> + <xmpG:blue>10</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>123</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>157</xmpG:green> + <xmpG:blue>32</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>251</xmpG:red> + <xmpG:green>237</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>202</xmpG:red> + <xmpG:green>221</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>101</xmpG:red> + <xmpG:green>192</xmpG:green> + <xmpG:blue>39</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>173</xmpG:green> + <xmpG:blue>54</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>136</xmpG:green> + <xmpG:blue>51</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>89</xmpG:green> + <xmpG:blue>42</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>173</xmpG:green> + <xmpG:blue>94</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>155</xmpG:green> + <xmpG:blue>140</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>154</xmpG:green> + <xmpG:blue>221</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>96</xmpG:green> + <xmpG:blue>176</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>29</xmpG:red> + <xmpG:green>36</xmpG:green> + <xmpG:blue>128</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>30</xmpG:red> + <xmpG:green>21</xmpG:green> + <xmpG:blue>80</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>91</xmpG:red> + <xmpG:green>18</xmpG:green> + <xmpG:blue>128</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>141</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>126</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>158</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>79</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>235</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>69</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>101</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>184</xmpG:red> + <xmpG:green>165</xmpG:green> + <xmpG:blue>135</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>142</xmpG:red> + <xmpG:green>113</xmpG:green> + <xmpG:blue>100</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>97</xmpG:red> + <xmpG:green>82</xmpG:green> + <xmpG:blue>69</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>75</xmpG:red> + <xmpG:green>57</xmpG:green> + <xmpG:blue>50</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>192</xmpG:red> + <xmpG:green>134</xmpG:green> + <xmpG:blue>85</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>162</xmpG:red> + <xmpG:green>103</xmpG:green> + <xmpG:blue>58</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>128</xmpG:red> + <xmpG:green>73</xmpG:green> + <xmpG:blue>42</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>105</xmpG:red> + <xmpG:green>58</xmpG:green> + <xmpG:blue>27</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>84</xmpG:red> + <xmpG:green>41</xmpG:green> + <xmpG:blue>11</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>49</xmpG:red> + <xmpG:green>26</xmpG:green> + <xmpG:blue>15</xmpG:blue> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Grays</xmpG:groupName> + <xmpG:groupType>1</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>27</xmpG:red> + <xmpG:green>24</xmpG:green> + <xmpG:blue>24</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>49</xmpG:red> + <xmpG:green>49</xmpG:green> + <xmpG:blue>50</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>70</xmpG:red> + <xmpG:green>71</xmpG:green> + <xmpG:blue>73</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>89</xmpG:red> + <xmpG:green>91</xmpG:green> + <xmpG:blue>93</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>109</xmpG:red> + <xmpG:green>111</xmpG:green> + <xmpG:blue>114</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>128</xmpG:red> + <xmpG:green>130</xmpG:green> + <xmpG:blue>133</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>149</xmpG:red> + <xmpG:green>152</xmpG:green> + <xmpG:blue>155</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>173</xmpG:red> + <xmpG:green>176</xmpG:green> + <xmpG:blue>178</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>197</xmpG:red> + <xmpG:green>200</xmpG:green> + <xmpG:blue>202</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>224</xmpG:red> + <xmpG:green>225</xmpG:green> + <xmpG:blue>226</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>237</xmpG:red> + <xmpG:green>238</xmpG:green> + <xmpG:blue>239</xmpG:blue> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Brights</xmpG:groupName> + <xmpG:groupType>1</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>7</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>68</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>216</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>151</xmpG:green> + <xmpG:blue>56</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>17</xmpG:red> + <xmpG:green>43</xmpG:green> + <xmpG:blue>137</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>118</xmpG:red> + <xmpG:green>35</xmpG:green> + <xmpG:blue>135</xmpG:blue> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + </rdf:Seq> + </xmpTPg:SwatchGroups> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> + <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> + </rdf:Description> + </rdf:RDF> +</x:xmpmeta> + + + + + + + + + + + + + + + + + + + + + +<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[107 0 R]/Type/Pages>>
endobj
107 0 obj
<</ArtBox[1.79199 2.18945 17.8027 17.5601]/BleedBox[0.0 0.0 19.0 19.0]/Contents 108 0 R/LastModified(D:20090811103728-07'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 109 0 R>>/Resources<</ExtGState<</GS0 110 0 R>>/Properties<</MC0 105 0 R>>>>/Thumb 111 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
108 0 obj
<</Filter/FlateDecode/Length 398>>stream
+H�\S�N�0��+����I�+q��ā���@���_G�u��������^�qw�s|x��p ����yo�;0 ������>������o�D���N�W�mT*K<}ؿBb���1 e�ѱ �� K���2U�5��9�JE�7���5�1�2�� +Ԫ�j"��A%O�����62��Q�n��E���!H����P�-F\9L����ё�_���ِ[�_�^��2W�:-�_W~Ϫ�F���7�0S�P��l��P���{�U��m����iijآ�V,�nĄ�}h
�!�u>"t:��u|�m����;v�p +ۍ���kcq]U$k��B:T���3Y/�FJv8DT�� a�^�9��+!���c�o�K;�9��pO���O� +8;Yc,@*f)`0E;+-!*9~>
endstream
endobj
112 0 obj
[/Indexed/DeviceRGB 255 113 0 R]
endobj
113 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 +VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< +PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
105 0 obj
<</Intent 114 0 R/Name(Layer 1)/Type/OCG/Usage 115 0 R>>
endobj
114 0 obj
[/View/Design]
endobj
115 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
110 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
109 0 obj
<</LastModified(D:20090811103728-07'00')/Private 116 0 R>>
endobj
116 0 obj
<</AIMetaData 117 0 R/AIPDFPrivateData1 118 0 R/AIPDFPrivateData10 119 0 R/AIPDFPrivateData11 120 0 R/AIPDFPrivateData2 121 0 R/AIPDFPrivateData3 122 0 R/AIPDFPrivateData4 123 0 R/AIPDFPrivateData5 124 0 R/AIPDFPrivateData6 125 0 R/AIPDFPrivateData7 126 0 R/AIPDFPrivateData8 127 0 R/AIPDFPrivateData9 128 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 11/RoundtripVersion 14>>
endobj
117 0 obj
<</Length 946>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (Nicholas Jitkoff) ()
%%Title: (star_Template.pdf)
%%CreationDate: 8/11/09 10:37 AM
%%Canvassize: 16383
%%BoundingBox: 1 2 18 18
%%HiResBoundingBox: 1.79199 2.18945 17.8027 17.5601
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 0 19 19
%AI3_TemplateBox: 12.5 12.5 12.5 12.5
%AI3_TileBox: -296.5 -386.5 315.5 405.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -58 53 12 1320 661 90 0 0 78 210 1 0 0 1 1 0 1 1 0
%AI5_OpenViewLayers: 7
%%PageOrigin:0 0
%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
118 0 obj
<</Length 14108>>stream
+%%BoundingBox: 1 2 18 18
%%HiResBoundingBox: 1.79199 2.18945 17.8027 17.5601
%AI7_Thumbnail: 128 124 8
%%BeginData: 13966 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD3BFFA87D2727F827F85252A8FD74FFA827FD06F827F8F8F852A8
%FD71FF7DF8F8F827F827F827F827F827F8277DFD6FFF7DF8F8F827F8F8F8
%27F8F8F827FD04F87DFD6DFFA8F827F827F827F827F827F827F827F827F8
%F87DFD6CFFFD05F827F8F8F827F8F8F827F8F8F827F827A8FD6AFF52F8F8
%27F827F827F827F827F827F827F827F827F852FD69FFA827F8F8F827F8F8
%F827F8F8F827F8F8F827FD05F8FD69FFA8F827F827F827F827F827F827F8
%27F827F827F827F8F87DFD68FF27FD04F827F8F8F827F8F8F827F8F8F827
%F8F8F827F852FD68FF27F827F827F827F827F827F827F827F827F827F827
%F82727FD67FF7DF8F8F827F8F8F827FD07F827F8F8F827FD04F87DFD66FF
%52F8F827F827F827F827F8272727F827F827F827F827F827F852FD65FFA8
%27F8F8F827F8F8F827F8F8F87D7DF8F827F8F8F827F8F8F820F8FD65FFA8
%F827F827F827F827F827F827A8FFF827F827F827F827F827F8207DFD64FF
%52F8F827F8F8F827FD04F827FFFF27F8F8F827F8F8F827F8F8F852FD64FF
%27F827F827F827F827F827F87DFFFF52F8F827F827F827F827F82727FD63
%FFA8F8F8F827F8F8F827FD04F8A8FFFFA8F8F8F827F8F8F827FD04F87DFD
%62FF52F8F827F827F827F827F8F827FD04FF27F827F827F827F827F827F8
%76FD61FFA827F827F8F8F827F8F8F827F852FD04FF52FD04F827F8F8F827
%F8F8F8FD61FFA8F827F827F827F827F827F827A8FD04FFA8F827F827F827
%F827F827F827A8FD60FF52F8F827F8F8F827FD04F827FD05FFA827F8F8F8
%27F8F8F827F8F8F852FD60FF27F827F827F827F827F827F87DFD06FF52F8
%F827F827F827F827F82027FD5FFFA8F820F8F8F827F8F8F827F8F87DFD06
%FFA8F820F8F8F827F8F8F827F8F87DFD5EFF52F8F827F827F827F827F827
%27FD08FF27F827F827F827F827F827F87DFD5EFF27F827F8F8F827F8F8F8
%27F852FD08FF52FD04F827F8F8F827F8F827FD5DFFA8F827F827F827F827
%F827F827A8FD08FFA8F827F827F827F827F827F820A8FD5CFF52FD04F827
%F8F8F827F8F8F8FD09FFA827F827F8F8F827F8F8F827F852FD5CFF27F827
%F827F827F827F827F87DFD0AFF52F8F827F827F827F827F82727FD5BFFA8
%F827F8F8F827F8F8F827F8F87DFD0AFFA8F827F8F8F827F8F8F827F8F8A8
%FD5AFF7DF8F827F827F827F827F82727FD0CFF27F827F827F827F827F827
%F87DFD5AFF27F8F8F827F8F8F827F8F8F852FD0CFF4BF8F827F8F8F827FD
%04F827FD59FFCAF827F827F827F827F827F8277DFD0CFFA8F827F827F827
%F827F827F827A8FD58FF52FD04F827F8F8F827F8F8F8FD0DFFA827F827F8
%F8F827F8F8F827F87DFD58FF52F827F827F827F827F827F852FD0EFF52F8
%F827F827F827F827F82027FD57FFA8F8F8F827F8F8F827FD04F87DFD0EFF
%7DF8F8F827F8F8F827F8F8F820A8FD56FF7DF8F827F827F827F827F82727
%FD0FFFA827F827F827F827F827F827F87DFD35FFFD21A84BF8F8F827F8F8
%F827F8F8F852FD10FF27F8F827F8F8F827FD04F827FD20A8FD12FF7D5227
%27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8
%27F827F827F827F827F827F827F8F87DFD10FFA8F827F827F827F827F827
%F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827
%F827F827F82752A8FD0CFFA827FD26F827F8F8F827FD05F8FD11FFA827F8
%F8F827F8F8F827FD27F8277DFD09FF7DF8F8F827F827F827F827F827F827
%F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827
%F827F827F852FD12FF52F8F827F827F827F827F827F827F827F827F827F8
%27F827F827F827F827F827F827F827F827F827F827F827F827F827F8F852
%FD07FF52F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827
%F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827FD04F87DFD12FF7DF8F8
%F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827
%F8F8F827F8F8F827F8F8F827F8F8F827F8F827FD05FF7DF827F827F827F8
%27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8
%27F827F827F827F827F827F827F8FD13FFA827F827F827F827F827F827F8
%27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8
%27F827F827F827F8F852FFFFFFA8F820F8F8F827F8F8F827F8F8F827F8F8
%F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827
%F8F8F827F852FD14FF27FD04F827F8F8F827F8F8F827F8F8F827F8F8F827
%F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8
%7DFFFF2727F827F827F827F827F827F827F827F827F827F827F827F827F8
%27F827F827F827F827F827F827F827F827F827F827F827F8F87DFD14FF7D
%F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827
%F827F827F827F827F827F827F827F827F827F827F852FF7DF8F827F8F8F8
%27F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8
%F8F827F8F8F827F8F8F827F8F8F827F8A8FD14FFA827F8F8F827F8F8F827
%F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8
%F827F8F8F827F8F8F827F8F8F8A852F827F827F827F827F827F827F827F8
%27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8
%27F827F827F852FD16FF2720F827F827F827F827F827F827F827F827F827
%F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827
%F8F85227FD04F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8
%F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F852FD16FF7DF8
%27F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8
%F8F827F8F8F827F8F8F827F8F8F827F8F8F827F82727F827F827F827F827
%F827F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8
%F827F8F8F827F8F8F827F8F8F8FD17FFA827F8F8F827F8F8F827F8F8F827
%F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F827
%F827F827F827F827F8F827F8F8F827F8F8F827F8F8275227522752275227
%522752275227522752275227522752275227522752275227522752275227
%52FD18FF5252275227522752275227522752275227522752275227522752
%2752275227522752275227525252F827F8F8F827F8F8F827F8F827F827F8
%27F827F827F827F852A8FD65FF2720F827F827F827F827F827FD04F827F8
%F8F827F8F8F827F8277DFD62FF7DFD05F827F8F8F827F8F8F82752F827F8
%27F827F827F827F827F8F852FD60FF52F827F827F827F827F827F827F827
%527DF8F827F8F8F827F8F8F827F820F8F827A8FD5CFF7D27F8F8F827F8F8
%F827F8F8F827F8F8F87DFFF827F827F827F827F827F827F827F820F87DFD
%5AFF7D20F827F827F827F827F827F827F827F827A8FF7DF8F8F827F8F8F8
%27F8F8F827FD05F852A8FD57FF27FD04F827F8F8F827F8F8F827FD04F852
%FFFFFF27F827F827F827F827F827F827F827F827F8277DFD54FFA8F8F8F8
%27F827F827F827F827F827F827F82727FD04FFA820F827F8F8F827F8F8F8
%27F8F8F827F820F8F852FD52FF7DF8F8F827F8F8F827F8F8F827F8F8F827
%F8F8F8A8FD05FFA827F827F827F827F827F827F827F827F827F8F827A8FD
%4EFFA827F827F827F827F827F827F827F827F827F8F8F8A8FD07FFA827FD
%05F827F8F8F827F8F8F827FD05F87DFD4CFF7D20F8F8F827F8F8F827F8F8
%F827F8F8F827F8F827FD0BFF7DF820F827F827F827F827F827F827F827F8
%27F852FD4AFF52F8F827F827F827F827F827F827F827F827F82752FD0DFF
%A827F8F827F8F8F827F8F8F827F8F8F827F8F8F827A8FD46FFA827F8F827
%F8F8F827F8F8F827F8F8F827F8F8F8277DFD10FF52F8F827F827F827F827
%F827F827F827F827F8277DFD44FF7DF820F827F827F827F827F827F827F8
%27F827F852A8FD12FF7DF8F827F8F8F827F8F8F827F8F8F827FD04F827FD
%41FFA852F8F8F827F8F8F827F8F8F827F8F8F827F8F8F87DFD15FFA852F8
%27F827F827F827F827F827F827F827F8F8F8A8FD3EFF7D27F827F827F827
%F827F827F827F827F827F8F827FD19FF52F8F8F827F8F8F827F8F8F827F8
%F8F827F8F8F876FD3CFF52F8F827F8F8F827F8F8F827F8F8F827F820F8F8
%52FD1BFFA8F8F8F827F827F827F827F827F827F827F827F84BA8FD38FFA8
%27F8F827F827F827F827F827F827F827F827F8277DFD1EFF27F8F827F8F8
%F827F8F8F827F8F8F827F8F8F8207DFD36FF7DF8F8F827F8F8F827F8F8F8
%27F8F8F827F8F8F852A8FD20FF5227F827F827F827F827F827F827F827F8
%27F8F852FD34FF52F827F827F827F827F827F827F827F827F8F8F87DFD23
%FF7D27F8F8F827F8F8F827F8F8F827F8F8F827F8F8F8A8FD30FF7D27F827
%F8F8F827F8F8F827F8F8F827F820F8F827A8FD26FF52F820F827F827F827
%F827F827F827F827F8F8F87DFD2EFF5227F827F827F827F827F827F827F8
%27F827F8F852FD29FF7DF8F8F827F8F8F827F8F8F827F8F8F827F8F8F852
%A8FD2BFF27F8F827F8F8F827F8F8F827F8F8F827F8F8F8207DFD2BFFA827
%F8F827F827F827F827F827F827F827F827F8277DFD28FFA827F8F827F827
%F827F827F827F827F827F827F852A8FD2EFF52F8F820F827F8F8F827F8F8
%F827F8F8F827F827A8FD27FFFD05F827F8F8F827F8F8F827FD05F852FD31
%FF7D27F827F827F827F827F827F827F827F8F852FD28FF52F827F827F827
%F827F827F827F827F8F8F8A8FD33FFA852F8F8F827F8F8F827F8F8F827F8
%F8F87DFD28FF7DF8F827F8F8F827F8F8F827FD04F827FD37FF7DF827F827
%F827F827F827F827F827FD2AFFF827F827F827F827F827F827F8277DFD39
%FFA8F827F8F8F827F8F8F827F8F827FD2AFF52F827F8F8F827F8F8F827F8
%277DFD3AFFA827F827F827F827F827F827F87DFD2AFF7DF8F827F827F827
%F827F82720FD3BFF7DF8F8F827F8F8F827F8F8F827A8FD2BFFF8F8F827F8
%F8F827FD04F87DFD3AFF27F8F827F827F827F827F82052FD2CFF52F827F8
%27F827F827F827F852FD39FFA827F8F8F827F8F8F827F8F8F87DFD2CFF7D
%F8F827F8F8F827F8F8F827F8A8FD38FF7DF827F827F827F827F827F827A8
%FD2DFFF827F827F827F827F827F8F87DFD38FF27F8F827F8F8F827FD04F8
%27FD2EFF52F8F8F827F8F8F827F8F8F852FD37FFA827F827F827F827F827
%F827F87DFD2EFF7DF8F827F827F827F827F82720FD37FF7DF8F8F827F8F8
%F827F8F8F827A8FD2EFFA8F8F8F827F8F8F827FD04F87DFD36FF27F8F827
%F827F827F827F8F827FD30FF52F827F827F827F827F827F852FD35FFA827
%F827F8F8F827F8F8F827F87DFD17FFA8A8FD17FF52FD04F827F8F8F827F8
%F8F8FD35FF7DF827F827F827F827F827F827A8FD16FFA8F8277DFD17FFF8
%27F827F827F827F827F8277DFD34FF52F8F827F8F8F827FD04F827FD16FF
%52FD04F852FD16FF4BF8F8F827F8F8F827F8F8F852FD33FFA827F827F827
%F827F827F827F87DFD14FFA827F827F827F8F827A8FD14FF52F8F827F827
%F827F827F827F8FD33FF7DF827F8F8F827F8F8F827F8F8A8FD13FF52FD04
%F827FD05F87DFD13FFA8F820F8F8F827F8F8F827F8F87DFD32FF5220F827
%F827F827F827F82027FD13FF52F8F827F827F827F827F827F852FD13FF52
%F827F827F827F827F827F852FD31FFA827F827F8F8F827F8F8F827F87DFD
%11FFA8F8F8F827F8F8F827F8F8F827F8F8F8277DFD11FF52FD04F827F8F8
%F827F8F8F8FD31FFA8F827F827F827F827F827F827A8FD10FF7DF827F827
%F827F827F827F827F827F827F82752FD10FFA8F827F827F827F827F827F8
%F87DFD30FF52FD04F827F8F8F827F8F827FD0FFFA827F8F8F827F8F8F827
%F8F8F827F8F8F827FD04F827A8FD0FFF27F827F8F8F827F8F8F827F852FD
%30FF27F827F827F827F827F827F87DFD0EFF7D27F827F827F827F827F827
%F827F827F827F827F827F8F8F8A8FD0EFF52F8F827F827F827F827F82727
%FD2FFFA8F827F8F8F827F8F8F827F8F87DFD0DFF52F8F827F8F8F827F8F8
%F827F8F8F827F8F8F827F8F8F827F8F8F852FD0DFFA8F827F8F8F827F8F8
%F827F8F87DFD2EFF52F8F827F827F827F827F82727FD0CFFA827F8F827F8
%27F827F827F827F827F827F827F827F827F827F827F827F827A8FD0CFF27
%F827F827F827F827F827F876FD2DFFA827F8F8F827F8F8F827F8F8F87DFD
%0BFF7DF8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F8
%27FD04F87DFD0BFF52F8F827F8F8F827FD04F827FD2DFFA8F827F827F827
%F827F827F827A8FD09FFA852F827F827F827F827F827F827F827F827F827
%F827F827F827F827F827F827F827F8F852FD0AFFA8F827F827F827F827F8
%27F820A8FD2CFF52FD04F827F8F8F827F8F820FD09FF7D27F827F8F8F827
%F8F8F827F8F8F827F820FD05F827F8F8F827F8F8F827F8F8F827F8F8F8A8
%FD09FF27F827F8F8F827F8F8F827F852FD2CFF27F827F827F827F827F827
%F87DFD08FF5220F827F827F827F827F827F827F827F827F8F8527DF820F8
%27F827F827F827F827F827F827F8F8F87DFD08FF52F8F827F827F827F827
%F82727FD2BFFA8F8F8F827F8F8F827FD04F87DFD07FF27F8F827F8F8F827
%F8F8F827F8F8F827F8F8F8277DFFFF7DF8F8F827F8F8F827F8F8F827F8F8
%F827F8F8F827A8FD06FFA8F8F8F827F8F8F827FD04F87DFD2AFF52F8F827
%F827F827F827F82727FD06FFA8F8F8F827F827F827F827F827F827F827F8
%27F852A8FD05FF27F8F827F827F827F827F827F827F827F827F8277DFD06
%FF27F827F827F827F827F827F87DFD2AFF27F8F8F827F8F8F827F8F8F852
%FD05FF52FD05F827F8F8F827F8F8F827FD05F852FD08FF52F8F820F827F8
%F8F827F8F8F827F8F8F827F8F852FD05FF52F8F827F8F8F827FD04F827FD
%29FFA8F827F827F827F827F827F8F87DFFFFFFA827F827F827F827F827F8
%27F827F827F827F8F8F8A8FD0AFF7D27F827F827F827F827F827F827F827
%F827F8F827A8FFFFFFA8F827F827F827F827F827F827A8FD28FF52F8F827
%F8F8F827FD05F8FFFFFF52F8F827F8F8F827F8F8F827F8F8F827FD04F827
%FD0DFFA852F8F8F827F8F8F827F8F8F827F8F8F827F8F8F87DFFFFA827F8
%F8F827F8F8F827F8F8F87DFD28FF52F827F827F827F827F827F852FFFF52
%F8F827F827F827F827F827F827F827F827F8277DFD10FF7DF827F827F827
%F827F827F827F827F827F827F852FFFF52F8F827F827F827F827F82727FD
%28FFF8F8F827F8F8F827FD04F8A8A8FD05F827F8F8F827F8F8F827F8F8F8
%27F827A8FD12FFA827F8F820F827F8F8F827F8F8F827F8F8F827F827A8A8
%F8F8F827F8F8F827F8F8F827A8FD26FFA827F827F827F827F827F827277D
%F8F8F827F827F827F827F827F827F827F820F852FD16FF52F8F827F827F8
%27F827F827F827F827F827F8275227F827F827F827F827F827F8FD27FFA8
%FD05F827F8F8F827FD07F827F8F8F827F8F8F827FD05F87DFD18FF7D27F8
%F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F8A8
%FD27FF27F827F827F827F827F827F827F827F827F827F827F827F827F827
%F8F827FD1BFFA852F827F827F827F827F827F827F827F827F827F827F827
%F827F827F827F8FD28FF27FD04F827F8F8F827F8F8F827F8F8F827F8F8F8
%27F8F8F827F8F852FD1EFF52FD05F827F8F8F827F8F8F827F8F8F827F8F8
%F827F8F8F827F827FD28FF52F827F827F827F827F827F827F827F827F827
%F827F827F827F8277DFD20FFA8F8F8F827F827F827F827F827F827F827F8
%27F827F827F827F8F852FD28FF7DF8F827F8F8F827F8F8F827F8F8F827F8
%F8F827FD05F852A8FD23FF27FD04F827F8F8F827F8F8F827F8F8F827F8F8
%F827F8F8F8A8FD29FF2727F827F827F827F827F827F827F827F827F827F8
%27F87DFD26FF7D27F827F827F827F827F827F827F827F827F827F827F852
%FD2AFFA8F827F8F8F827F8F8F827F8F8F827F8F8F827F8F827A8FD28FFA8
%27F827F8F8F827F8F8F827F8F8F827F8F8F827F8F87DFD2BFF7DF827F827
%F827F827F827F827F827F827F8F852FD2CFF52F827F827F827F827F827F8
%27F827F827F8F852FD2DFF52FD05F827F8F8F827F8F8F827F8207DFD2EFF
%7DFD05F827F8F8F827F8F8F827F8F852FD2FFF7DF8F8F827F827F827F827
%F827F852A8FD31FF27F8F827F827F827F827F827F8277DFD31FFA827FD09
%F8207DFD34FF7D27FD09F852A8FD34FFA87D274B2727277D7DFD38FFA852
%52272727527DA8FD39FFA8FD41FFA8FD1EFFFF
%%EndData
endstream
endobj
119 0 obj
<</Filter[/FlateDecode]/Length 15322>>stream
+H��Wk[�H���vEAnrQ@$!�0^@pt�4I-!�\t�_�V'H�;�<�����NU�:]x̡�ϡ����T�4���Z�1��UŘ���}D�UmUz��X6���X��#}�� +�����M��
�GY�C��AUk��o�EW� +2���!��?�ʢ���)s^�O`�*��H +��KO�$��W��y�wQ0C-�Tm`߇�c�;���1!tw�/9�`/4�KeRUD(%@�Pa@�[H�V��%}�ĕ�iMV��ڮ8r�p��ý���0a��;����J�VtJ���먯>\Z�]�o�sԟ����\M�9�
7�<�?U�� +#
;[��Ѡ]��m� ����E���g��E߃���&=�f�\�iS�Gv�S&��S�J�&\)P^��ݓ��p^�|���{:���ݠ3KXf�{��n���"�RJ��?�����-ނ`S��)p�
��ٻ�+1֘A�:m�����ׄ +6&S����]O6O<]Q�df�+hg�����P������<55:dI����A��%�V�T�ʐ'����F�w�'�f����W�~�4mfo +0J/0��0<���[�R�t�W7�d^��k�X��@�1��}P]x��I��� �J=����t��8��g��!���9I���N� i<QGxc&�s�ػj�h�%LF�2sm��a� :�(�����B��L�Q�m�Hưf �h���)����@{�Ԍ�M2��N�N�S��@����Q�#�ZȺ|;9�(�ʺ_jN&G�~vɟ�j�d\)m�iQ���{J�lwuޙ����i�9H�K�V��]A��-���^�LC��M`$b�U�C���e�Jx�-����$��pĞ�J������S���5J��AJ ��l1y|�uʷ��s�&|��u����a?�S�O+���v�∾��������O +��q��c�^�L1S)'��x2���³��6����n1�E�,]s�u��tj�?/k�|�4J�� +��vo�UM��2B%��ܞ��=���sC��sՆ��fEHn��gy�����·�63��L����,EZ˝��e��A徘�#Ð�����]Xɪ<��#t��^.�7�.�7J��m|&O[������m�@�K��m�U����<or��
��p�%s-p��e1u,����<�� +���O�bi��R"�n�u��ω"�o4T�����x,�3�|�҇S����{Z���[/�N1w��_�s��"�����Q=��L&�w�9M��C�l|bQN��-�M2������(����G��0����Ў�{-P,U��r�0�C]�w�B��>��-�.��l�[fJ +�pB8������9��ۃU� `�wΧ�^`:p?]�M$i��Z�G+ՠ����m�Y��sH�F�^�oo������E��;/�B�A_�/���Z�O~o>�ɼMK���x��'o����~,��t4�z�Rw7 ,<e2W�:�w�x�q�ݳ��#�ٹqms�o�"���~�*�p1�4�������\f]yp +q��;��9�%c-P����S�X�U~�- +��ر����|�f3�.�S�9�㾺֓G���!09� "G6`�Dμ��ZB�v�jo��tw�S�Tny�!��+N�r��b(c��13}�a0�=��]#J3�~k���9��%���rD43 +�P;LK��JCQ�<����)K�Bdf�&C���ۮM�k^��䳐���Ľ��ve��%y���<�ݴ��� �F�c�|��3s�u�_�fD>9���I��m�^�dQ����k]�p"�B7�����1������wL{��R�pB�j\�!Ӕ�^x��a�`y�uK?/{8X{Xj]P�~�-H_�7�V�?�?ᧉe��g�=�l���6L��f�b�J�n|ǕH�c>Ko4�VL`�X�u�����gN��S�dߕP��E��yj�/2t�3��n�!Ӛ�8��d&4U�"pe҅.P����m̴n�y�.C�v�y��hѲ�g�O�jܞ �o'V�iL���3g1)6g��R�����,��M[�),zZ�7����O�����'����]�&Gv�^� _k^��_>jZ��KV9Hˎa1�xQ��y��$�8$lP�hn"��Q~����C^!-��G����)��|�,�K��:9�3d�P"��}G�jX ��x�w)#�D���<��4a0���;X`�~}���d�C�g����U�O~��OB�<о��SۿjZ�q�%1�"-���+3U~��T-���|EH����^~ +*�
��:�b�^�]�!�n��H5w�Y�RU���#��Ō�=�v�D�: �T�T��`MR�j��E=��P�m� �?4��3o���P���4D!��E��JVu����9���y���S� +��[�L�t#M`t���YV7+���T�mɭx�5z�C�G���J�Q��l=9�7���&*S�����&:�324��6���� e��~2mn�17��6r.�1�7:?�(��ƚ8����6�rM��TᓗX� +�S�Al��uEt+�c����J�,.E���6a��BN������fj ��SKNӐߖ +
�,��ȳ[\"���6��OC5>�q/��@����B���uJ��L�j[�eI��Z��3�-���)6k�jq�� �M�X +!��NQ�ߠ*�nr��2+�SĬ\bu���wU��[��4����������M������mZ����6�-����|������6RR���e'���rHA�e&�v�a2�-�kG��&n,u.[�#��Ha㠝8EV�ń}~-Ā?��vՃ�&4��tj����X�����t��{��'��V0��5�sKw���ꚤUj/���90�r�g�8��vӨ_��?��8�x�����}�e�4����V/���[]V8ԾN܃Dr��8K����>q,�OT�60�����s�]I�R�*Ծ�_�2R?6���.U��|G����{�eo㹂SF�#�� +�Q�q��b�Y�8�Qvi�@hk�hNj[�X������=�}bG>cb-������܀YTg�"L����à�=����>�� +0%�W9��[�IPo�Bզc�&���~a�>���l@��4.��s�T��ዻՐMv?"L#PW�f;(B���_����V��
��(_�*�h�+Н��3�Sm��%���>/^�6� +�%�߇ȍQ��I(�
����]��� �͋�u���:���u]���2�Xq�ײ�lG¶#�+�.�����Z��+o��.Ĉ|�x��^2���|��u� ��L��Jf1�o8e)\�U%�B�A:c2ƴ��W~w
x�{�{���E�̒�R#29�#�U�n�!7pg���g�h� A�Ov���" +X��v�[�������W:�[(t�xs��8�S��P� ���?�T�yv)T~[��D� +��g]��=с�3�*�ʉ�J@�Z���tn�|�.&�e}�R�I�荻#6�dUQ�O[���j�3�V �g^��H�h�Gt{<=�m����d�O��R)ͬ������rʊ!j��/�c/�w�b���� +� ��&�d�-���gcOg1�(��nB6N�f.�w�Qxuw�RV��W�o���;���k�l��(�kcPX�#�����H+�fo(�)��X^�%��PRp$�T����5�j��+�E�/�ton�P�tonG�7_�is�6�Ң/m� �Z�h=L��ҷ��3)� W�.��(L}�����L��;VW�_����:q���&�O?z�ܤ;� +�er�zoq����}�H�lAHm��#U/f�D��/����]m�[ +�V�RneGL�Q��~�=��l�4��̷bd&�-�f0s��Vr�
�_+F�5�4�P��U͏P]�����Y�b&9*T�[�2u�}��t�͕9qQ�+~ZQӒ�<f,�����U%b`I��Ȱ��H�j\;%V��%I�3��sUI�����W�bVWQ\@G��}�)S��g�n�P��'�d�&oq�1N%���^�V����
���ܙ�Eyt/U���٦��#�ZkY�n���n/�]Ǯ0�|=���}�(u��ه��M��uk������̹���F����m{�2���Օ ��er +�1U��p�f�!��R+��.�}��k�� +sl���u��I���?�����<p�;msQ��Y����hTΫ�lՋA«� s�ɝA9�����z��&<ٗG� �e�s���\�3(�U9�y�����P�]1C���Sh+;��3g��D�U�V�SWj���OfZ��\�Q���<���~�/ǖ����X����̸q��wPO�B�~a��P�b�G�|?KJ^��_Y��+N�7�����0c7�;s�kL��[����Owm����-�[HD(�[ܓ�>ȼ(\��*��˰�(��U����߯�|>e���.�ӱY1N� +1�+@����C]����T�T;)���'�I_? +�gw6Î��T4m�{}�(����X �4SƪA0��G�8|���9"UWMTG���-a�G<��@f�E�T��eu�cᑟ/,��Tc����58e�J�x�aC6���n"I��DX�lS��[�:�)�i"���os�5Eֈ\�����u� �����
�$�X'��«��l�$Rm�{��$#8ϫ�D���{(K�8� ���u�P�c�8�?i�}��;?�O���^x�|b��������#��_���(�Gl���u I�gr�v +��˂e"#�izR��W!��Hh�[��(��»m�dɜ.�T؉�"y2]�0h/��/��24d���"��2����UzI�+�-Ov�������:���H�o@���4���9�rL��X�$�_`�,�F�D"������?�; M��#�FPHc��U��m2�%
�I#(I{0����.�U3)))����|U��&#��?H ��H +�ݚ�Mx� $b��j0FI��7��Θ��њ}Qc X��E��%�
��Lj��� +��.R_O����bl�j,`r��D��ٹ�Q{JȐ'*��(~�f�� +�R%cw�V@O���� �s>�ql��ѷ�Ԯ�
�"�44l�ȕ�^��D�ۊ��s= +�^7�:~�b�����xE`�
���� j'|�?��s;yXY�W�{�����06�В�K �Pb�^������)e�?^���̌F�Fsy�����`]�~k����^#�1���J8����ov�;<����f�ړ���(ߗ�V's3��f�6F� +�z�D���邽�E�N���}��)�z���2�xd�x�@̧�5�Á)\��Y����;��N�k��zp��,���!w� |�Y)uX��H�Cgu:j���3������h~ +� +����C�q8�Woy �-�k���r<_���[�������O�~�A�ʉiq���'�Os��e�y�=�.X������7��\�P.�#� +�(���Gf1o�yd�כ]�B�N�����u��R�l���Ҷdog��;��oVΛiGפ;Tʐ���MP��ߦIwc� }�`��H�9�!}�W��3u� f�.!�VX�:pN؆����C�� ���3�{ 1K�ʔ��A�2�Y�|�F屚P�x)���sQ
a ��b&�yc=��^��-o��i^-��P TK8@���YN)] +�5f����|�ȍ6�I9CXhu� 1((T����t�n*V�V-�Áۅ�>;����κ5[�P���u(1��c
�������NJ
���S�v�$x�d^�U
����5#��涬B��r�Y��(Ό�O?��w�D<d������{l�e��%1�~�)~�*Hh�᷑�c?�1�M~Y7�y�j�E�m�4�Am�Q���w�̑֘�'��P���n������P�@g4�)�DJ��C���e��d�Ǔ���{U*��X�p��-z�f٪�"��c�q9iB�d��B!E�:dy��C(c��rnu��o��@��&��4�d+`I����u �XͧQ�S�=9$��~��=�k�4�κ�N��� +4�k���p�k��Y��8;�jVe�ە������_D�a�q�Ӟ����y�ؽ=�у7����g9�u�|O�VKƢ���mQ�|/ѥtO�Xߝ_ ˷=�ǵ9}gmɻ����e������X���x�HHf�C�g�$��Z7��c k�>s��n���n+�����V*��V�0�����_tj��i�.�<Xk1W_��� +������H��Nb��S�x�1'])���m)Y�Z����ԝI��n+a_�|+0K簠�ό��֣v�����J��ˤc��o��_I��
sӅ� +b1�:�BA��0 +�,��`��Fǚ&�AkN,T�)t(��&,�)��U]%�x�����`���y�7�}�Ȩ�kR|m�8.���NS�<�y����n��\;��������gY��h���{ҧ?��k ��/��JP�ѝ>�ft�S���c�z�'�� +�e�ٹ�YR} +�J�і�z�8{"ر�UN@Q{�v�Z���7�Di���x���o�������9�;� �@��;�c
Å����e�aI* +��)yw�@����^�z��:�V:7v�G�% ��y:ͅ�������y��O\h{�K� +x�T����_T��e�>�>��>q�Y���ƟFe�\��[X��S"x�C�|*�F`*0���� +���
�Q,Ze@�;}�v(Jk6.��F�eS�v�KbS��hZT���� +~�"�<_��ZI��ƚb1��ev��e.8��4��:*��|D��k�S#�A`��FQ
_ew�����C����G4w�l���`Ds�2l�,2J��q��pX2L��Hh�� +��]��
��ƚ<_����U��=+�����}ܜ2~yJ��0������ly�:fA�q,��fA�i<*̌�"�E����i �:���F���8`���U=U�S^����42��#��X]0��g���,��rP]�l�Z���%��_ڑ��O���0�l�+���q��,`����ϚDžAYNM���XƉ��(�ó�����(ؽ +�財���YGfC�g��+�Q�Э��)�.�����k���䝏J�6����t�����O�D��巍0�z�D^���o_��tǴ�7I����Y�����1���P���IeRn�E}^,1���=ZjKZ�R�����q'RO_����T�_��G�z��L�����J��z� ̗
Vy�nv��h.������*VM~��Ñ�c�I����+��(�d6��ا���7�0ݝ�JJs#���ed�t}>;�g��u����Ʋ�� +/�X~|ۉ�Uoc�~� +W���z4;> +�{hQ�>K�Z/<�!��\Y��G�7̣�I5خ������G����g��_b`��
������n��QL�h��M�'�.��� +�ڧ���sG����F�pu݁ +L�a�~w*�������p�~R��u�>�X�EQ`-ڀ�k8�Yk:�実&�>�CfSh;�by���%)�P�P�J̠�g)S&�\:�|{��J���i��VH�K�����9P����J]Uʩ���h��̙�5�7��.�;H�|oL�b��^[����m���ʆt�g�C98(�Y�]��n��5SsHL�? dz�U�l�C5�3�q��<�`�}|X�srnf��5ւ�����]�3Eb=�o�>���mG�옫�<���@���~;���`��ʉ�Pv������!�=�ǮRv1]Mw�i^Qp�L�R�z��Ze ��aXR&U�S�Kiʋ�I='DI}ţӚF{|�{��f&(�_�9�9���05'���3�2:�
��ڛ���'(���Q��7^�c��d��^��6R�>���C�ޢY�ɴ +Q���Fr�`����.��K� ��j~�$
�,�G�������h���������aj�C�\@A�ra2��DG6lVG63�[��&.�&/N5:O�ɱJ�R:�:��oWҺ��\6��Nu/w�[�j_��R��C8��}z.�W�`��xXS$%ҿ��,](P�D���$}���8>YR��u�>���Y����{Ʌbէ���Q;���<��XRz��1\:���Z|.�%���B$�
S�6T��b��i|C�E��s�;O)��F�PZ�W�}����a�|� +��h�� +��t)!�W��uM>s�-Zҍ�mԍI`� ��z���������m��_,{8�>�'���Q.���ɬU�ۀ6 +R��2�/6�o�`m��� T�YZl��=��T{E�Q��"3�Ǵ�K����@�J<�Q��ֲ +���6qi���
y��J�T��-�?u���[��+PI��,}��"�FB�a�_�L#���A?�g_4��{��1��B�~���*���ݞ;��T�C`�C�=�C{�:�6����f��Ix `'��0իc��Xɫ]1���B4j�#�S�%�JX#�~s��8�*��gor��-SH�S��ag��@��27P0 +��![A���TלhNϼ���0���%�Y�K����W�����e>��V�pǐ�,�>9���c����(�A�#.���B�� +���_� ��|$Ɠ\
t�}��30 +&7�H�~�����o�{���ɏf�!@/B���Tl\W��e^��OE��1�Ed +�"�x�U:���N�m:m��1��R����#P�&uGɱ�3��u +���s���d�V7�=.OF�IS�j +R��4����b*�͊��@�I�cTK^��a�--A�8��՝��vSc�2����ل�,��R�!Tj����J&#i�1� ��Y��]䇶� oz͌� �;UN�V>��*���A<ά�C�oP�@����Og��Ȫ�F`�k�H2�H � +�tNn��ٖ��P��)v�.�<K����P�4�EԌ̥���
E��y�=ѥI7��٤�J
Sn���;]��AR�?}|��f�_\Pq#�xn�t����Z3"��ƭ���λ���j�Z�9b
�! 4��9�K��8��a.'^VM��7�HL�ԡZY�7�܉+���N�@See[@��BSyl +1%�F���oBc��=�tv_�]�\ +����_� +H��W{K��!��� +�H�h�`�
RJ.u�ENm�������̘�K�9N��ޟ�y/�R}��N��~)���f]K_�N*��R-rj�x[p�� b�e�@O>�_4�fW��5V�c<T��>�_�O�z3��O��oηÞښ%E�jk>n� +jw��f�mw��q7��� +�7i0'Gѓ�B�y�3���䌡�0����
!��S��1c�4�d���˱8�cH��p"�!�cA8Ǐ!DqƐBA�q@k;
[z��g�Y`\(A���_^���I��㓣�N�'��RF5�ko��p>�#��暲祀_�!����������;/�P���8`�5���ҹ���$��<;����1Le��<�ͰP+p���V�)�܇D�z(�D��o+%��V�Nu�`*�ղ(�ثH�vw��X+|�f����'ǜh�p�{cX�3cX� +�CjÌ�~c�� +�XU#~7���������ד�g�#�'�w�nj>%�qϨ)}Jn]����KJ���aD��G<V�h�9�r�������y\,~o̐Q[�� ��5�|�F?~�2*���ě��9;��ɀo���ΈoTׇMd����l~�q?Y�����Y}�� +u��;4���Y�tQ)�w��&A̓"-:�O�
�d|yֽꐐ�E�=�ȓ$�,y�;�a�n���p�`�7��P�y�RB��R�êɠ��y}]���w����"]�T�i��{��)���Һ�J�t��$��<�/:3O�fY:[�N��>$Oko�;է�:���0n���deI�O�h}L|���5��4��c��H�͘��I'9"�%A�sja~L +JY`v��0��P!��$�u�>�0M������t/��=W2���&�0�B���Nq��E��;�P]���=�<��g��y��2C-�>�N�汝�"n�S���
p�W�����1F���\�����4�5�n�/�" Y�'�3z� �uuq�,gQ.��N�kwm�RT�Kq�%�1�)�x!%��*ῴQ�@���`���S?;�,u9�?����rD�������~��/��*�e�Y�M>(c�%���2F1ڑ�.>p�nӲԡ��|m<9%�a�c�Y���wve�f�x +��� �K0���Q���K.�w��T����� +.A��:�:e�萶�+7{x��m�+���0w.��m�;���C��X*�f�y"T�N��M�߉��X!Q�&qZp��!�}�؆~]S�y +֣���d�Ьgك^;�.�Y6z��JZQ��Ԝ�^�1F�j��Ep�9�1:Iԕ�<��B��=1�i�9d���ݙU�١f���ptY�������?v*)�;�`�
8��q�d/T�J��f�t0����;\��#J}�[I{�x�? ��Jr��`����;�C9����_�w(��h) k��j����ؿ9���?�� ��|���;sbp��@l�W�0;38;��-f���I�_�7��]tu�Ų�jyX��RY]\q+i1��zƍZ�Q����.�� �ᾋ�c0��轻�ཛr]a�c�8Z���<� +� FZz|o� d��q���il�n��E�#N�h`�Ԕ@�dd���[REy�;9a/5U�yP����� X>��bw��|]�C�> �v�3�P�� +�:��/i!,N�o@,��D������_�/k���NB��
9�y��lo�r7BɃX��J�c�P�1t�p���VJ���&���pc���!5��-�?� ����5^�@� +�����P������qT�RҞ+��`�`�f��I墕x�����Ɖ�39�}'�ɩ�n/-�L`T�����2��c��4|m��9 + �1�X-6��
Ŗ�$��C<kW����@�y��V1&*;f%�����
s���R&��Rc���!t8��cX�U.�y2��b���S9��\[�`��<� ��ŕ/�H��^�k�;M� +��P�t�J�� ���&����� +J���%Ov7��9{f�̱1�ܽt�8�)]DL%z +C�{=+
���3k*0ʅ��';s�\
8J�e���o�r�뜱�-bJ�0����}�X�c7i>ٵ��WM��L7���NLb猝�Oiw���\,��C
�q�8�u���<�.i��\u�1E_Ò +b���qR+av�g΄�j�<�S
am�H���M:� +�XfO�0��L�h��ƑW>�_��ދ�!��0��p�������H���Y&��+!0�g���yȒ�B����d!?�L�ރ���yS\8�ߘ�`!JYƎT�Ω/�������B�1G��I_x挅�[.�5�̝Q�ϥ|�%��f'QHx���|��o�/H����B�E���0m��qsY���e�$�Xz��`����՞@9��
d�:�6��=�SyY�o��b���R��b�nل�������ifq=~�ݭl$#~Y��;ש[���o�L� +���$��~4��Hp��#s����2b�e)<*-t�h�c�v�p%V>�«D�/�t�ٙ-��b +�9�j��N��4|�P��PE��_,& +}lbk��H 6�HV�@0|D�����\�j+W�/Z&��2�g�D���Ñ��+o
��� +�h�P���Cl�S��swN����Zߋ�ꢢ���{�
��uF�w]XDy]S����M1��ݾ��JsH��!E��S�� +.9;"�B�+u!�lU��E�z/IO ��o���}��/T��|�m�y<d��4/9�U�����)��乂ܦ��Ľ��Q���WI�3A�zӡ�ƪEـ`h�����@�Z@��XA��� h�#U���B&��$Z㘶�&x�n�6��!6LF�@Iv�?� +Z��ejb,��������/G��YrI�Q�Z�Z��\�Y>ũ�@c��;,Ƒ���Z�0\>�@úն�I!`�*N��q��]������&�(�J�I���K]3;���Yx�#vtM���S�K�_D�T��'�h��o��%��}�M>��R�x�8�1��L]>�J���*�J^i�O�; @��' s���L�L2D�2���?���x�O��du���ꪽkX���<~��0�m�r)�
���|��YM���}ï����S�}����n%�(����Q��Po$Y����=�q�B���];P,4m9�w�[���J� +��Nl��c�-���{Hu�� +�,�, +�d��JtRx����^ږ�f�]�l���k�C�K��l@��R��wa��%*�Z��N�7��r�>I[��@��о����L�z���,����5�!�wy���vOI���_���v���+\����b�}m;?7Lz]+����}����2Ⴗ`� +Cǥ��OO�^o��̽,�[����<b9�E, +��W�DʤOpà-cn��I�����ⱓ؛���X�n����)G�A:ŸS��� +�'G$����%�p�@�_<�,�;�����dU c��E��� +�r?
�2����W�Ԗ��R�C���ut���J��)Nš��@�^R�u;1a�Chu�0��ö���Fp��@�j�9��7��L��T�j�>tb����2z��&��e�SJ�W�|A�]Y��NlVvC�n"�`�Rq4~�Mr?�(�ނ����5�1��
�7��,E�l�u��G5�Z�}&�zSپ��
/��%�z��m�3a�uyA�V(X
��h#1��+m*��n�g2Va�v��#��d�y�3��xk5rЦ��L5mZ3�I.����pܴNj���J\J�V�Yp�Xً\�ӌ���fP��D��I�.�#c��f]�8��y��C��D��@#���D��@{�_��h���Y�1,�0�\r�嚍�4���,�t��x�g9x��v��^1]q��uo�j�jN!$��B����|�e��+Hf�X��4TT�a�X�s�3�����@�~Lau�w��Q�}��5/�w|1Y7xH�y��*G*ʁ��*r;h�kT���1��TfЊ��q��Y�Ԇ��}hk�(��wS)�M&� ��[�&)sB��5��)� أV$�:S�'2uo4-�x&y��B�@����Ţs�rf��<u��#p�z_;`?S�CY��C���B��� �$mxL:��y.�= W +�P�y�C��(q�^�xHz��4� �q��g#� �n��킑��S�vA�q���v�>�����k��`!�@��X����13$�p�ЧK����m�7��J� كō�8��w����8PoW��0���)XDS��O���
��� +��|�BF)��`���h���4dK��w�n�?��w]��wN����ߥ"�lVG*V��m0\ ��؊��R�{sT��Z���]oh�� +<_�/��a��v"��˓1��O�aA�������~�z��@���"�����mW~����h��.���_��~��P{�Bߞ�����L�}T��/��!�T,'^cK|��_�����6�}r���?���QAo��n4����_yB�7����|"�����l�-�Mu_�!msp��?��ڜ0����e▍������!�����!Wa��E���O�s�whcC���r�^�ɥ�Ͷ�3��]`���n�v��e���c���2�f(en�yk��C�4y�n\uxb������`���%�%�?�����;��j���s2���e��m}^�8p`��V9�2J���<��QF��� +a~9��̪�m��O�w +`Ζ�o�@YN\�J]�q�
.�����O�,���>{�w�N� غ�-g?8T��� .|4��E�A���%g�9�H��~���<�ٮ'N�r��/�o������9���O���E?9�?'�_�i<�
h��.�ӳ섳��������s���y���:Y|x�k;�f���ڮ�fW���n�<�K�r�(|���$�(�s0\Fg����|(g���o'�������k�O�E����.�N�9����N���፥C����JN�w�(ij<]EA��T�
>�g5�BL��X�3��e���U#�:D}��#��(�|#�x��M���($�dO*�(�3�4�-���ۀ&���d��m('
y��(Q=�� +H��W�n����� �z�,�ɾP��8Xۂ�� 0���df��3���9U��HZ�0�h(��S����T��OW7ɦ�X_�����β��]����m��COC���}�������ş�~�t�K��ɒ���]s��k������Kw�:��mshkL�U���wmu�W�����
c9�.}��?�/�����[z��~����?�:�!����4ۇ��7}��L�������+�8��J�8R�0+HC����ww��z{�껻z�Ϻ����~����o��T�?��~�Ӷ��Ń+Ժl��~�X,� y#�:=6�����c
���p�f�?�af陆���#Fn��k!���u�\�>\�
� \����l������{M�m����< W��mx[�7.d�1sZ� +�{���A������mk煤?ܸ��� pw7s}l���ms��4
��
o�M�����e[=�Ǎ���^������C���cΎp���J8���z{���k�P�W!v�P�����3���*� �i����}�<4��aaf��o6��9���]|��㖉�vX6�&{���`����v�u���=<���h�77=��~ܹ���k��U�lɦ��g���=b�u�wo�����e;V��D����U��ο����G�_w���s�v���i��n��W���M���������� + �@��B ��@c#F +d@�(�R��"O�IWDh�H����12��I�� +�z➙'^bU�*f^b-��8C���F[�Dg:ׅ.q�&2�cMl������ˉ���kmbS��ܖ�ؾr����A�FIW�H 3,`P@�ɠ8Fl�7�r c�@��P +�G����@���@)��A,�`8ăh9����~��((��Ci +)����'�"YW+˨-��8o).1ɋGS^,�18�G�Q���J��chv-�6�g8�")Q�" �H|�� H2K��Y����g�`���d)o��H� 3�'��C�8G�r���Ʉ'��c=�%֘�:Ax���&p���"3S����������{Hi��N9�KhN-2P(p@z�]�N�� ��[�e0���+>W_�ו���E>��^pQw�\q�E�-��Ǩ�8�ӡ�-K�\�(<K^�D�c� �҃l
�E��L�f��c� �ry�dd��v���š��(�7H�BTNde),NZh[e��6��N���;U'$�D��Q� +80C�&��)���!����U!C&%E[��fDZ��#�8ґgdYsH�B���(�Pok`f��)�S���� +hް�����*��W�8#��,�tIb@��!23Dh�m����!�%�=@����#xR�y,�R�Ф~́[W� ��j�4�0�e��ms
#5oh�<*��ݣ���x�[�*�H>Ȉ\���
�w;IJ���|hx /�m���j�O�ԗ�C_ �{��]�M��N�滀LhVRnP�kQ��C��2,��Z"�sN�)���{jt�mn48�\C���!*@\|�g����Ѣ�ā�l�rC��菂��Rϼ/%��y�,�^�)�iR=�)杂�7�Q;ǭ�nc�c亸M=����i��� ��?���,�k5B/0����C8A.����E b�VŜN�`E%+�>�7hp�4�+��c̾�ʏ�/1�}%V(m�CxXH�z㝭���t�u�Ȥ�1�8�4�g��Ѐ��z@��-���l�7!��Z��e^o(�M�T+�~C��� +.$�1��q$���7v�!�W�����"�����3���[���A��y�/V_g�/�sAH<���'�"�H�>����Ꞌ�
1E�2q�vOתU�J�h��GFh%Y +,����ث,٫l(k�`) ���A^�Ba�/`@h�8� �] + "�|�Tq�(��i��"N��B���8��N]��8�%��U�p��������$���F�:�� ~�L�z>u�C�1��Q�#��H�Q�i<+[|�z��Z���G=R�i�ѭ^�/��"+�y�E��;P�Oz��Ϋm���M�\���[dX�PP
�� Ԙ�T�
��Q@���p��d\ٸ�q_�r`�#F&�Ԍ�$�?�d�Q�cd���G��1�c���l&X>�� q +�ql'�bf���4��3�?� fd���� +�I_:>%�G]�q.�S{2-�<pϺr��OTlǤ-�U���[��YL�Svx������2<2� +��)A��4o]�E���ʗ+q��G�����;#rH�e�^�5�3���a�-g���B�i�#�ϙ�u�)N�=��Y"����Iq<��L�E�;1�ym�ý +�=k�(PU�T�I,�sɈ�gF{>F<ތ��H�"H 4Nm�Zih������@9�>D�a�q�s�nP(<'n�5�M���q�N���i�&���_�Won�b���Y���V'O_1�0zG\7����/��1Cp�����,�������hگ;���=8]�w �2c�vو�C���yyfY �����rQ���5�:号�+W���_��ɢ�������u�Yn���[����RA�Xt�t��֧4����w0���������)is��f�Y�Ih��5z��vA��mi?s%�'��U�}x3��{���t<=�����T����j~x<6Ͽ7��ï�}�����l���ր)����n����f��;��q�7��U��J#�4u��y���w�_n� �{Y��,�)����t|x��wP��w֒�e(�C�f�5EQ�2g*��P�@j�P�y6/�I�S(�i?��.o-��R�bB�L�����\F/
^�i����2j+�eU����������R�k�����&�s��kI����5!u*�@�$�Ί)[��\_�{Dޚ��0�[�p�$�ƃ +�e���,���Z�D���SمGƒ�R���@*�w�e�* +P��L%����` �j��V1\�C�*��P�.J�(�X�>���TvZ�wۿ�VK]?�2��WHS��9mڙ*�~�^�3�V�.u�Z����[*��f�v�֘�\�\+ݽ��Z�-�jۊךK��Z�}eo���ƹ5蹍:�>w�Em��ڈu�2E��JҤ(��R�X�w<�'�Yy�#�%�&�)�#BV#�Lu(o�pf��C#0�Y��G�#J>����M����k���)�< Xjt�]Wv�� G$�O�X�M��if=��#"i��'D�Z�Lz��UGیi�(h�C���ha�9u�a2�"�;4K<vb���<����e�^;�8`��7*k� �f���D��e���xT���������=���4:g�pd=�gD���7�����zF?����'�j��
�_�>6�F_O(ƀ��赈�oa�� +�a�K����J�d�1x���Xx��3|f��dtZB�;� @�������0����K蠞 +v�.C�U�ڣ��4o��N���K���8=���g)R�J�.�$�o|�S�M�[8��<"���(F�^ၧE�+V�{|�R1��h�qu;i�\D +=%�� �KR�yC�5��v�I�6�v�]eW�Rإ�H�!�Ln�l����uh�?�&IQ"2�(C��S���(;H��Z�=�SZ�J�Pj +�CN5���Z�a�u�(�XC��U+y��e�Ȧ�p��\R�^l1E��m��r�1���&����&��BrɂCָ����6����Z�!P~p���Ԕ/��{$w�VLXu>�?��B۶�b��d���'$�l�q� �-�����8=R�����p~��פ?ڛ�����Ɨ|�t����&ŏcs��Df׆ز���S��`��I�v\�*հ<+�(SX�c���T��>�s���RX���]������.'l
{����˿ڌ=LǦ�(�Eºgq %��Ҳ��X���N�A���d)�-��ͣK��Kܬ�7�W��l4pH���u*�aApI*Q0�!�m��I��uֵ +Y��>~����U��e(���a�5��B����MK] +7�d��1ذ0矫π�=J�~\j$��(���R�oW��+jg���]�N�p��Tj �U�^��d�]גu/�4��K�D�ԦL��8����4P1T�*��z���-mW�ʮ+�t|���`�nif'���^;�����baO����.�B����o�[⛬n��,���Ca�(.��ҍ��I���\?�]�ei���١�{a +�0��es��=݇*�X9��q-�� Na�m�/�B��.#K�D[�l����X剃�R�I�[{��Y9FŚ2�ʬ�?'֤�(_�(v�
&�e�/��j�f� R��Ao\�*� +�5���ǰ#*�V}�o��#�}��2�Vq���O�?���.�E$���2r�%�1�w|����e¬%ֽR�.c&����v��+f!aFf�a�L�����Ƹ���;:��_���}�{���w�7&a�Z\pk�j*.�ұk�0���{�萳�����ds�@מ|0P��;����e�ǖ�2�fZ�INHrD�_=y�^��O^�,����Ȳ�6;ٙdf��"<���*�$��H�L�}O���]Rz�|a�{gWL��KR����q�r�T�Z��Z'jE5�Þ��ҡD��Wo�Ecܯ�m�y�M{�5��;����D�nd�_?��s�����u�<��ܸ]�GG6�:u;<P|��5�SO�[��k�!E�;��e�^j�Z�#��@�w��vc�4&��ƴИ<3bF>��aK�$�C��k��B[r�%)���--Ö���%�T#��/��u# +?A�Co$�IQ�x#�� � �,�ظ��xq��GNU��V���΅1L7[?�a}<G��@%aD
@Q��>Bu(G����Yi�J�2͆e�v%��`�I� �*z #�%4L\'X�� +�`�r�P��$)C$mp��8&d���Q�p�S4�)i��C.qѓDH/���2��q%Hh�o��c��lB
��h��S��]L����N�����D�8#m?��:�>��t�,3t�@��F2 n��/?&���><�~����t�5h�1S<��>� X�V`�g��XZ�����1!9j�������8%�}Ҙ=Ғ�#�g[T��*4by��7�Jţ^2�`�8�P��)JjR��/��<$ș品�L �aظ�������2�a�DP�*d�_� +&]�6�d��$�35b&�U�"�L�0���������ܴ�&��o��$��W��U�Z�r3e��-�.���*�ۺw���[G�z���n*��踻�.(����^ɢ�v����CG��6_���f:�����[:�YN� �pq�@&y��ȕ��7��V¥X�K�qW�z9�fp �MG�3<���p�7{ T'{���\
���m���u�l���,��Ը<M5u�p�D�X����1e��i��L[歯�m�^�b�ǂ�#����Z��W)�7Ma#�Ūb[�)ʏ��/����/�+�Q�kE�#zTGo�CӺ� 5�#*�_��V�ִ`)�1��̧v�,�`ٝ1��_:^,���,�P��
��jo9�,0&�����(9F�G��3b�� ��d$:q���Z�Pu�u��ˡ>͈!KD�r�Asx��P�!;�).|� +0l@!}�Zo̍^r"���S9F�1L�p<%�F1�p�����ٓ���u���X�l�*i5�g,v=Z � + +�b{*��J���h|C-�2�*�٥0}5��Г�Lj�J(t +q�7m�5�3�1S ��iْ��0��d#If�*;6b��P:�@ؗ���k��)T
UՑ��J���R���e��3�Y����N"��6�kEwM����7�!��/>���<l�}����.�'��?�4\�S��,�5�9��d;4�G�4����L��g��2\zsA�p����k�7�h�����q*�:9R�z���O ��]w~����^{7\�y��N�?�Q�A��/�v�̸Ї�o�����_���o_��Gw�/��������O�����}�|�5�X7���w���?�����xYE���l]M6?�7�so^fd����ˮ��dOd���EKY/�d�^��Xd��OH3u��9�sYҲ��$m��;H���MH�״m�V9�����1��%>����Q)�+]��ë�5h-[�_��َ��>x�ۡ?{���8�8nE��8�r������6���f.�M��w4Q�RmXp=I��*f͍��"ښ{��1���ǼdNO��3~����j�Imx��.���/��P��c\iXu�2|}
c>+W�n(��XD[s/�8�2/���T,˶m �7�&51nSxF��x����X�����؛��#j��f�N}�N�^�Dt�@]�?*���$'��2�z�����:���Jyn���u��aP(t�+c�0�@�B��/�Y�MºB����ƒ}�o-K8!Ŝ�v'����Rj�.��0�e�;��<{g��U��y;<} +.�p�X���̘��+�8���s�yr(��RcF֖4�i�$o�%��Gs���Lx���|����%�[�S�o��ㅭb��7��G6B�Ǜ`�Ŀ;"{b����F�'�R�� g��8;��mg��٫YX6�so�
�ͽ�� ���mt��U��c���7���-���ƭW��ƅ��s�Ã�{�?I��T�gpk���r��wk��]�Îp#��\'��iw����+=�����䤡&�᠓tE�v��x����E��N����\�<��yf����<V���;������k|Y��9����,үF�DÍ��|�W��5�Y����Z���"��[6��8CcV
Y<b'r"+R0��>$H���$ +�8"8�9��vZ�$B��ȗ�6�=�:L~��Ab +ou"IZ�E�H�����Ҧ��M���A(�d�w9�ס(�b�X����L+#�IQ��� ����LT�h��P46�I:�{x��;#�[@�`SOB5
Ϙ�� $���<��E"�Q�僅�bh)�� +�dx��;|3N�E�|��w8�Nt��_��e�mc��_P��I�D��#��z)�8�(�@7�'����aQ�(��V���kq�n�d�E�b�ru�8�yB�[.,b�����.��c�w�9�np��+�xBZ�W�uA�tuau�<�%9���^!��]�{�������1B�V��3���<� +�B�0�c7��1i���X�3���bt���2���h�"S�L ��{<��O"b��h2�?��iA�B�ʱP��
t�7�ad2��D7��א�D����}F� +�� �Y<6���� �� �Q�쐆, +�� :�]vD���XKp�ʪ))X:tTD�̵ y6�x�dSȤ��^�$��Ȯ�F�u���ߕ"X�{�S�=��|Շ�dy_�����͆� +�%��ǵ���t�hB�s�=��X&�3��A>Pu���-��j��m���e��l���������n� +a�ȅ�h��o0�M5�����@ѹ������~��[��(��R�����9�v�ߍ̢o���њ=L�
���J%���S�0+2�I��E�ـ�͗�x����l��m�5(M����cd12�f{��2Y:!aY�*@V�D�WQ��fE֓�F�Md�-���*����N��P���.��ONNJJ��x�p���9��n���iN[lw���q��x&�v� �����=v����,��9i|a7Zʝ�7ţv�.Z;�؝��hچ��Ŋ1A;G�,^�0i�*��1L�y�Z�&||�/�C~������O���ӧ��˦��~{~������il���?�˛Q]��Jׄ�R������/5Mh��#��5xԱ�㑃qÃ��^�������Oz�dF�h��Gc��'(8QZ:^?���A��ϼ�V� +�a��۷����rh�ȡۖ:�j��R���
s�����/�����_�t�UL�*�ͫ�����k��`�ߗ{�������ok~��;/���Ƃ�$�������3ځz�l�b��y� +.&�(,��8�YCn�l5,�v:I�,�<��Jt5�ӱ�!�D0{��#QC%PD'@#!�8��TE׆ЇӕR�.�@ ��Q��MbN0��Nl�Y����A)��� �4�E�R�R���b�
�t����x��b�t\t��'XƳg4L�g�TW\vA�7�1NC˝��md�x묶 +������@��:�$\�`������HKZ+� ��z**AQAyH��)�F��%|�Ҋ�-gS�e��S�{�{�{�{�� )����^�{-�ނx[�K�wً� +�>��.!`��R�X�������1�"LvI�_B�C�� ���&�A��F
N�c@BMH��u��8�:�٘2�m���Ո�.�s�%���l5nЉ�ts)��We����Zj�GP��ls-��Jk��ꦻz�_Ɏgb`� +��Ç�E�.�$'�a��v�*>��(����7���A����t�%<�ɻ�/4����.wԯ��!�'�/�FK�������p'�$�l�sJ���ƪ�(�t�[㼥�����П�������_��������ߞ�?���8}�&e~�����#]�Ā�JBW9��
��C���)�Nj��&��x��x�&u'�!)�I���+�'���^�I*��/n<���!�-�n;�|Ù����˯�����S��M��ʑ7���qi��W7R�Ͻ������o���ŝ�,WWf�_�o��?�w�{)X�)�[�[���A:!~�p�����6�
f�7�R�!��,K;P�Ab"AL �McZN)@��s��*(��/�܆a��@w��Ѝ>����Gڵ�(�Ȯ�@`XQH�4'U�-hY +�/y�\�+T +�B�eHU1^�L�;{OX�
���rx�ij�;�;��aa�*��q��}��s� =�V!i@�!�'��Pw�����{��&���^`��]�a��W�?��B����JTH��B�f�9���:b�"�tK!��(�p�~���QB��:y���cɐ.�T�U�#� +$���o���Y�]o�{�K����_U����J?�ɿ�-ydN�ҳƭvk�U.�S�3�������O7m�bʦh:=���L�#��:�\��;G���������К�z�� E���:��������eK\-��:���vL��昵���ŝ��c�=_���px����|���9 +0 +H��I����Cmp6�L� +SY�D'%�)fɮ8�g��dM�&i��&y����!r������� ��œ�+`݃!���}��� +57���p�3DxCaoX�
����(��?(ܝ���֦G\}�i����[o��$����*�R_� ��+� +��y����q�&��v��0�~Y�<)�:i�N@kp0���B��aK�(d�h`�4�� +��ez�P/�Wr�(�~*��\�ϐ�p�/���7�[:�|�0�n�Y�� �����@6h���P�" ��-��g0n%O�+,���`�A��F'ݫ�o�%��ӗ�������<ys7���Ё��O_����Ύ�>>9���/���R�)b�9��u~z���{���f�E�Ï�/���(e�f�!�(�,28:$U4��(�2t&7��0j�&�5�,W�)��~i߿���������ǎ��������|��߿���o_o?�]7��$��"䯸��E?n
�>cD��ya0?T_0_�M� +�M�Jc���1�*&`�T���V`��*1w�q¼���_���I�d<dd�.�%��0�4 j�$�
���˩Ų���.Xm+�q�c��Y�ӷBM +x�zn��X������ +d�� R4ȩ@� �#DX���"�d� ���N�� �)4-�������t�IĠ9RzAՠ�I��<��E�ThB�%j�I2H�Z ��TB5
J/�H\�@�� �S˛6^��;o��6�n����FԦ��V�u��Q��������> ��������`�tj
��`���-�<�6�amʮ=�7�{��hV�:�'�uģ��O�1�ܸ��0���?pV�����)N�р�n��'B2d/]��ȯȱȳ�H>3��p앋e������n�~�%�\�gln�o\E������v��T8��8�%6@X �i|��85���Y��SO�?��n�XTã*ʨXE�:NH�8e�(��M��)���]ĉ��XD,iuh2��HF�%�X�g~���y�cN�4V��Z�t��yv�]��M��h��f��Ɏ>v�b�=졃]�W�B�j�,g赇�[��>6���ճ�����3��u5�\7#.���o�v�Z/f��B�%���̳�Ó��P�����3��u���. �3�B�P�]�X�k[.�;b�q�����y���;9��1/X�MO�kz#o]4.��#._�sG�?��}�p�۽��, �co;��Z/����][���? G�'�C�K���Q9���y�푐g.�<�<Y|a{�|c�z&K������#\��t%��c�k�ck�5{u&�f�6p���� x?&7���0`�_2����9�r��FT��Vp���rY��R%_0�˅�]���j>ӫ�!h<�04��ry�w�,���X])-�����>�S1� +�J,88ߓ�9�-�r�e��`�BaW��ֿ�����J����\6����<ɏu�м�^����x٢�,r�J��2���s~�E����_�'
���L0�0|�R�f9<����6��J���ç������������_}�V`0�i��2ƭ]W�a�^̥<̪�'�����]_(4��Ғ��F[`
J,�c�*�鐶ʥ���H��"��h]k�n���C���~D��3��~�R㙕����Y���� +����pA�Br(�zx +�ނ�ixH��Cq�)2t����7�Jxא�8�8*9j9�I�5Uuu����b�wx���<�< +=J=���rV5߯2��2�أ�6�{ +���'���<$�xJ�C�ğpw� ��v��-���o��O�֡��:�����i:k��U�9n������e J�H{����b�,�v��HU���v�=��C��?��i��Y��OEZY��ߜ��z�YHm=��z�7
x�eM +
���I��Ezcf���֣�q���q�����YX���=���bs���"i%=�!��T&6.�q�c�BR ��ޯa|o��3k�\6���4��7*?���>sv����j�}�l
�<p�G��+4/37��Y.SH��d��~�MjJ�u��o��v������B��y��X�:?B�'�s�^'����2ΐS��E�EL�Ś^��)y�U�S�'�)��D"�"�uP_��x���Q��hѸ<���G=����p�T�WV�a#X1aw2�'c+Bd��:@�|)��l������L +]ק]��>��,�` ;��� +��,t`�4�ƕ��&Eh_��E�ijP�^�`\�|�y��gH_Z���^�So��_��p���涔��K�=�+=Ζ.�˔�|y��%k�*F��h�d�6����W��DҩDR_������X�\�ysdjX�JX�s\��V�j_�*�O:H5�.�S�rJ55�RL�OS��[�� +�5�[It~ąQz��|1�b��@�X�q�TY:�(�[�WE��L�Al��I�CV�JJ/;W۷�Q��" ���n������dk��K��7C3�e��e�T�ۺ�J�j�[a[�UiU�-T�_�ڡh���Ep�� P %g3���1X�����&d�Qy�*Uo +�I�7(�:h� +�{�S�{:�Z��X�1sѱXz¡g���R�m- +�� +�'ߏ�rg���7�W�ՙ��:%��"�� +�\e2U�\�d��ӏ���d�zS���u�7�9K^m$��s��1.u�:[���Ƈ,��m#�d����v��&�L8�pk�Xc�cn9и�k��B`ώ��k��2��\F��Ks(;\nw��Ό��V����0 +�0p��T#� +�X�s?@1��`pĂ3�� �����4 +Gև^Z�dtA~��[��ʈF�7ꗳ,����E�j�N�1�*&��M�Ъ�*�,�HO���D��� ���ĈHG 4Yw(�uPȁH�%�V �Z!;�҂qR���
#�@��e��Zu@�q��y#(�@���C`-�=��T�H�O�^+d`7P]M�
��#GED��X�v����H���!2�/ArVH������ L� �E(U�b�P�"n�d�A�<$.B�Do���Ps9 ��!�1�8ӷ����{��7~��5Mc��>�fܳ����ͱo�y�(��F�Y��Z��}�����=f�A����O=��'�=�;x���?������_>
�u>�w#\�G<=����ĕ���~��\w�}s�4�?���G^cr�չ�P�{wx$�p���p^ej�ữ��'vS��a�dzS�Sq'�?�=��<l�����=tа�}�&��oX> .XO�[P�����Ehq��3�: �������w���0����=��o?�������/�>���O�x~��__>?�R>z����~��}ԙG��:�Qg>��G���3u��|ԙ�ՙ�R�����E|
�x%c��W3��>_�ᕅ-+�=*�\yx��-6S�)y�2�23S�7�����Pr4��S�U#����,IKڒ��nTRI"�"�"2G�X"�����s(v�!� +��I���hhr娟<b�ѯ�1]ɗSI�9e���7Cɛ�dd���4�s-Is+Y���%sڒ7{e�� �>�L�A;n=�M�� +2K}_��U+��B�$�W~���&5��� 1H�Y����I�iQ6�&�.G�^�!yH���Ȥ 6�Ot�TXE��hэZY�}��G��p�Ix����z���ڶ�}���:��7�h����3�����%��"Ӵ"�Qڀ��^�x��Ĵ�)4�^��ʖ��Ϭ��k�9Z��yj�_x�*�h<{�<s�zƦ�l����>���(?�!<�-�� Wz�U�ԅD<B̽ѨNdՊ6���g�j�U�F�#���A5;RPKr�'Y5��t�Ym�Ò\nL��Ҵ�6%����T�zէ]jQ��*Q�jԀ-�jR�� qw"Ă��a��J�Z�J�fl}�d9IY���GY�tt:��)M�GӔۣ�r������Ru7�Ţ�?*o���`���8�a��%�K�ڄ�c��a�eiA@�2:
�
EL>HTw�ѳ�)��E�9I��D<M��Q3YĖ5d� +�&�f��F�n\�O��G�qHҬ���px�����c( K��$8 O�W����j�&��l2����Cv�^���pl��� nB41MT'�>��'�۷�}O���kU�"bE��EDz��U�RU��j�Zn;.O�S��V�;�o8䯌�3���jב��_��do�)��LOñ���b�,6���>�\��T�==3��:(�Z]�//ϣ!6$�)ԘA&�F�k�̭hzE��g��k��cl�|Ch�
��sg�(ֆ�ao8*:�F��[tn摛z�`|�s�� +�z
���z<?֧XN�B%'�S��xC8�6�rA�/o�7/�O��W� +K9�*���Z���� �� +��bK�Vb�&�M1���b��i��wv��CTV�L�B�������U�)���������C��#K#�rM,�#p-Y �����@F�7<�e��b��#�
j�HuY� �-��V�b +�&��ySTW�W`��[d�1N����F�F�jDT%�2�aܑ�o˩��A�C9u�I�|$�~KR5�GUؓŞ�6(����$��t~�ޯP}�-�U�h1�\��+��H^�d/��M$�k* ,1�j�ռk�uK3�sIc{I��$2�d� +|��]����i�}�{���ص��v�������Tqb~@~��x�� +<�U�H|���K�V^P\|��c��Q��c�����E�pX}X� &��l���?Tl)M�G:�t����8�Ӭ�E2MM9}\��!�X�8�S����ϫ�!�J9��"�n��sн�n�S$�֨���~�s�[�o���.���djK�h.�}�!]iJ7q�r����NKy����������Fƍ� +��3m^QܒYP3l�����H%AkF$[��2��턄�E��v��]��F7�BRJQkGR㍤֎��"�'MmЧO��ʓ�����7�3�8�"�4�9,a
�` +�f�� wdCLl��sk�m��gc�[c1]oT�n�^TL[�l���&����N�T��*�4��Wi�eΦ �6�}��Sz��s��=�h���,��#���zH���g�[7e�E�(4Ti)�z�v}���_�˧7r� +��}_Hn�$�Q��DRA�Af��C|���#���D����x�A�Qa���Z��Xux�����u����Jh�V��[a�V�;ZB�!
$Z#l��\��6��g#�
#lFx� +�6�l0�찞�Pxb�HQ���!��f7�aWmq6E��j��Wc���E�H㖳c�g�V�N�x�6��U�nT;o�>�M���v׃�+���ʳbb�p1�ڷ�qr��jW��JbiX(�� +c��&�0�γ���exl��|�N��� +�(�
XM +O���
�c��@*�A<�&u|2��� +�a�ƥE���S�I��ȶ3��9"��+]G,��ْ����N���R�e�-W�u2V����f}��5� ��ov��]�|�'Jo�(��Z��|�\ޚޥ�Hr����Ur��ُH���m��_u��EӬ�j,��usb��ʙX:�Z;GO�〡��E0� �`e��FQ���la +^�*��f=��H��}(�n�9$Kߊé��E=�0�}F7;���<�����?ߝߒy.y�ީ�H�7'<R3_#�!
�Eî�Q�Е�a�.��<8WM�+�J�i�v�R�������w�2��f��� +."����BKZt�E��ж��p�=X��H�"Zƀ�
��PJ('f0"�ǭ�V����e�%�� +PY�kƥ��P����249<ш�ր��1)c����&ۨa0eR#Q��$���Qh�*&��[��f1aa�j��~�`�4�$�z�G�ڼô3Ԕj�6kM5M���0�f��٬����6�l����D�fw�V +sQ�p�0���^�.���U�E�E�E���q��q +kw��+iS��N���c��a�(�8��w=C���v�C=&�P��=�^u�;�-KZWDhb������#���X���}�����k�G�<��n6{�WW�=۫�5�GD�����e}�}ѿ���D�-�oP��sP&a�����6��� +D/y�sqK�y�sqK�y�sqK�y�Qܪ � ҕ �D���W�w +D���|����tJ���*���g&n�܁���+�w�Iu�~�/
�%��0�q<y��%�����̟d��+r1˭U����#�C�r����$�����S7��
�� +��ԭ8P�_Wk���ي��IӍ�X�ݫN����#���͙�.�N���.Z��6��9��0��zj����^q0�Q%[a6� +&�qW�Ε�K�j��^����"O��.ŤRP����t���<�B\e�Rw�����J�"�W��\T����-�cYɹ�v��+yR�U�N��v�%�7RK�}<UŪE��e����B������rǡ������i��~%bq��H�E��������aJ6U��y� +�X5����*\ +Fm-\�ok�髟�p��t��͂��+4��U}�Ot���r�>q|��e%;�Ām�b;��V'l��ل�vŕi`]�2`���pRF��� +�uJ�;���d��/��m& +?�A�F��t!�����0���"�p��ȩ"��4ݝ�#��u�Z)�R_���Մd��+�*V�:�~U�^�:մ����T�=��5[*�+5�#�+�f��lD�
u��t^ͧ^�'�Y��j9�j7�r+�.^I�К
�^r��6ڕl˛�ͽƝ���N�#NM��N�]�����E;QɭB��X��[�04�4�v�
/�!���;��Z����=�g�sI�o�I\��^#q�}�ijK�m��%:#�� ҦN�FK�N�l�$9����OQ<�i<�;';���W����:�ۇh��i��h�tj׃���K��s�Go��@\sh�vn�L�N*Y��s�Wq�Ao�} 2��YD�#5��vn�UD�C�#_%~����Ck�:�����+g��zz +9W:�N=p�>(��#�
�]�zӗJ=%��~���m�,�
��O����o��>>�Y/��_�>-�~�~������ݗv�3�Ź�x��ƇF<[@�
���Nw�>C-Mg*Mq_.Ѹ�ģ3����x��Ԑ��ϼ�ޙ��>n��"�'Xd���ِ)��[�L����>����F+�w��O�|��c���Gʹk�z��p��7�p?v��3*�vn[˳#i۷ŀ>����(�P��f�ح���
:���y�/7p��p�/0�<�|�0�d�
��@�І�l����I��L5�j�Of�Z���؋��Wl�b�+��i���P�R�O]]5���e{��b{v-���z�M��
��B����vҫ�Fv#���)��S<�1]�p^b���1�P���Q�����T.K\���;�_��a +3�����$gY�2��e� +�Z9&B�c-�&L̤Y�E��j��Y��z�MYLyʳlRM��6�UaU\�V��Ś������������E�����$wY��ͫ��%.�x����J��aBq��3v����|��ݙ�����%�aB�$D�C,�I�*�o���D3�Q;|D�H��{�o#�8"������D3� D���F*{�"iBd' # +�Pڂ�;� #4�D�у{>��MjpP�
"�B~"��;��fA +�W1�a���@.���U�o�-�Ȳ�ď�{rZ5�Q���m���A� �����Yً2�%ډ�I�ĵ�Wus��������;���#쎰q�w��vG�a���{�i�&dO���vR��5����I�:�� +g��XۇP!��N���8�w�/�S~z���燯�O��㗯O˥�~{z����C��]�L����˝�$��d�X�z��rR�y�c��]�i�_�f��=���>{moZ{n5�{��ֵ� 8��&�`�>%3J�H��Z +<�����!���r�`G�:l?�f@v�oDW��${� �����[�c���ղT�U����I�լ��lug����t��<�����R�\���cA�U�Š<�U�usZw�����X�Ao�B����v6(��%�x���-k�[=�+��W��j�uvTAFV������R�o�fx����KC�,�:.?�5[�&��b҃�<����
���)lZ'�����g�jȼ�ߜ�kb{�?X�Y��V'�Me6�t�8c*�����"�0])X�Y�H��H��e��5z����j4��e� ���T�vk�|��5�w���t1�Z{�'��tz�k{������;�>^+�[c4�v�X��0�����߮�w�5\|�Őke�:L�:�݀��o"�;G`�#�Q�M�8��J�s��(�"�=�@�B%��R�����E$�\!l6!4�����8-J6����B=���Zg�s��٢��#
�X���Q�&|�Ț� +3Ҡ�1�⹏��s� 0@'aX9��*?� +� nP�K��dN�a,?v(X����u�vl#�V��Sr�sA�ʮ�y��y�� fj;/�g���E�TF��k��Җw\�7���Y̤�9�W��?������ +�ު��v#��Q� +�"��6�oW����e.c +�Zb��/��5�Q�+�� +���H����nUِ@r2�9�JCLҼ�_W�ͣhf(�+0�������+8�
g�ȝ�� �]� +Ç�}k�V�ބ��qT���<ڡ��CRʑ��ڌ��;˚��~k�v�½�:�2�X�p�u��� x��� o��D�S����ۭ����#e��_�:9���7%��[X� �8Ф�4L���l�l�h����+V��s��b�n
��%� +�/
�&��`1� b�y���r*iJ5���3C�Q�,R8T7eS��q�I�c43�G�О=�`�%̰��2d�����̰����,a�J�Ђ��4ChAF�y�q�<�U +v���' +��x�҅օڥBlj1`ҏ +`����Z�
���.�SU�J�U�Q�� �\Wp�Ul�?^���l:���5�_U��)I~��A���$#�Q4�Q[s����x��"^�Z�?M� +��E������;�a=~z9���i���,�Ř'�߲�u�g�g��M��5�|`� ����&'a$1��"��`:�&M*V�h��N�0OL�]�2o�BURX� +�l5)�Xb��m�$���Jj�- ؔFm'��FJ��#�*�<�5i���cu�}�k����9����$����ԩږ��X�#@�c,�Ψ(}Jj�y<���ˈ0� +n�X�����8���#!!�>�9�w�c,�x�p���1Nǚ_��q�A���z~��t�W�� +H��ˎ#�E����M�����h �����,tc0�b���o�)�J�W &ow�JJ1��8q�7���˿��B>����"}Ȱ,�I/���2AYh�j��tie�U�*���UQTUS�*M��V[��P� *z����B +P4*P��i<9<�n��Za=+@ *P��ls���v<�����PfmP���� +/]wݫ)i�?'@t%Yyj;4�7�]"�Ev�_O*'ճDĉ�N?黲�<M�/�BL7���YUV����m���|���2|zﵗ�z@���Zo���Zh��j����j��ڪ���V��%���azS��Z��K*A �l�E�[�r� g�`&�,SO-m���p �!Y
`!c�
s*8��Q��&����!�7�@BD��C��� +�w�YE���#e&e)�+e.�1�4%7�y�����
�"�A��I�b3�8G���E��i�[�"S��1��RXx�[�
"}�.�+�s���¶27�[�hL3�6<�'L��z\jjr\��&��:�*��(. +Cb��7r�d���J��+��K�|����?S�����&�4Y[�j|��A�ʭmۖ����M��W���{� H|��R +�d�n���k�ݧٔX��P������I�!IP������g���~�lm(¼�4D� � +b��BMFՃRĩa��Y�̒������ �[�\�]�^���ʍKa���v���g�A�Xy)�Gb�q�t�P�i��´\~6_��g&�� 1z5�bÏ� �:��6���q�q�����������˜�O� #�����V{�z�X�8�}��*q��w������= �c/�>�߄|����ҋ���?���*�/�����oC�8�
x!]��>�!Z��B�`���]�_���3��/��ÓG-���e.N�H�p֝O��_��^�P�p1�-�=}�����괿h�bt +w�{����"��Kqg��]����>��o?������7ʧ_~������_�����������|�����.6��ǫ��I�Z��`�����.�B����w������[�I\�g���I
�<*�6k����#v����гx�5�ZEn��]��Uƈrh0��*����:���14p�乲P���u� +̀�GEd�>�6/A�Hí�z�p��ް����n�Wo�[{-�m\u�64�2��.��Ӝ`�@�MV٠�$�Q�;��ۢ�j���6�/=$u�{������O�����H.xw�D,�qU��c�8{g*���Um*CD���Z4VӰ U�
�Eq��%��
���v�=���^�t +D����d� �מ��D��]��O�{�O�x�h;�P�,ʂ�4��A�&ɍ �9�e(�1t)�Ğ0�13�Ѩ[8b�&��0�+j�����:�z�a����>�>3�������_4�J�k^n�n����t +�7r$�D��fX�Q,�-�k�[\|��f(R +G�(��:1����x���In>"����α`�ϟz�w8�$|�7L��E��q�
g�q��)�P5Y�EFL9m�a�:[I�9$B/��b�e��r���2����{ �@X��S�U|��@�*���l�7*��a�*v�`�v.`�ve�+6@���@j����Wq|�8��G][Z�6q�qC��ġo5 Ŏ��<k`�c���������qG`t둆K:���S�݇[b�WH�S������kyͩ��W�t�����*���_.;��f~��7
L6�"E*hu ��ʢ1@7�H/f���9���.����`::�,��o]�<g��%A
�X�I���G_�<%��܊K��s�Ԍ��������ws���ڣ�b�g�kY����]X�a`�n�����t 'n���2�S���e�����tc+����7� ����VF+uw��?cWGt4�j�4��E�h:h�/��*/~m�S8��� ����x^�Q�����o�s����#WB3�Y�����yB�J�Mͭ�V���1�;d��[r5�u[��|8�<'���.K����h�s~)�ß}Oe��(��視��[z���Sg����1�7�b��~�c���C��Ӄ���P�0(z��Cf-凍�GИ�8�x��Լk1J���)N?N �F�$+Q1����u�s�
Ӎ�7w����kVF�?��
��1�D[�N8*�x�A��t� �gG��J���2�P����8ǶN�
}ҡ��%f���M��r��}b��W���C.����O���؋�a�|����^q�Ìݼ���3�Q�V�TE�k�rJZ��70:�Y�<���� +�J��y�:Q]�)�<Ֆ<�uFy*)O&e*�*&+��f5���H�蕵�🦼��u�z����z�ZK�n�j*�3p��%�纞uռ�����d�jܶ�����~ļ\��3�gw�t�z�M�8�t{s����Ug�
�V8l��ӽTo���R0?N��~��{�J�DR���oR�&X[a� (�@�:"�V�fP�ϥC>d�`�C�]�C�8A�Ke��K%��c�G��"�L��=�N�.!�����8ؑV涫�$ÖL����/�'Ck�����C��a�^�0�5ޗ� �����a\|q�:������\F��<���ի�,��3�^�|�z\�:r�c]��Z�q}wrˮ�����d�7��f}�V���֪=������۴��\+�Ug�� +��.��*���<��R��$�A) K�>��~�AS���,|��&�������<
|�rIV.�) R����TU�C��%�ӱۘ4o�Y==�Ep���5F��i�`5C;��b�"�<����J6��ؕ%�/�na�#�5����V\9�r�N +�CUA�(�!&R�2�
~S0�]�b�h,VJ
2i�t��(�Q2�Py+G�]Es���A���:<V����n�=��BҲ,���^��*~qK3/�4���{tR7�����L�4ad�;�X75��8�ڀ��cg�GZe�F�'�Asv��[�����(�4DtKP���h�?�jt%��Q�i 204306h�buF�WvX���j��������� +�����������٣$�g�v�1��i�<K�{�ݓ����2w��d>'L�2�4/���L�=&�iy�b�rЛ +���a�-���>tp�4c�l�F�pa�K���R3.�˵��0���},���?��13t�]�k�7���I+��0v9ͺK�849&��6���x�)�qZ���MU�A���Uf�Nc��(�g�c�g�� �t
d�-�?��^��pw��7υ�Ň +s��9 +�]�K +U�A�@���= ����]����pD�ŝ(~�����V�̹ +!�B�W%�Z�S%�:�Jm���놂ҽ_����{�)*�U��~)öj]�E���B�$; Ͳ�>�4��D��%��z/����=Ɛm��Ң9D_5�J����z�E��HY� +��K�N�6�a���$���Ѵ���II���_��{��䈜��MU#��bX����Ed��X���)'-B��]U�3��JDǫ���C?��e� +��� +��&�
E��".��$��4s�G�����E0mC6�����,�cz�s�O���]��<Ѕ1� +�+�0�a +R�9�]��'��t!�KT�� �.��Q�o��I��}�� ���g� +�����a�N��d��Kc~.$��wOe��+Co3�qN��}��7�b��R� +&�Q�V4/���q;�j3&M��4��to���{qtF����p��H�BWb�P�<~��ӎ�'s�kW,j���j"��G�5e{ |���9"0<��C�㘑P�)[��= +ut��XiS�[�UIi��"��Q +h����"�V�I�bٓ�ĩ���j �,bԩ +��+�L̶%#*�����B��X�d��eG +�Z�w,�0'�� }r�b�k`��)ja�,�4'���F� +�Ϟ��[^�,K��f#~��ba�)a#H'��3S��΄�a��{>-A8�.�j�J�)a�a���+^�*�'%qƴ8 �k�tÒs�0;F��)���^+c�>���YX�Q���[�\��Ψ��D�=Ń��" AD���yq�����~A�|����oy���n�����x�iy�����٫��������ʿ���~|�����O^<<|���K��'$����[��lx +��Ï�� +��������
�;��ݝ*)�a����'l�.0+#oҴ��41,��B��$�U�h��mhL��Lt�h2LQ� ��P����AP��N0�6���{���Ma9��p����p0sa��2��-ӄ�R����������_��t8���Fc�Q��ltt p�p�!xU�}w|�vv�8+�Eu�a���ljzv����4ϟ|z��O�KkMp��_*tEπ��J��~d�[�$k7#
����)rw@� +� +��E�C +�,,8�W �,Pe��iϕ���( +��l'��q�J +��=e�4��z��j���V�Y�"~�ʞ���Z�$�10��v9�k�l%RG�R� +"�� �
�i����*���*�3�)-�2�����a5 l�E�e)W�ZO�Hf6Y���-5�O0��� ��k�RYz���= ʢ�a��e``|X2�3��T.vv4�"#�[��T��ٲ�ߏ�5 +:�벦A��l�)���\d��d0��e�?��+9ڲ'���;��_����|"q3[����G +^}��U9�����'%���lW����,����aK
"6P`f@fFugUB�9o������Bƒ���Ap���"`"�,%�U���1�ehPui n��bY�00Di����Z<��Y�(�-(y��os +��i�bM��,� +�6���fm����X<L����'�j���J�`J*Г,�Q��:��p�j�p���ク��{�{j�E����O�^��ce:H�
dt�����n����N�LA��pp���A}@EF +���XJ�]���Z�zA�O{��I +qUU�T��(^�6�'o_����d#����g_FsӘ;�� + +�]�L�<�D2�F����g4�z�3D�R��t�0���:]��u�� �#�9#2)/��K^��9J6������<ڕCEh����h�YNu�m���Qre�7�NQt�W?[z�9��%��p� +�I�yo#��_ B��{h���=]y��Z��ٱ����� +����X'O�� +���#s���qkѢ�|f��6쵕��YGF +��68s�E�`���~' +�>���? k�N|NÄ +���W���M��*�t��v�h�~�N�� M��>��T�+u'�O37=������<����*å�S$��1��I� me/Ώ�ޒa��9�p
:�-�"�0�y1%���`I���Ia��Ǩi�� `��\Cr��_�-@� i���y��W�z��/�%��.xN���'�,f +@���EZ�0#f`� +�d.A�쳺698��6����`m�YL�Ví;��VK/@���ԩy��*�R^|�R�k?P������ +mǧ�w9��D�뒱'zo����ߐ,��^�>g�x �W�Q2����kC�IB��4A�F��
� +@m��U7�ĆG�*3F����A��B'*p/z�]d6�-��< +��I��5����r�ƪ=��T�B��0�Qb;�SŮj�]?U��f@�5}P�{t%�b� +���5?_�J�b�����?1�^7Ǔ9.=��z+�KPwì��T�wQ��{Ϻ���h��/] +G���Ѝ5��e�%u�_��gn.��Քa�j�����Å�(���(-�}�} +��W�[Z��Ȧ���*ٝkŭ3�溅�8�&h������:3ly��t���7�SՅ�W�R� +�Q]��떞�i�5ã~�U�4f\�n���/��4�.X���:�l�S]n!`�[y%�H�j��=��5.� ��%t[�v߱Fpvm�� +?7ND�m[A8J�
�4ϻ�p~�,�w���f<v��O^-\�tŭ�8�A9;_<�{u�n0L\������`iS����I�Q�g:�7����sh��ZM`i�J�VvbA��!�i&(a���Ĕ��+�ۉ��nT.���M��iEq�<]��"4��*��l��VUu���W�H�M�Q�����3��9c�+,XE.��dh��C듣y�" +P:�\�&>��ڶx�-xN����y߰܌+_�q�2�C +oPV���� +P��.�b��ڰ�O�ֵ��,;�Ryt���� +Ч��) +12�d\�q�}λZ�����U~�Yp;w��3PI�p��EN}æ[���C�T<��d�+���Zn +.V� +��]��>Z~Q`'����6Ӧ�r��px�a���}����胑�T��G�������SƔ�}h/�n.�\��=v�
��3�^�\W�g,]�5���Ζ*�J9 �.����+X�.�Y�[P}l֛#n +g�@�u�@�Py�� +�m;o�Z ��I(bҟq?_�0D�^�1��J8����ơ���L�6��c��r3�o�Š`E�����L��� efR1]�|��hA�;\�l�@)�Y��z�4~k/���~_�a�죻�| +�JlE�k�����$�j���L'ga�il]�>��~~^yu.��1&.����%A�f����J
x��lr�߳S�R�x�^�v��Ίm1;Z��I��v��!���R���A���
�'�O�A�7L
��긘j$`���A���6��>��5��c�Gz���U�/8��_��e�{W?N�ʈ ��p&x��类U}�93�eq�5���uY�j{��QD�(B2�������4{�=ƀ��y�ύ�����F~����ՇO�����Ǐ�><���o<��/�><ܽw�Mt���]��χO��]��︅������->��y+�w�Ͽ��^���q�.(�a?n��ʵ_v�Ö=��Oz����A{�t��\/����NT �A��� +���5�I�����\�uw�h�tw3G"�v}�|�6��i �;Ud��l�ƶ�o.�f�o���x]��`Ϡ�����v��t��-�.`����$ɰ:�t��mQ��N`6#��:�Թ;'9�w� +Pz���*A���D��I�/�T����� +�V :���s�s��QD?��S��4o��JC�yǔ� Z����~<�[Z��BO��I�<��`wأ%e�X�G�Q�:�\�0��(:�z�*�7��@�z�����K?03��p�*���t�Q�|y&�y�,�g�{�T�g֎�e�[� +h�<�P1Dl6�e`�����8�b��>3�ؚ��������� �w�Q��Cu����Վ� �����;ApE!��
@�T��g����g �8� ��7�fH�̵=��
��LТ4��A������!��L�]��΅6� +ׂ2=���yC�k��]U���<kj�L��Xd8�3 +��H��hz���;� +�D!����Լ%��9&6/���TI0�4ٲ�#�2�?C����U��t{ �@Q�v���k��DP�l�z>��LT�����Ņ&�7s�L�Fe�+��u���s� <��^�EU���� Yl^�d2E�.`�O���b��1���xVԄ�M�8�dN��Դ�rH{�����(�Ψ����LTW{?ł� o�6[��_Fr0������F�[w��)�F]�˧���z�1��*GJ�f�mJh%��g��q������'��D��IQ�)���H9l]�� +H�����e�
��}Rh�ؒeه �A˔���@(%d�t>J�d���kK��Z+�I C�<�-K����k{��ڣ�NO!.�o^~�r�g�V3��X�.��g��6.��������l�R�PPr�s�P-.��2�l���l�IH
ª��>[W7��àvk�,X�_�h)���1�>62�8��Z�+P*�P +�I&��*�����Z������p� Y��!2���#���TS +�g!
���`uq���߿t\5;F�LY@�� +9L]�=U�JC>�x/ԧ�IZ�i��_A����{ ]f��/ί�Pw(Z�bS� +}���g�����7��>�������_���o_
~��o�x=���������>�R����ۏ/߿��g��w~����O�����O�������?�ǻ!�Ŵ��] V��Éd��7O�od���Mϛ��a�0䋗���G���{�����(��T|�
I��I�� po�ޫ<>z��4G�9��f2�
���O/�h{�y�H�b�1D��f�՜����[�#Ac&%�D�C[�� +�Q`dF~F��zC%�s\u�n��A�:~��|8�܋9m�VT�2
-����riÚ*���<��s|��`��p�~>n���V;����N̕�3�S�������Ô�UwG�}���㍲����û_���5�����|
Mv��J��5T3���
��- Z�ggh�|�o�ǵ�J�����D��0~�Y�({�a�+��)ץ`�M�~�{m;��O/W�ٮ�'a��<`V���eS�u�|�7h +�m�8��"o~R+�� b�I�� +�PE~�ɢ�ԛ�,�K��:,�U�4���: +w��7ّ�cN8�Ft(X���b����;$Y�� ���,e����=�kg��t����v��p������%W��ϒ$�[?Bp��S���p�5�R��dS�%"��0i�]^q��, 1_�CY�P�0^k\B�12������f]�.`6�y��wxua�է��P�g,#��
�Y��&�J� +r�18�λ�:�ߛ;��qcQ� .��&�Z.1y��J��0�d��I��mt�+���U��rW"��<im.����+��d��`�f��CW�,��c>cyr���P���0�@�m�l����,��I�驷v��С�B#��8ᱫ\UlP� �^���,�X_���0,s��V���YB;���H'�R,A�E���\���2Z�1��M�IUWH5��τ�6a�Xgla���շ8��P�f�͔��ӛ�{��U_��Z#��iIjP;Ǿ�m12�]i�ʻdN�O��klv�}���!���/���:HnP5�R���1�AL��T�L� +j��C�J7�� ��r@M� +���!Peϗ��ds���e��[�ɊGAӨ\l�xq/G��`��8�Lbo,�e2�[�mygY|�L�� �4<�^���ܭ��w(iU�W�h��o��3�)�k&�eqD�Dž&/��ZB|,�ѥ1\�A4��F�d���p�ժ�!�/����Y\c��_RZW��������±�d�\}�u��D#�EnPk������sP�j�7�z1�ᚧ��UFk�ҏ�k!P|U��U�= +`���E]BV�������[#D�fEC�����/��k�����~b�`x}ʶlΛ;��~Ty�&�;�|)�`��[�]y�l�B���`̜al�D���趘*�ft�,|LQ˰ޡ�7�,C�O+��ј������c|Z`��F�aec}��Ox&��UV��ƏޛgxPT�Ev��S#5���i|`ϯ\B 6z�s8�b�ɚ�&���0��0�Q�,@�K����V8n<U�͐�1�;���J�&KV$ +R^�h�B6���T"^3e�f��udrJ!+9y��I� + �p)8�F��Ĵ4Q�/��$�%.]�
�2��c�����H>����+f�z+x��Q���w��G���lGG�>,l=}dv�[Epl��ؘ�e{<_z_m/��]�E"�do�9&�q~#�pp���&Ġ�Top�Pp`�ƃYqB8KZ�U�{���~�/�ֆ<��d[Q1!#�?��a�wgo���0"--]�2���
�������́19D��b���4�Đ�G�^��*�=�Ϙ=�*X]��'s� +���"Z�G"�����~�D����ֵ�մG�-��G�R�dfR ����P;��QMa��U�h��b�h'�in��\X�joPC4�P� U����� +Jѹʠ.0��'����a"���=��Rl�L�f�0O6ru�4/`��ҫ�����g��>�x���� +�X����A��$�*���j6��~��5$�X����5:�hT����&퉅ؐ�!nٝH]7��귕��jT�@$�@���!��4��n��7��L�#[3��90��IM*��j��u�|&��d +Q�jn�I�����i�
V.�\2/y�6����r9�F�o,�����*0*z��N��ɘ��:��\،Ws���X�Z��E%�۱M(5Z>�\�� +�-s�<h�q���y��.�����<�8�\�mv�b�i�6uh#��K�0/O +a�&�`�i��<1�N-�m�%n��Y���Ϛ5sO��K����}5��Z
v�U�U�/`��1�<P�g�-m� +ԥk۹��L]OY�ٛ�wT����B�6�*����ze������3�c��n�3��g�-}y�ۦ��j�9��
\�5���f3��O�H�;���q�UI������g���y��[��w������(�خ��\5���t*��*:I^�]���~���%vtx�k��͖lU��]L�}��� +���D~��Q"��T)z"{Ξؙ\&�0~�>�V�M��.[Θ؋9�v��{��pb�M� +��g2��V��j�57��e�=,����mYlA�R(Æ�3��s�'Ꞵn�Jb�Y�~���_�O�<=`�v�#�|���C] +I�=‟Y_pU�+$�ULP˩U=�W�#E�����/�m�Be.�,~#�ee���#FV����δ�؏�9�������i�(k\�N?��q��n'�>��;G +m�w�Ч�@캔�Y���q�A��Zk�\����%6aٯP�Ü���K^q1��9Bo�e�6��uUf
�_a��+k�����y͚H]\ +�'K9�_~[2p�-�m�p�� +� ?=��Z=��֑7��X���莕�n�'l�/�ro��)���gJ�0��a[�7���n�4��r߱C+�c�G�s�;PA�cGj�����. +�۫;�T/. +<��W��w@�E�+���{mӶ�;ē'���C��7���K���ܴ��dߋ�h�^e&4�ْN�{���C�߾~z�k�����~������O?}��Y�w������������>�� ��������)>^���#�?o��~����ȏ?<����x/�ߏ~����O�,�90�>��#�ի��WOϲ'���OA. �c4���[Z�H��v����\Z��� ��?��d����2��K�����8�
|��=�ިo��D�/%� 1Ŏb�yl
e�ʎ*�*tX�'��oL-�T/�R~d�R�E�nZ[��K^�Uްm���0��r\�"^1����g&T!�!��){�H�fS�òI�����c�����'U�㳁��� +*rо*9�f�ZXG;�N�! �q���z�������Ȕ?��G|����j�44Z*a`�t���N ��2�Vt
�-�j�
��Q� Yu5�n^-Ǜ��`:)uT\#����(���m�C�2�g
Q����w��XF�͎q7f��c�;J�Q���r�x��6�)�h"i(��g��(�(,��r.��a��j�%�!4-�)� +u�~���b+:��ZrwB����-%x�Z����t����q��A��6ߠ?�Z�D��7�q��;�,< +������k+1*���g���)şl&2] O^urq�,����x�Vt�H��M�P�e/Su[��E�ޗ�O +D�������O�.��F�D��͊Ŵ〽�DM��ƫ
#ݪ<j0���+ɕ�"��^$�vؑ!�R�C�Mq~�p ��Ss��dP8�ՀL������Cl�N1�E����C��[8��G%NwX����Ʀ-��>KĿ�Cʸ�!�<��jh�9��aZ^&"�[�AOA4w���^$���/�Ȁ�1G%ʞ�\�B�T���r�B��ma栲��1�>c�9�ݴ�$�^\�L�P�58K�S'�%4��Z�̒=q ��{,�L��;/*B۠��b�ۂw�-�Z-�Ӏ��<|���r�Kh�`V!@%�� +<�Va�����¶A_t�%��W{47���R�G$�L�����}g�`?AƬi
��_!�j�[�H���ī���"�������\� +U,劅m�` �!zX�Z���0o�5�dm2��:��O,�d��C�=ˁX�˰m�`���=q�j�R�6�{>��.�<퉅{��]�\m
Nn���5�pY�S�+Hj�C�.큘Vu,�3Ѷ@N��svxo�5/ Xbpo@U��AO���E�!��}� +};S`��[�<N���aqĞ�A]d]u��%5Y>�)�k" +s��\���&�I7�&��셔���K
m}~b��p-�CR2��ޠ'�銅4T�,!D��
�I�s��c'���t;F�ɾ��lY9���ޗ=���b�Vjͽ+Nn�����Y�K_�_V�CO0��kF�w[��iK0������Q������;�M�N
.��\�AO%��!S��a��0v���<�+RB���-�:��M7�>��|bk���j;�:�OK;�V{��Xmʛ�U�;��Zs�r
�`��c_3��cg��"�����/]�b�Ol�v�-T�
N���<�n+#JjA��ok}�f ͖����J�0s�X�V�>���>��h�d�� +W�����4�
�S$�Ia�BN�DX��@N�g�HU�'@�Wq���&2���� bj�s��!�6ӏ"/�Z�-,,�
����:�f(�2�������ˍm_XPU�熥{ʨ�0c�j+�$�@�I�!j�3Y}��[��iqV�)��j�\��>�`w��xxIWjP��ę�漭��I�&���\D�tq�Slj0� Z�;v-+v�q�Tb� &�)��lsb\}��<�p���g�Q7����@C� +'a<�����n3-!b�B�(?�� �4j�v�s� +;z�?E� +�D��F�$���H�A������o�P"ql&���
J R�E ֢R��lA���0$v`�e/�d$5�._��ӳ���=�rh��F(h��|)��4�Aj��>`��0��6��j�@h_1�`��L�`��ȃ��H�wl�� +b�������*����(?�σ�sp���n�@J��pvAP%F�
p3�t�H��4p=Z��e��u$P�d,�ôk����x����5��X �*�V<� �xK�b�Є��F��Ì샚�z����[,�z�@8�hӤ�D� �:.��RBZ{�%�WR�iocR�e���D�L����q�w\�����mMn��}\���o�0��$ውL`iGG�`¥�����}�s�Eln`�8�nA"|Ҁ¤lF� +%�k�<���&��̝Έ�#@�Vʮ/�����ȅk�BV{�
}�����ì�0*�_�aM�="Tq�>�jY� +q��AQ�v ҉U�g +��TK��I�*
�y��Q\ځU�ZR:�^����=��.)Ě-�3�j +��B��������ڻY�x;2����}i�Uo������ё�.��Z�_�~:����|ی�ۏ�_F��^��*����4��yY���M?<?�����\��?��l�p�������5��,�O������������Ef{@~z8>~[� +2��̗��ޞ�{�k����~ܻ��ǽ�q�~ܻ��N~ѻ2�m�ɞ�|�|[xt@#�i�9����i���`%6|�;�i� ���b���a��� +�� ���O��yj/�����L<OW�e��.�����f:�yMwѽ�)�}'���b�է?2L�������u�*��T'�E6y�ڐ��W$�5��5O�'e���b�k�����䪺H'��$�g��,���mC��բ,��°�ֽ���x4)�e�˗Y^o�P,��� ��>���H28�7����(![�2\'�B&�m|�s�/�P��)�>��8@�|��{2:�p@zhK
q/�v"���U5�N�Y:<Rt�P�8�)��/�"�Һ� �#���ғ�rQ.�$82pi��J�|rW(a�8�
vĚ�@o�o�|�F><rۺ�;�
�W�6�f�q�^;;�����֧]�VZ���2�����;7�}_�nyq�����jC������@�̪��}�A۶ٻ��w�����x����b�xt|���g͊="�#��Ќ����_6;
�@~"P+�4HH��rGN���L�������%�'�}W�h2��~�0�n�V��VR��U�q%_Zz�����h�7��^��E[]�����d��`��^X�j����� +�q�d�{�~����;سN2�R���38�ǰ{���1�K����%��<>4o{��3IB��-�.Ij#<�)���l�
�� �&�\�6���,0[`���;w j���@9�����e|���eؒ��<Rַe��O(��慵�!��Z�~)�/��S��+�����D��{TP>�M�> ���[�[�f.=Z:� +|��.��P�Jw�~�f�����Gү +H��ao�8�A��?��&���So�uZ�{�}hjlsK�:�L����%���k�*ݐ�km{&���Ϋ�A�����_�S�tB����ˌ��{u�;�X#�|��[&]��/3�ә������+��C���?�������G�[�3��O��`��e���>u��կ;>7�=��!Cj���T�L_���[ ��|P$OGn��'_�d +�lƹK�d'��g3�I�q�$V�6���
����_(�nV���)����ny�}芹<L]�b0ve!��
<���_F�����_��e��K���.�����l���P����k-rxڕɨ�ZS�+v�/]�@����pM����W�>J�\��7�-�,��jJp��?�� +6e9�5�_G��f�AV��eb���2/���A wr�
�?��:�3b��2��냀�N��tE��U�S��,�Ɩs&q���� Ź�\0�HNH���d��C�����B>N�6�F"�$㔒�c�uh������ڏN�f��F����IW�k�����o�(y� +7���h�w��6�|tE�8���^p�k�:�5�:�{Qn�� +�:�[w�� �sy.����������Ѵ�"�pLfN�'�! ��Ђ*���/w�H_.��z?Ѭ7<:�|�z[d�H����d�n�)�%^[��v�ӕa�B�}1�pE
K��w�Mxp����(���0�
̵M����d�!ΗE�aE���h{�hpE�vP�}R�?��`��N������g��ھ�������г+��\0u!��9��e
��m2�[�V�f7)Z�T�}h���m~����?�͡m>�{�%[���� ����کğ�BߣDe)}��m�NNpԳ~���5��T�;�g(շ��������ܯ�ٖfJ��::8� +��<hw��P�o��c�M���a�jj���Ҽ��XG��j8P�p[SĆ�k�-a��Yf�me|q��{'�a#�)^�*� (�"Vs��T�I>.=ƵMN�����q�R'��ɪ)��e�q/I�u� +�-!88�+p��.Ώ�f�*��P���UE3#fG
FA%#�ZĔHُ����2�u���W�K�D;��\f#�)�ijR��ld2���L��@�MFt+��@0�nR$��sy.��(�9H�l�rX�ۮ�ԭ�Rа4]Q�3X
��y8��=�I�w�f�jƶ�mIR�;�O������Zj��=Lko��y�Un����Q2��2-��n˪E!%�\������kؔ�
&�::��=����V�b4#�wl �xy��4��e|$)�
�z�BC�1��[�%١�d�
Ss�ՊW5O��� N.�";4?��ؿsm��)��j1�]�$�8Y5%8��LzS�%���nNT�%D���O�np]@���Y�Y���L(Qw������������`�����F��쬧����=�����U��.�+��~�~��H�Vǁ�*�.ٌF����W�ܵ:C�K�_kX���7=��6p�Q,w����|p5�sǪ:�ȩ�� ��7a�ׂl�#�L0�33o�&�g�c7��t�R�q�y3��n#X��lb�*�Ӑ���5��:?^,BJ������ݯYv�4S�7� ��] +%
�xR��0Lޱ%�㧛e��4,�c,Pb��sC��K�R�
����В�Ћ�P��p��j�T}�\ +Evl~����&'S~b���.����dՔC1��y�xI"���U�o .$>�+��\(�nV١�P���U%5#fG
E%16/��2%Ҳ����w�bk�iu�Mb�7�Ǿ����?���P��L$����T��H3���VH���X�8/r��z�{�V�5�fo���6�/H�=�H�O;��~���&�N�2[0�Z'
�ue��,:#�l�ש +�6�KA6���I�dט�4$l����%~�Y�]gp��w�mY x������$/ٿ~{����Y{�U3���?ڢM^���&�XЏ\��{@�������ΈG�W'����:�h���X3�)4�/�Ƭ��,҄"o�H9���d��l�䙋��j`p���c�{/b�I[�q��%v>�m��RN�N�=�h3��k�Y�P�z�eyL��Cc�2ͣQ�JN����s���Av�d�K)���Z��Z��M�w"W��ɖ�!��2-⛼s"��x���p�ÊJ�zJ@�"��1;J$���w �@�9B��[INVN�Φ�B��1&�p��2ܟ�h54G p��ۜ��fyG �Ȝ%\ȬQ�;V�@d�_0z�`�v�Iļ�ן��->�;�gVf̈́��)*���m�3�*�)�ELp$}��<��,j�51 +��]B�q��5_�TY!
��owF<:�:�L���yF�LV��k�1�!t.���%�� +H��WkO������J���_�' +�U)UC{����Ğ�9u�?Z����I� +S������W�w����חE:."��6��B�Y�I��8�d���AR�!�6HnMMT����q��0/
����$A.���ʤ��*��go�0�RٔO*�"2�����s⦄�bvQ�*�x�qb�2�6�<M�?�ԝ1�����Q��`j�2+w_��A�0&�"�'D�V���R�~�-GD�-��()�@G�0�Dp�-��s��K2��ȓԘ��Z���<�TnR2�Àrv�}�щ�������ESL�����WR㶅Lo�ļ����m�� +����~�V3�Щ�$ oRa���#_��|㨨i�Bm8��j�9K�|��]�h�ήY�ȯJh��}VA�
rg��2%�A���c�Oa#G2�d����m�tz�%�����T���;'p��$�mQ�.���(ٙ������$��F���j���kT-%s����� w�l0 ��[+�SM�C��ME�|����mk����6m�[]v-�$s���.oW-�i�0�͓L�Cz�ɤ�j�Iw�n��
C�}���"��@��d�Ym�i�f��0��mZ)��H�Ls��7>V>�mo��s��Y.b�{�3�V��,�������K�����Ԙ���'�`SN2�/�cV+��f�U��;��c�o����w�bաio�ƣl.�"�EQ�����������c�~��4��E$��ΓX>#�K�2vl^ڏK�q��F�B��y�3�~ljml%E��h>�Ѫ9ή���@�.��\��LEޠ�.���0�͓��"�" +U���b>U��Ȃq���'���Pust��-T�I�O��/lƇ�/5;W3�lu�ps"|����֗6RK�*��dn.�����m�\��m�����ܶ�Ns��mӁ}�ܕ�Yo��t�d2�d>��4��q4����[ +�Lo���~�T,~�J�I*�\D��I�d����xӆy��"
��՛
S�,�q�80TWeb<�������~�!�U�ƙY�6�6�<M�?D�Θ��� ��(Wy05e���/U� �k��Z�Z�uE�gu�K��\�]�� +�aʸN1���sW�J=�1���rp]����?��@cF�O.�߫��"m;ıu� ��`��٤LG�?ӫ����Q����_f.x����Tˏ��W3��>:|���>�shce3� ��]i䭶{�f^�x3(�mc���P.^E�suuU�M�{�+=�z�"T�_����Ke3+����Y��iW�2ֵ�5$q���W������x��ٴ\d�G�}��W��v��|^A]9PM +�8�X���1�t�y\,Wй��g�,*�Dt_��q�rǵW�5�<r��K��qp⪝�B}����ݩ�����8��w�ʠj�/B����D�"$�Wa"�X��`�W�m3�iWҀ��U� +���K�Ҹ�C�u���� +}�۲��e3n�q����� FI�A^�`>����J��=e`��4?~�nD�V�"X�?�X&XD���� +���Ɲ1�N<R�(%h���r>�|��R�bB&\a��r��x��V�����'���:��Vx�VȒ��|�����U�rDS�0D+ +紪������E��}J�JLZ:Q����^���n�Jיp��|��P��ID�AG���ayp?�L��$<0��\�@��H�{�n���ȸ#��Rs4�^i�He���P�~�rtꁄ��dS�M��j��:�ࣰ��(����y[(L�-&n��
�Y��� +"�C��ĪO�K^�$�r�dbk�u��d����g�'6��9�����j��C�d��zr�Q�C�C��������*�3g9\��@���O�l�W_xT�o�-�x=WsI��'��u����ar��z��7�ŷ�8��t�������Kw/yh�G�t�������:�����z��(�q.�Iv)&y�� +he��-dI�� +y"P�#�j�$b
��;34��n��H���Q���� �=A��-� + +��0!�"���+[ܟ~̔�j�Y�7��ڒ�[F�u�;P�*��
�W��� ��sA4bvY��C��u!ZL>�Di"6_c�����դa��~�}���ZQ�g3����p71E�ݠ�T��]� +��I�Z;���� +̑O}�\�ٶ�Xj�D���; +n�@)�!um̓��:�z&Lj�u4���l��)��K��@{�^"S��(�)_Y�}���=UJ:<Ye�TWSS|�.o��@»�: +�c��1�1���Z+֓�{�%�I��%�����j@v��$���/e�8ʼnr��ryy���z=��g_�=В`^����/��\���~�i������[_�?��ܛ�������79}4��ߟ��:ھw���GrH����a��Y���������n��m�N����X�z�~y��msB(�����Ň�����뤨�����O�����~����=�lJB8�ia�;�i��{j���8�����˛O<�vhF +R��A�䛀-r��� �`N%��C)�7M�WU�z=���']얃�ܵ�w�v +����oɄ_�;K� ��(����,j^+�7d��t� +�ci��&����k���?=�e����wo������I�9�Y�ˮw<m��������hwR��:
.��(,�C*�i`($�`hS_����hMk�X�~"l�he�CX�D�7�G��%ˤQ��F�F�
-����c�f����6̼��0v +�����RqB��n+{1ZG�аY��>v�lZ��Έ㭜�B� +���hZ��6��ZC���F ˈFז�������' �LJ�X����'pJ��k��c9��Q3D���K~+�p�XS��h|�&�¶[�#FW���E6�Jʣz�К3T�)zN���S�P�B���@�j�qb�qT)�xT���oN��$Q_�\Ņ<�G�!�V��r��Dz��K�"�(�� +�"Ô�6ℭp��&�4/�.��%N\�|���o���j���vH���%���j���$���oɓRЉ�.Ny;<Tq�O�;�
le��K��o�3_]Bҁ7��������q;N.�-�[?�Y +v$С+"�����A�C���B���B��4=�^��S�� �-Gҧӓ��6��+�@z� f�o +ʓ��L���xK +.�g�
(B�1O(��}���j��C�uXX���
��c���i�u�T���#N���g�>�ȣL�o"�^��D���tm~>:��%���YPK���:�I�$��H�Y��N\�����MBqP�{!��75q�b��`�w�&=\w���n��C���X��ehL�.߽��DE*��HS�f�NB6E~��()��NT���0�^ p +̏�E��#R�rA��ȌВ`�;G�X��Ui+1/�0R�6&%�.�+`��:�A���F`-���d�f$P��z��'�\�4��# ++G�8&U���:����h��6b +��3������f�S���J� ��9�����B# +f�P�tv؎���z?��u�P�R����
��I]��h��U;bM�i;�*�|�LT�����;93�$��or2�N O�wh^ +pS:/Qk��3z�Y�9G��V�qXãW�T��F���Y���h��&HG�m�4�:��r�TR��e������o����Ra) � |κ���*#T�ۙ�L���!�Y�XJ�*d:��9Ӱ@sj����Bw]5^�*>�$ +�+ZAo�a� +��2&�Cs�4���ղ����]ᝳՆa��=� HEF�<�� +∊�P׃4��x�7Yk]b�g��,���6�ӭ!���D��g�9��(
��AC�b����ǸR�H���{.ȉ6)n�xw4�M���O�`MX�"zN��)�\K +��s��0�����]R�M�&��f[5R�%�?70!S����D@���z���e_�����`�N�Ny +4�/��%���\��Km#0���XZ3��d42����-|e�Ȧ(�xtxV\ +(>v��#���Y9]kmb/YO��n�������\R�"��� `��Œ�%AP�P��:A��� + r��<O@��
�9�'v���{w���U�R¸���t�؈Np�p��� +� +�6T�%d�x�3�\�!'�[� ��K� i!�_+8x���9�6Z+$0=1RG��Y����v��P-�{��QҁLQ-���,j��rL�j�y|�w���R�s�$�[֨4����)�NR��K�ih���6��.��x�+Z�N����Wd
=��CGG����d�b��R*�#�6*v��C^�+�]-_ +����j|�e��4�Q7xzX�=�=�b��9(c�Elm�\��O}{yp�M�����!� +�ov{3h����A��>vh���� ��/���A��˶Y~:~Z���Kv�;C|˶xBvl~��*C��ǞiR ���
M�i烬*84����k�j��z��˾�Ƃ�qiI��� +�N�����Dhh['�� g��AAR�RD�����m� +8���+�T �}
���J�uԂ ���,����� +�d�BI�n�V��ÀU��@*@!��.�_��%�{����o���8�{�@r՟X�"#5�z�m��X�����^&�U�@]{xH��M~ƙ 1C( 1a��ܲ�o!2��v�Uu�i��z5ww�pw_|k}9�LC낐Ӵy-zOӣ��s�h�8��e�����=W����3ni��\V�(oS���Uļ���3�|BuN�e_��F�֦ڊ^Ir��<"��i_�d��:ɓ���Db~^,k��#ViDk`Զu<�&��踻q��#�p����}Ys���H� +vH5�����&U@�M�)f���i�m���o�mgN.1r� +�5�����2G�Ӌ��MRƌ�1�rVS$LB:E�%_�6�6�~?�ԏcJ�l�_z.:�B��7A��{�N�Bs$�Q�
����E<�L��G$���T�J"�
�9 +D��;� +�
1*�k����r�����)��0�:5�?:�qV!1�Bj��~���vS)��qc*�vv4uR�N���XW��o������7put�S|YH�q_�ǥ +H��WmOI���K�D:]�ޛO6&+N� +�,���r�Y� fw���<=c�66�w�5<5U]���TU���Q���D�&�!�B0��
V�sV�\}��z�F��T�ί?7�pzyyq~;��r1S����/�����%J+��ُ�+�cu�~���b��Ec�Y��8���g�������g�Y~�����̑�.�� �Qfr0�]�/f���vz���I�.n/�s�Y>)�6�ɏ�ŗ7�/�x��J+]���s�P��*�������ۅz}������M����8U��j"j���û�duE����2�vً�T�sұ������e�6۞�u(��/q�ź��{ٰ�}��{6�띸��q{����f2�.�������f���E��4�KH���I;�xum]X�_L��Es���D��}r}�����n������"9�>�&���f��V���q�����i¦k�rOh�u�l�%��'�U�8W��f�Y2����g��ض��\!���ߔ"DDW˿����6��� + I�$�:�j�t.f�����.f��Z�'�� ,�5
�[�dA�x��� �"��2�Ԣ-���|�rR��
ƪ5�&�Y{v& !>��z-�?sfK� ��N(c�c0)`� +bI���Z��I�AUE��l�
3�!�aOR�z�(1L��9z��\�����+ ��$Cgr�" �7dJ�;7JǢ���!Z���⻬�dV�H� +�b] ]�<�@d��$ +zY�" +�} �l�D>7*`H1���v�����\�hD=T��v��N�.)�ᆁu�,�Ki +��2�e�re KB��Nd�in`�!s"%-&#n�
�!�;���h�)���s�&B���@���WS�<�a���N*��!�c�"J��\�e���q�c9��<��`�ͤG�ݱ_�k5���<h����A&82�q)��Ῑ/w�n3 +?���iFؼn�LԦJ�>Pk!M"�o��[<#ؚ@0���Js(n^~�]>�r���R��u�N�)hμt^�|֨��q�h�#Mp�m���c�'�^�<����u��NPֈ�H[|�přS����-��xC���ns����b�����MN<3VP����K=}Q�}�@[��W���F�qE��Q��bA�`�����o���?_���ӹ�v�K���o�g�"{�yA�
�Z��?�θ6��� +y�2@���uC��Ĕ� +��)7(��nm_(n�%e��V��.��<����_��ε@�^(�uDa�~����t���u�t�����D��si��d� ��9].! +I~R<��K��+��Wf��+��k��3�Y���lIK�-��R���Ŏܳ�:
�,�c�� +y��*N�l7o��`�:�r��:_��3d
�6�y��UK��[¯�1�����՝��me���߫��?@���7�$C�*�
��W���I��3*�
7C������CB�6�>�������,�^��#�πu�J�X`�z7MeI)��ySi1����8�ա(% +4���Q̡��9��@���g(戔�AitmS Z�����u$aĹQ�c`^U�)c�d����ע��7����$F��u�R\��=��)�"��647���������4x��竲�ˊ u��4������h�s�*�'�A�D�V?�1�ead4/)̍]k-������ +����%�Y�R�R��'�_��V�)�Q�7��^��F����(��C��"�ݐ�:/�P�<��(:s��91`*M�7wS1t�W\6Aa��]�z� +M)dz;��n��{y&�O +^�7��FW/"t��m�L�R�Ź�n�%���{������ + +}���ͪ����1��JZ>�@���G�鱭n`<Q����`ݍ�x��Qt��+%��&7�l�g�Rj�C*M�k��x�"������yL�){������#8烱��k����9����A*gx��͒�T�Ⱥ�gB��1���u(a[Wث���)�'���E2,\�H���u^dzG�ʮZ� ���r��f�!�eIXx��3'f����H#yKp4�W����fј���`S�q���� mCu>�����~&�������@-�c���$�� +pb�&��m���*�l�V��z�.��Z����ԝ��UW��N�vl�b�U;�r{o��8s��g��z�Eo�w=�-nפG�N���4\e;>�-'=@O�dP����|�/~y{���_�)���[闫^!��`�d�"��t.F�hm��*����pN�*ŹF��}�y4ՕƮ#�(N�)���=(U}�����:s�0] �'�Չ%D��{�J�%����jC��T*e�zJ]
W<�cyln�����Ӈ�0��?S���r*3�J.=�p��B��nF +4��� +���3q��w�����M[�r*1=/��YO�����d2������T;S����4��7��P6ѥ<��-�/a�ܵCD�O���-����M�)������aڝoչ,/��RWE��vzD>��1��nj�z㮏���i��=|+�z +�)2?~ll�C���q�w�6���.]t��C
/���kwO�9��3���2i[=�]˳/�e:���i��NF�7/�Ih0Ɇ@7���K�]e��(��݅�w"5�i]?y��<ҠH{��M��#{�@����P�T��J V���{6��P7�gU���:� +U(%�R$ȴ䈽ڟQ�z��� +��2�؝��.��N�OK)�v�mI��R��JW4��
"b��\����z���ۘ5�L+}�* +�l�c`VL��0�}*�!�!���Ȓ���R̹�=23N�CN?�sJ�atp�|9�&@>���*@���A�����d�9�O Ŧ�ǔ�'@e�_��*�=�zƙ�"�5�a��CyD���ߋ�
�G�E&vL�^�%q��g�.a7T�xU�v&�t?:C&��y�!�bL�T�p4p�zhT��p���L�s��'�=�����B�0������UG#�Z#�D�mcE�ȗh;�4 n�k� +��I�uB����P�!����X�}�{k�=�M��)�z�[Pv��qc��D=hث���������b S~�����ژ��g�d�]eo���~"qC�S��2�uIe,�Ib�:.�´��R�s�Z����i2F�p��~"�0����>x�]��7�.�vT +
d+ƈ!���N1y���n�F���^�ag����ݐ ���g�4�/�fQ?�P��~�::ŀ�2�¦G]��\�ڈ�d�7|@�ƌ����0=�k,����� }��O���n\ �ȇv���u���|���9u��$�Zroļ'rƻ��/T;̀�P�MմCN Â�0"���`ät�?[f����{�:�^T�;�~ M�ӗt��Ҙm�wf�����
�voĩ䔄P�7�d{>od%�[�i +d#�NI��~s��}����]Q�"����HV�q�����SIu#�a�'wy渱W��6��p9✷�o�.6u6�8iҭ� +�JQa���\
��#�t+u�21�/�Ԁ?x3/d�e䱓A|?}��� ���G�hr3']��n]��"�&���'�m�F�l��dm��8c�7��u���w��N_���M��>fiI�����g�ķ�{����'c�-�#-p��B�� +�>���U�*���πr��h�PBو���a�g�v]�Ʌ0���� i<�<�L��A�8��h�i���yi���S&�4����S�Q�뿡|��.���q�?�J+*2�$�z�1��(��QB�Gz�D���F����R�|�J��C��|F?�����j�Vm�������B����g�P��@�+6�A��J^� +������ U=���$0���+��!����uq�$1��(�1�p�v©�c��0����E�j�����~�(���� +B����ܦz@�������[�hgLM+��JE�~�0���j��Ęy"���wQ�lrb��*n
]i�p�^��a��[h>NЮq +�DژT��WG�F՛�-�����T^P}� >�GxI'������I��mm����O�b��-���_m��y�0����A�b�u�_�S���x����K�J�0�]GTXl�6�D��R�]����r.�VqX�y�*+hM���(�=�r@Q��0}*H�Oy���$�Օ7�z���b��+���z���bqEڡ�v��AlE�2���.ڎr��o�x��i�j�����6[Pn8ܻ��V�ig��^;wU*�6o����;J�F���`ϗ:��[Ň%��CM���(=�t�"����eiL�3Nh +#��t:V��R��� Pmm��jU�`S����|)Y&�ٝ�l�џ) +L�f�#US�ҍ�]w +�JCts�B�\�|K�1��nH]@KA�@�[ sM�~2��5KI�Z�����gݏ�,���'�8.g�q:��w����9�-'D�U�>�\�;ec��b��+*fZ�H���L����P�F����f�T�v@C�o�-��D�;T:�}�f����u���vC�:�6���ٲ`v�
��SH�.��;ǀ 9f[dhK��ih���MU���b84`C�{�&�4~��we�U&B��dU��P}��9�e_X�u�Y�vT�,���c���� sቊ̜e?�U(:d7�?��2!l��E��݄�ܷ��0��%���1F7��3�Z_�ѡc�� C����K�5�(=��ά�سMO��4��
!`ɐ�&Q%fMF]݁6��(UȘH�ڏ��r�r������j$�O2{�r�|0> +$0NA۰C!S?L�F:�*2��P`5+�\=��3;C� O} +��}2��R�2�o1p
�/y��[�.�nwF�g7$� +VDjL�m*�h��ҏ�ܑ��H�B#���M�����#��}Jش���tUޖ�k@h����U���T� �M���p�[#�X�r���EK2h����B;�H�o>��=I
D-Q�����<#�?���lj'y���v�@
zP���`k����y��������\Rg=K�6�|�3�$+Ց�|Bx��%Ri4�f����m]����m%�44�ҋ?�|T�-`��}� �&�G����;u�����Ƥe�+���v����n�կ.�YHp�i�xg17�����1� +��c�����8*Ģ@������E-�]��P���hh�Lc)@fV��h���D�\Q�7�8g��|AB`�)c�& (N������Qq�6y�%#N���N5H�K�_ޱ$ʝG��A���Hkv���Q~������L�&�U� +j,=�[^���oABC���sP +���jg<� +��`�x�-�ygZDx���ܸ=ՠ�QD��(�����U�ww��d�Y�\�ٌ}~�b�^ۣP���L^�{/\�����1К��{�K���}u����jt��'+n�*P\}�;�P�r"���Q]-ȧxe8T���18��U*��g���
��-��� +I���h��<�ͻ���ۀ�2'RU�e\��a@��fN�_3����niSE��N��jO\������<��������(�~���E���[�Q�h��
����������G>h�>N����X�&��I# +�y6�͔��"�/��91�@ņ%n�ūt8�@)��Z +�oI�،k1���+?�R��ّ̺�$��zvg*�%�@�j�GvB �P�m�uH��*[?���N�u�N���2TR�Ih�hc�����}�4��a+���ӢL�A�P�2$�fK��f�ݓ���;��o���A�Rh�<ژ���=Vk�k�_�J�:qh=x��L�[��.P����)y �;��p7g�m��\c���\��a��f��h&q#�֚��ᇄc�����e�̑+ٍ(��h���+�#��{��u��k�,��P@wx�'`��XJɿ� +�*W4������>�3����ͲToΙrܛ +����K�����^B=���T��0��&3�Hӆ�gx�L(�� +2��ы\]�?`�5`�͐эhz����:J����f2�����Z� +5�ۼ��ڋ�>B;�?��E�c����-\�_G_���#Տ������0��K���]������pA��D��´\��*ͧn��t)8���6�c�G�����ޖjёd�g�L +��t�i��uX��f�)>�?���{�V�SK}�\&b��8���K�d̊J�n�xaF�9����<�>�2����;�j%��
����r�u{(��,�h���f�m0����jK�klS{1ϐHy������鴑e�o��}�K�v��x�4 Nl��bYS�*_TJ�_��=x�2B +��/C��KɭN(�N �~�"�+Oh����ϗ���qb=W4}�?~���b�L�p픟/c���g��헜*U5�2k�.�:͑$�,�*��(�pܣ���KrV[��-�= +<B
���6����n�4k)WPS�-��е`�������y�4���D��Bw�iz)��k3L��Yh�̙�0����
�#��M�!U��'о�l�M��<�H`�)���p\����08�V@ j�&���7MSI�,�p��m��2��5 +H휂��ʵ_C�C�'PgI�[S��@��L�.�R�'�u���d(>J�3���UK���|��f�l���MRL�8K�A)}gV!� +:ŕ-���Ǔ��!�C���Ȏ�bT=�vw$�2xid`1��5Dl����7��*��������?_MI�o�� �M�����%��x�4�e��PBf��HӞ��|�BM)�m��F��~vvp�� ba�o�w
fR�,��S?Ƌ�U�X����2��X_��9}��p�X�����n��u4��ޅo���u[g�ܢ����A�M�ɍ +gC��zZ6��tA��7(9rLm��M�\W���*h��~@�f���)����K�m���ݕ��H��X��o��S�2̏'�*I#2�%b�݁�� Z��ʳ�e?�@�F��̞�6|�o�`��IO)̬�x��������(�km:�Sɶo�(6�GG�B¶��}���}���n�rx�B +dRc-�9� N�ovÒ��V�]�p��"jh��%3�8(Kh��(�&e�����|$���)��������K��f����.���yx,�'���[;��|:���bK2M6��gxK��J�n#cv��Ҕnf�(���UA���
���]�t
��@�Y�ϪtD~�oh�P8��}# �����B}^wrQ��y��!��{�<%��� +�w�� +�]
W5�PZ{�T�k�,Q�A��Q�NI�W����'dX۔��ͦO�$�]�u�Ď{|����6�$���;�^�aI��9�4�����n��nhQmJ��L��^�Wp���[��өz���Y ����%�����?vM��_4У�CE&B:$\���,�@Z�a[c>wS�5A!qI ��������w�δ�N"lI���Sy�{�<��p��,�)(����`&��U�J��ť���Ԉ�q�b�ɲ��+�j�t�����(Z땢`^J�x;�G�� r��S��f�zU��� �wJ��k*��H���x��]̝/�{���F���n������࠘�mQ)�� +c�ںq9���3ܵ�N �nƾr���L�����`}_(���n�N��eGE�ޡj+8������̋g�U�
�p t��)��өa��t8mw���wZf7������!C�L^�����U��n=��DJIcS�w}�B,��#I +w��ג4[��or.�ȹ�c���@g�cqS0H�M� +F�@��MZ�b`K���Z��������t�F���dܩ~�Bp�ZU����M����1Pm0lT�zN�]���>�»B�k�noXh�+O~���"UvV#�C(9��c����=�����Z�(���Y��ՕџfB��zܫ +e��{�촋6��%"� +�j���2�nM��}=B��Jb�N?��&�kL �T��y�@s������d�� ��+��8Ъ��ܣ�gi��m�lIs��+'�*�My�����嵊^J�t+�w��T�T�AV�>ϗ��D�+1&�>[=���yI�Hr+��Q��;��9n� +��7Q62W�io:t�o�/�v30�2a.N�~�2mz���(���n��������߬/��dU��(Hھ5-�K2,ic�m�1۾���R�ze�-������^�@4���6.s�}��8߾LI�'�4������ +w�Fm"湨� +��ջ/S�)��V���^�3��0#c�
��}a�[5dd�=�bbN��Y�@XSw��&� �������e�~ +ה�ӣ=~de��3ҕ��Ik&��)�涥�!1�3�����LpS��$�'W3���zr�[�`�?'Ӱ��l���Y�t�s�N�h�@H$E�i�K��[��}�xtk�\��3སE�M�T���������V{����~�I�/q��+n��jY�ٹhZI�X�$\���UGd^�Ag_4�~�:P#Dg��]��+5�7u����$�PuȽ�_�rNӪ|6`kb +K�c �6�w��l*4㡊�-# �e� ���E��D����� +��m�����:��f��V=x��X�.����8큛G�d#T4o��̈�QV�r)��q;~� ��j�$�G����U�#��ޥ$%�%B��R0�m�-���&X@��]�'���^�
F/O���
b+��RV�;�p0�e���"���0pz�!�D�������,
)yY��P�'�DK`��ۉ5��<� L��G����B�D��_��\F�%���b
��I�H�7 +��=E.��,��5��٥健T�C�?W���MIN�9.�*�W�l���"���ٱ<v������6�#���y1 �/ӷ�G�%6�]A@P�XfB
�����95WR��
dcA���]]�S�k0�4T�#�4?�<0�;� ���Ǣg�H�X��D|b"(T�N��C�aet�qN�F�`C��N��k)�!e��JM���-s +�a^|[�����)J"�o�
���*�Qވ29<�«g��c�~?J��qv��Hgg2��V��y��KMQ���ޤ�B�����Cd�F
[ +�����ŏ��m�eP�F{
2��� 4�A`�����" p�XI&�L�6��J3b�k8@�x�!C +�w��8 =ࡁ|'p�^�kR������j=آ�� +z���Ϣ�scF?Lj�31�\�@�?���k��g9�]��Dl#`Ց�ԬV�ʎx_MkP���cp$��o�=��c���b!�?�"�F+0��WIi��o#�:|$�HCZ�?c���zAwʁ��CƝ�ᓞ�|�G}�����GGtb�F�?��o�v�_�t�^0-|�׀o|n�7ȹ= �Q�S���%�q�]�+h���&Z3�C��WC�9�N+�4�FᆘМ3��Iغ +�:cr�f����&�f��۷R�r[��Dg'��/�E���겼Y�ﶒ������@��vN����|��Z���.������v�$����lZ-�>�^oֲ�g,��́{~-��6{3_�;+�UUn�����^n=�G���iA�%�� �0�l���,
�#4�^�0����DVe�Lے@B��Y�q�?�?��˚7luiݤ!��_+�R�H��.
��X�xC�>��o�ZA�'�7�_\ra%� +ϑC�&�G�Jӵ��4��M�l����| '��9I�}Ӽ��5��@�υ!����45c.���Ҽs��r�~�L�R�4�.����U���4�v7�Nn@��D�|P�31"��_}(9I�!����aap; +�~Oa�O1�[���k+f�����jS1�t-��bv�e��j���(�\�d7gy�,;c�o]^���K%�NCW�� Z#3N6b��L^��-���l�d�&��#S-�]t�����<����/��#����x2��"�z�Or$XFN`��T���*����N��ș���r�Sf��81�IN�?ζ��ٔb}Ӣ�ɟ���;�&�Q���h) +�.��7.bM�h(Au��ZD �bn���u�� mת�"��d�UɃ�]�閵�[ �V�K��G�����><�^0�wa��a�n�5-{��<�,?5���{ٴ�r+��
���(�C5Y˟&�� +0)�[\���1F� +����,�G���M:Lݭ��������Qf.q9?gs��3l��Îx��n���ZhNg�<�UͰ�K쑜lX�Dm~�h�&CӜ����^���͢�����O�ɲy�ZF�J2Ϡ���y�b�1���-�?-ٳ %���Q�Ϧ�csvmR-��Q�)=Hb3�Lu��@�S���/�y�D��l�&�y�:[G_; �k�]�e-���%�[��j��l�� ��~ 6>�1�jl���1�M��?3�����Yȴ[5��wf��p���1F�ƪ<ZC�z��
9�e�*�]�m�&�5��,��ԑ�ѐ�_��
�Q�>?/�3m��P +�Q�a�������w��K�D�&4����P�o5O���Az +dZB��ee��%g=�j�s�������Z��"1��1Z��3 �/ut��D��G��`��Q�3��{�P��2o*+v��s)iWD��$2[F�<�h�uHݏybVFd.8kG�e��V_�)�V���&�@�g$��d�GB��k4�6���Ms�!�B3�>����}�K@��#?Mg�<����˷5 r�����eT�� +Xk�N+CY^T<����D��f��B��^�T��z-�ۘ &Ei�l��OeM�.�q�d(ڸ������c�꘨�,e +�X$��e�`�*��MJ�G�M|�χ#�.�n1e�%YK`/ +���(|w���q:$��j���>�b�U�C���<P� + 3��>�9-��m�{z��n�.ƛ��>J��=)]j�&Ɋ�v����Ni0��*2�6�q�V���.���p�Mln�K\�bdDYQM��[���zq ���]�틼\�xd,A��2,�pn�ѿ"Z���ٞ4ę��?�� �(k,���D��Yf\���H.yGtz�HƉ���}&6I��?�����@���������Ω#(����U��|=K�+�D�.э�����~�|�L~���{~~�^_n����^zS�\�6 �q�W���"�����L�A5�YΪLe<�9`��ћծ���)��� +�r�^�puZ��]J�7 �˜�fO.{����J�qcU��^�v*�L٦0����ɚ����� +�lb\�NEԀq�@ �;7����FL:���h��϶{�A�oa=�1m���&PD�t&�z��?:�U`�QA�3/ɕ�G<��X%���H��c�aLGe��Q���ӏ���$
�]�#�n +�9e� +.���%��n� +�E��0̌J�e1
��~�K��u�a2�&B�W�1�e���a��������l}d�&A�'������Trx(%�7 O�@��LJ��Tb��{��1p��v�Ú�BZݧ�L�gnp��]�r#'U�mU���[� +H��W�n�H~�C�1`��1�e;��ā�d�X,FbMhI��d���US�%6}ȣ,�� ��u|ut�c.��ɪ��<)@��j�P���1�{���K�w�?��/��z<��k�H�=)�8`��z>�|e�GG�����`Z�{����9�f�����?����A��`8��ƫ`<�ί���6�0�;!�`� �<G$���'yn��m����̭+c5�i�gS��;� Z��[�k� G��{'��"ʁz0���u����)̈́ɕ��R��>f o�b~e^ۅ�l��W���̍p��1�!T��8(���AoaؿR<N�G���\*"�\x�4p�HmKO2`�7��� +p9$`Nkc�>�;�o䁡X� +5�h xt�������g��,��6��%���@���\� +��zR<(�&p�i�*8�� ��I���݊����K�8E�dG�s�^#�:|��/�� +A�P���%��`IC�Aby���$z +���.����(���E�B��ȝ�h.���ѣ\` +���E_�x0 +Of�tٻx� +���z �����SOYDv�9]��7u,%#�X%th.��S7DKw�J
0�7�w�1M�k-2DLW��eĎuM����Xk�d�A�&�
��
��&��N��]�ל�WsKR$n�&��ɢ��]����D�'�K�']�"q땩��]ގM4��;��r��E$�G�d���փ�WL������
,�1�`�� �Yw�c1�e��fd|���6�^�b���C�N�9Y�@K5j��U-��沶w��k��]��N�?{�����L����B]��q)�����N���� �L�f���^Nc�^NFgח���z�x7��Gz��k�G�k��!{7�/���¿���(�u�8�~.���j�-&��r�N�r~p�7�|<.�j�u^̾��K���$��9;�Q�9e=`=�X�7��w�F���~�_E���j2��":�����#¤'�����ۆ��o�|8�u\QD�bV��C�O����m�xUM�E��fk����?����|���F�z=�� +� �X$��X����C��`J�v~�Yev� �!���wΝ�J�-��:3B�9|V_W�"��>����L�q���`2�b��Q������3�V���&~4��5
��|�,�05�?�c�$0�pV��[H8*�����j\?������ێm=i�q����C�~s(rs^�gAj)���O���ø�Rd_�Λ�C��%���)f�>��nB+��*���ȫA��6��k�=�Z=)i�[��,����I�XlP_�� +k�[pg'ѭ�_T�b���Y��x6��Yt�X=R��$�7<�8y�8]�jQd��� +k�[pg'ѭ�_T�b���Y55֨�J�E��#�� +�ua��g3� +W� ���R��\&���qo�<�:z� +GLX�_a�j4�
�q�!���Ѩ�h,�J���4z=�eL(Z��@Y-�kh�ⴴ�� +s Aۜ' i����d��.���Ζd�5 +,P2a�Tj�e�a.D�O <v�O�{��$2A�(tr8�#�"CH|I����c�E���$�(`LF�֔Xp��� ���TxaThVZIw"�WYZ�QN�i�R[ ֬�A�`�dV{�����4!���#-Au��-<'B +Z'M�&��;������`��Oa��d�]h7�Z�
MWu��b䴮��g�Y�:[Œ��P^ +�H�A�Q<
X�\�H�0I.���'�\8�!d�ZU���4 �.����]���*������/2u��̧�)��Zzʘ
Է�|Fһڸ���T;$�����U�k4��%����,� �ɰ +�ZL����t�|C�����JZb����M�Z���n�a]:jp0T t^�E#h:�&*�f4@u��w��1��1���34���(�*D��k(>m����� ��0�x�?�C���)i� ���/T#F�3�����=�JS*��LI��� Z +)Y� X/�l��zqu� +�4F�%(�J9Cj�B�j�m��7�n�l���C�L�}0>�J� +�=|@�Ƚ�X�0
�o�_��� +4+�0P�<葡���p�N�ANVa�b���J�l��B7RoD�C3s����Sֶ%��p��W41(Ãzp��Ic�ju5��UX�� +��G}������@��/]�@K�lY�';i� +5��)�%����J|��ha}�o�_豤OkU_��Y��rA��kM���5R���w���^�j�����������)��H|�V�Z��e^(�� +�x�s�:�VA�n+��o�ɀ��j�t�f�����4�Z�7�w-̡��%Uf����qlh��6�OZwp��l|�qt��³f�����<Q�8|&)W�?]Ls=�ؙ�T�cdBu��~CV�d�6p�g�����Y @'���4'+FR�ښv���+f+%8�ak$�5ɀ} 1[Bp{����]^�<�0�S��f)�v�Aǘ>k�l���D��p�=�a�4U�1�f�"��ޜ�s��vo`~�)_Lh$���1@���g‾i�r��������O�ESE�rw���v�a_�w���0�m���D��M�4m������ +Pg,C-�+Z1� +,�R`��pW��f�Z�|$ [rTv�ZV����z� L�G�U�,3m�Y(��w�V��u@]T���t��� +���_�����ԅ�/�a��[�e�|�5R��.���*]S�I⎺� +0000000016 00000 n
+0000000204 00000 n
+0000064617 00000 n
+0000000006 00000 f
+0000220614 00000 n
+0000000007 00000 f
+0000000008 00000 f
+0000000009 00000 f
+0000000010 00000 f
+0000000011 00000 f
+0000000012 00000 f
+0000000013 00000 f
+0000000016 00000 f
+0000221245 00000 n
+0000221276 00000 n
+0000000017 00000 f
+0000000018 00000 f
+0000000019 00000 f
+0000000020 00000 f
+0000000021 00000 f
+0000000022 00000 f
+0000000023 00000 f
+0000000024 00000 f
+0000000025 00000 f
+0000000026 00000 f
+0000000027 00000 f
+0000000028 00000 f
+0000000029 00000 f
+0000000031 00000 f
+0000220684 00000 n
+0000000032 00000 f
+0000000033 00000 f
+0000000034 00000 f
+0000000035 00000 f
+0000000036 00000 f
+0000000037 00000 f
+0000000038 00000 f
+0000000041 00000 f
+0000221129 00000 n
+0000221160 00000 n
+0000000042 00000 f
+0000000043 00000 f
+0000000044 00000 f
+0000000045 00000 f
+0000000046 00000 f
+0000000047 00000 f
+0000000048 00000 f
+0000000049 00000 f
+0000000050 00000 f
+0000000051 00000 f
+0000000052 00000 f
+0000000053 00000 f
+0000000054 00000 f
+0000000056 00000 f
+0000220755 00000 n
+0000000057 00000 f
+0000000058 00000 f
+0000000059 00000 f
+0000000060 00000 f
+0000000061 00000 f
+0000000062 00000 f
+0000000063 00000 f
+0000000066 00000 f
+0000221013 00000 n
+0000221044 00000 n
+0000000067 00000 f
+0000000068 00000 f
+0000000069 00000 f
+0000000070 00000 f
+0000000071 00000 f
+0000000072 00000 f
+0000000073 00000 f
+0000000074 00000 f
+0000000075 00000 f
+0000000076 00000 f
+0000000077 00000 f
+0000000078 00000 f
+0000000079 00000 f
+0000000082 00000 f
+0000220826 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000220897 00000 n
+0000220928 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000066200 00000 n
+0000221361 00000 n
+0000064670 00000 n
+0000065008 00000 n
+0000066506 00000 n
+0000066392 00000 n
+0000065476 00000 n
+0000065636 00000 n
+0000065686 00000 n
+0000066274 00000 n
+0000066306 00000 n
+0000066582 00000 n
+0000066981 00000 n
+0000067978 00000 n
+0000082139 00000 n
+0000097535 00000 n
+0000106562 00000 n
+0000120645 00000 n
+0000136363 00000 n
+0000154931 00000 n
+0000168896 00000 n
+0000172776 00000 n
+0000185042 00000 n
+0000211435 00000 n
+0000221388 00000 n
+trailer
<</Size 130/Root 1 0 R/Info 129 0 R/ID[<E862F3CE059C4629B63D25F059EEC6FF><AB1F0FD1E9F940AD829B369607DD7E44>]>>
startxref
221565
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/star_d.png b/chrome/app/theme/star_d.png Binary files differnew file mode 100644 index 0000000..cf23eda --- /dev/null +++ b/chrome/app/theme/star_d.png diff --git a/chrome/app/theme/star_h.png b/chrome/app/theme/star_h.png Binary files differnew file mode 100644 index 0000000..f6a40ef6 --- /dev/null +++ b/chrome/app/theme/star_h.png diff --git a/chrome/app/theme/reload_mask.png b/chrome/app/theme/star_mask.png Binary files differindex a04c2c6..a04c2c6 100644 --- a/chrome/app/theme/reload_mask.png +++ b/chrome/app/theme/star_mask.png diff --git a/chrome/app/theme/star_noborder.png b/chrome/app/theme/star_noborder.png Binary files differnew file mode 100644 index 0000000..ac73d2c --- /dev/null +++ b/chrome/app/theme/star_noborder.png diff --git a/chrome/app/theme/star_noborder_center.png b/chrome/app/theme/star_noborder_center.png Binary files differnew file mode 100644 index 0000000..87bef3f --- /dev/null +++ b/chrome/app/theme/star_noborder_center.png diff --git a/chrome/app/theme/star_p.png b/chrome/app/theme/star_p.png Binary files differnew file mode 100644 index 0000000..4d0027b --- /dev/null +++ b/chrome/app/theme/star_p.png diff --git a/chrome/app/theme/starred.pdf b/chrome/app/theme/starred.pdf new file mode 100644 index 0000000..af6129d --- /dev/null +++ b/chrome/app/theme/starred.pdf @@ -0,0 +1,1612 @@ +%PDF-1.5
%����
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R 30 0 R 55 0 R 80 0 R]/Order 81 0 R/RBGroups[]>>/OCGs[5 0 R 30 0 R 55 0 R 80 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 60454/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.2-c063 53.352624, 2008/07/30-18:05:41 "> + <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <rdf:Description rdf:about="" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:format>application/pdf</dc:format> + <dc:title> + <rdf:Alt> + <rdf:li xml:lang="x-default">starSelectedTemplate</rdf:li> + </rdf:Alt> + </dc:title> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmp="http://ns.adobe.com/xap/1.0/" + xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> + <xmp:MetadataDate>2009-07-20T14:52:26-07:00</xmp:MetadataDate> + <xmp:ModifyDate>2009-07-20T14:52:26-07:00</xmp:ModifyDate> + <xmp:CreateDate>2009-02-11T22:00:17Z</xmp:CreateDate> + <xmp:CreatorTool>Adobe Illustrator CS4</xmp:CreatorTool> + <xmp:Thumbnails> + <rdf:Alt> + <rdf:li rdf:parseType="Resource"> + <xmpGImg:width>256</xmpGImg:width> + <xmpGImg:height>244</xmpGImg:height> + <xmpGImg:format>JPEG</xmpGImg:format> + <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA9AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYqh9Qm9Gzkf9ojivzO2ajt3Wfl9JOXUih7zt9nNtwQ4pgO0+f1rON/2gOLf
MbY9haz8xpIT/iqj7xt9vNc8OGZCIzbtTsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVSjXpt44R/rt+ofxzgPbXV7wwj+sfuH6XO0cOZdoM395Af8A
XX9R/hj7Faz68J/rD7j+hdZDkU3zv3BdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
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</xmpGImg:image> + </rdf:li> + </rdf:Alt> + </xmp:Thumbnails> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" + xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" + xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"> + <xmpMM:InstanceID>uuid:8b0dca6b-954e-6e4f-9d4d-b6e6953785a2</xmpMM:InstanceID> + <xmpMM:DocumentID>xmp.did:F77F117407206811B94B9283E5C1B56C</xmpMM:DocumentID> + <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID> + <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> + <xmpMM:DerivedFrom rdf:parseType="Resource"> + <stRef:instanceID>uuid:e5680c13-7927-eb4a-9f6b-4ea688916eea</stRef:instanceID> + <stRef:documentID>xmp.did:FE7F117407206811B4F28F4470BB07B1</stRef:documentID> + <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID> + <stRef:renditionClass>proof:pdf</stRef:renditionClass> + </xmpMM:DerivedFrom> + <xmpMM:History> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:D27F11740720681191099C3B601C4548</stEvt:instanceID> + <stEvt:when>2008-04-17T14:19:15+05:30</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F97F1174072068118D4ED246B3ADB1C6</stEvt:instanceID> + <stEvt:when>2008-05-15T16:23:06-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FA7F1174072068118D4ED246B3ADB1C6</stEvt:instanceID> + <stEvt:when>2008-05-15T17:10:45-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:EF7F117407206811A46CA4519D24356B</stEvt:instanceID> + <stEvt:when>2008-05-15T22:53:33-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F07F117407206811A46CA4519D24356B</stEvt:instanceID> + <stEvt:when>2008-05-15T23:07:07-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T10:35:43-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F97F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T10:40:59-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FA7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:26:55-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FB7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:29:01-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FC7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:29:20-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FD7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:30:54-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FE7F117407206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T11:31:22-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:B233668C16206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T12:23:46-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:B333668C16206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T13:27:54-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:B433668C16206811BDDDFD38D0CF24DD</stEvt:instanceID> + <stEvt:when>2008-05-16T13:46:13-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F11740720681197C1BF14D1759E83</stEvt:instanceID> + <stEvt:when>2008-05-16T15:47:57-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F87F11740720681197C1BF14D1759E83</stEvt:instanceID> + <stEvt:when>2008-05-16T15:51:06-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F97F11740720681197C1BF14D1759E83</stEvt:instanceID> + <stEvt:when>2008-05-16T15:52:22-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FA7F117407206811B628E3BF27C8C41B</stEvt:instanceID> + <stEvt:when>2008-05-22T13:28:01-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FF7F117407206811B628E3BF27C8C41B</stEvt:instanceID> + <stEvt:when>2008-05-22T16:23:53-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:07C3BD25102DDD1181B594070CEB88D9</stEvt:instanceID> + <stEvt:when>2008-05-28T16:45:26-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F87F1174072068119098B097FDA39BEF</stEvt:instanceID> + <stEvt:when>2008-06-02T13:25:25-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F117407206811BB1DBF8F242B6F84</stEvt:instanceID> + <stEvt:when>2008-06-09T14:58:36-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F97F117407206811ACAFB8DA80854E76</stEvt:instanceID> + <stEvt:when>2008-06-11T14:31:27-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:0180117407206811834383CD3A8D2303</stEvt:instanceID> + <stEvt:when>2008-06-11T22:37:35-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F117407206811818C85DF6A1A75C3</stEvt:instanceID> + <stEvt:when>2008-06-27T14:40:42-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FA7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:25:39-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FB7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:26:20-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FC7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:27:11-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FD7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:28:03-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FE7F117407206811B4F28F4470BB07B1</stEvt:instanceID> + <stEvt:when>2009-01-21T22:28:17-08:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F117407206811B94B9283E5C1B56C</stEvt:instanceID> + <stEvt:when>2009-02-11T22:00:13Z</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + </rdf:Seq> + </xmpMM:History> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"> + <illustrator:StartupProfile>Print</illustrator:StartupProfile> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" + xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" + xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> + <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> + <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency> + <xmpTPg:NPages>1</xmpTPg:NPages> + <xmpTPg:MaxPageSize rdf:parseType="Resource"> + <stDim:w>19.000000</stDim:w> + <stDim:h>19.000000</stDim:h> + <stDim:unit>Pixels</stDim:unit> + </xmpTPg:MaxPageSize> + <xmpTPg:PlateNames> + <rdf:Seq> + <rdf:li>Cyan</rdf:li> + <rdf:li>Magenta</rdf:li> + <rdf:li>Yellow</rdf:li> + <rdf:li>Black</rdf:li> + </rdf:Seq> + </xmpTPg:PlateNames> + <xmpTPg:SwatchGroups> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Default Swatch Group</xmpG:groupName> + <xmpG:groupType>0</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>White</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>255</xmpG:green> + <xmpG:blue>255</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>Black</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>27</xmpG:red> + <xmpG:green>24</xmpG:green> + <xmpG:blue>24</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Red</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>7</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Yellow</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>242</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Green</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>157</xmpG:green> + <xmpG:blue>62</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Cyan</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>160</xmpG:green> + <xmpG:blue>239</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Blue</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>35</xmpG:red> + <xmpG:green>28</xmpG:green> + <xmpG:blue>129</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>CMYK Magenta</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>120</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>199</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>26</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>16</xmpG:green> + <xmpG:blue>29</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>55</xmpG:green> + <xmpG:blue>10</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>123</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>157</xmpG:green> + <xmpG:blue>32</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>251</xmpG:red> + <xmpG:green>237</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>202</xmpG:red> + <xmpG:green>221</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>101</xmpG:red> + <xmpG:green>192</xmpG:green> + <xmpG:blue>39</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>173</xmpG:green> + <xmpG:blue>54</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>136</xmpG:green> + <xmpG:blue>51</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>89</xmpG:green> + <xmpG:blue>42</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>173</xmpG:green> + <xmpG:blue>94</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>155</xmpG:green> + <xmpG:blue>140</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>154</xmpG:green> + <xmpG:blue>221</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>96</xmpG:green> + <xmpG:blue>176</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>29</xmpG:red> + <xmpG:green>36</xmpG:green> + <xmpG:blue>128</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>30</xmpG:red> + <xmpG:green>21</xmpG:green> + <xmpG:blue>80</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>91</xmpG:red> + <xmpG:green>18</xmpG:green> + <xmpG:blue>128</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>141</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>126</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>158</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>79</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>235</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>69</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>101</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>184</xmpG:red> + <xmpG:green>165</xmpG:green> + <xmpG:blue>135</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>142</xmpG:red> + <xmpG:green>113</xmpG:green> + <xmpG:blue>100</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>97</xmpG:red> + <xmpG:green>82</xmpG:green> + <xmpG:blue>69</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>75</xmpG:red> + <xmpG:green>57</xmpG:green> + <xmpG:blue>50</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>192</xmpG:red> + <xmpG:green>134</xmpG:green> + <xmpG:blue>85</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>162</xmpG:red> + <xmpG:green>103</xmpG:green> + <xmpG:blue>58</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>128</xmpG:red> + <xmpG:green>73</xmpG:green> + <xmpG:blue>42</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>105</xmpG:red> + <xmpG:green>58</xmpG:green> + <xmpG:blue>27</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>84</xmpG:red> + <xmpG:green>41</xmpG:green> + <xmpG:blue>11</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>49</xmpG:red> + <xmpG:green>26</xmpG:green> + <xmpG:blue>15</xmpG:blue> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Grays</xmpG:groupName> + <xmpG:groupType>1</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>27</xmpG:red> + <xmpG:green>24</xmpG:green> + <xmpG:blue>24</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>49</xmpG:red> + <xmpG:green>49</xmpG:green> + <xmpG:blue>50</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>70</xmpG:red> + <xmpG:green>71</xmpG:green> + <xmpG:blue>73</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>89</xmpG:red> + <xmpG:green>91</xmpG:green> + <xmpG:blue>93</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>109</xmpG:red> + <xmpG:green>111</xmpG:green> + <xmpG:blue>114</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>128</xmpG:red> + <xmpG:green>130</xmpG:green> + <xmpG:blue>133</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>149</xmpG:red> + <xmpG:green>152</xmpG:green> + <xmpG:blue>155</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>173</xmpG:red> + <xmpG:green>176</xmpG:green> + <xmpG:blue>178</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>197</xmpG:red> + <xmpG:green>200</xmpG:green> + <xmpG:blue>202</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>224</xmpG:red> + <xmpG:green>225</xmpG:green> + <xmpG:blue>226</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>237</xmpG:red> + <xmpG:green>238</xmpG:green> + <xmpG:blue>239</xmpG:blue> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Brights</xmpG:groupName> + <xmpG:groupType>1</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>7</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>68</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>216</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>151</xmpG:green> + <xmpG:blue>56</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>17</xmpG:red> + <xmpG:green>43</xmpG:green> + <xmpG:blue>137</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>118</xmpG:red> + <xmpG:green>35</xmpG:green> + <xmpG:blue>135</xmpG:blue> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + </rdf:Seq> + </xmpTPg:SwatchGroups> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> + <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> + </rdf:Description> + </rdf:RDF> +</x:xmpmeta> + + + + + + + + + + + + + + + + + + + + + +<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[82 0 R]/Type/Pages>>
endobj
82 0 obj
<</ArtBox[3.0 3.66016 16.332 16.3398]/BleedBox[0.0 0.0 19.0 19.0]/Contents 83 0 R/LastModified(D:20090720145225-07'00')/MediaBox[0.0 0.0 19.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 84 0 R>>/Resources<</ExtGState<</GS0 85 0 R>>/Properties<</MC0 80 0 R>>>>/Thumb 86 0 R/TrimBox[0.0 0.0 19.0 19.0]/Type/Page>>
endobj
83 0 obj
<</Filter/FlateDecode/Length 144>>stream
+H�\�K +AD�9E] ��f����j����Y8�L�%�J�L��ii�cy8��w�����a��fZyTQ�^%�Zpߨ�y�s'))�Ejk�Ar��YJT���`D�)6j���p���q������'=�J��^� +0 +8;Xp*q93E#!!<3,1]p2~>
endstream
endobj
87 0 obj
[/Indexed/DeviceRGB 255 88 0 R]
endobj
88 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 +VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< +PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
80 0 obj
<</Intent 89 0 R/Name(Layer 1)/Type/OCG/Usage 90 0 R>>
endobj
89 0 obj
[/View/Design]
endobj
90 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 14.0)/Subtype/Artwork>>>>
endobj
85 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
84 0 obj
<</LastModified(D:20090720145225-07'00')/Private 91 0 R>>
endobj
91 0 obj
<</AIMetaData 92 0 R/AIPDFPrivateData1 93 0 R/AIPDFPrivateData10 94 0 R/AIPDFPrivateData11 95 0 R/AIPDFPrivateData2 96 0 R/AIPDFPrivateData3 97 0 R/AIPDFPrivateData4 98 0 R/AIPDFPrivateData5 99 0 R/AIPDFPrivateData6 100 0 R/AIPDFPrivateData7 101 0 R/AIPDFPrivateData8 102 0 R/AIPDFPrivateData9 103 0 R/ContainerVersion 11/CreatorVersion 14/NumBlock 11/RoundtripVersion 14>>
endobj
92 0 obj
<</Length 936>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 14.0
%%AI8_CreatorVersion: 14.0.0
%%For: (J. Nicholas Jitkoff) ()
%%Title: (starred.pdf)
%%CreationDate: 7/20/09 2:52 PM
%%Canvassize: 16383
%%BoundingBox: 3 3 17 17
%%HiResBoundingBox: 3 3.66016 16.332 16.3398
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 10.0
%AI12_BuildNumber: 367
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 0 19 19
%AI3_TemplateBox: 12.5 12.5 12.5 12.5
%AI3_TileBox: -296.5 -386.5 315.5 405.5
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 6
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -16 28 24 1320 681 90 0 0 199 190 0 0 0 1 1 0 1 1 0
%AI5_OpenViewLayers: 7
%%PageOrigin:0 0
%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
93 0 obj
<</Length 13793>>stream
+%%BoundingBox: 3 3 17 17
%%HiResBoundingBox: 3 3.66016 16.332 16.3398
%AI7_Thumbnail: 128 124 8
%%BeginData: 13658 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD3FFFCFCFFD7EFFCDC8FD7EFFCCCCFD7DFFC9FEC6CFFD7CFFCEFE
%FECEFD7CFFC7CCC6CCFD7BFFCFCCC6CCFECFFD7AFFCEC6CCC6FECDFD7AFF
%CCCCFECCFECDFD79FFCFCCC6CCC6CCC6CFFD78FFCEC6CCFECCC6CCCEFD78
%FFC7FEC6CCC6CCC6CDFD77FFCFCCFECCFECCFECCCCFD77FFCEC6CCC6CCC6
%CCC6FECEFD76FFCCCCFECCC6CCFECCC6CDFD75FFCFCCC6CCC6CCC6CCC6FE
%C6FD75FFCFFECCFECCFECCFECCFECCCEFD74FFCDFEC6CCC6CCC6CCC6CCC6
%CDFD73FFCFCCFECCC6CCFECCC6CCFECCC7FD73FFCEC6CCC6CCC6CCC6CCC6
%CCC6FEC9FD72FFCDCCFECCFECCFECCFECCFECCFECEFD72FFCCC6CCC6CCC6
%CCC6CCC6CCC6FEC7FD71FFCFFECCC6CCFECCC6CCFECCC6CCFECCCEFD70FF
%C8FEC6CCC6CCC6CCC6CCC6CCC6CCC6CDFD70FFCCFECCFECCFECCFECCFECC
%FECCFECCCCFD6FFFCFC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FECFFD6EFFCD
%FEC6CCFECCC6CCFECCC6CCFECCC6CCFECEFD6EFFCCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6FEC7FD6DFFCFFECCFECCFECCFECCFECCFECCFECCFECCFECC
%CFFD6CFFC8FEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CEFD6CFFCDC6CC
%FECCC6CCFECCC6CCFECCC6CCFECCC6CCCCFD6BFFCFC6FEC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCCFFD6AFFCEFEFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECEFD6AFFCDC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%FECCFD6AFFC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCCFFD68
%FFCEFEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CEFD68FFCDFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCCDFD68FFC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCCFFD66FFCECCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CFFD66FFCDC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC7FD66FFCCCCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFD65FFCEFEC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CFFD64FFCDFECCC6CCFECCC6CC
%FECCC6CCFECCC6CCFECCC6CCFECCC6CCFEFECDFD64FFC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCCFFD62FFCECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECFFD62FFCDC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC8FD62FF
%CCCCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECC
%FD31FFC9CCC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7
%CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC7CDC7CDC7CDC7
%CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7CDC7
%CDC7CDC7CDC7CDC7CDC7CEFFCDFEFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFEFEFECEFFFFFFCFCCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC7CFFD06FFCDC6
%CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCCDFD09
%FFCEC6FEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC9FD
%0CFFCCFEFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCCFFD0EFF
%CDFEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC6CDFD11FFCECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCFECCC6CCFECCC6CCFECCC6CCFECEFD13FFCFCCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6FEC7CFFD16FFCEFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCCDFD19FFCFC6FEC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCCEFD1CFFCCFEC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECDCFFD1EFFC8FEC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC6CEFD
%21FFCECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFEFECCCFFD23FFCFCDC6FEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6FECCFD27FFCEFECCC6CCFECCC6CCFECCC6CCFECCC6CC
%FECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECC
%C6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CC
%FECCC6CCFECCC6CCFECCCEFD29FFCFC7FEC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCCFFD2CFFCDCCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCCCCCFECDFD2FFFC9CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC6CEFD31
%FFCFCCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFEFECCCFFD33FFCFCDC6FEC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6FEC8FD37FFCFFECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCCEFD39FFCFC7FEC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCCFFD3CFFCDCCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CC
%FECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECC
%C6CCFECCC6CCFECCC6CCFECCC6CEFD3FFFC9CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC6CFFD41FFCFCDFECCCCCC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCCCFD45FFCEC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC8FD47FFCF
%C7CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CC
%FECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCCFFD4AFFC7CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CDCFFD4CFFCDCCFECCFECC
%FECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFECCFECCFECCFECDFD4EFFCDC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC7FD4DFFCFC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCCFFD4CFFC8FEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CEFD4CFF
%CDFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCCCFD4CFFC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCCFFD4AFFCECCFECCC6CCFECCC6
%CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CEFD4AFFCDC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6FEC7FD4AFFFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCCFFD48FFCEFEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CEFD48FFCDFECCC6CCFECCC6CCFECCC6CCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCFECCC6CCFEFECDFD48FFC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCCFFD46FFCECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECFFD46FFCDC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6FEC8FD46FFCCCCC6CCFECCC6CCFECCC6CCFECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCFECCC6CCFECCC6CCFECCCFFD44FFC9FEC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CFFD44FFCEFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECCFECCFECCFECCFECCFEFECDFD44FFC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCCFFD42FFCECCC6CCFE
%CCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFEFECCCDFECCC6
%CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECFFD42FF
%CDC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC7
%FFCFCDC6FEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%FEC8FD42FFCCCCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCCEFD04FFCEFECCFECCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%FECCFECCFECCFD41FFCECCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCCFFD06FFCFC7FEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCC6CFFD40FFCEC6CCFECCC6CCFECCC6CCFECCC6CCFECC
%C6CCFECCC6CCFECCC6CEFD0AFFCDCCFECCC6CCFECCC6CCFECCC6CCFECCC6
%CCFECCC6CCFECCC6CCCDFD40FFC7FEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%CCC6CCC6CCC6FEC6CEFD0CFFC9CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CC
%C6CCC6CCC6CCC6CCFD3FFFCFCCFECCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCCCFD0FFFCFCDFECCCCCCFECCFECCFECCFECCFECCFECCFECCFE
%CCFECCFECFFD3EFFCEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6
%FEC8FD12FFCDC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FECDFD
%3EFFCCCCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCCEFD14FFCFC6
%CCFECCC6CCFECCC6CCFECCC6CCFECCC6CCFECCC6CDFD3DFFCFFEC6CCC6CC
%C6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCCAFD16FFCFC7FEC6CCC6CCC6CCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CFFD3CFFCEFECCFECCFECCFECCFECCFECCFE
%CCFECCFECCFECEFD1AFFCDCCFECCFECCFECCFECCFECCFECCFECCFECCFECC
%CEFD3CFFC7FEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC6CFFD1CFFCECCC6
%CCC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6CDFD3BFFCFCCFECCC6CCFECCC6CC
%FECCC6CCFECCC6CCCDFD1FFFCFCDC6CCFECCC6CCFECCC6CCFECCC6CCFECC
%C6FD3BFFCEC6CCC6CCC6CCC6CCC6CCC6CCC6CCC6FEC8FD22FFCEC6FEC6CC
%C6CCC6CCC6CCC6CCC6CCC6FEC8FD3AFFCCCCFECCFECCFECCFECCFECCFECC
%FECCCEFD24FFCFCCCCFECCFECCFECCFECCFECCFECCFECDFD39FFCFCCC6CC
%C6CCC6CCC6CCC6CCC6FEC6CDCFFD27FFCCFEC6CCC6CCC6CCC6CCC6CCC6CC
%C6FD39FFCEFECCC6CCFECCC6CCFECCC6CCFECEFD2AFFCECCC6CCFECCC6CC
%FECCC6CCFEFECEFD38FFC7FEC6CCC6CCC6CCC6CCC6FEC6CFFD2CFFCECCC6
%CCC6CCC6CCC6CCC6CCC6CDFD37FFCFCCFECCFECCFECCFECCFEFECDFD30FF
%CDFECCFECCFECCFECCFECCCCFD37FFCEC6CCC6CCC6CCC6CCC6CCCEFD32FF
%CEC6FEC6CCC6CCC6CCC6FEC9FD36FFCDFEC6CCFECCC6CCFECCCFFD34FFCF
%CCFEC6CCFECCC6CCFECDFD35FFCFCCC6CCC6CCC6FEC6CDFD38FFC8FEC6CC
%C6CCC6CCC7FD35FFCFFECCFECCFECCFECFFD3AFFCECCFECCFECCFECCCEFD
%34FFC8FEC6CCC6FEC7CFFD3CFFCFCCC6CCC6CCC6CDFD34FFCCC6CCFEFECD
%FD40FFCEFECCC6CCCCFD33FFCFC6CCC6CCCEFD42FFCEC6FEC6FECEFD32FF
%CDFEFECDCFFD45FFCCCCFECEFD32FFCCC6CEFD48FFC8FEC7FD31FFCFC6CF
%FD4AFFCECCCEFD30FFCECFFD4CFFCACFFD17FFFF
%%EndData
endstream
endobj
94 0 obj
<</Filter[/FlateDecode]/Length 15527>>stream
+H��ViS�Z���8�fX�D bve�A �!�,�������Q��^͗�%ݷ��>�� ��N�/���������We[5t������XA?֚�iɶMu����CgӔ�y�USL��>9$[����}�?7�<�� +qK6�1��@��F�]s�Z�Z �[�%�e�pP�\!w�{�9����@ ��`8ڎ���>F�E�MI�6�5�O�@UK�|ž̟*"���~���v^zp�AQmi��ö�o;��z�)�sG����l宸u�
S��AB���}`��ᅻ.��`jsSs��ƵW�w^����Ȗgv���.�iV����Oױ�XҴ�O�;?X,��O�Y+u3�Kq��� ��i���5|۞��x�2�ono�PWv��"ucZ�g��\!I})�=\���� +�ޕ�@��l~_�C�YV���t�Z�����k,\�cO(5��W�a�����,m^��~ZOS�8�J�x��H�~��� +W���x�6��\�"� +��%?Oagt�9sNS��E[�\�$JW���֩n���&M@�S/�2�����R5�G����h�]��r�F��6��k/�*qD�p6`�Z|p�gX}��`gdiF�3=.��}Ұ_yLS+qL����SQGL\+���W,q��v��x@��
�3vasr��c�e��JSW�B�����O�W���N�����#��a()�I��L�� �ܢ�R��h>���� Js���y�_�,*�,�ܓ� +���όcY�4ճIY}�+����M���4��W�����(Q�iF��k��Uɒ��*If�Y�1�����.��>,� �)e��JP_�u�H� +N�@h��\J���r��l�!�V�B*�_�/�8�K��,o�=%w�a�6[�@'��0���� �w�S��J��@������%�ϲ�WA��g,1}�/�E�L�c��YW}�_���I�-<�^�b�e$��h�-���//��$���::��9X��dG1��.����n�7D>�4��l��>T��d�ѫ����]��ߘ^�v�S;�l�[!���6TNN��O��H��s����t�kjB�<�����c�+v+��9W�����To^3/u�� +�T&bb��0��gϔ���)1�$��Y h3#�;���n����JáZ� �H��/��������h���߮�tjZ��$�hp'Q��RP�a�%�m>�~����]?�384B�]Z�;Ǿ�wZE䋣Z���O�{^��<�H�D���N�駼�|v�9g���f5�o0����h�� +� �^^��Cw�O�ia1`��u�c:�'�b��)o��?0��n�1�]%6�H]��nuΥpM�$��ql������Ksd�����9�����R�fpcˑ"�;�ӝԹ�Zb&4u�e�ˤ�@3��#��:����9�=_�iS.�|���}��ڜN�
)���'k$�|(,���?�/K�4��w~��Y�������Ĝ�^\�S�t�� no�q�`�]u�i��.���ϲ��:��xY��q��ݍ�J�4>$�bp��4��.�$����<V^��q�v���6��60��W��H}�~�l�I
.'2nr��&��*�C�3=;�k�p�qY*]]IWj,�����EJ��f~z����5dn(��&4<�����ݑ/��z�����4^B��
,��~����� +��R���~xw�` m���`)o�g���d�� !w�VX)��]���iu3�XM�nK+�^���7_�̷�k}��J �z��o��_�&X)����������phM��b�kU{}������W������}�룯���;NwS�_�E촲�o�T��Y� �����j\T9L����̻�J�4U���u��6�,0p:�h����RI�"��S#��"?-�i�"�Ȳ +�����~���/:����>���f�)<y/�����=�H��l�%%��:L��_/��i-#�����7�1�6ܸz?�U���r˾%�n��!\?�>�){`��#F�$�b0d7����Av21�*$NS���I%�SB�oX���a���2d��q�Y^[��MK���|�ܝmE��cG�J�%����E{�1�;���:�$K��=K�ӓg�*�|��=��
J���lF�vFu�$3�1��8R���ɶt`sl�ʒAo�ly�Ao��d�g�hD��Rw1�˜�9�p{#Юڰ�xg;�N5Q�-Ki�IM�;�]�8KO}Ï^�<7ug�DqhE�R�T��N�X��w�X��vҨ�c�������m��y�,L~Q�����Up/s��ڗ}=�{�Ho�E�Th�NL����F��f��ܷ�
�\QQ�$�qKj�����b'8���Q���ٖ����z�eg�乜UF��%��s-�:��墉��1�q�}X�_���N�ov�c�����_X�#;tki��.e�tϜ�0 tW�F��=�[#��� +�X;��ܸ�l����f>&QYoL�~Ի��P��8����B%�����N%���7��39����3B�m�7���#�����|�����t�RJ]��"v�j� +W�}T���0�rǣ�dTQv�� F�Vfä���o2�f���ۥ�͈���b7��w/�!��C1�x9����N�Fw���w� +��´s��L�p���4"e;��vS�VW��B�`B�Ub�M]% +�[��/�)�m�#9= +z$�0�����������*kH ¿`�C�3:��*x�ȹ�1��x;�����;&g܇��[�0�}�T�]_}����'�SW�\ǰ���1_��-{1\)1��J&��)m+f?�\����G��xv��kz�Z5z�Q�Q�|Z.��vZ��[��a��崵��[p�^7�8���恏쟕Z�C�K�����YS����v*�$ aa��`1R�jZ��p�]�^9��%ya-�_l<VON��o�OQπ���J�p���x���'_T@��!�ܞY�Է� �������������|+4o��'�}Z��A��UX�O:����e�W��K}����8Ƨ14�0��1�?*�+��ť*i[68�P)�4�l����wmW���n�5�z*������A]Dy�E_�ǣ��>8�jCk|uo�K�7�B���bq��ˤ�P�N�Ĕ�=ƶ ��y�݁���X+��߿N�����@o��.���c�R�Sl��>�B�F7DJ�,��2�v)���F�KV��~��F3�~��\�N6�� +���:&D�2?*���j@��j�������<�'\�X��@��p�?����=/�k;��� +�Z���Pػz8t����^�h��b1c�6J��ȭws˹�������L�zf�m��oG���b~�������֧e��hS"�c�=P����o����P�����1Wй)(g6�b�WQ���-�i0!բ�O*QҸBP�ZGM��D����=�U�i ��~����5d�T��a�
���..��-�h���V��"�hSA��ˁͧ +U忘�
S'���#�y�s1O�8���� ޟP�y/7�`��`}��:w��t�mA,����G,�m� +7Lȗ
.�S��+D[���z��:�\��/n
�\n�Z̢��F,��SF�-,>$v컼4شx���Tݑ�6�N�?��M���B% �'�I�è�52�(����@�mquq�z%%�� +���X~����9
��a�>))�u�n���x�S�?m�c幤��X]`�&C���U�F�ۆ��=J���',��_թ�T.=��,��@���ؠe_��t��h�1B�07��|��sn��C)`�НS3��.�Έ=��Yk�S��1�a��3�<\9�u<�JT�-�`3����C(?���Q�)�o�V��.�}[��-���--�/7��E�3l
��݈Ä�+4@�>lJ�*W�:!�S5��
���0��&'��+�Į=:�23b�{�`��-g�Qdr&.e�u��[7��W�[q�"ѭ
-�䣌��Ó�2��aj|%��� 7����vlҔ��<����� +��U�jk1�X0���,�r�V�0p�HQOƚbS��7�/���e��*���+�� +Ί�<F�1j�2h�0�m�0��Z߹��
(�ݚ}�Vb<]��oW��(���t��-���}%���;x��t%J�Q�PJ��A��-LV���{
��F�ܵW��N�z9+�G�����}����"���
�ws/�^�����Gq����L�77J�M܊҂��['��ŀ�tWL�����djs�ye"�u���F6��κ���5����U#�S�'Y���"���)V�Ã�:�nJO�� +"�.�o Gs3��f�6F� +�2J�<��F�`�*�̎�{4Mᔡ�N+d:���Q�@�GA���� +�?����[z�;��չ{H?��p����pv�?-���v��������C���9 x與�>/Eq_���-�|�BA/-��v�`�s�?�j�Ǟ�)JKД)?��B=9+�g �y�c8<+1��v�m�����C�!T���D��,¯�r�yܗ]�萯���WG��D2�{1t/)�4���W���9zY��������e{��akY"r�l$��m2��=J��70Ϳ������;G�C��C���%O7"3r,��D���[L���(�e�c�n�k3�d#%)�]��v��))���[�"�"�ei<��Qe8�d�ϰ��k������5c�pՀ�l3��rjʒ�� +( +vV� �Ⱦ��@�/t�{�@B퀝x���l��zhN��L�.X���xFMޫ@W�]3Gڤ��TB�:P |v�s��d��"�ՠǼ�)1�?<*�8��B��( +X����՛�u�JO +R4�S���BiT� +�x��a���uJ�i�nВ^�(�6��Y̼��5SX��+�6'O��J���r�m���t^�Z�[��Dx6Ь�&qu*c���eWE�SO��������?u]2vm/0��km��yo]<�u�%c1dz�sQü��Q�̋�Z�\?I˻/��ss����2��h��(��r�o#a�o�"D�c.�=ga��Ӹk];�ֺye�]�z��ݦ����KꦣXk�����#?��~�6EP��k-Zkm0y{���8=)�5Z��Y�9�;m��]9�YK���T��#r��3O`%z��(i�3'��z����,�JOQ���_&c�N8a��@#9�z +k�ނ6]X��S�Px�MX�SL�*$�x�/m#<��r���i�7�}�g��3-�?�������Ԣb4��:�s�f�w�~ ᕓ������з#����{ .�*A���j#sO�p��[�D.Ys��U��_�dV�&
�+����5�������=�N�O0�+�VG^=c��c8������1�y#�(������
��{Ύڷkrl��C��m�ҍ(I*X�o�) ��M�nY�qI���n�ϸ�t��}�JW/%�@-'��ӽ�Ç������E`㳑z������������W�1T��y}����ԧ:Y�2Y7>���l�)�s�ҁ��,��L7�ZY����g�w�܌�J��3�G�������2K��Zz�e���X��+��.xY�)��*=��M˰���Y���WZ��{t�+۸S�q�0�
���S�c�ֽTW�(��f!����3D%t����W2Z�W�B)�0νr{9��:�{(��w�M�C�w�j�@,�{bh�-�}�s�*y����j�Jdg�O�����G8�8 A����8�z��Ӄ +
��%��tR�4�^.�V�vU��+
+���"�c�씱��w�mݽSo����x��e�����sm�O��ɱd,3�Z}Y;blC�5?�6�GYps6�.hJL^��UG��a����<*�V��l�w�
2�-y���0]�yݷ&
���1r3�+P�3H;�np�$��������*RZ�{�V�]:��X:�l����^�q�����\�L��п���eOr�`Woy��� +�Jмl��&�#&H�����t����0/�/U�}]n��CkKw��^A�te� dh�]n��#><�l�V���O���x�����:;�Z�Nv3�R����0�AgM��[��ZT�UG�rc�HA�/�m:��'���3ɛ����V"�����g���^e +�&�(.'�\��S��5~W{[��C�$��Ȧxlj��@M�RvX����?&�����+��_C
����y=�?jQ���v��d�gm����h�kz�Ѭ�LpFs�W�~��",�
=Fs�� ^��h�iJF�a4�����'0Ꚍ��>��ќ�q�3�B���m���Vf�d)g|Ô�N�F����n��.(�d�e7{io��*��
=��c�ϛ�\ +З���!Mg�D{~��-3B,0͢`�H �5L�fQ�I4,͌��Ơ��!�j0�=kF���8����U=��Y�����R���QXr�.�`���{QQ}�.x5D�ͅ��̐�G/�������˴�0���W /�B������?�U1�5���S1'��g�P-�^�H���E��+GW
�ZH��"�rZ8] +ZH^A�
��N��TQ�юV��3(N+k���t�h �]=�d�~v!Ǻۭ�m��(X��f�춷��\�#�ew�N�W���2���$�k�#��m�<7�#UH �\��z�����6d��/hݕ�Tn�א{:*�V�B��Z�|��"�7�e=(5���bT���+߬}�/ް��l�V���?է#%b_�Y���tr�WL�X� 9q�a��Lh%�9��(�����~�I/���rY��Fro�Hvtۊ�Wn#�^�A��?M"�痟��ÿmG�ǗM�����V㴡 !e��2�V�<�9��{^Z%sɪX��D�֛��~w7Z�Uq�]����d�p0^/�ߢ ���7�^��F�N��\��s�p�f���^�N&���bÏ����N~��Z��K |��~�q�_�L�{�D�7�z��}t�*�<���q�<��H����Z��g*�����V���{4=E��9ׇ�ek� +��e��s��6�pM����Dݗߐ���Y�dWjK*P+�0�2=h�E gJ����K����-Yi�a6oڠ��b���[lv�O@(B�s>��*aW%�s2ɨ���mի^�+��O0�|�M��}�!2X���L�Z����"7���@�>�"�J��p�{(/������v���l%t�>T�:���kΓI����%�d���� +;%f�Pυ�ۦ�ޚg� +�`��O�� +4����=�1�]P�)�Z\z%y�[���60<,{,������&��������w7{�D�)�W�;M�sj���� +��^�rQFT����;i�馷���VU��Su�xw"x���}+&����)i3��Xl¿���I���Wű�J�mV B�pm,�(<"T!k-3�ǔoʏQR�������`{=6�Y���,�^,�c|��[�A�Y\[n7J��������`i�
V�;l��r1)��
0���@d'qҲ�+������cV��N^����x�:^O�|���4,�����u=��0�E4�+I���� ]������ݜY� +��#i��Ǹ44g�4�q��7��4��^�Dq�ч�^�8;���S�b�8y�j +�� +FڧӉ��F��K"m��Z>��p����B)�t�3�V�0�w-��@� +N�O�e/��/\IsiH�0��OҰ���x^����q��P��d@ �L������12T�ߗ~��[ґ�0*0X�_WMk�嬄=�#V���uv�+A/�N�R_I,Tp�����/fo���'��B�%
e°��l�F�U0��4�� C�* +��*|k�9���&��G�!/�Jjo��(]^��I��G���w�p�K +�FWaѫ��Bs^Q��!�w�/�/KOm���D��:��}��\��js�I�a�x�]Rx��,�`S��[n�{�����ڽ~<Ւ���K]ؒ~P�_3���FJ�|�E��͒�pr�B�iҤn��^Oi�{�rQSп�� +ϫz�* ���Si��)��:�}VQ���'�8��r�эw L�L^unIO�4����}���М��}���`�PR@�B��|����"N7X�"1��"ae����>֓�G����cg��.��7�
MD-'�F�L/}� +V"?�f�X�|���~{;���� �薼W3M^�ɱ>F+jM%T����4��MXg�N���S�-o$v2��0)�نHx+���\�"�6���ث��ʧ}S�tn�[1���A���b̞��: +t�����4u�YY�=h +�Y���#�qn��9.�6�w�%a�E������ +箿um�${�(J���b�G�a�V���j�����/��E��Z$�r�")�y�ъ"�+z�S�A�sFnˍٱe�ޖ�6ч�K@��`�}+&(l�����+�C�s�}37�/'+X�
�a*�Aq,��_'9��Z��,Y�q�C������=-
?�����g�E�n���E7�4,�m˟t�ӎ����ct)��ނ���Z���t���))�f@L��ƭ܂����^�?Ȁ�2G,�!:���N2��������|˥�����́�©C�2�_\މ;���V��Ped[@M��P9 +)%�F��ބ���g�a�>�3ֿ�ox��CIVf�㘳-��.Ɋ㛁V��:ے�vnIJ�T���P�#��R�j�~S���7ٕN�i�'dF�o
A0� +����jU���vq��cA���H +DD"i��Z>��p���>���b�p�f&�f�b"�D�t�J�j���$6C�W*��
dž�`ݠ�����.�. �!�r���v_1�{���+Yq�2^��5 �[�rQ[ǹ�v(-�h�
�:��'�Ѳ������O�4�gѐ"a �BCЈ�W�X�?]-wDC��f�t�qi�?�!�j�탆�A3g ���� +H��W�^�L}�<�@H ����e�T�
\��?+mA���L��0K"�3� +��瞻���7}�=I��I%��t�8:��.�V!q�Uog9=��.��9Z�skq�U��?��Ť�?'�N�E +���8|Ivp��h���c(�I��P$�o�Z�0]VJ��z��Ƅ�d�vP��V}Ƨ���C��j�w��Q��)��Α,�~�gj^��gz�x�֪���g���A-G�� ||�L+���J�*��؏��
���u +<���V\2� +�o�s>�\7���d�d�Nv�}�Ϸ����de���BХh4�ՖVݘ�z�k%N6�7v� �ܧD��(�.�1�4>J�u����-�T���k�2+������ݟt�����gj`6ʽ|rԉ�� +�Xu3~�4��Ͳ��F�?���)�(�4FOp�(�}N&�QK��\{F�G�)����fT�a���X�Fc�i�iTou��F��r�gc��:z,��1Ǩ�8f5/��4���ZI��ݛ�\
�F����6�7-d����l�=��dr�M�s��3>W���ϡ�wmOҥ!��r���$�yT$E����r9_�u���%$w�1ϧ���z�����0
r7�Wi����+\Gh�<U)�g`+���E���y�.�Nf;U_N]���ˊ���IK��7�u�J�t�e�$��<�̚�<�=d�
p�*�)yZ�+ݭ>�ԁ?��d��y��뒝%)\?���}���Fh4�,�~>F�/��)�:�A��$�<�f���`˧m�Kw��GE~���XI#��|hd嫾�t�|<[�o�$j.����䰳�y;cC�Y���WFh�34�a�����R�f7�T-�T}�+
-LT�~6��͝�u�T������'U*�(�/�>V�̊s"�E'�f�cW3�9&�$��d� #� *d�ҟ�i������U'g����sa9s�2�9m��(|������ߙs�8�����Lcz�F��F���xσ��ilcz����X|���ˋ���z���@TC&�ҼFG
JuM�ۜ˂�HB�����Ԥ�89%�]F�K0c����c� �x������_���s��/mT?�c!*X-]����J�>��o>�����6����w!�����*�e�ň�>)c/%���2F0ڞ;/>2�.��ԡ��|m8:����� +���b����Y�a8��{3���C�,�����t�'��w +���]R��\Rp�8K��7Z|�fXu1c@3c?N��?zG�.f%���?|�����݂e8"DT�~ ߡ���HٳOVKQއ��
n����&�6��VJL�q��E��%[����,qv�[��r$�����w����F��n%�WZeqrƬ��0 +\�/j�
F�Vz[윺��`��.Z��l������n�sY0 Ǹ8F���ڇ +�$GZzlo� ��H�qD��6�C��Bʇ +������RSM�Q���n1H�5wr�^j���0]�A�|6�I���O��<*��H��ݩ�z-�롎[��H,�S� _�oB�w���.i��YI ��m�6�H��L�B�[�|���I�W��A~K�Q��8�}���8��u|�[, +N�}�.���C8 �/4 �1����Tg��{�J��W�C�;A!�c�
�-BG)}|G�r^�Í! +�#Je=[�0� �; +#�l
���v,����F��xk��L*i��P c,��I����u �yS
wJB��{5�pC����#��M��>IcF3Gg�'�)]�*yKw�Q�G���8�u���<���ў�8p�,f���%��2���V��ڽ�}ΪZ�=�jk D��wl�9 �5bgK5�M�qyW!� �<o����I�zyp* +�PV�5�;Xf���Z�-��K4K f5>���-����c��%��;-���k=e�o� 1Y�X-��@8Rt՞�V@�
��P�W�Z~@Wh�T�"��u�v-��v6���#7/�~�#f�l�Ve���N�y��!٩$��:ѯ'��,�/�R�s����i�y�b�f.�b��i���% �U�QQ��d��J�Ϳ��l!�j)��T.�~�b��K@7X&6�)���P1�ߧ��
C��ro�r��"�̎��r��a"���1�j���@��}2�d�ۂszS�j�#�0��Յ�Ep���nْK��a�:q�Qa�.^|���kbʌ�Ј�rpq����V;�߂v"��t��c�F������.|��F� ���J�k��>�!tfn��(�d��[.3-��zfmK2�h9�\֑��}�����`;���`�* ��d]�s���څ��V�Y2R%�U�pBLNU��9��
�h7�P�v(˅��*xrb�+I�v~U31����#!�|$ :�6�E +ܐpJg��|8���P�� +dh��y&��kaP[d���y˓�R��j'?�L<���"㦜7�E2�-1�"X:2��.��M�u��Ę�yM�g��4� +1�yfތ�~!㳈�ݚ�D= �O'���O/o� +J�ښ��6[���?�� +�9�z�ɮ��,|�P�� +PE�&�����W��w�^� �����B������g��[�F|��`�3@,}6U4�Tq�SQt��"�QN*p��yH�qĦ"�V4>{p�5c�k}m�EEM3,I�,���%zc���Z�њ@��á���Ù<h��)j�l<����s ���R�}�n��Q���T�������}��p-�S�����|�WEL=�^��qf�GEV�5�6���G��X$�'����g:`��;e����i@0���c��?A�`���=6!�%�Ǵk��w�Ch�����T��p� ^&� $o:�o� !^�.��<(�N�� +�X���
'���g��b���_r�}�5�6����؞�%�z�_slx�A��T昤|O��Wnl��R�ؗH�n�c�p~F�}�ė*��d��*�^��(��`��;B�I5����z}�C���K7Kd����7�_� +PVA�Z�U0m��
����� +i�Q�ZϺ��\�Y�����_��$�q����D�+&Zh۴�^)LSʼn[9BO�s�j�Oin叡����ɉ[%Ja<�45��f��{Ԏ���Wq�o��h��X��=�d��k+��_������6(('���e��T�t� e����������@�G�>�ج����������k�}s���,�3X�৷YR��p&������z62���c +��" +�^L� +��� +Mp����4��%�8��0j2Ps�C7&^Dm��-�������E�G\�|�2������������(v��Myow�?�����j��?�?�|[�V㱢��9oz�DoƺS���eGp�$� �DŽ��Z�Y�Q�g�d%��ݎ`/I0I����`�r��T,����IoI� o��J�1������ҁ��/�JL����9��$�wZ�G�~�V�?<��J~p]���68�?M�!��zioya^�uc�������!�J�(D�w��"�%X��K�rh��`n�7�}7H�%�yyN��^��w�)f������!�1�4����ʓ�M��C���٧'��N0�� +��I�A'k���+���Oy[��*� +��],�)X�9[�r(�����KAz��Hk�x*g;L�9W��P �4˘�X4�9��_P�g�����QLc�]���6��7�2_o/QL�c<ir�^![ԢΡS�vы�,J>�Ýr���8���ʎ^N`���-�an�V]��Ӈ:�/h����H]�oq��w��<MXl��D'Jor ��,x�g����^z#�S�b
�o�^� �^�R0�V���R&Q��W�LF����r���5F��I���o�� +�h�M���Zƺ�r.{cB��[p�:��H��:(p�QZ��jG/r�
3N�{�A�
�&)4�B��k�ݶ��0�ıO&h�����0�����#������qL�d�ưPXh��v��!ifK�lX(m�
���:����P��4��銓�`�c<P�Pw!��o�9�.��=�M�XA*�� +|���:b��*�΄.�m� �1��� +8����iZ�����l� n*D�M)A��i��7�ty&u��B �@\�L��s�1f��u�߇=p��_:p��r��� +�k�e��*��y��/� eY���/�l�F��t�3������q��N�<��O�0rU�������9x2�G�Ѝ�9w@�R_� *}y87Z���_C݇yHߝ<u�(��:�c������)�¸d�c.�+Fܤ�Hܦy:�Y�u��U���1��B�8�]`�j=c��Bې)�B�vFpr��B�-�����nq��Zͮʡ��9?�L�۫�ی�lw[��O%�t����UW�;V����H +gk[P�<���8gj�+��%)�>�'#�h9�mq����r��;�E��W1���N�1r0� + +��B!�Qp��&�|ɘ�v�t�ۅ�!�#A�Y� +�ژ�dQ݂t>-$�@EӐ�A��nzEVXOm�^��EdUR���*k�vDa�!H]t+�t��{� �b�um=�O+�~4� �����Q�FMe�ՙ� +IO��M�����o���WEqRZ��������XC�H�J�8��hClR0��%��4Ca� ��F�.s�ͼ�A�Ȅ�H�ZkE[�co���a��!��/'_rRVuE+��M��}�uJ�9L\O�'1��S�jq��/�nY=wUS��@�mW�����t���^�nT5BS���0���{tk��2�K�30!o��eNzƚ���B��F�&7���Ҋ���܉ �w�{iLH�S0KmR�6x�L1=ZjV�R� 12I�&�t�=�)���Yळ.��d�Ō��7M� +Z��o5�"�<V
5�v6CAocYl�X}���.~��bW|!Be[캦-h���{�%'9^��J�0 +H��W�n�����`�z�,��}����bm�w��ZCˌ��3�������M���̣��nN���S�g:�<M����Tm�0x�,���g!��/���ph���I(�M��җ�j|�f8��x��o?�y�n�?�]}n���N��'���o��04��~��d"���>b��$���$�gZ��h��}���ߘF9�����m��M���,T�����_ۋ��pvcL$��QJ�_���E}w���C�y����,̿Ի�U}��:�{�u��a��ן�__Um�`���1�����W�]�m_�ݾo�e,
�+6���`��i�^����es<b� $�]����� �����僀��q2���m=|:��D�?��wp$o]ȍ~p����S�̜*G��иǑ��[�|n��������^H��?�8�"�3w]3��k�X���Ļ�U�m:�?���ôQ���o��9�4���ȁ�&����KCg%<��}�{���k<�QK�8JF�q"LF��͌b�{�d�LL�)��qPo���ݝ�+�W/�v����/�V�d��ub��c���_�� ڼ�g����-��@����!4������<��������+�����f�g��yw��C�����}���k��y�����,��˻��l�v�UC��Є~_�?����v�|@:-_����s�����y��mÿ���ۦϻzW!�ϖi?c������a�>~� 4��a����oϏ}���5�f���c���������8̣����q�_ؽ�y=f_x�)��X��3`�G���]����c{���3���_�����k�K<�F����^w��ñ���5�Ƈv�E ��,��o�T��ˏ��a�Ǐ�y9�WƵ���~E� ��j��Po[�-z���ﱄ��I��o|f��]�� �K +>%WH�L�� +� ��k�����mTt�@�ȁ�� ��a +��"�+��<�]��M��8W9r��M%-)˳,K�$C�d63��8C0g��eZXu�fi�&)b*��Iu���TB�i=����{���;�&�XW�ǐ��\Kl?Ƿ�$I\b�h�B���ƙ��o��.AX��v1冄�E���m��I�Dɤ-�x>���t�.���Qx*�R1+}�XV�����AΚ@�P$
,��:9 +�����G2��G����ׄb�r�j
>$����8hJvOU$�fe��eQ��%!y �hʋ�� +�&p�14��!33�YT�������Hi���8�+h��Y(8 =��I��=�j� +,-���J���o�����R��"�qq/���J�9ܪ�Vc��)��l,~�ҷ= +ϊ�(Q�X)H��([�p�x?ҭE=&�X+Ȭ\�JDfY�d�]��vq��������{��/-���2}]��T����W'$�D��Q�J80G����)��� +m�0�\���#�Rl¡�1h3� +�H�3r�9�A +�'�JE-T����{d~����!��Z@0��5<� +��"�Hb
K.]��$���r���D�ƈ`�`�P�.�q����14���֕{B���.ðj�n�|�H�ڷ��1�c�(�..�������"R�2"WB��b���͒R���ȋ`�A��F���=�%j�K K�����)�A��c2|���J�
��-J0u(XP��RZK�s�I�"��? +�MTnH��I��C����z:�eՓ9<L��9żs��a�"j��u�m��v�\�Y�C��7�8�!�rEܽR�Ǽ�o���&��0���P3� +||_� �@aU.��.�6T���@�1x@〃�\J�� �(?&r�Ĩ �ؠ��V�d�2xv���f�G&�I���p<�\���`��]hA�fބ�/k��y�J@���(N��*i�� , +.$�1��FI,��(�n�![V�����b�����3�8!��E1mI$�&K� +�wEG��+��A��z��20F�
Z*2��p�����bp�ؗ�Ud��ŗȏ�~Z���3`�(�V�������=�G:�u��aK0l���gV2
��m!V��X��#�Y��zƑ���Z%�
���+9�At�=#��Ӏ<���(���J �1�K)7�,+�*K�*��Z1XJ��$p�z�P@X�$Nhd��47U�<*J.fA�!��S����(�%9�q�S�'>NqF�q0DU2�8!�`�?q>�< n5�Ѹ�/;�;ӫ�OA�r0u��H:e?��cTi��߬�i��V���Q��vZ|t�:�59�� +l�{Q������ޣ��@[����lS?ds8����2�T�i5f� +TU�%�q��\2��ř��^���7�x� +ω�`Mhnl��D���Sllc�� ��'iŷ�ͻ��?a�wp�����W<���
�=��!j���5�%˹x�h�3���N���y�N������ػ]6b�Пm�0D^ރY�� +z��Zҳ�yh���(�P�,C���� +H-*1��e>�t +e>�����e0Q�RL���02� +�K�G=q��:���B��,"4�E�4R�}�H�Rt*���XҁY�8H����^EjC]��ɠ�[;,AV�r�*�kr(�`=TE��"�EI\E�b���W6��NK�n�w��j���S��� +i�];�M;Se�����z��jC��E�W�[��p}K��������S�k�k����VK��^-`[�Zs�z[k���^��8�=�Qg��n����\1�NR��RTI�E��CJː⎇�D}#+�Bu����1ezD�j���I �����xh&�!�b�(~D�G�נ���ѕz��y[8E�K��rC@��C���3�$��� �����;ͬ�AtD$��������B����I�3��`�1
��v�a��-�Y#�N�8C�Q$�r�f ��N,���<b�L�k���a�Fe��2a���H�l��j�����C�}Т'|��a�F�L�C��'�h����w6\�����!��^�е���Ǧ��� �P����-L��TV�b:�p�~��A ��8/��o�~�ό�NK�h�A4ִ�������` ��!o3N�^7B_*KP[�h1*�f�G�2����u�Zݨ�\U*��eU���U��TJ��xM�9 +�CN5���Z<Ä�j-P���ꫫV�ZY˂'�J��RrI%0x���<m�%g�S��g�m6iœO��irJ)$�,8d��P(m#8����ϡ�R +Y��>~����U��e(���a�5��D����MK] +7�d��1ذ0矫π�=J�~\j$��(���R�oW��+jg��S��|�tR8ig*5��*c�Mo2�kɺ��fB�%H"SjS��P +��sc��*DH��6�sK�U���._n +ܹb�,��g)g`Z��mŋ4�/@��v
��j~�&``4Y�qq-(�cF6 +��FM+�̲��۪��w7���h +��P�-B$��,
cB]8�>Ĕ�($5-Y�Ա�' ('#�*������rsw�V&1r˺T�� +#��g�:��쌒ve�1p �.](r�3�T�F�G�L+���/9:ST|���4��ؔ�QYX��YE���'���y�kI�B&�]�Qޘ<+
l�z��>}|Mo��Y��_:R�/H�����2P�����;����5v�A��vдk�Z�I�k+�"s�roa(Rݗ� �B�55�g" +�$�$�T�$�d9T�wFbS��N��O�L�PjpT���໓/í7��4�Uu�l�+��J�@3���0��4]R2_��W:!yK��o햧����]3]���"٫����,�+�К����0�iP��|�]�Y�S���藔.���h-'������D���:�~0����;�q{�|��/_�%�h|p����8��������Ɲ�%��b;-_���*���ǼN�1{�be7"V��-�ǂ�mV�Կ�_����_~������Ï?}����|����~�r�q�����z|�1�_� +�U�ޚWj9�M���
.��&8F����$Z���u��\z�BC]6!�W�F�$�����,Y�"�Z@N�B0�`�,��`��Î��[��|�}��C]�ѷ�#��>�|��tf@u�,"�@,���S/!Lj�yg�>_�>&�Zb�+�2F�h<ۂ������0"#�0B�?�����> +�L�]��'��=�3�k��^�:.�:�P+�Q�d�K�1�_���q�v��5�6�=�֬��pS��E�� ���븵��&��a�uwߞoqnܮ��#��[��(>PH�ϩ���-���"���_/���H=+��]@f�ݘ<�Irv�1-4&ό����Cؒ�1I��,���ЖmIʡ�`K˰%)/z�"��JSꆔYa�^T��6:�t5�Oڭp�/�e�#9n�'�w�� +�%I*/i��ƀ�1"s�'���d�s���F�Z�;;��$�tS���#�x -���f�����[@�a!�`}�~ʷ���C�1E�bE�οlI��3��SOH���s'�N��2C�T�$�������6Qi�������w�a
&[�i�L��Llֻ&` Z�%��c)��7��cBr�Z%(�J��┚䓆�B�G�$�lQ�C�Јy�H�_/+�:$5��hC�&�YR�B(�G|���!A�$��0F��ac3j��Pf�̠SeU!�2U0i��%�Faǐ�1'R,B�9#�ʄ +){Wʻ�O����MkAkbZF|+�F�}Zt��ohEJ͘���tLiY�U6�u�����D��E�9�T���qw>�]�W�����EW���E����m����n:�����{:4IV� +�p��@&y��ȕ���DK#�� ,=���E��^N����lA��ѹ�*lF�2������.�;[gvx[�丩@�)�<v4��x+���FC +3��'�������$'\� ;5Бc$äa�S�mw��J�� ��_ZY0��vx��V#x�bף�P+'L�X�_O�n.��$�Ԩܚ�BQ ETU�Ti,v�;�aD�Jg[{*{K�5�55?"r
{�ljJ3>F����]��f,���v5�R(
IHC�{�(YAPT8$"`�!ԡ�� Ə�Gѓ�3'��8ʛL!
%�(f��eK&K'Ta�4�&�$�0D�!� +�*H����l"|4��zP<Q8��Wү��W5�]��&:�=�/z����S0�[��+uKsrIe�$�4"�0�,f� +$-J$JHbOĎ��P�:!�A5���(���)$�+ �A���j%�,ɥ0}<U����ǘ��P�d�(o6�(kg(a&CFS�%q�bJ��F���vlĨ9�t���/�ce�*=��/ꋊ#�ٕ��M��[�W�^)���pS�+:
�t�����<4�'���w�!��.��̿S��`k�K
�v�?��i���<���Ѡ1��Y�{`�L��u��F3:cn�7���Y�������@�ӧ/�u�7��������a��:9���;���uO ��]w~��z�^;�_l���џ\<�\�>D��hۍ3�@���u_������߾=�Gw��~��9����O�x~��_߾^~M�.�����躽�_��LXE��"mrp��&������soZfd��.�˶��dN���<��:��N�:��,�=>��b)�2&,�X�%s�g1�����p�!mpҵ�Vm�UN�g�o�[iI��1UB�AT�q�J�¥t�*���-ʯX�lGVZ���P��<μ�8�8n�p9�q��Xu909&Gm�\<���h�ॺa��Dq>�9i�4\�g���K���g1=�m/sz�,�1��>^~ߠ�Ԇ�i��R�ϊ��8`e\<ƕ�U-���0�R��r�
Y�5�����R�Q�Oٲlۖ�\�]aR�6�4�,�y���o���u��{SstD�{ڌթ���ګ��n(��g����dvN�S'T���PfV�[1�-�^��0�� +�V +�����|���L�A�8`���sP2��A�2�e���3�D���*@r�x"#�D� +3�d(d~&��ӆ܅��c�H�<�n��40�dO�n&��SB\C��RV���i(+$:�dg��<.��&$���GɲC�($B�\��t��2Rc-M���*�B��`��Qi3ׂ�� �}�M!�Z<\�{M�[�\d#���֡K�W�`1��N���3�U:��}��ַ#6;�+����m/g��Mb�Ø� n�Z0�@����@�Atf� +�d�Y6#�8f�Y`H<�5&�.f�n�3�.F�%*�M ����f��|6�`Z��VE�&�Z<F�I�[l��vLK .��[���5�72����fGk�0y7�b3+�D�lO��t���b$)v�fz6_b��v�s��f��֠41|F.#����`��E��d-脄e!� +.&�,,��8�YCn�l5,�v:I�,�<��Jt5��w+C.�`���G4��J�(�N�F"4B"q����
��+��%0\b�.٣va�Ĝ`�ج����S�Rh�A*6i���P�#���-v��K ~��ņ���O��g�h�fϮ���삀o�c���;['�����Ym�Cw]M��� um +H���F>"#)���VZA̍�TT�����S��&�K�?Ҋ�-gK�e��K�{�{�{�{�� )����^�{-�ނx[�K�wۋ� +��Ç�E�.�$'�a���*>�(�o{7�i�4�-�O[�Kxf�w;�_h�����L�Q�N_�\>i|�0Zʝ�VzR����;�C��&>�t1j;i|TEb�]pck��4�q����_>>~~z�k�Q�>}~^v�4������?��Ocפ̏��^�Sy�#�+��P���U�:��G�G���)�Nj��&��x��x�&u'��wФ_���Ɠ~ek��$�y��� +7�_����� +��_���o���0�4��?5�o�+G����ǥ�o�Hn<�����pqG�������3��5�����]�^ +�E`���q�k�N�_%�b�7�
v���
j�s�����y��Ȅ�G��A�W�X�S +���\�� + +��)��ֶXZz,0�մ"�ŽXu���r�m�� �.=F�f>p�#��!`%R��w�I�,���q=a<�%g�投b��i!SU��F S��ε'.�历�V�V=<�വ0���|�qa�+��qđ}��sk{n�b҈<N(B�L�=��#��h�7L�%7���� �����ǯ8����Z�N� T�B�6H�m����I�#&��,*J���H����щ +%a�;���� +�/��/�e��W��裂�8[�7�\�9�����������~M}�^�Sߓ~$~��[��H��s�;��v�\QR�3\5^so��>3�:ݲY�%[��dX�k3�n ]��b8gp�V{��6-]*6���
���7غ��
w�'�eK +H��I����Cmp6�L� +{�o���F�C���A���H��6=���CO{���}��ފx�W'�e�eWy��M`._�W0����P�V�5�
��o� WD�˺�I��I�t�[X���8�� +<
[bG!��D˔���VX��-�s�zI��SE!�S��� +|����x�ϥ�����Y���!uC~Ȃ���eO�W�Ac�/�<��� +O+���'��{���7���O��7��,R~��0~�<Ÿ��0xpF)�7�G�f���!����F���3��~�Q��m5y��pf��O�o�K���������o��=v�o?��}���������}�z�i�I�'�p/!�M�,�qk��s b.8��������0o2fP�lr�WsL֎9W1���Ĵ�TU���0���<7���,�D�H$�!#u�,���ɟ�� +v�|`MLq؎tuk��=�!{�nE~E�E�UF���`�\,�.F�W�ep3��.7�ju8�`s�}���(0ltdudv�;^���p����,���M�{g��-wř��|����m�zrW���uk���U��PF�*��qB��(�E�=nB�Mɸ]��"N���"bI�C���D2�,�r�<���̳s����~�r���ͳ��b6�hjgGf7[�Nv��k{�a�ھ��W{�`9C�=�ݺش�����������l���Ϩ�9�q)�N�}K�#�z1c�j/�vhg��,xb���*�`��mv�Q��u�vi�i�� +�^������_�V:,v��0岹�p�.h%��I~�����"4�&��-f�SW���9�5��ˈ.b���B=i���g�A��ӗ�6��1p��&�qE�P�V?>��n�����.��˵��O붖a0n��*;�b.�aVe��<)L�4���B����䐖t�0��hPb�T�M��eP.��\\�UD��h�eE[�Z�wK��b��|��#2��
X��F��h�Ϭ��^��βv�]�f`t +W��$Pŋ"=����x��~�QָQ `��8�����,,OX���Z1�9SшN +����ڐ�i*� ��f�1B!��^F��0�7����t. +���Z��^���RpJ�9;Kj��Y5�>q�� ��#�������I�,�)��[�]f?�
5%���7�QX;�]fj���}�<�c�c�����9B��`� HgȩF�"�"&�bM���<�Q�L�ת +�듦�|�a���ӮN]��]�H���YI�� +T:0@�p�����"4��E�"@�Y(Z�B0.�~ +>м��3�/-�̉mj/7���Sw8z�ms[J{[�%�ՕgK��e�g�<^��5m��r4\2h��n�O��DҩDR_������X�\�ysdjX�JX�s\��V�j_�*�O:H5�.�S�rJ55�RL�OS��[�� +�5�[It~ąQz��|1�b��@�X�q�TY:�(�[�WE��L�Al��I�CV�JJ/;W۷�Q��" ���n������dk��K��7C3�e��e�T�ۺ�J�j�[a[�UiU�-T�_�ڡh���Ep�� P %g3���1X�����&d�Qy�*Uo +�I�7(�:h� +�{�S�{:�Z��X�1sѱXz¡g���R�m- +�� +�'ߏ�rg���7�W�ՙ��:%��"�� +�\e2U�\�d��ӏ���d�zS���u�7�9K^m$��s��1.u�:[���Ƈ,��m#�d����v��&�L8�pk�Xc�cn9и�k��B`ώ��k��2��\F��Ks(;\nw��Ό��V����0 +�0p��T#� +�X�s?@1��`pĂ3�� �����4 +Gև^Z�dtA~��[��ʈF�7ꗳ,����E�j�N�1�*&��M�Ъ�*�,�HO���D��� ���ĈHG 4Yw(�uPȁH�%�V �Z!;�҂qR���
#�@��e��Zu@�q��y#(�@���C`-�=��T�H�O�^+d`7P]M�
��#GED��X�v����H���!2�/ArVH������ L� �E(U�b�P�"n�d�A�<$.B�Do���Ps9 ��!�1�8ӷ����{��7~��5Mc��>�fܳ����ͱo�y��I��V�~�>�����3�� +��ƧGӓ��<��懟�}~���7���:qл.��#�Gk�� +!3%RfZfbfj���&ٙ��J�f�vb*�jDW��%iI[�ԍJ*I^D�UD��KD���cy�n3dWA�7ir�
M���G�3�'gLW��TfN��=��P�f,Ys.Y�92M�\K��J���{ɜ���^���}»�)?A��[|᳂�R�W!~�J�D���)���q�l�IM� -HRc=f�uRzZE����D��ˑ�uH҇"�&�72)�M�.V��6Zt�VV�Gߣ�n$)G��E%�����D����|_���N��M'�����L-p+lkI*��4��g�6 =��8��<�81-a +
��r�����3����{��sv��x�� +/�^;�ܴ���=[i>3��t:ʏ�Cv�l@K�@A-ȕdՄ6u��s�F4�Y��M�(�٨y��Q�Ȫ mP�Ԓ\�IVMi+]iV[�$����4m�MI�)�:9��^�iW�ZT��JԤ5`����&5Hܝ�`�rغA�ҩV�R�[$YNR֫`��Q��(���eJ���4��������� +CΝPC�X�����t�)Soѹ�Gn��� �ѻ*��%4`�&>���X�b9a +���O� +�
��|��C� �P8?e._�ԡR{OL,�=���,X�r��#/�%��]p���\�3�\:ɶ����j�w� �px��I��;`��� u��Wyy&6 `U�L���U�M�Shs�y�%
n`���s`�L6��<����p��Q�̊_��X�Y�
�:a{ETgP]P1E vK*EA9�?r�tA��;���۵�狵��V���/En3%WP�G�f*,匪��j�N�S&\ +KR�͑� +�*���0�S��H�s���zA�4�$�lj4\`;\=V���/.SH������<#�N`���5+���_<7c�V[��v��}2����d��3<�����j[�܈��迈���]���a�9#6��5����ZJѤ<�p�'��3�{C����Z4刾�p +����E,8��B�(r4��"�ee'���ZQ�T1�F8��� AvHo��t0���Ϩ�T�0,���F�UJ���}
kWV�q��D�?��+gy�|�gˍ_����W<��=�����^��ɕ�'=�nSvP��+��K�KUK�������!����)�e�V�j#�IC8\���W�~��D�7��%�ho��*Ϗ$�@���R������"S�1��BvVԞF�j����j�/���9uӌ��9���#�z�h.6������y;�ˉ2�D�����2o�L3F��`� �r��ʾS��i�^����z����_��3�!�||K���fکH_6q�X6�
X��
V(B <�z�`Xh&��rŪδ�Ҟ��P8U��z.͒8��Θ�!O�}�wg��d��NSݙ��L�s����K%ǚ�����jU��RY�֔�j���Rd-�ZK��f�[*���*s#�䵀�2�L��^w�-�c��m�B����}�4�ހ>�z@s�uF���Dn��yɠ� +� +\�}o���8�Ʈ�i=�Q�L�(�qG +�-�����ԥ&U��-IռUaO{f�ڠ�ТwF��g�J��z�B��V٢�$sy��{0#y�����4�䯩$��ܫ�W�e�-Q�0��%��%پ�ȸ��'*�Ow���u����c�������O�Rʼn�� �� S.��<��;L��=���\�B���5�I�rz���Q�x��8�S��VL'L��W����;�F�a�WY�Ѿ�����,�p)�8�ß���|�o�_��˿�7A����P�r������m���w�'Hyi�G\�JG~����瞤NQ�eg}<�?u��c�3��k�T,D�`3��a��2��5pRm��?ɏ�����U���ĉ�Z����d������Nj�#Ch_�LqrR;<2���V��U0Գ~���㷗��4������������_��7�Ͽ������˟���˯�����r���l����L/�'l��I]q#�G*�x�V�W �%*+/�ZyAq�!��u.G=��,`n8�� +1�M`�a-&��1��o�P��4�O��������L�f�45��qIr�c1�N]��S?�zĆ�W(�g��� .�A����O��[��~Z���n����+�x�ޒ�-M4�����t�)�X�]�YT�Ң:-婪��^�fh���72��>�����a(��������4���BKҬk[���eerk����̖��lڿJW���k�����{o�;���շ�ǒ���yzy�r���|�6���9�FG�i�y�XC?v� eӜ[��7
�c1h����h���ob�[���_�ku���J�$hZ,q��6�_����ܭ���(�/\��:R��Spr�=.U�&�R�WU�ƫ9��v +'7�A�Q'��n�X���ֱ,v�0=�䅺��p5!����=�2�>��i=��A�L�E/v�Cɐt/AR7�}E��ݣ�1��
9x�f̮��� � �.����?N������vx*��ϴyEqKfAͰ�&f","���lEz;��¶f@M6��.v6���d +I)E�I�7�Z;��ԟ4�A�<�3$*O��~�����H�|�X�氄5l����ό�oC�1aq��5n�x 4Z�'�[/o���
�*sU�ԉحb"���|0�Z�Ȏ���l���9b6�r +y�CK�#��Dk�-�7�k"ܙ��1�f����l��a�b��oXa3Æ�
&�֓ +O�) +�p2D>��8l�-ΦH���@M���j���Hci�rvL��� +���O�F���֍j���'�����z�se�YyVL�.V��4.C���V���ZI,����\á�&���y����
p���I���Dԇ��V.a1�.,<:���}��Gxۃ/3��S��A!��� +'Xx��'X���X�0NXHL +?��� +?�p�¨��w�JT[�����I��/:|^L�q�KG�E����C~���>��ߩ;��|��h�d���Y|���������o���巯��)o,_��u{�//����/��������Ko�,w�ʼn�����:y�ONx� i9忡I����=��-_!?,���D
�'I�,��LU���$�J�*_����B��Y_X+;n ܊��so�nC�{�z�\,l^*�}Ep�00 +�J�Rؓ�ర�t�6�C�#�֤�OFQYa8�ظ�(]}j> q�v&V6G$[ y`��eU"�#[�~���1R�bZ@꾬��j�NƪR��߬�r��]�!�a��������D�
aE��@˛����[ӻIn����J�y#����Mr���h��V́eӱnN,�Z9KgWk����u04��4!���82��"�17�-��B��"@>?���y=҈�zF6ђ�Qe��B1G�bX��"�gF�Y0N �'��*
No�`�ty����\�����UG��;��`[���}P"`� !�eu +�i�(�+�f�fO����@��$�&�#g$�@C
�B��R�YE�]Ӭ�R���\����2�d�[q��o8U����Ƴ��f��;��[��~���[2�%o��;��ɝ��Gj��k�>��h��7*�R�"����]�窉q�P�0����@�z�}R��a|���NX&�c�,R��G���c�Z#Q>� +qC�+�� +n�vOd{�uE5A��VD+��+�\��@.0V+����^�na��� +P��]���V��5 +���Ġ%�fR.ͫc=B��{�xB��+lf�B�4�A� \\�2�4i�*�K���7�4�� �&�QX�0��) �Z� �-�zf�Ք��UD�a&�l�-Uw�m��lP��m�27�jx��^~��\� �Hs��0NU5�K;����P�4S�7"�� +�˛��VK��ی�Mf�1G��L�_���U�^���F��2���js�kkɵ�̵�8��b@���,�*�Ų��%�X2˂��0x�g�Xzm,X�̲�Ԫ�YTF�)��-%��,�'��IJ���(��dV��$�zX����`��D��Y�� +X��]�`�4 +MX��R�c���,&,,�OM?#ӏ��F��]Po�=S�w�v��rBM8��f��� �&�l35������F�
u�W�H����Ja.�/�Ƹ[ً�E�����j�h�h�(��=N�u=.ae�.�>Xc%m�q��r0Y`�1����;��g(9����5�'ܫ.r'�eI�M���>#Ē��:X��^S�#x��aM���'���fO��j�g{u��������_r�������/��5�ȿ��mJ�u�$l�P���f���S��%o}.n�5o}.n�5o}.n�5o=�[�=A���(U�� +�A�N��ӓOWu�ϓN �TţX@���ĭ�;0w{z��9��]�O�A�D��5�a"/����6�����l~xE.f��ʣ\^\�ydw��"�A��Ps�$����B=Qaꆺ��^Za3�������c�98[���?i�+�{U�i���x0��9��E�)�p�EB�y#5G���~Z�@M��+�� +j���4T��U���U�N=Z�[�[�*}{!��ʃqU�b�Er,+9Wݮ�y%C#Oʴj�I��κ��Fjɢ����X�ܺl�UQ�:^�]�R�8�w��p�!M�ϢD,n���w�]��]#u��8Lɦ*S6�\!�f���W�K����+�m��#}�3���ڿYp�y�����O���x_���'����dǛ��Zl����u�6��ݮ�R#
��Z�1�Nʈ�\���D�{�&8w���:O�` ��Űx�Ҍ1������T=&w�4;��D(�p� +A�ЖH��H!��N){rׁ���]�ٌ6ё��e�\v䶙(�|m���K`Ѕ����00Ë����#���Z�tw�g��ϟց�jI��K}u�0]�U�z�i��j��թ�եf��Z��_���R�\�Yi\�7�e#Zm�[-h5��j>�j<��J\hU�YV���[q_p�J���l +��`C'�!N|���N��9�!}P'��w�������>@[��O# +T��Z +VV���Ԙ6�\$2���T#� y����h[�
?��c���~&.�m����<�4_��~�v�;�Otxa�V�XDLNjf�)�c�?�I���, + +���5��X���ce�1�s�1Y܀(�d
d�2����!ͯHKg��8��\kX��Mot o +�⪴ +.�<�����G>�l%�O�g�/�\�h'�&���n^�?/q��k�_�V +����+�����G�^�䛬��f�΄����,�$!zbIOU�x`t�@$�Q�r���#�`D�w�_=(ؓ�x�q��w��'�a�F +��B��T������'Tp����L��&rp���s�nR���`n�މ�E4��'�6t���@�.����yaF������ǎޣ���BkP�֫��PE��"�UoWm${P����]er����j}��h�E�U'~�ܓӪQ�����n3� +������^��,�N�MR�%�ݼ����ww���vG�aw���;�#쎰;���w���ݻO�7!{�mԵ����G\Nj������Dt�$I�m'Y�[��wNv�/��W���k���7|�L�T/�ۥ�3w��{�pë����!v������:�;-{�S8�����>�:�ot��'�Y�~q������>?|}|��^�|}Z.����������/�Rg�/�_�&q|�%{�*��ݕ�*�3Cgm��bO��0#7��^���k;x�z�s�a�c����� 77!3�)�Q�D�E��R���l< /O� +2��.��"|� +]/C��ĶuhU�9��(�OHxuL$m��[k�'-�a�Sm������>i���_�C}?��� ���Z9�����ƪG�6�e�v��k��⃧,�\+��a�ԩ��7�|��9����o��y`ET��CŘGI1��r(�U�*�$�$-� 9� +a����)e��E��ahQ�!]l5�)n��:K���M\i0ǢTu�̈�5�G��> +LT%�W��ŏ��}|��b8 �ʹU�A�P q��]*t%sb�c��C�r�7���c���-��[��(Uv�Ϋ5�K�1S�y�>;|=-��2u]�7���㺼�.0��b&5�)��'?��O~���Tp�V
���aČ�V�i̴�|��-NG.s�P���/�hl��/��5�Q�+�� +���H����nUِ@r2�9�JCLҼ�_W���� +�D?��jzT$���.WJ:�����vj�=Y���ʾ��i��u��Bm?�\�=g�@�����٩�� �W�L��(�0|�fm��M�?G���ΣZJ?$�Yj_��H����y��fm� �ۭ�!(#���[�{aJ��[�����O48eJ�1���*�]?=Rv��������S�����%ҎM:N��?��V��f�� +�bu+:'�*&~��p^�����nh��Ӝ ���
L)���Tӊ~��?3�u�"�Cu�P6��'͑�:F�1Sz�
��� +FX�kX`)CH����[Y`/��&�� -h��L3�dT��G��\�`�y�xP�/�*W�����u&��,u��b��Xib/=��j���l�>��p��)]h]�]*Ħ� ����`�!��Bri�h� �Z��Z�e#ѻKu=��h�b��ڦ#�K@�C/},]?�ca�����x�[��U���_/�x���!�s�_��q{�#̽�������d�Ͷ +#�D�T1!-�F/T%�� +H��ˎ$�E���P��M��1@&I�k�+-f h�Y���F��Ŭ���� @Pޙ��,&'n��Sby��x/䓯oP-҇˲����(�e�6Y�&;�I�VFY� ���*AY�AU5�1��tm��� +$Dd@�8��A� }G�Ud\A�Q>RfR�R�R�RSJSrS�'�����Y� +@q�@�A��7#h���BH�� +(��^U�g5J�np�n6�
�~��J�p���ڇ��%�i�uVOn�����zc�
��m�rk�嶍�.چF [W�EWݐ`�̛(��*ԕ�4ʁc|��q[�W��7V]Ԇ�㥇�r��;���I������o�."���8�jRw�`�bg�Le5��Me��`�P|@��j6�ʱa�(��c��б��G4"S��� !�r(a�B{�X���aB�rC�����(�ϡy�|��v�#P�B��\
�u��6����i�q��(�j��5��8`�3D� +�w�Vq�`f�� +���(_%��V�
�Fe�:lQ�n�Y����.��~���uHB�t��#�*���G���kKk�&�5n� +Iy*��TX�{-�9�����^6�C����e�q܌�O�w�ɦ R�H� +E��a0`Ȭ�������Oz��w-�A���3���)!ڈ�d� *FqX�n}`n�a���殷��ʈ2�G��c�A^9F�c+�� G���"�1��8���Hz\I1S��0q���։��O:�ĬR�����Z�}��O�����j�s|�%?����ɟQ{Q8�����+�:c���W]\t&3j� +��h�sMZNI+���F�1k���5]1Y!W)S1O]'��<e��ڒ���(O%�)��2դL�\�d�tլ��)����Ӕ����Z�����O^�]ka��
WM�~N�����\׳���5��b�6��W��ֺ>|ޏ�ׂ˺y��쎟NUﰩǛnon�s���L��� +��t�x���
��CU +���<��Rp��VI�H�a�0�m@����b+��`4E(�@GD���� +Y�t�g�l�9`(��|'�p��9�~�$�u�����A��� �¿Љ�%�At<�;���vՔdؒ ֗Z���dh���x=�v�R?C�k&��a���d9�Z�<���"n]'���v�2�˨טgZ߃��z����rF�֫��7C/�kXG�w��‗U�7��Nn���V�����C٬�Ԋ�x�Z�g��v��"S7p��]����k�����}C�U�%?T�`�8�G�A +��6(%a��'�Տ7h�@�X}��Ox�D��Y�|�\`v���T.��%�!%A*R��=����vh4�u:v���M2+�����6��&��0��fhg_�Wd�Ѽ�VWɆ�������%�-�a�b����`��ڪ�+�Un�� ��|�� 9Hfp��p)o +�B��PL�E�J�A&m���2Jf�*o�層�hN}|:��`]�Ǫ�]��C�O]PHZ�eB�^�/ni�e��3u�N�f?����i�&L@��|'�9bGT�Uq��H���h��2h�.sz�y������n +T�
�Z��d02*4-A�f��[�Έ�����Q��� ��q!�f�N� +�V�?<D�8P�Ґu��$#��
M���a\�q��J +"XP�Po�#}��"��%���j�Z�Ÿig�`6<��M�Jݕ�b��������Uc|���U��3?V��c�yp*� +�H�HR��y��`��i���!Bh' �'�0�A챐�<N�!t���)�!jq�c +a +]V���)q1'Y$��!����1�Q��B�抄, +r�G��Y�,�J6�.�\5Ic����j��7�����:£-2u�]�vin�,����^�L�74ޓ9ٙ�#s�{x��{�A�#��IiC�R��H���~G������*���X�b{��Y
O1;a�9F.gER:@�e$�Bi�'�Ȕ�
J��P��P2�+G(�KFd��n���`�h2+�^D�9�N�d� u +��:�� +*s�U/�X����{tƸwQ�q���$��)�f��Kk_�(���7����6]����=6bkAm����l��f��h�xq������=���|����wc/
�]l{ ��j��:�f��S�Eg�ب��?����q翸>>�jp��5O�����؎��\Ds}о�̓�0�#|��~��o?��������/�~]w���ӿ�~��?_>_~��.)�Ŝ�E���?��~4�CvS{={�d�,�n:��:��g�vϵ{���x_����焉{@����t������?-oX�[zSA��8�#��V;܇�c�fL�-�|.�qi�z]jƥ�bq�Vw� +q8�g
C_��Y����ѽdٿ.V�#����[�g;�7���{\ io�Ĥ +�H�V�($�knU%VX9u��X�5�[2�o�PI ���0�yr̓
i�p���Y�U7*"��?�S��_s�5<C�� K���� `I��Q#HY_�'������C�ٞ8�H��%�o��q22�J�9W!�_�⯠⪢�_�*��_ǜUC�m�Ps�PP��KPSt�2E����!�O"e�V���T���WQ(�d'��Yv�'�fS�h��u"\�qqB���M�pAZ4�諦�VixA�A��)+�*K����C���"KԦ�D���]U �\+P�6|i�IՆ8�!�U�d�>�6��=� )�Z���bo[���2��j�qW��V=r@�����A]�>�E��T��JbfQ^S��x"�6t�㧽�!P�R!��� ���U]d��@�U��ԟfΡ���?v�Ѣ�mȆ����E|LOt���{<��5��0&`�6tG¿��!<�N�=�,<�Cv`��CM`��Yt p���4&�)�gJ�9^�\m*8tUz�*7ԝeN�Wņ^j�zq���� ������t#@�@�o��%��C;1�DϷApEF3LA�9Dz�2���t�.du�*0��%�2��
�� ����s4��a�L@.�� +��ǯwqڱ�dn +}c˸*)�8Y䓣: +��㛎1�Zj�dw��9�H��X]�5�&YJ%�dk����1��5O�i�)#Qz'p���q]lM6�a���q�^�XGH���6�G��+� +��p"%k<�M�FkD��J:^��+�M��A-�/:c�����Yyi�Y���`�'��5=�.NMt��.~�:�(6�o@s���/2��� +w!Y<o�?�@5J��P褊gN1�ڽ��P
������B�C18�t1DY%P^��o�N#�9`T���-���Fi�L��ܦu�@�<K
Zu͡c�pY���b���O엷�����ׅ�I_��"PlO)�*{�)��������}�K+{�K+y�S�]��K���zv��U�yyW�M% �6�^x+p��H2���T2�r�R����Zv亍��?�&����"Y�2�p0Q� +1IR,{��8��W
�E�:U�rŞ��ٶdD%?��Th�@T��l��SX��HAS�����$�8�O�Q�t
�=E-̙���q�ÈV����w��:�e�5�l��],�9%l��={f +_֙�5l<z�Ǡ%��ET�X)� %�;��a�c�+Xe���"Θ'�w-��nXr�f�H�>��u�ke��G�{?�6 +A3q˞��u4�(�'�xp0Q$��q�"1/N��~��/��^~��7�~|��M~��_"-o����?{�����pz�O��a��ُo��װ�ɋ��o_�z������_�tz���
Oa�w��;���������_�N�r����J�b +IAQ��z#T���ٿ�wG��S%���5l�����MC�fe�M�Q�&�EB�\hU���c�m��
̓ɠ����M�)�3A���|ݽ ���� +�@Hz:��1B��0P85?�\�/��\�\� [ysg?]k��)d�USCD\����H�u3�Lr�SPq-� ���Vr�U��oS�*����=��$��4���������;;,` á�@� +��̨�J�;��-����R^�Xr���9�q�SL䖁�$������#�-�.-���Y,�F�(��`T�~@��8:��%�`�m@�.�f��0��>=�(]51okI^a�4-Q죉�aܚ�\a�4�����-�Z[�3����sU�dS�R~X LIz�E1�#U_�� +�h�A)D�L�e�hNl`o��BXE� +
~�Y+���m��)�dP�Ǖ�U��`��u�Va ��J� +����f���k�=:�l� +v8���&���Yb:���}�`��G��A�g^f��y4���D*e ��$f��(J +�� 긧���t���w���Q.*$A<�3p��➥ٌ2���Ȳ��7�������[�����\ʫ��`���)_=�ㅗ�f�q�����Y�>�>�m�Y�}���+Ah;4�c�mV�WⰧ+�VPK}=;�]>��
>��X3�l}�y�]�xfMP!?4S}W +;���y��1o��p]���C�wn �Y(�g���n���0h4�� +�5����v��IX��qe,��BNR"0��5VZ����C��Z;i��X@���in-8���e��ֱ������X&�uc��� +����樑s@�e@e�Q�=U�S��,�0&P�GH�@Q��ǹ\Q��xY�%�BQ:�N|��� +� +p*�A�^�zxcb�^R��#�&�Zy?�j��JD��L�J��6旄���7Э|�C~��ͻ<S���Jv���\�v�ʐ�)�"P�b���.@����i���� +����ެr���NO�ơI�Y� �"�O�#@��%� +��賦� +p��V����)E<xT��rBL/���vU�;�ћV�`��`��n`*j?[Lꔤ +భ�}� +�.*0�w�Ywv1� +P�@L�;�տ��Ǝg���`�z@��@��,X7(�P<�� +*�y�ӕب��\@�Vk���<x�����kƝ`!V �2��bl�5$+��v>�hge�.f0S9<�>ְ���4���_`H�>6g���(�Qݪ2f{~]��Wk�dN�t@��M
�s'��6~�zZ���]-s»-����D܆�ύɳR�N��� +`��fZ�<�v�A�D���7S�(PH�$�)����X�{ +8h�Z�|��F8i}��y�k��.M��n�HDӮ�����f�>-�z�*���!�������������� +k!���c&8�c��߿�� � �><���GJ��M�0t���Ǿ�G�z��e+2�e��Џ'SA�*!A����}�Qc^:��G��J�����!^ih>�3A���u��ÏpK+�P��I44ɓ'U�{��,�@��H?JS@痋��QE�|V�c�C��HX�r���~�fF��R���1��/�$<ϜE��s�*��ڱ��z�W��c*#�����a`��b����^L0�g&[�UW��0W�U$�n�! +��Θ����1�T3z'�(U�h���lP������1�����̃ɞ�VB�G8^�AC�t� Z�0��}40�u!Q��17 +��8͑�{1W�bX�+?d�����O/@�~��/��b�
Rt�a�u��3ז�2�JLD/q�ޏ5;A��zu�#_�����d~�^%_�@g>70�œҐx�f���F�ZP�'�b=4�aHq��59���7Z�gM���ɓ�"ˀ�#�`@�1.��ZXj����zp͍p.q��N�u���p�0��H�� ���<ܱ�8�C� ����ύ�kc +�j�Dqd�v� �]u�A���#.EX�S��Jp��Z*�K=��d��2�S���< @�+���J[Nb`W���]D�pg�$i +H�����e�
��}Rh�ؒeه �A˔���@(%d�t>J�d���kK��Z+�I C�<�-K����;=��<�y�U�U�MZy����a�s����N�����WR�}J�]��L�p((�T��q] +��M�dj�Sm�aR��*,����
���0���Z.��'Z +�rsL����6N���� +�J=�\å�����[wX��$�.�&!+~�J~5V��%���]AY� +")xC����k��A,�[x��*���n3�CdN뼙�u��z�Ӌ=�o�-��Xrф7G��i5�ila���H�X�I�;���V�?��f������j��P��Wݰ�p�x���#>N4�bN����LCKou���\ڰ��p}3/׆p���a������my�j�q��É�2{&s�3�x������hc����z�QV>��xx�ˑ��F���������n�?[ɣp��j�8~�a��D��M�������W�Ry8�པ�����9�]e�;�r��>�l�I��u��b�����3��$L���ÊU��l������/"[X�M��gY\�C�͏@jeY�D�4iz\���7Y��z����a�;\�%��F� qW��Aa����&;�`� '؈c�#�U�@V�R�`�$k0;�^�]v���0��g�b��l��n0������`4�3��J;�Y���a�G\sj7�.�&\ +�c�l�DD�&m�K�+�r�$�K`w�!� +�k�K�9Ff;��V�r���+���&9/X��.l��Ԝ}J>�e����P k��dQ�]A�?��yWPG�{sǵ>n,j"`=���b��dQ�%&�Z)����lp>����w�s��*S�J��'�ͥ��õ|%ћ����aQ�`(�J|���}�g,OQ^w +�u�]�������Mb"����b�;�#=��n�`:P(�`Ğ'<v���
J;�Ћ�p���k��e��a�� +��"Kh'ۂ��P�%hA��{��㹢��XF�� f�)�5��� +��s��&,�-L_��'�j�컙�|z�}/v��S[k$�0-I
j��-F�b�+�Ry�̩�I�6x�͎�o03$�U�E��C�
�&Y +�9��0Fc3�)?��i� +}}��8\�Z8���,}��ϴ.7ـh���
j�rSP�|��B��&Z/f9\�t����h
V�Qx-���>����>Kb��D�.+\}Y����T7 +��\e���56���O���ӂ�`X�U�ɤf
\Ѻ�=o�� +��À�ⰶ�EX�sq�9�h��-�N�$>�x`�'nlnc6�Ѻ�8�a���E�� �QI�R����3[C�l�4��K�*��Cb�`�p +Ǎ�j�1t��X)�dɊ�OAʫ�X�&X�J�k���,=�"�p���LN)d%'��9 _!�.����Á��& +�ĥ렳�Sx�p}��B�ɇ"T�x%�_o� +,B�x0+Ng�Bk��0Q�p�uԯ�����g\��a+*�!bD���3,������UF���kP��Z��ڻ� ��V�90&�(7\,|���z�r�(�c�\彇��GXP#R��Q�d�S�A�6=�ǒg�'^ +�rU�ml�Šr�8Z�Mc��/��3ʍB��=�H�`{��$R���-e�96`cW��(�p84m+����`�g���%�AL�9��k�t���U�ĦN��Q�~`� +�����8�Ia7@���ø���4��ll1;�v#��}��.!E�53,H����]2��%����ۋ�������4ܩB�ڀsR=B~��p�m��K�;��K^�M$zp��\}������v�� +������ {2&q�N�06���j/=V��.�DQI�vlJ���?���Bl�ܟ5Zv�??x���G�#�2O,�"Wd��E��tZ�M���g��Ć+�˓BX�I7��j���%OL�S�k[y��ok�d|��f��S�@��7p�t_�c�V��w�f�F��Dv�f�!�険m�G�'����n�ZYB�S�����+,��X�W8�6�B���
�����}U(a��V;7:�c���MV0|#��R�����<azf��h���d� X�O�)ل"�j��͂=] +`�s��C�C%{i��2pA��̆{���[�L��Y{�p�A_6ƶ)D.��cß�lv�l<�����S*�Ncb��B�|UR�p�%y����'+{f���� *���1�'��x9W���y5�J8��N��l������}������y�%[��da�.y��a$2�_"a@T�i UJ��Ȟ�'v&��1���O���{$�˖3&�bΦ�(���6��{i��왌b�ի��Zl��}h/DK�,ppB[Хʰa;�LzG�\����'��i���l��Ac����W����AG0����6_��P@LI�؆Ww�֩"�=�E�dj�����A6�b;�+�ǹ�e�b�`�J�b�EF�<<�Q��/1��s��a+�C�#�c +ɐ\O������u�1�^�pT�^d/�����Φ� +
�i��9�a<�0�����]�ٵ�{��-$�Bb�8�gV�\�� + d��rjU��U8�H�x���B�e�Az�P��9$��Ȇz5fY�����U�>�3m���j��������g�=��p���zs��� G�lp������\���|^�6�p�&i��t)~� +E���\�TP�ؑ�w:��D���Uzc�8�6�D������g����6��߿^,R��>;��+N>����X�V���,�$B_����5� ++�q`ǥ�n����G7*7�����R����ڨA�>��7��.�裰%�t1h&���c�7�e`���,����)Ջ�������R1%�}6Aj�U3�Qt�X���H����|�m�s+�"����۲͔��;�����C�K`uq���F ����n�>��j����a�9a�Z +���P�t��֛٦�;���n"��&F;�6��M����v|P\C)�A����c�qa�K�@���9�9Mșz�{��Rݡo��N��-��&J\c�)�0�nP�P�7��F���;,���`��.5:���7á�H/P +�n1�xe�a$NӁ����u[*k�bSj3�5�s��n�X���%�D�It�!y\����..�W���u@oTr���A�����G'���K��t�g�R�_{��2�����Ƶ��S����ؗ�M��K��}j�)))�����.m( +�,�Z� +{�wc�Ը�^���-!Hq������� ��+��l��[G,1��+�m-�a�.s9��� +�l�*�!&�A藸L���#r�������;�)�yve�|��O'����PfQ� +s��^۴m����i���&��ҭd� +�Iu�G�������l���9����xF�7l[�.�D�L2t�W��W�!pD��8� UH~@Ƞy�!Ҿٔ1��l��'ko�X$�`��IE��l`��2������C�Y��юe�SaH��G��v��ap,g��32����"����6
��J>��S��LIJ]�.�G��b>�`T0HV]
��W��f;:�NJ]��yⵃ�5���z[,Ɛm��̷�YC�9��z�s�.��d�c܍���X��m�D6G�=^��9��iJ �H +����4 +, +j�����rX�vI"EMKa�*�C,2d��@��!+O���aU�}�Lys01s�D�;B��
N +��,u�F�TU��i���k�<���+ؕC?0�Ք䑭��Uk�4j��6[�g.>:R �x�A���T��� C�4�Đs���N[B����p�c;NI��x��= ���f*�^�:BOQ�Np���+�`E�^&n�3��̒� ia�ڻ��`Ϲ����Bݡ_cFy�؊�<e���ܝ�/�gK �!f�>]1:w|�ko���7菾V-Q�m��k���� +�=�Y�� mJ�'��LWW�G\ ���0^��"R�jS.�f���T�V�aѴ�e���!�A�; )����Kj��%��t��AG1�8`��Q�z��j�A�*���C��Jre�H?���v�C����sS��/�����\�}6�n5 S�� d6=�[�SLiQ!�n0��g�5�Q���6�8�����i�*���o�<-Ɛ2nj)O�ZdN$����Ƀ��V�o�S͝/���b=�<2`a�Q���;��*�뀵��ܤ�/�E[9�,<`L��8F�t7�-���1�)�Fs
���� v M����0�dO\B��K��z���6�!�X�Ŷ�gˣVK�4�h9�_f!���5�UP��9�����39�6]l��8 l��SS��8����&k�F�e�|���[�%W-�m1�[�W�gMv�h�f!"V%��M�[��pi�&:p�;�$JU�u�B�'���Ԝtb��/�� +hM��L���yE٠N��H��V�Pt_m#Jl��X�
`�`����Vpj��FUH�^c +y��u�ѳ�}a(�v��yͽM�*�]Ҹ�������$�ui՛Y31� �h%��.gXt����P�R�X�����婵;
�[�N�&�٨S���rJ�0;4i������۶� +=��}� +��0D��ڛ܂�^� eXS��������v +X��v����^���4E��npL�����`��a0?gpJ�T��v)Tu���-���a�[�b�HI&$)���E};�{t؊e��Z+��N�����OԪ�����c2�+���l�<$}6$�i%��~�dj��L�%.u��nsKŰ�������=�`�����w�3N�;>bC�V$�[&��c�e��� +�R�=$%���
z����XHC��B�At{ޠ��:��=v�>:��L��c4��+h͖�C�/�}�,L-�k�P��ܻ��v8}�|�ո�eI�e� ;��߱f�{�� ���{��k.Z���xmaa��������R>ε�Q�2%;6�3�a�n<�c��"� d*>��B���tC���'�v�}��C������k�gl�զ�9\�P�CO��5g,�`��8�5L<vf+��)B�Z}`*y�҅)���oG�Be�ഊ9��2��$���Gl��lY9�37��Pm���~�����@v �a���-�:���5A�lӅ�X�X� +�T�5�-b��m�� +3���"�H�>�D��<���A������gU������C +v�:���t���xN���M(a��ZO��qj��K1�EN�>Ŧ����cײbwA%ơb����6'���w��C�� +{Vu\ 94�0���I��������abm-�(L�%�}磏���3^�(D��P}i�ވH��]����j��3���dT�l�"�Hp�z#�N��Z}@�]%���e�c�k\��H�3 +���"͡�,�������g�d�N;!V�a����vM�P3c�=���g{l�>ҳ���[z`��������^~�� +)���b{uEm�A��
I�c�j{�Ƒ�/���æ�������=�/�l� +�j+�v�'�m����"G��4�����Ң��xHΐ3�<�wЁa6��V8 �ǟd��t�i ��F�!Nn�aP�������
t���3�#N�a�U��l�e�oK�$}��d]��PX͢ms�.�����x�)���Mك��Xb[*�Ne=`���0&u`�Y$)�! E���41 ���-PW�7QuA���c�]h��߫bP�� ӊ��ɞ4��w�j*�Pw`ڊp{&~r-�uiL���uKȡ����=wL�Ix��Ր +�Q��[�G[�&|�6�3�j��lޗol�`���Ӊ6MN4�TǕWRJHko`��$�JJ:�m�@�L +��R���wÍ�q s�+0�&��L<�9j@k���\���@���
�f +$��>���dL�������� +T��V��_y��`"�XuNp� nL�ԡ���ŷ� �[a
/�K;��XKJB�]�@ +� :��VwI!�l��AV;P���G@vԌ�]�.��ͲŻ�?z<~��[HCX���x[�E�����pI�����������/��s�ft�~�2:~���u9��dz|R�e�V��t���ռ�����*�������ϣ㓪J�,&�|>����N��/�:�f�����������]�O +H���r���� ��eN�f��ΦW�l�T'erR��ՌZ0�hF;����?��do��sI�rőE7�O=��߫HH���/���_��^u�S���w^�r�.A����!~�zfJ�n�c��(����N>{���83\I���_?�`��20��g�`������ �-�4����N��4ť�^ߺ��Gr��=ͷ�^��(�(����ۣ�C��B���8�;�92a �L����3;��pI���>��$��ү����x@G M�1�iv�=�gO,���x`�4�[Ԍ"p_���%K#Ve��D������pI�N�2�.�����}q4�G&i��]+��d'm�;��IL0�%�͂�έ�����x�< �P +9�[u��&m��yY-���T��#�$�^�_%�7�Y
��7���4%2Iۚ��gV��N1�MiL��j�� %�) +dFir]'z�sWT��s!'z�$O A7��v��nYZ@���r~4}�LҶ>4�I,�a��L nQ3��}���^g�����g�T��>a��|���G�yd��iJOv���#[��#\r�,��� +I
�l��ˣ +��������sܼ�I��T�T^r���΅�r�0�^u�_��ӌi�Շ�`��>��[�О���T�����O�n��e�p��}�6�;�TY�p�!^pvtj�t�p�|}R�_V��'E;FE#���h'E;E�S�/ۢ������I�^���h�v�zv�g'={iz6�$�PX}w�e���`�K���J1��C�/�������/�ؐ�O��5������#�u�d�.��=W!ǻ��u.{��n�*�-ց���3_��,`}w���Oc���A��LT)����\rwf�Tc3���.���=[ +UU +,j�-��\fݒhb3���-���=[ +(+s�,��Mp�@��u���Cf�'�@F�����p�BPKX��o[.��'A-J��d���J�0����#3�p^��m���d�`����K���j��J�hJ����3�*yK9�]8����� �N�D*$�2�z�O�s�����@���,�\�\��{G�<�fAW�]|M�,�w�%��M;#��!P>n[j���!�֨br;�a���O��I��M}�d��Ȍ�k�8U)�\�θ?�r��dJ�C7oM�æ��b�w:g�F������6�'[�� +VՊJN5
�t���m��d�r!ȯ#�^g�i1�2����*�Y��|���I�?7���y�w�w4�T��Ř��y.+s�,��Mp�@S��l���� 5��mX�~�ܤ��jh�%��0��'A-J��d���J�0����#3�p^��l���h|�s�(kB��3���+�f�F��� �d�L�J�R|N16gA�(����o� +��f9�b�2���;2���5������_�)'�O9Am'&�w�+��-[��9��ۉ��� �� +X�Qvh�?.HO� +��rN���PAj~y�ý�����P�^�o���5|����` +H��Wko������)��3/��O�4ѹj���=������O���mr~��cC1IZ�� +�(M�z�o��"��
�\f�ũR�ю`š���O��I����aZ����A�K�$�z���]^ +�WWr���D�i:ҩT"O�qB�.�U�O�dXi�yO��]�a����4͢ܤe6�@��V���L��������yi� �%�ȴ.V��ZU����Ab>�v1�m��k�+�Z
�lw�N}Ϡ�����4
�0���x�3V�Y��/���q(��H(\(1G����a\�P��*�K�p,m;�\�"�"��*�m9�Bh�8�]Hs �"0܅ +\��N^�h��M�����W2\�<�62���-46�A�u�4Nիa,�ϯQ��NE������y����ܽ�b,��Kg��m�t��E�d~BJ�R�|U�j�X4���1WfE ]��l,��k�����t2M�(�-⻯��_�����8��]>�%���K���Ѩ� �I��ļ���m�m,� +5�b��d���U��%�Á��̺`_ךp68��2,l��q<j��fL��hR�ccX��oT9uW��_h�i�����o58��!Jbx;�5��R��MeP�B�-��n�1ϝ}s?M�(�U{�~�c���U���z頗��r���a0��U����N��2ia��n���� +�i<sH+GK�h;����n觓i�U�����PQ>��< +���OO�W���[��X{}��@x��0s ��@̙��.���6JL��$��F�Q����q��Qr�����8�;�Φ����Ns
���r���O��s/F�jߛ2u��(�y/.���i<��uߎz)՝�m��8� �s�E�0R"�E�.�̏_��a9�ߴe\I:ȣ<�b����Q��mm�f���X('�� +��e
hu��#��m +m(2y��߅L�ct���p�*���[�t]�aC<�Y�m�m a[�}"�Q��D����sW�VL!�W�8�ނ�j:c\�i�xo ��Ʃ��7`[��+��L~��vh
�T7:�_�ԋ�d���u҅(�,��ڢV����\����]cVW��:����K�)�j4�d�;A��E��t�ҩT"O�q2͗n��AQB׀Fw���N��>A�+/h�i�E�@,cy�F��3e�t��cZ����������I��nFR�G��k�)y���<Ǖ�a4��2 ��1����������T$��"6ٻ*�\���Qg�:�a��߅�ze���N"��Z�$�Тz_%�8өT"O�qe,Z!՚.?i� �z:�sP+�EK��RUAk���EdQ.[D
�R���8n@N���+ֵ�eGEZ&\GsW��t`G/���`p���z�9:����7I8�tq^Z�%[�ܾK�������V�=y%��w����5x�Ӹs�B��A�I�"J����~ :�`t ��ߛ������"�.���Q�7:]�"�]�%��)�Ф�-�)�֨�lj����^$ܱQ�r�a�ӋO��vzC���c��;%��"�E�
���ʵ���]dz�g�6Z|�.�u��,�<J��9���I�0˧����3�S0p0Į�3�F��c[�������{ep|�}�x֔Y6g��ǰ�-���}��߱�6v��kaB]mh +n��a{9�U�]�\�
wly�qD��]�.�0���R@ � +�`�6l96�����ys(�����v��!>v���-��jp��Ie�aʸN1����%�v�zc��/T��m�_�����A?��~oNK�=hk�!���A���}�&e�8���^�~8�v�2@�T�l���.00�S-?y�^���#�������Na��#��0�w�P���� D�͠a ���5�C
@�Pxq4��ꮂ��w�S.z��E� +��壗�aV.QW�� +���&�T�k�K�ā^�R���<�����g�r�9��ٞ_E܆���ye�r�q0հ�Q`�C��M
������"@p���cFʦ�KD�5X��+@w\G�I\�N��P���X8 +�K��^d��<�s�Pp�<^�� JS]�E��_�5'�`�)�,�|p�&R�%P�~U�6ӓ�VLߴ�a������ZE��p����5�a�����A^ƞP��U6.�}h���y����P����|:��SE6F�i +�1�P�7�;G�lc���}���g��3rJ��3��K?|�X?��qN��0x��Pco�����k�[8��KG��ۅj.=�-����{���n>��|[�>��;>3�]��u��}(�r^-����W�nS�����~��y�Y���d�I��H�T�Y�cQ$0QD��g�9���}ÍB"����ۘc~q9D��!D�����q_}�ޯA +�c;M�XW�.ͥ�r1#?�����
��hp�c�����;�� +��v����%�豰�gӵɸ���� FI�A�`>����J��=e`^�4߽~F�V�"X�?�����/��;�tVwƀ:�J���Ap�:��ph'�ԕjg2���*'M���G7��uc���ɉn�:���� +��x���>�h��c�� ���*"�q'^eŦD2� ������w|2� �r�6S��Z�+�]L�DaK�J��]��PU���eU!�ŧ"����,�b�lTq ?��t]�'hqկ�QE�mM�r�
eWw,��6H��g�R3G��~<Q�)۶�����(���518���b+�6p�m� +�Gm%���r"��Kq�k2UF +�/��;�C�$�1B�S:b�&G�xڅ��'�C�a�`��F���ND5j3iAƐ�a&����%4�㙶��)�L�� +�K7!�"z�ۦ�%��}���j�Y���ڂ��F�us:P�*���W��� ��s�7�bvY��C��u!JL>�Di"6_c�� +4�h�WcC��10i���`�MA�P��X� �h_ݶ�Et-�(� +aN�"�ƮW3 (�H��b#�Ru-�2�ȑ +n��)�u�l��윳� �Zb�����6m����Z�r��T,��#���!����겧JJ�'���j2�G��n`�$�롓e%j6��(��[��ձc=��PҞ��,����3-3 +�ӆO�.T�EgR����x��\XW�ZW�쐙������'��x��� +n�v����K�*?h?�,�
����w'@v(Sd�oε: =����1�0�+pdsX +��� �����)�$��I���j�[���w3=��N�*��d�����}�\)TP�q�_PǝHGP�&A.������e�$e;��{Ij��� +F�UAh_����E�+���r�Y����i����Y��%p�{�P�'�R�
[ $���2#5��C&G����)����S�<����zMJL�|�o���h�(tfxI��W��&�h$��n��-t��� �J%� SO�RP^^[C�����>�b��sn�`� +Z#���k2��|��R��G�+ +o���5K +��kFU�!4�[~Hb19�6b�E����~�.��CY�x`��؇��}q�{��:������x�-ߑ��ɁЎ�S�ٚu���֍��=���B�ۂ�j�Z@+���������(ĪMZ� +��p�LJ��
�k4�h�c&��0C���X�a`�c3�=�S����K1��+�V�bԉ����}�6��$��G���B� +�ފ���˶dw
%�_��,ˈAgG1~���On�����Q4V D�����R���ܰ�c�9C
���" %�3���i��)ѢA0� +d@<4��UB�c6���qPs]4t�*���V�_� �ܡ� +�<K�ġ��� �v�Dz��K"#�*�_����B����(_�)~v1�.��%Fl8/��.��1ξ5�8��zS���x�N� �^������?w�_��[n}��$�� +�y&��{r�����}�r4�����p��s��X�n�����b~u>���-�M�[ ��z��н���yu�Z��_�nm?y���V�>,G�RAW����/>.���ؽ4�?u)�n<t)�<?u��`�]���_˛�4a;4�����ӪU��L����" ä�7䄣��Mr ^XպlV�hq����~>��ƻ߬Vp�Cܾ_�P��vCL*&�����8)�x�m�⤷�*Wpr�x��BVFʾԭ���⫫@BP:�Ɣ��z�{܍S�l��
{��P������<�����8�ۼ�Oӣ��
5� �p0� +���������+��$�| ����nI���Iq�ڨ��{��(�z�9|�jF|��+A���(,
�����c�A�����Z5�GX�8�l�=�ȣL��"��}_�t%y�l>:��%���YPM��:�I4�$��H�ٓ�N\����&�8�ٽ%�0oj�����?R;��T���?8N�'� �1�Q$���]�{E�!��T�}�H�̰�<��l��b�QR�E�4�R6�{���25���'�O���/�fD�e�25�_W�z&7��z썪H�Zu�Z3�s��'�c;B��^�����`IPF�ʜ��-�sP��%/YɐB*F��� +��E�!RTr�S�ȌP���'G�8��U��ؗ�H�K]�(�+@\S�"[��k+�Hd� di�Ho�p���ULc�Da��D�3�D��2��US�k@fG!'��X +% ���C�9N#�p�� +?�w�B�5�J�� +� +ň4U�Af�\�Q�TĠ� +gɨ������|�� KϤ��l k ���
e�z:;Gjm~�@�:�?�n)n��� v��.@r��vͪ1�&�[x>A&*�
Q�����v� +G�'��K'���;�/�)ݗ�5�Ӯ� +�������m��8��ѫ�A*�]#X�J�,�m�h��&HG�m�4���r�TR��e���;�����Ra) � |�5���*#T���p&:deHuV7�� +ق�8t�4,�ܚ!��������KPŇ� EB���<�Po*U���'8�+��P�Ug��o�i��n�6���NE���-I�
��^8@z�0��@��&R +������2��qq�G��σg\�tw�Qm]F���� +/ϩy�r��E�8��R`\� +z;��u��DOo�J����O�T�n���������-l� +g�V��B��_@r(2j��IHwxg��� ��� ����u=H���o1�Z�K�Kאg�0(���ZB�on�jy�^�j��L4D)&J�o}��%u��\��sAN�I1��Q�� +�����G>c�%rM��L(<8_BoLH�Z��;����h����z�H]
$�fuc��wk�-��Yp�q@X]5 ��b���iˢ�g-������'{W�}�%e>Wo���a�J�+@K�����&%0(�D����h��\��|EK��Y�y������ +��m�iv�=t�~�qu��C�@9�2:4�t���d\\���n��!l��>�T�Y��e�H��q�o��Lw�����Y���E�1����)���}��A�;��X��7
��C��� ��b��Q��˶Y�u�k�ӫ���-�� ٱ�
��i��l�q8�`n hrM;dU��Y�=���v����?��j,�CK�� �.�V +��5*�,j�����M���<�<Z�4+���a��؉���os�U�h�S����~� +�\�-`��y_;����F�~8�=��sQ_�=����/l�[�|�3�?=�oX�/C�����$��, +�5�����2G�KFh��M�V������IAH��g�ch�%l`s����K���B"T���Xt1���\D]��Q�,��H�P^S���4x� ��g$�Um����D�X�s8�9w��
1*�����q�����)��0�:5=N:�qV!1�Bj����>���R"���T>�����I��\��9���i�!��>͟=�k}Wg>}����0��q)���5��V�"�<�:�@W_~'�1�E��y�m�pn�:�����P�t���r��Lٺ3%0?�G Xo?��
Q'�����Չ%)q�.�(ݷKuU��>wZj���q��B�G�jp�O +H��WmO#�����J �Cw�{����ѭr��
QY^{�%���;�}��g���6�d���TuU��SUF�SIuH:*#�d�|��Qͪ���UV{���o��p~��Q���ˋ���͗�����}Q��/��QZy��~��h���Ü${���(�}g]���篟�v�����s��n�����H��0��(39�.����u;�}PI�.n/�s�Y>)�6��O�ŗ}�'p��o���}���9{�ʿy�k�~xT��B�~�ar�ez�|x�i�N5;�|31j���û�����ڸ����eoԏ��(Ι���X�
8\P�o�����n����/���������s�eh�ۻŴ�5��t1��'�7˦I��.��'��R�\߷;i����,y�~؞_6+�$9Y�_L��Es�����=�*��U�m�]J��*�t��8O�~kf�4a�5�K�gh�u�l�%���&�U�4W���z�Y2m���g��ض��\!��F��R�Ȃ�Jb�wt^��fIY
p�d��X�(L�A2��*��:�`��D��N�WvH�:� i<⠓�*��q&��'�:��+��eK]냑��.�ށ-��k�b6��.B�!�L�;E]����x���.�4LQj`'o�3?UB�[��� ��S���+�e�Kt[.�R� �1 u��|K4S@< ��dCވg�����p�S��`0ʠ�m��T�A�� +�����uLF �*�ʳ�7L>�t��=I��)��H�H�s� + (��Ǖ��W��I�<Nr� ��dJ�;7��EC5C�XgK�wY��<R"��(Bw�Qx��a)V�a� ]�,��z6ԊU%? ̌��& +ź�ĩ���йH +�I:�Ͳ8��ۣ p[caP����o��{o�t�k��GdeZ%�u�~ұ$)��~�ڔWb�ŸȍA��:,�Id `������wZ���B��輴5{ R�wưN����-`�ܲ��mi[6�m�����lO���^��Mb�,O��r��@���K��6�V�`�,jPBwa�Q��9t +S�]�_L��Es�����5��Lt�3:��K�� +:AY#bf m�Up�gNmL������
!|�͑^^���o;/79�H�XAU/7/��EY��m��_��7}��OF�ˋ��WR��������|�ǿ��O���!�.���E����1��6�j�j��:�ڤNr+� �t +�����5Yz
1K�C:��=o������-~aNeᓀ�����Z�W�n�����Jc��1F�s�2�|��)t��FG�8 ��0�UV��1�\�a�|A�ΐ5�ۨ�=�V- o �J�����Vw.�+��iOO���� +�$W���(��K>G1���X;�^��#R�ѵM�h����ב��F���yU5��͓!bh��_��7s����K���9KEpun�hg�8�, 02t����r�:s8~�����i�Ϟ�ʆ/+�����8t6r2֢���ɫh�$�Z��0��a �Ѽ�07v��|���s�+�⾞��gQK�K-���|�^Za��FM�<�{u:��bo���]Dh�dwC.4�B9��xث���i��Ā�4���M��
^q��
�Svy�
pdp���r�)��q����s`P�F�*���P�o�t�v}�8�g-#�2�����~n
�J�g��v�2�[^���x�f!� +�+�A�O���x&����Z����T�� +ĺ����?} +����L +�R��ꂋ�l-}ӛf9Li�%b��w�pW?<��B�;)��u��k�T����mb���n� t�h�
x�e�zg��z�n�%�4�L4��S�@��>�~}� ���
>߯��S���!�l:��O��}'R��jb� X��J����?�m�K��RU=���{����hŪ���\������)��Q�0�<VX����e�Kă�D������EI�Ԫ��p��M;�q����:S�y������y�9�)���\U�����4:��ְp�|c�YC!QՖ�NA�����5�j߫u���EaA�R[P�Oy��k�l��y]Q�qF��[�ub���y��,��8@�}6���XY�U��4�6��h +�u3�J��J���v���=V�K�{�*(����6��c�ǔgL*i�d��c��Ƕ���D�~:g�:�Qt7��7Gљ�dh������PT���MK�u�4���㑋p�;ʮ�1��\?��[�^������=�3lz� +]����~�ᗣ��k�Z&���/�{�;��id�}4x�spS������Dݮ;� ��h��
_& h@3��G�����B��]W�S���-���ߋ%��^�bw�9�>蕂�Bih��b L�����f!p ���iz切�tמ�ߕG��^��ep�Y�s{�����'k�=&��@Yr\s���@��]]���%m�X#�~� +�����q���|ٶ�q�a�������ˬ��2�FJE�SD���&-[ɿ���SI"b�� ��笙y��r��|�
M1��]� +Kn�iw�U���6K]�{p��� +�F���e��`y"]'������5��5��3��{4`���
�����N��N������:H7^]����~L�=pG�P�]�w�t���{뒒�.M�m~�-k��P������7sD*�g�����!����Ɲ� ���s��t�
N5�����=m��f��:ˤm�X/:v-Ͼ����ڻ˦r~8�'��$�$j�/�w��6R��w>�]���u���v|�H�"��n7�f��m�f�JC�R��+ o&X����� +�B�P�UAK`��,��]��9]aƆ�:�q�8���~f��a���1�0U�E����F��y"�ޣ,���E�A29Bv�,�LU_j���)�� +�6z5�Las�� S����Vac����on.X��5ڙ@h��e�v"QU�(֪��3Ƞ
Qȉ𝁂`f�|OgOoU���B�Ǚe$&�/k(gU��!�����?��������~���ɭ�r��3d6��D��hE'4�h�4~z!�����4?�ȑ#�Oq7<S�������h��i���w��!�y1ݝ�7�[�Cnc�v���N���q�N��#�}��m�%�-��,�7%�T�*T��(K� Ӓ#�bhFM��i|H's(#<q +��.Q�>�%gڽ*&˫���;S�X��:Ĥ�;�"Xԭ$�� �\;g2��?��f抄]"����n��{�N>�5cղv�ow��ĝB�d/�ڋ��'�[9s�e��mS�W�e~i����������k��em��G�K�ң +v�.:����vU�Ɋ9����s�M�SƏ�-n)�X�mn��M�Rc�4)�9~}u~T��U<��f��'ނ�p�ۥ`;x}O�y�` +�����k� +��vC&�z��[И��E��B��u���ˀ +�Bu�*r�j#��-����3�7kL +��|���4v���29�W���hv�g]��; ��y/AiN�& ��\��3��y#k����v[�P9�x0�BY6U�9%Z�Rns�
��U�l�-��W�y��{Q���%X4�O_�9�Jc��ޙ���O�7�ڽ��SB�������Ho�)��D�9%1���A?����7wE��`@c�7�#YQǕ~nl�'Om$Ս4�������^i���7��s�jZ�u����0�I�j�++E�a�'s5`���ҭԽ��`�(R��ͼ�����N������N-�Q�͜tŢ�u�k�r�̚tj^�ĶEt�{��=7���W㌽�|�7ց���m<�;}�n�75N���%%:&;���1�>�%k�_���h����!� +�7$]���R/Q��_=2�4�F`;b��I,��ϟ�Gf$�Nj6�-�� �I�g�j��c�4xU�L����e2��V� g\�&�MqԔj0Yk���������Jh�H�� ��9 +��l\@"���Ώ)}!��> +~�@��8���R�~蘔����̠й!��Wl*��u}U��J8�����"�L����h���A�1��/� +����� �R>0>2���F�������d21[�LO"�����N�{���.�K�s��˪X�a�Eq�M��������O'Pv��8^��0>0H��.��@�-�v��5�}^�*�E��Ɛ�^���m'���.�o{ "Um`y�[�}�|���Ηš�.U�x�Xh�ud����]���@�ݦꤐy����t�&u!!���]Z9o�t4��U�$�.zSeRdI���)�icR�Jc\
�U<To�ރ��"�SyA�A��\�%�(�G�/�{$���mX��?�?���"�t��E�����גъ���~eL��3 ╂�"�~.�+
�t@wQa�)����K�w�R��ʹ0�[Q�a��M����5-b܆�l�P�E} b��� Y?��b��VWވ���}2�l;̢�YvR��i�B��-G�y�pB:�h;�U�x(�id��ѫE ,�_�����lA��p�j[��qFx�P�QT��ۼ�����(�U��=_r�D�o��c5�_�W��`�]�<�s�K�=�1���8�)���X�K�K��@�� ���U�M�3��R4��d� +� YcM�Ϻ-�Yn+O60q\(���t̽���s""[N���}��,w�*�l��t�WT̴j�����^ qu�2�Q�n���퀆��[2 �3�Jw�t.���,q'�z����u�3lR5��e��t>'�,��]hyw�r̶�Ж*3�� au���+"�A%�ph����M�i�%����L�b�ɪ��4���s�˾�^뜳���fY����*O�A���9�~Z�Pt�nvT
eB�*���T;� a�o7��a�_K䭓c�n26�1>g� 5��B�C� +����y�%;�k~Qz왝YE�g���i�iBu +<B��!�M�J̚���mv�!Q��1�F3�9��=�ˍ��Hܟd����`| +nO�[Kd�(>f)�ԛ���}Ϯ_n����f���|#cF�9c�t�
�=?! +\؊�hZL���^�����z�\v��Gr���J3��1鱁�� +���y>F(L&�?7h��N�\ @W�����de��D���5� +5Á�&�Q3���z�0�mR��f�IV�#E���K��h"͖��%�"�t�
�M�JBh�� +hT����4.Z��#B��5@0M��&�Ͻw�X���!̍I�RWhk-)�("o+݀�_] +���D�h��&bn�r�=,
�c���s��mqT�E����#�3ƋZ�4r��9 +� +�)�Q�����$o�q������S�<`M@P�0�=J9"rc��nm��KF��Mj�b����cI�;�v�~Q��4 +�~�95l�&�.��#0����4Md�(�Xz�[����߂���
Ƴ(� +&�w����Hog'
���������<OpyoI5��hZ#"H%b��o�a~�X +t��= +@��������#=A��@YЪ��|�+�J�/bt8��H���rbB�j��#��>0�z���Y�8-�u��81����� +����l�$��x[��K�A��ˈ�,��#�s~7^����96�˗�#:(#����^�q�څ�%H�ŀMF��0�B��+�e��Nj�$"9Lr!�Q���:�/F���(rD���1�\5}Y�Nj��й� +�D.I(tu����_]1#��2�����U����Ȏ '*�7�2O�FD�5#��-#r�}tU�h���j�R�b�M%�ćӂO���+������t+J�KPy���?�/艽'"ϱ�p��X,x�����ک��-���fFTn��gV���TrY������B�]�WM�?)�s�-��(C2��c��*"]���V��k%���4�(})���R]��%���Vj���Ul�,1R�俕�ۂ��_�/"�d���`��3d +�<H�����n�Ƚ�G�:?��@ �^$��U�c:�5�E���jC�����})���46(=;NV�dU����w���D�F�%��4Z�O��>�p0�ԡ�cp�'�T��~KG*ԡ[j/~���j������ޛ���BS��x��ռVp�����mK���"���6�qmrg���^I+���:�m���yP_�F�n�:0����j���� +̃MWvG|����뜋� +Yd�+�������b7�����TK)�� r������"C��Z +�%j.
4������u9q
5pݱ��aղ�o���j�T�N���l_��<3�t��R��o�F
�P��<�.& +pz���ci���, +�GHǐ�@�!�a{��28�v�<O��,��,-fy���P��A�J�Y�����t��%!����ʖB=����*̞k��67�36+*���x���y���ihr�<2-��^��R1�a�� �
���x�+�@�����yݍQ�'��xh6���&9��z�z-���>�*P��ky�k�B_/W����p���N�ݙ$(���A�ҞG<����Ć6�Z��l)J�Q�ᕾ��O�o�3oס�4d��J5�"�do�}�9�@T��sfc��x��:$�"*]$t��=�Tm���M ��Eش�E\@^A�9z�+�+����2�MϿ�cSG��1��Lf{CSkq + ���E�5�n6M��+\�L5�G���\y/؊wj�O��Dlg_�{����YQ ���#����!��!6v����]f}R +jJ�EW��\{? �~߁ o��_ҙ�_�n1�A/��pm��b�4��9�f�����q��B��:�J���W�����Q�� �q"埠 `z�<\�� +(A���c¤}w��i*�E�N�����3ZFv��F��S��"xP��k�{���L#i}rk�^�U����%R +㢵⤾N�����G�wf�5�jbi�r;����ϾьՁ����I���gI@#4(���*��Ώ�U^�u!�ϗ� �$s����z�d���{SŢ� +��-M����FBzH;1
�6�U�:�k�T~��N��?��� ���eHBԹFUE����D2=.�~,l�/�h)��w؟����ۀ��c�x^��[ B�C18d�R�FC���%]�}�x2�8DP`贐�QQ��y��T/�,�~������oS�&�P���2|a[��� �-B�=���������/��@�̶JȌ�Ui�ܜO��C�)B�
�"�b�����9��D,,�M���L���Y}��x��JKW�X�z��<��y�+�[9������ջ�M��n�̜[��s��<H��3����3�a��檼�9�-���aYo��F�l��l���-�V��F&��U�L�V����.ET|*Q���C����P����~�M��l�QO��s�.H��CC�%�A��-��)7��;�5]-]s����S�=�0r!�x�-_����9�����-���y�[���S%iDf�D�;0�DAXy���'H��֑�s҆��M��3�)�������|qـ�~����b��MG}*���M������hVH�u��7b����MA��U`�0,lJ�U_�1uM� �~t�t���)Q>XU0���,���Z����H��-e�ύV�s,��y��^&xF~�)+�k
��V�-(-� �����Ad9��x���T'��>�� +6%��Ю=j�N2���F���؏� 0�#b�#����xf�X��ē�G�]����ǝ<Z�ȓ�".�]h��g���8�?�@�_'� (]��T��WĀ�=��[�P�b��xŒ����Z����',� +�� +1���f[{��\ +���6�L�=�'����ը�u͒ޢ�rۧ�S>��(���j_J��}��cq��ׂP/~���8->y� +R�M�Y�����1���B�Lj�<4�:�i��nX2�`ފ��WD
�V�de ��� +!��o$�U��YH����N.��8�9vz/���R�_A�.<�XA���F@Jkϛ�s-�%�0�?J�)I�j:!T�"��k�ٹ��I�ľK�N�ؑa����u�&��ޓ��b��K7,��3G]��s���խ���
-�Mɶ��T�K� +NZ9y�� |:Uq46+��@��y����ך�Q��®I����zԁs��DH��� �њ�H��#lk��n�#�&($.)ᚿ�TpbU���י�=�I���2)0�r*Ou�B��3��?���#��̄���S�2��4���>��W�C~w7Y��s�X
�nB"�VVEk�R�Kio���Dn�{���P/��*pD�N��tME}�I���Ϛ����Ey��B�B��(?8�
����3�-*�zA_a��W[7.��Qt悻�� ����W�BCq�����ѐ�Q��e3����I�����;Tmg����2�y�L�J��A�2��p:5��������N��6�~[:dh��K��x���ޭ�|ӝH)ilJ ���X��[q$I���Z�f���MΥ9Wcp��o��Ly,n +�� Y��Hչ�AkVL +�r��9�-��3��v�9��q���'�}���"Jq�g�yUv�.NgJ�beUL,����������g�-2Ua��&�F�j=�M�������n�o@&L�� ��V�M�Зe���Э�1����p�����uB���I۷��uI�%m̻
:f����}�1W +c]�,�E�O�?�?�+���1^��%`�����ۗ)���W��4#:�A?�����? ��l)ND3�CI`��
�o�K�aNI�
G�-�lN%#��y��C�}gɝ�
��� +�R/�d*���ڑ?3-+0ͳ�'Ew +��U����6\�""���E +��-QQ�6�-X+Ð/;Uj^>3��EL���f֕qḭw����U�{�O�����cf��!��ʷqa*�e�+oU5/k������#7z
y����}�Ш�G>�ʂ�.i�{�1�M?w� +(��Fb��;���+
��_�ψ��5�
�W����h�_{(��F�G2ɋ����n����� +��G}��X�LL�d�� +pgx��yS�o�.*9�U�y\�z�e��!Eף�*�߫}�fd�a�/t���̾�]L̩<�H +��M?�X]b�h�������k�������AlE�[�J{'��Wd�t�NO=�y��T�~6������!%/��Jc��Ĕh �~;��'�i�(�c��Vh�Ȟ������y�][���1��i��z�9�;T�"(E�j]Yjw���ψ��D�����\.ю�zN��?�1|�k���:굋�$D" +|(��� +~��)� 7��S%�����Q��U��VrD���p_HA8����y"���C�A@P�̄�( +��>���)�ccdbA�X�]]˩S$�|���@��<� �<
;�)�>�|%�`%���� <�B">1*A'Bm�!Ȱ2:�8�F�e�!s`���T���2fj%���\�9 +5��C�����9f�%z�S�Dz�ֶ�7�/�Uң�erxP�W��c�~?J��qv�����dv�#�`���;����*!1�IDž���?*Cd� +���-V^�w���X�v�6�2l�F{
2��� 4�A`�����" p�XI&�L�6��J3b�k8@�x�!C +��Zr�r[e6�n7��G��Q(Y���_-V��� ���ÿ!�������R���+� +d�g;@V���d'$Y���ѲƋ���eͯS���Ͳ�=8��y\������`��������v;_� +�(�cyZ�����?�e�qP��_!��M�y� @es�]ߍ8$0���IZ��$�Ӆ`E@!�����7ݨ�ʢFNE��������]����T��ӏk�?&*c^@'$J��(�.F4��~����8
c�ɚ��('���
~�
8 +n�q@gx�vދ٣`���[8�}�C�s=�M���n4�O���bL�(>��@B�O/�W�u���;�W����Q�I��}[ +� +�=�tM�{�h��ͪ���@����XZ����V�%�~r��y=5k�\�-`��/�� +D8>�L�o �!�PT���NEW%�`| -���J
����������`-a��k���os���mj�H�7��Q��>������M��ڋ�'��S{��]Xs>�l��5e#�r����Ï�Q0$����t�X<�]mvs���_����r���J�֓y�o�O���P_��y�(fg��|vy6{=��T�MB�M�N���:;��<�˲xx�*��>[�y����]����ߝ��wŮض_�ܾ������+�&�/]���_�t���4;�\,i��5���+�5��.PH��mQ�_+<��A�R[T�,�?�o��wO�E���d�Xu��ͺx��Z��~~�Uq�z�mź�8��A�PW��r����f��u>�bcYK�p +���b��l�7����,��Y/�I�# +?A�C� �Ƚ��?�4a/��Ʋ,4̎�ػ�h�����;�U�5Ӿ�Hh�b2�2#N�s��������cͽ�y�V��M2���".U�d��P���%ވ7T���1I��� q����%VR��9Dn�~d�4]�^�Hjڤ�&��o��� +����7��_#�� ��\R��9��:�@@SC0�y�(�;*.'���$(�@s��(���]�o�NlwS���v}��Md�E:c#BY�Շ��������q|V +�]�7t +��i�ҝȆW���!>�� +|ZD)lM��&!����y
~5,Y8~�XJ.�c�L3����;�e��m���o/#`��H��iT���#1�
^��r��I��Z���WR��E�;6.�LL���F-JW�bc���4J��a�� >訒ʑ�c��Aɪ +�np�x�t�,�Ǩe4L�$� +� j�(vc�q9�Ӳ�=R"���1�l��>6g�&��I��҃$6C�T'���<��~���K����~r���#�u�����Q���X�� �]����Y�fo�6��B��`�CӨ�<^�#ؔ��3������L�Uc/z'`�N�L�c�a�ʣ5d^��{Nِs�Q�����&j2\�.�!��hIi�
.�u��@����0�ƙ���p��Q�-Ҙٌ`�]�%�r�Ƭ* +9g,2�&�U>�ʚ�?���������Hfk.�����y.�|�m{��M��ri����*�-OPvz +����v٠�O�l�=C���|d̤3@3���M"7Q�i�ο��J������jB(e_}�b��;�E˜`W}z����l��9��`�`BM^�D���}���m}�~w�ȱ4pLDjB����
%�V��lp��@�%h^V��]r�#���9w�X��������(�`��%� + ��>]�7]/}�.=�zR�ԶM�5�"�o��`NUd�m2�:�p��_&��ᨛ��B�� �Ȉ��*���BO���@B�x�y����X�.҇eX���p�=D��Ʌ�=i�3c)�A�Q�X6���D��Yf\���H.yGtz�HƉ�����Wr������x��O��D�*ޞ�g)|%��%���?=3=��Il������
�������|���}��Û�M�s�R}$0Ʃ_͆�������='<4
=�0|"$9�<��pj䀡��G��tݷ5�;+
�q���%� +�Uɾ�v��1ݡ���1(�;7�<X:A�c�~Ƚqc1T܂ڈ�[u�%��$(֜���V +H��W�n�H~�C�1`��1�e;� ;N�Iփ��`$&ф��N�o�_5%[bӇ<�bw�d���ꫣ����<)�˽�Z�**WV;&r����|��.�����xX���b~�~i���"��V�Ǔ/l���p8��L�x�3p>���C��;�gv�q6�x�B�Wx����u�<�&fs'D�$�ሤ�՞�$ϭU��ؠ�b߳����>0re�f=-���`���;��Z��[ĵu�#l$伈zp<�A��:փ�sJ3ar%<�BBj� +�@� �;�S6��X r�d3�s0A���+��9r: +�<H�l�ЁU��vD�3�47�Q�0��+J^�c`��!��Tߐ�M��YF��%�����pWis�i(��ţ��(V���`z.<|%��#������.Ң����\v�1�u�
��)2 v)����K�F��\��b��@ +: +�VH�N��0������~x����b:�G��s>�I&��������~��qO����~QS����=���`,9ĩ�X{+<8������.
�=em�Pl�8@�)�C4r��BOX ��bw!�e�jz��A48O�Ԙ���F��,��. {OZA][/!���^C ��Edw��ex{�P�R2��UB������=uC�tǩ�p���5��x�E���*C�A�̀ر� ��B�q~�C�:�-Yl���j�t�c��DZ{��8z�~�5���\ǒ�ۯI�k�(5�mW%�s�,� ��I�H�ze�@�d��c͵y�·淜�p���/ٽ�������+ft{�s�;�.qBh��X�b�&��,g�M�׳�dA�8j�圬i�%�5����ysYۻH�]��N�?s�����L����B]��q=����F����&�<�N�5��z9��u2:���4���������ң�t�א�`�d�C�vF_|��]u�O?�Y�l�p4�T�����+{SL�/圝�G����o��x\T��˼�}���b�I6�sv���s�z�zP��o���`�*^VE� ������d��Ut��R��aR ���A�����k1No�WT�������r�P��o�j+^V�yQ����2�:���p>��h�Q��R��5��y�QH��|�q^�;�orz��Λ��mY�Y���o�;-�g��7NJ�r�j���������m��Z��� ⟟{�
�t���0Ȫd��u-�q�o�.+���aת��d��Iq��nx��t��~�T�5sk.W��d��h���i���f�%vk�fm�%���ǂ|W���MýPc:��M��=~���( lw��QL��z�� +� �X$��X����C��`J�v~�Yev� �!���wΝ�J�-��:3B�9|V_W�"��6����L�q���`2�b��^������3�V/��&~4��5
��C�,�05�?�c̶�0�pV�o[h8*�����j\?F�y���y�mǶ��츿��Xޡi���Ĝ�BЄ"�2��r���Q����y�����!�փr8�L=��
�2�0n�Q"#ai�v&��-�bΥӠ�f7��ί��<�I�i��|}���g#|<d�|>�I�g���_;�V��{��?L���\-�/ƋYU\7���� +@v�u����_/ZM� >��rq�
�Kc_m_DxQ���hq:�/f��b���D��
1^�r�H�JX�rz?�Xi�X��q�[�ѶaAzX��Js�l�iC�9�9�����G4mQ%��`Tv���|�T٤7��6�n5�a�=�,�Ѿ�wTX��K�}�u��'5��ϟeM���_�������ٯ��V�3���x\��_���8[.?ȵ��;�`��@%�����(�Xb�w� +Q��̅a���C���:ܟ���)������.KwfV_���q���ʕՒ�9W��$���_�q�e$R��z4k}Z����>���y�=����ۯe|��8�l����#��<��l�� ��7��oM�Мئ�FD�-��:q������߿�a��k�!0�g�F�m�X�Wح�P��x�C���[Uf ���]�y��/�n/Xh��;�#s�7=<(��U�|^�n�|[�������2ƌqjC����`F}���p�"����0'O�8��8���sb���M�o��7H��=�ր +M'�9#:�qBے�R �q��+mO��I�2VˇP=����~�eU��*�p^O�< +`����,ݙXix*��ER�+WU˕�\�;r` +��[^�q�e$R��z4K}O��>���6 �V���C>#|�� ����~�h+�U�(�P�Ep�G�Y�m�c�}^�������u+P{�ڝב9ۛ����*�^>�E7E��R�e� +�&�1�1�RI��0d2�K�>��sD�1ф6.�g�9!x������1���{5{:��A&���B2��6�2�,9��b�aM8l�8�maU)�8��չ'��$I��C��ڕ�u�˲�T�P�u�?��'SE�����.KwfVkD+Y��HJu�Jl��}GBL�0 + =�yܾ�Qe�`��Ep��y�bm�r݊і�6g�ud����!y?ã +���K�M�o�Tu:@ �S�L +� +3�PB=���Cu^�oqT�%�;v���k^�X{�\�b�w0��Yp�����AH�������RtS��*U]���l���`�LJ#�s�$E���D��Ir��l P�k��'���{A}މϻ�5���݄dL�) 6�R���� a�9���l�R �q���tO��I�2VˇP=�k��~�eU��*�p^O�<�ak5H��]������*��ER�+WdK��\�;Rb�ǀ� +�n��2K�
v�"�ϋ~�v{�n�NG{�ڝב9ۛ����*�^��Q͆K:�P +�����T_�����wS�
=4o���m!OSn�{��q��5�ʍ������T��B�vw6���|7�ϱ^�&�/�ɀf���44�����l'+x������Ϗ�k:��'�t_aN�`�2C� +�Q�HJu�j��}GLA�����jۍ"I�_��e��~���E���60X\�eϲ ���]�5�T���3;<�oDdf]���`��u�:q�D�D��{�~`��22�}��7)�i_}$��ҳ+������bq�������N�F��"�Hov��@}�X����!�V0g�~qױrNr1�� +q ����s#�G��&�F|��+����[��ڛ�1������w"ʍ�����Y�������(�������m�Ϊw�h>?[6u�T�8[,��� +�r��-��\�i���w=���-�d~����:��*f�Z�A<�N`B�" +W� ?���R��1�LzA�sƽ�Ay�����z_?�l�.7[M���a���b�'��0=B:
���ifW�2)^h(7=(G�m�2�K�J��rB!XC#�s��|���b�4�B+�C�z퀚q+����8�&Gx9�r���
Bx`V<��,xIch���m��P��)1a��,&��h�6\D�6C:H<J&� Ѩ�4�J���$jX��2&-�㈀��@Y-�#��mqZ�zJ�1��m��4J{O@2�DB�<��%�l��L+��{#̅�SO�]=���Aj� b�:
1��g�!$�$k�Y:��#Z�Lm0&G���m$H�q?^��Vҝ��U�Vy��~X(�:��zdfHf�W��
�-� d_�i ڨ{��n�9 +�84WC��ԥW0�b�t�k�)b6H0P��mH�qcL]�)wHB����>0x�h�9(KH*�'0�YjAt�� +�ZL����t:|"
�.|���킔��#���;B��F�n�ma2�OG
�ׄv��N����=�f�Nv�5z�4�_�~�"@6���B��Pu
��-� +ķ�f�w�S<8r���֞p!�� +�A;�B%1���7:�+t�Ԟ2%�.��&h)�d��DT`���u���-h'(���� ?+��� +ū5��{�0:n��!�C���L�}0� +r%c +�=l ��.V*L�m�k5yB�bER�=2�ԥm��d�u]�g�P�f;:I����l ��>�mS܅�J9��cP��� +��'�Z��j��밦�B�)şP�m���i}_Ku;���㶊�t�T*4T�P[ ������G�Y#���m���0�mBs����ѥm�c#�Xv7�ʮ +**u��؎��O��0y��g�ݶ��aE���1j���&�.`�}\��u�Gu瑬�ٴaT�6̧0����89�iT��Xo��)�'uqr�t)݁y��Io��ȱ~��z��(�;*̇r�b0�R!�� ��"h��*�����4������u`�Ѐ['�D��C�z�Xٛ`0�h� +Y( ��EwVS�}ؾtٯ�|oI����ˇp�d��#Y�P��$��R7sk�ca]+�1�9���lS�[�7�1չ�l��Bc��Q����B6Ź�ı˶o;R�
��iE�0�L�DN��zHq%�۹�F����yx�[�f�4����cL�}�N�������`��V= +�)!|GW�F�#���R�OA������E��U��Po#xؓ��N8h}� +�5�+�8����k��)�;A����z,hM"�iW���({}KR�RtD �����a)�RI-M)9aAtƢ�&�)X��o�u$��2�i.�#nLJ����8w sl�w��`\��p���i6���Yd"�bU�
)PrlƗ^Q�ݪJ�G���W��]l+~m��iQ;���/��~�.ր�6�;k�/��'�f��G�J�"u��)#�ܡ���K��oY%K!��*ԟ+�j��s�"'���� +�=��c���E!��)H�I����ݳ������3t����ڶ~�$�[��O�'}���V[>S����ޣ��W��}��H����_��Խ�+g�w/ɭ���V���þ�4���*��㋿������o�p7~�g`�H�� +0000000016 00000 n
+0000000187 00000 n
+0000060718 00000 n
+0000000006 00000 f
+0000215255 00000 n
+0000000007 00000 f
+0000000008 00000 f
+0000000009 00000 f
+0000000010 00000 f
+0000000011 00000 f
+0000000012 00000 f
+0000000013 00000 f
+0000000016 00000 f
+0000215699 00000 n
+0000215730 00000 n
+0000000017 00000 f
+0000000018 00000 f
+0000000019 00000 f
+0000000020 00000 f
+0000000021 00000 f
+0000000022 00000 f
+0000000023 00000 f
+0000000024 00000 f
+0000000025 00000 f
+0000000026 00000 f
+0000000027 00000 f
+0000000028 00000 f
+0000000029 00000 f
+0000000031 00000 f
+0000215325 00000 n
+0000000032 00000 f
+0000000033 00000 f
+0000000034 00000 f
+0000000035 00000 f
+0000000036 00000 f
+0000000037 00000 f
+0000000038 00000 f
+0000000041 00000 f
+0000215583 00000 n
+0000215614 00000 n
+0000000042 00000 f
+0000000043 00000 f
+0000000044 00000 f
+0000000045 00000 f
+0000000046 00000 f
+0000000047 00000 f
+0000000048 00000 f
+0000000049 00000 f
+0000000050 00000 f
+0000000051 00000 f
+0000000052 00000 f
+0000000053 00000 f
+0000000054 00000 f
+0000000057 00000 f
+0000215396 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000215467 00000 n
+0000215498 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000062030 00000 n
+0000215815 00000 n
+0000060770 00000 n
+0000061097 00000 n
+0000062330 00000 n
+0000062217 00000 n
+0000061310 00000 n
+0000061469 00000 n
+0000061517 00000 n
+0000062101 00000 n
+0000062132 00000 n
+0000062404 00000 n
+0000062794 00000 n
+0000063780 00000 n
+0000077625 00000 n
+0000093225 00000 n
+0000101636 00000 n
+0000115717 00000 n
+0000131428 00000 n
+0000149999 00000 n
+0000163949 00000 n
+0000167795 00000 n
+0000180072 00000 n
+0000206470 00000 n
+0000215840 00000 n
+trailer
<</Size 105/Root 1 0 R/Info 104 0 R/ID[<B16A6623BC4E4640B5DB4EC0C35942AE><52D0B82F5CDB400E81BB6B29BFB7EA0D>]>>
startxref
216019
%%EOF
\ No newline at end of file diff --git a/chrome/app/theme/starred.png b/chrome/app/theme/starred.png Binary files differnew file mode 100644 index 0000000..bf0ba85 --- /dev/null +++ b/chrome/app/theme/starred.png diff --git a/chrome/app/theme/starred_h.png b/chrome/app/theme/starred_h.png Binary files differnew file mode 100644 index 0000000..aa0016a --- /dev/null +++ b/chrome/app/theme/starred_h.png diff --git a/chrome/app/theme/starred_noborder.png b/chrome/app/theme/starred_noborder.png Binary files differnew file mode 100644 index 0000000..93b5463 --- /dev/null +++ b/chrome/app/theme/starred_noborder.png diff --git a/chrome/app/theme/starred_noborder_center.png b/chrome/app/theme/starred_noborder_center.png Binary files differnew file mode 100644 index 0000000..5113f95 --- /dev/null +++ b/chrome/app/theme/starred_noborder_center.png diff --git a/chrome/app/theme/starred_p.png b/chrome/app/theme/starred_p.png Binary files differnew file mode 100644 index 0000000..91a7c8e --- /dev/null +++ b/chrome/app/theme/starred_p.png diff --git a/chrome/app/theme/tab_active_nano_center.png b/chrome/app/theme/tab_active_nano_center.png Binary files differdeleted file mode 100644 index e625593..0000000 --- a/chrome/app/theme/tab_active_nano_center.png +++ /dev/null diff --git a/chrome/app/theme/tab_active_nano_left.png b/chrome/app/theme/tab_active_nano_left.png Binary files differdeleted file mode 100644 index 5512d60..0000000 --- a/chrome/app/theme/tab_active_nano_left.png +++ /dev/null diff --git a/chrome/app/theme/tab_active_nano_right.png b/chrome/app/theme/tab_active_nano_right.png Binary files differdeleted file mode 100644 index ac970e1..0000000 --- a/chrome/app/theme/tab_active_nano_right.png +++ /dev/null diff --git a/chrome/app/theme/tab_alpha_nano_left.png b/chrome/app/theme/tab_alpha_nano_left.png Binary files differdeleted file mode 100644 index 2c294a4..0000000 --- a/chrome/app/theme/tab_alpha_nano_left.png +++ /dev/null diff --git a/chrome/app/theme/tab_alpha_nano_right.png b/chrome/app/theme/tab_alpha_nano_right.png Binary files differdeleted file mode 100644 index b068a30..0000000 --- a/chrome/app/theme/tab_alpha_nano_right.png +++ /dev/null diff --git a/chrome/app/theme/tab_alpha_new_tab.png b/chrome/app/theme/tab_alpha_new_tab.png Binary files differdeleted file mode 100755 index 6d77135..0000000 --- a/chrome/app/theme/tab_alpha_new_tab.png +++ /dev/null diff --git a/chrome/app/theme/tab_new_tab_shadow.png b/chrome/app/theme/tab_new_tab_shadow.png Binary files differdeleted file mode 100755 index 989d591..0000000 --- a/chrome/app/theme/tab_new_tab_shadow.png +++ /dev/null diff --git a/chrome/app/theme/theme_frame_default.png b/chrome/app/theme/theme_frame_default.png Binary files differindex ca9bcb2..3f4f7e9 100644 --- a/chrome/app/theme/theme_frame_default.png +++ b/chrome/app/theme/theme_frame_default.png diff --git a/chrome/app/theme/theme_frame_default_inactive.png b/chrome/app/theme/theme_frame_default_inactive.png Binary files differindex 348e2ce..a1eff41 100644 --- a/chrome/app/theme/theme_frame_default_inactive.png +++ b/chrome/app/theme/theme_frame_default_inactive.png diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd index 6ae7e8d..31c499a 100644 --- a/chrome/app/theme/theme_resources.grd +++ b/chrome/app/theme/theme_resources.grd @@ -23,9 +23,7 @@ <include name="IDR_CONTENT_STAR_ON" file="content_star_on.png" type="BINDATA" /> <include name="IDR_CONTENT_TOP_CENTER" file="content_top_center.png" type="BINDATA" /> <include name="IDR_CONTENT_TOP_LEFT_CORNER" file="content_top_left_corner.png" type="BINDATA" /> - <include name="IDR_CONTENT_TOP_LEFT_CORNER_MASK" file="content_top_left_corner_mask.png" type="BINDATA" /> <include name="IDR_CONTENT_TOP_RIGHT_CORNER" file="content_top_right_corner.png" type="BINDATA" /> - <include name="IDR_CONTENT_TOP_RIGHT_CORNER_MASK" file="content_top_right_corner_mask.png" type="BINDATA" /> <include name="IDR_DROP" file="drop.png" type="BINDATA" /> <include name="IDR_DROP_H" file="drop_h.png" type="BINDATA" /> <include name="IDR_DROP_P" file="drop_p.png" type="BINDATA" /> @@ -44,44 +42,25 @@ <include name="IDR_LOCATION_BAR_SELECTED_KEYWORD_BACKGROUND_C" file="location_bar_keyword_search_c.png" type="BINDATA" /> <include name="IDR_LOCATION_BAR_SELECTED_KEYWORD_BACKGROUND_L" file="location_bar_keyword_search_l.png" type="BINDATA" /> <include name="IDR_LOCATION_BAR_SELECTED_KEYWORD_BACKGROUND_R" file="location_bar_keyword_search_r.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_EV_BUBBLE_BACKGROUND_C" file="omnibox_ev_bubble_background_c.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_EV_BUBBLE_BACKGROUND_L" file="omnibox_ev_bubble_background_l.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_EV_BUBBLE_BACKGROUND_R" file="omnibox_ev_bubble_background_r.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HISTORY" file="omnibox_history.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HISTORY_DARK" file="omnibox_history_dark.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HISTORY_TRANSPARENT" file="omnibox_history_transparent.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HISTORY_DARK_TRANSPARENT" file="omnibox_history_dark_transparent.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HISTORY_SELECTED" file="omnibox_history_selected.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HTTP" file="omnibox_http.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HTTP_DARK" file="omnibox_http_dark.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HTTP_TRANSPARENT" file="omnibox_http_transparent.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HTTP_DARK_TRANSPARENT" file="omnibox_http_dark_transparent.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HTTP_SELECTED" file="omnibox_http_selected.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HTTPS_INVALID" file="omnibox_https_invalid.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HTTPS_VALID" file="omnibox_https_valid.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_HTTPS_WARNING" file="omnibox_https_warning.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_MORE" file="omnibox_more.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_MORE_DARK" file="omnibox_more_dark.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_MORE_SELECTED" file="omnibox_more_selected.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_SEARCH" file="omnibox_search.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_SEARCH_DARK" file="omnibox_search_dark.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_SEARCH_SELECTED" file="omnibox_search_selected.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_STAR" file="omnibox_star.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_STAR_LIT" file="omnibox_star_lit.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_STAR_DARK" file="omnibox_star_dark.png" type="BINDATA" /> - <include name="IDR_OMNIBOX_STAR_SELECTED" file="omnibox_star_selected.png" type="BINDATA" /> <include name="IDR_PLUGIN" file="plugin.png" type="BINDATA" /> <include name="IDR_RELOAD" file="reload.png" type="BINDATA" /> <include name="IDR_RELOAD_NOBORDER" file="reload_noborder.png" type="BINDATA" /> - <include name="IDR_RELOAD_NOBORDER_CENTER" file="reload_noborder_center.png" type="BINDATA" /> <include name="IDR_RELOAD_H" file="reload_h.png" type="BINDATA" /> <include name="IDR_RELOAD_P" file="reload_p.png" type="BINDATA" /> + <include name="IDR_STAR" file="star.png" type="BINDATA" /> + <include name="IDR_STAR_NOBORDER" file="star_noborder.png" type="BINDATA" /> + <include name="IDR_STAR_NOBORDER_CENTER" file="star_noborder_center.png" type="BINDATA" /> + <include name="IDR_STAR_D" file="star_d.png" type="BINDATA" /> + <include name="IDR_STAR_H" file="star_h.png" type="BINDATA" /> + <include name="IDR_STAR_P" file="star_p.png" type="BINDATA" /> + <include name="IDR_STARRED" file="starred.png" type="BINDATA" /> + <include name="IDR_STARRED_NOBORDER" file="starred_noborder.png" type="BINDATA" /> + <include name="IDR_STARRED_NOBORDER_CENTER" file="starred_noborder_center.png" type="BINDATA" /> + <include name="IDR_STARRED_H" file="starred_h.png" type="BINDATA" /> + <include name="IDR_STARRED_P" file="starred_p.png" type="BINDATA" /> <include name="IDR_TAB_ACTIVE_CENTER" file="tab_active_center.png" type="BINDATA" /> <include name="IDR_TAB_ACTIVE_LEFT" file="tab_active_left.png" type="BINDATA" /> <include name="IDR_TAB_ACTIVE_RIGHT" file="tab_active_right.png" type="BINDATA" /> - <include name="IDR_TAB_ACTIVE_NANO_CENTER" file="tab_active_nano_center.png" type="BINDATA" /> - <include name="IDR_TAB_ACTIVE_NANO_LEFT" file="tab_active_nano_left.png" type="BINDATA" /> - <include name="IDR_TAB_ACTIVE_NANO_RIGHT" file="tab_active_nano_right.png" type="BINDATA" /> <include name="IDR_TAB_CLOSE" file="tab_close.png" type="BINDATA" /> <include name="IDR_TAB_CLOSE_H" file="tab_close_h.png" type="BINDATA" /> <include name="IDR_TAB_CLOSE_P" file="tab_close_p.png" type="BINDATA" /> @@ -144,6 +123,7 @@ <include name="IDR_BLOCKED_JAVASCRIPT" file="blocked_javascript.png" type="BINDATA" /> <include name="IDR_BLOCKED_PLUGINS" file="blocked_plugins.png" type="BINDATA" /> <include name="IDR_BLOCKED_POPUPS" file="blocked_popups.png" type="BINDATA" /> + <include name="IDR_LOCK" file="lock_small.png" type="BINDATA" /> <include name="IDR_WARNING" file="alert_small.png" type="BINDATA" /> <include name="IDR_STOP" file="stop.png" type="BINDATA" /> <include name="IDR_STOP_NOBORDER" file="stop_noborder.png" type="BINDATA" /> @@ -282,11 +262,6 @@ <include name="IDR_BOOKMARK_MANAGER_SEARCH_ICON" file="bookmark_manager_search.png" type="BINDATA" /> <include name="IDR_TAB_ALPHA_LEFT" file="tab_alpha_left.png" type="BINDATA" /> <include name="IDR_TAB_ALPHA_RIGHT" file="tab_alpha_right.png" type="BINDATA" /> - <include name="IDR_TAB_ALPHA_NANO_LEFT" file="tab_alpha_nano_left.png" type="BINDATA" /> - <include name="IDR_TAB_ALPHA_NANO_RIGHT" file="tab_alpha_nano_right.png" type="BINDATA" /> - <include name="IDR_TAB_ALPHA_NEW_TAB" file="tab_alpha_new_tab.png" type="BINDATA" /> - <include name="IDR_TAB_NEW_TAB_SHADOW" file="tab_new_tab_shadow.png" type="BINDATA" /> - <include name="IDR_DOCK_MAX" file="dock_tab_max.png" type="BINDATA" /> <include name="IDR_DOCK_HIGH" file="dock_tab_high.png" type="BINDATA" /> <include name="IDR_DOCK_WIDE" file="dock_tab_wide.png" type="BINDATA" /> @@ -301,6 +276,21 @@ <include name="IDR_BUBBLE_BL" file="bubble_bl.png" type="BINDATA" /> <include name="IDR_BUBBLE_T_ARROW" file="bubble_t_arrow.png" type="BINDATA" /> <include name="IDR_BUBBLE_B_ARROW" file="bubble_b_arrow.png" type="BINDATA" /> + <include name="IDR_O2_GLOBE" file="o2_globe.png" type="BINDATA" /> + <include name="IDR_O2_HISTORY" file="o2_history.png" type="BINDATA" /> + <include name="IDR_O2_MORE" file="o2_more.png" type="BINDATA" /> + <include name="IDR_O2_SEARCH" file="o2_search.png" type="BINDATA" /> + <include name="IDR_O2_STAR" file="o2_star.png" type="BINDATA" /> + <include name="IDR_O2_GLOBE_SELECTED" file="o2_globe_selected.png" type="BINDATA" /> + <include name="IDR_O2_HISTORY_SELECTED" file="o2_history_selected.png" type="BINDATA" /> + <include name="IDR_O2_MORE_SELECTED" file="o2_more_selected.png" type="BINDATA" /> + <include name="IDR_O2_SEARCH_SELECTED" file="o2_search_selected.png" type="BINDATA" /> + <include name="IDR_O2_STAR_SELECTED" file="o2_star_selected.png" type="BINDATA" /> + <include name="IDR_O2_GLOBE_SELECTED_DARK" file="o2_globe_selected_dark.png" type="BINDATA" /> + <include name="IDR_O2_HISTORY_SELECTED_DARK" file="o2_history_selected_dark.png" type="BINDATA" /> + <include name="IDR_O2_MORE_SELECTED_DARK" file="o2_more_selected_dark.png" type="BINDATA" /> + <include name="IDR_O2_SEARCH_SELECTED_DARK" file="o2_search_selected_dark.png" type="BINDATA" /> + <include name="IDR_O2_STAR_SELECTED_DARK" file="o2_star_selected_dark.png" type="BINDATA" /> <include name="IDR_CLOSED_WINDOW" file="closed_window.png" type="BINDATA" /> <include name="IDR_THEME_TAB_BACKGROUND_INCOGNITO" file="theme_tab_background_incognito.png" type="BINDATA" /> @@ -315,7 +305,7 @@ <include name="IDR_FORWARD_MASK" file="forward_mask.png" type="BINDATA" /> <include name="IDR_BACK_MASK" file="back_mask.png" type="BINDATA" /> <include name="IDR_BUTTON_MASK" file="button_mask.png" type="BINDATA" /> - <include name="IDR_RELOAD_MASK" file="reload_mask.png" type="BINDATA" /> + <include name="IDR_STAR_MASK" file="star_mask.png" type="BINDATA" /> <include name="IDR_GO_MASK" file="go_mask.png" type="BINDATA" /> <include name="IDR_NEWTAB_BUTTON_MASK" file="newtab_button_mask.png" type="BINDATA" /> diff --git a/chrome/app/theme/theme_toolbar_default.png b/chrome/app/theme/theme_toolbar_default.png Binary files differindex eef9c15..21678f8 100644 --- a/chrome/app/theme/theme_toolbar_default.png +++ b/chrome/app/theme/theme_toolbar_default.png diff --git a/chrome/browser/autocomplete/autocomplete.cc b/chrome/browser/autocomplete/autocomplete.cc index ba37681..9c7e942 100644 --- a/chrome/browser/autocomplete/autocomplete.cc +++ b/chrome/browser/autocomplete/autocomplete.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -27,7 +27,6 @@ #include "googleurl/src/url_canon_ip.h" #include "googleurl/src/url_util.h" #include "grit/generated_resources.h" -#include "grit/theme_resources.h" #include "net/base/net_util.h" #include "net/base/registry_controlled_domain.h" #include "net/url_request/url_request.h" @@ -368,18 +367,6 @@ void AutocompleteInput::Clear() { // AutocompleteMatch ---------------------------------------------------------- -AutocompleteMatch::AutocompleteMatch() - : provider(NULL), - relevance(0), - deletable(false), - inline_autocomplete_offset(std::wstring::npos), - transition(PageTransition::GENERATED), - is_history_what_you_typed_match(false), - type(SEARCH_WHAT_YOU_TYPED), - template_url(NULL), - starred(false) { -} - AutocompleteMatch::AutocompleteMatch(AutocompleteProvider* provider, int relevance, bool deletable, @@ -397,40 +384,23 @@ AutocompleteMatch::AutocompleteMatch(AutocompleteProvider* provider, // static std::string AutocompleteMatch::TypeToString(Type type) { - const char* strings[NUM_TYPES] = { - "url-what-you-typed", - "history-url", - "history-title", - "history-body", - "history-keyword", - "navsuggest", - "search-what-you-typed", - "search-history", - "search-suggest", - "search-other-engine", - "open-history-page", - }; - DCHECK(arraysize(strings) == NUM_TYPES); - return strings[type]; -} + switch (type) { + case URL_WHAT_YOU_TYPED: return "url-what-you-typed"; + case HISTORY_URL: return "history-url"; + case HISTORY_TITLE: return "history-title"; + case HISTORY_BODY: return "history-body"; + case HISTORY_KEYWORD: return "history-keyword"; + case NAVSUGGEST: return "navsuggest"; + case SEARCH_WHAT_YOU_TYPED: return "search-what-you-typed"; + case SEARCH_HISTORY: return "search-history"; + case SEARCH_SUGGEST: return "search-suggest"; + case SEARCH_OTHER_ENGINE: return "search-other-engine"; + case OPEN_HISTORY_PAGE: return "open-history-page"; -// static -int AutocompleteMatch::TypeToIcon(Type type) { - int icons[NUM_TYPES] = { - IDR_OMNIBOX_HTTP, - IDR_OMNIBOX_HTTP, - IDR_OMNIBOX_HISTORY, - IDR_OMNIBOX_HISTORY, - IDR_OMNIBOX_HISTORY, - IDR_OMNIBOX_HTTP, - IDR_OMNIBOX_SEARCH, - IDR_OMNIBOX_SEARCH, - IDR_OMNIBOX_SEARCH, - IDR_OMNIBOX_SEARCH, - IDR_OMNIBOX_MORE, - }; - DCHECK(arraysize(icons) == NUM_TYPES); - return icons[type]; + default: + NOTREACHED(); + return std::string(); + } } // static @@ -595,14 +565,10 @@ void AutocompleteProvider::UpdateStarredStateOfMatches() { std::wstring AutocompleteProvider::StringForURLDisplay( const GURL& url, - bool check_accept_lang, - bool trim_http) const { + bool check_accept_lang) const { std::wstring languages = (check_accept_lang && profile_) ? profile_->GetPrefs()->GetString(prefs::kAcceptLanguages) : std::wstring(); - const net::FormatUrlTypes format_types = trim_http ? - net::kFormatUrlOmitAll : net::kFormatUrlOmitUsernamePassword; - return net::FormatUrl(url, languages, format_types, UnescapeRule::SPACES, - NULL, NULL, NULL); + return net::FormatUrl(url, languages); } // AutocompleteResult --------------------------------------------------------- diff --git a/chrome/browser/autocomplete/autocomplete.h b/chrome/browser/autocomplete/autocomplete.h index 54bd9ff..d64fd6c 100644 --- a/chrome/browser/autocomplete/autocomplete.h +++ b/chrome/browser/autocomplete/autocomplete.h @@ -314,24 +314,22 @@ struct AutocompleteMatch { // The type of this match. enum Type { - URL_WHAT_YOU_TYPED = 0, // The input as a URL. - HISTORY_URL, // A past page whose URL contains the input. - HISTORY_TITLE, // A past page whose title contains the input. - HISTORY_BODY, // A past page whose body contains the input. - HISTORY_KEYWORD, // A past page whose keyword contains the input. - NAVSUGGEST, // A suggested URL. - SEARCH_WHAT_YOU_TYPED, // The input as a search query (with the default - // engine). - SEARCH_HISTORY, // A past search (with the default engine) - // containing the input. - SEARCH_SUGGEST, // A suggested search (with the default engine). - SEARCH_OTHER_ENGINE, // A search with a non-default engine. - OPEN_HISTORY_PAGE, // A synthetic result that opens the history page - // to search for the input. - NUM_TYPES, + URL_WHAT_YOU_TYPED, // The input as a URL. + HISTORY_URL, // A past page whose URL contains the input. + HISTORY_TITLE, // A past page whose title contains the input. + HISTORY_BODY, // A past page whose body contains the input. + HISTORY_KEYWORD, // A past page whose keyword contains the input. + NAVSUGGEST, // A suggested URL. + SEARCH_WHAT_YOU_TYPED, // The input as a search query (with the default + // engine). + SEARCH_HISTORY, // A past search (with the default engine) + // containing the input. + SEARCH_SUGGEST, // A suggested search (with the default engine). + SEARCH_OTHER_ENGINE, // A search with a non-default engine. + OPEN_HISTORY_PAGE, // A synthetic result that opens the history page to + // search for the input. }; - AutocompleteMatch(); AutocompleteMatch(AutocompleteProvider* provider, int relevance, bool deletable, @@ -340,10 +338,6 @@ struct AutocompleteMatch { // Converts |type| to a string representation. Used in logging. static std::string TypeToString(Type type); - // Converts |type| to a resource identifier for the appropriate icon for this - // type. - static int TypeToIcon(Type type); - // Comparison function for determining when one match is better than another. static bool MoreRelevant(const AutocompleteMatch& elem1, const AutocompleteMatch& elem2); @@ -561,8 +555,7 @@ class AutocompleteProvider // "Accept Languages" when check_accept_lang is true. Otherwise, it's called // with an empty list. std::wstring StringForURLDisplay(const GURL& url, - bool check_accept_lang, - bool trim_http) const; + bool check_accept_lang) const; // The profile associated with the AutocompleteProvider. Reference is not // owned by us. @@ -783,7 +776,7 @@ class AutocompleteController : public ACProviderListener { const AutocompleteInput& input() const { return input_; } const AutocompleteResult& result() const { return result_; } // This next is temporary and should go away when - // AutocompletePopup::InfoForCurrentSelection() moves to the controller. + // AutocompletePopup::URLsForCurrentSelection() moves to the controller. const AutocompleteResult& latest_result() const { return latest_result_; } bool done() const { return done_ && !update_delay_timer_.IsRunning(); } diff --git a/chrome/browser/autocomplete/autocomplete_classifier.cc b/chrome/browser/autocomplete/autocomplete_classifier.cc deleted file mode 100644 index 3e96ff5..0000000 --- a/chrome/browser/autocomplete/autocomplete_classifier.cc +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/autocomplete/autocomplete_classifier.h" - -#include "chrome/browser/autocomplete/autocomplete.h" -#include "googleurl/src/gurl.h" - -AutocompleteClassifier::AutocompleteClassifier(Profile* profile) - : controller_(new AutocompleteController(profile)) { -} - -AutocompleteClassifier::~AutocompleteClassifier() { -} - -void AutocompleteClassifier::Classify(const std::wstring& text, - const std::wstring& desired_tld, - AutocompleteMatch* match, - GURL* alternate_nav_url) { - controller_->Start(text, desired_tld, true, false, true); - DCHECK(controller_->done()); - const AutocompleteResult& result = controller_->result(); - if (result.empty()) { - if (alternate_nav_url) - *alternate_nav_url = GURL(); - return; - } - - DCHECK(result.default_match() != result.end()); - *match = *result.default_match(); - if (alternate_nav_url) - *alternate_nav_url = result.alternate_nav_url(); -} diff --git a/chrome/browser/autocomplete/autocomplete_classifier.h b/chrome/browser/autocomplete/autocomplete_classifier.h deleted file mode 100644 index 3588c27..0000000 --- a/chrome/browser/autocomplete/autocomplete_classifier.h +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_H_ -#define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_H_ - -#include <string> - -#include "base/basictypes.h" -#include "base/scoped_ptr.h" - -class AutocompleteController; -struct AutocompleteMatch; -class GURL; -class Profile; - -class AutocompleteClassifier { - public: - explicit AutocompleteClassifier(Profile* profile); - virtual ~AutocompleteClassifier(); - - // Given some string |text| that the user wants to use for navigation, - // determines how it should be interpreted. |desired_tld| is the user's - // desired TLD, if any; see AutocompleteInput::desired_tld(). |match| should - // be a non-NULL outparam that will be set to the default match for this - // input, if any (for invalid input, there will be no default match, and - // |match| will be left unchanged). |alternate_nav_url| is a possibly-NULL - // outparam that, if non-NULL, will be set to the navigational URL (if any) in - // case of an accidental search; see comments on - // AutocompleteResult::alternate_nav_url_ in autocomplete.h. - void Classify(const std::wstring& text, - const std::wstring& desired_tld, - AutocompleteMatch* match, - GURL* alternate_nav_url); - - private: - scoped_ptr<AutocompleteController> controller_; - - DISALLOW_IMPLICIT_CONSTRUCTORS(AutocompleteClassifier); -}; - -#endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_CLASSIFIER_H_ diff --git a/chrome/browser/autocomplete/autocomplete_edit.cc b/chrome/browser/autocomplete/autocomplete_edit.cc index 9b0aefb..f4c2583 100644 --- a/chrome/browser/autocomplete/autocomplete_edit.cc +++ b/chrome/browser/autocomplete/autocomplete_edit.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -9,7 +9,6 @@ #include "base/basictypes.h" #include "base/utf_string_conversions.h" #include "chrome/app/chrome_dll_resource.h" -#include "chrome/browser/autocomplete/autocomplete_classifier.h" #include "chrome/browser/autocomplete/autocomplete_edit_view.h" #include "chrome/browser/autocomplete/autocomplete_popup_model.h" #include "chrome/browser/autocomplete/keyword_provider.h" @@ -20,6 +19,7 @@ #include "chrome/browser/profile.h" #include "chrome/browser/search_engines/template_url.h" #include "chrome/browser/search_engines/template_url_model.h" +#include "chrome/browser/search_versus_navigate_classifier.h" #include "chrome/common/notification_service.h" #include "googleurl/src/gurl.h" #include "googleurl/src/url_util.h" @@ -44,6 +44,7 @@ AutocompleteEditModel::AutocompleteEditModel( control_key_state_(UP), is_keyword_hint_(false), keyword_ui_state_(NORMAL), + show_search_hint_(true), paste_and_go_transition_(PageTransition::TYPED), profile_(profile) { } @@ -80,7 +81,7 @@ const AutocompleteEditModel::State } return State(user_input_in_progress_, user_text_, keyword_, is_keyword_hint_, - keyword_ui_state_); + keyword_ui_state_, show_search_hint_); } void AutocompleteEditModel::RestoreState(const State& state) { @@ -91,6 +92,7 @@ void AutocompleteEditModel::RestoreState(const State& state) { keyword_ = state.keyword; is_keyword_hint_ = state.is_keyword_hint; keyword_ui_state_ = state.keyword_ui_state; + show_search_hint_ = state.show_search_hint; view_->SetUserText(state.user_text, DisplayTextFromUserText(state.user_text), false); } @@ -120,9 +122,7 @@ void AutocompleteEditModel::SetUserText(const std::wstring& text) { void AutocompleteEditModel::GetDataForURLExport(GURL* url, std::wstring* title, SkBitmap* favicon) { - AutocompleteMatch match; - GetInfoForCurrentText(&match, NULL); - *url = match.destination_url; + *url = GetURLForCurrentText(NULL, NULL, NULL); if (UTF8ToWide(url->possibly_invalid_spec()) == permanent_text_) { *title = controller_->GetTitle(); *favicon = controller_->GetFavIcon(); @@ -134,7 +134,7 @@ std::wstring AutocompleteEditModel::GetDesiredTLD() const { std::wstring(L"com") : std::wstring(); } -bool AutocompleteEditModel::CurrentTextIsURL() const { +bool AutocompleteEditModel::CurrentTextIsURL() { // If !user_input_in_progress_, the permanent text is showing, which should // always be a URL, so no further checking is needed. By avoiding checking in // this case, we avoid calling into the autocomplete providers, and thus @@ -142,15 +142,9 @@ bool AutocompleteEditModel::CurrentTextIsURL() const { if (!user_input_in_progress_) return true; - AutocompleteMatch match; - GetInfoForCurrentText(&match, NULL); - return match.transition == PageTransition::TYPED; -} - -AutocompleteMatch::Type AutocompleteEditModel::CurrentTextType() const { - AutocompleteMatch match; - GetInfoForCurrentText(&match, NULL); - return match.type; + PageTransition::Type transition = PageTransition::LINK; + GetURLForCurrentText(&transition, NULL, NULL); + return transition == PageTransition::TYPED; } bool AutocompleteEditModel::GetURLForText(const std::wstring& text, @@ -180,6 +174,7 @@ void AutocompleteEditModel::Revert() { keyword_.clear(); is_keyword_hint_ = false; keyword_ui_state_ = NORMAL; + show_search_hint_ = permanent_text_.empty(); has_temporary_text_ = false; view_->SetWindowTextAndCaretPos(permanent_text_, has_focus_ ? permanent_text_.length() : 0); @@ -196,11 +191,14 @@ bool AutocompleteEditModel::CanPasteAndGo(const std::wstring& text) const { if (!view_->GetCommandUpdater()->IsCommandEnabled(IDC_OPEN_CURRENT_URL)) return false; - AutocompleteMatch match; - profile_->GetAutocompleteClassifier()->Classify(text, std::wstring(), - &match, &paste_and_go_alternate_nav_url_); - paste_and_go_url_ = match.destination_url; - paste_and_go_transition_ = match.transition; + paste_and_go_url_ = GURL(); + paste_and_go_transition_ = PageTransition::TYPED; + paste_and_go_alternate_nav_url_ = GURL(); + + profile_->GetSearchVersusNavigateClassifier()->Classify(text, std::wstring(), + NULL, &paste_and_go_url_, &paste_and_go_transition_, NULL, + &paste_and_go_alternate_nav_url_); + return paste_and_go_url_.is_valid(); } @@ -217,30 +215,33 @@ void AutocompleteEditModel::PasteAndGo() { void AutocompleteEditModel::AcceptInput(WindowOpenDisposition disposition, bool for_drop) { // Get the URL and transition type for the selected entry. - AutocompleteMatch match; + PageTransition::Type transition; + bool is_history_what_you_typed_match; GURL alternate_nav_url; - GetInfoForCurrentText(&match, &alternate_nav_url); - if (!match.destination_url.is_valid()) + const GURL url(GetURLForCurrentText(&transition, + &is_history_what_you_typed_match, + &alternate_nav_url)); + if (!url.is_valid()) return; - if (UTF8ToWide(match.destination_url.spec()) == permanent_text_) { + if (UTF8ToWide(url.spec()) == permanent_text_) { // When the user hit enter on the existing permanent URL, treat it like a // reload for scoring purposes. We could detect this by just checking // user_input_in_progress_, but it seems better to treat "edits" that end // up leaving the URL unchanged (e.g. deleting the last character and then // retyping it) as reloads too. - match.transition = PageTransition::RELOAD; + transition = PageTransition::RELOAD; } else if (for_drop || ((paste_state_ != NONE) && - match.is_history_what_you_typed_match)) { + is_history_what_you_typed_match)) { // When the user pasted in a URL and hit enter, score it like a link click // rather than a normal typed URL, so it doesn't get inline autocompleted // as aggressively later. - match.transition = PageTransition::LINK; + transition = PageTransition::LINK; } - view_->OpenURL(match.destination_url, disposition, match.transition, - alternate_nav_url, AutocompletePopupModel::kNoMatch, - is_keyword_hint_ ? std::wstring() : keyword_); + view_->OpenURL(url, disposition, transition, alternate_nav_url, + AutocompletePopupModel::kNoMatch, + is_keyword_hint_ ? std::wstring() : keyword_); } void AutocompleteEditModel::SendOpenNotification(size_t selected_line, @@ -324,20 +325,17 @@ void AutocompleteEditModel::OnKillFocus() { } bool AutocompleteEditModel::OnEscapeKeyPressed() { - if (has_temporary_text_) { - AutocompleteMatch match; - popup_->InfoForCurrentSelection(&match, NULL); - if (match.destination_url != original_url_) { - // The user typed something, then selected a different item. Restore the - // text they typed and change back to the default item. - // NOTE: This purposefully does not reset paste_state_. - just_deleted_text_ = false; - has_temporary_text_ = false; - keyword_ui_state_ = original_keyword_ui_state_; - popup_->ResetToDefaultMatch(); - view_->OnRevertTemporaryText(); - return true; - } + if (has_temporary_text_ && + (popup_->URLsForCurrentSelection(NULL, NULL, NULL) != original_url_)) { + // The user typed something, then selected a different item. Restore the + // text they typed and change back to the default item. + // NOTE: This purposefully does not reset paste_state_. + just_deleted_text_ = false; + has_temporary_text_ = false; + keyword_ui_state_ = original_keyword_ui_state_; + popup_->ResetToDefaultMatch(); + view_->OnRevertTemporaryText(); + return true; } // If the user wasn't editing, but merely had focus in the edit, allow <esc> @@ -407,24 +405,35 @@ void AutocompleteEditModel::OnUpOrDownKeyPressed(int count) { void AutocompleteEditModel::OnPopupDataChanged( const std::wstring& text, - GURL* destination_for_temporary_text_change, + bool is_temporary_text, const std::wstring& keyword, - bool is_keyword_hint) { + bool is_keyword_hint, + AutocompleteMatch::Type type) { + // We don't want to show the search hint if we're showing a keyword hint or + // selected keyword, or (subtle!) if we would be showing a selected keyword + // but for keyword_ui_state_ == NO_KEYWORD. + const bool show_search_hint = keyword.empty() && + ((type == AutocompleteMatch::SEARCH_WHAT_YOU_TYPED) || + (type == AutocompleteMatch::SEARCH_HISTORY) || + (type == AutocompleteMatch::SEARCH_SUGGEST)); + // Update keyword/hint-related local state. bool keyword_state_changed = (keyword_ != keyword) || - ((is_keyword_hint_ != is_keyword_hint) && !keyword.empty()); + ((is_keyword_hint_ != is_keyword_hint) && !keyword.empty()) || + (show_search_hint_ != show_search_hint); if (keyword_state_changed) { keyword_ = keyword; is_keyword_hint_ = is_keyword_hint; + show_search_hint_ = show_search_hint; } // Handle changes to temporary text. - if (destination_for_temporary_text_change != NULL) { + if (is_temporary_text) { const bool save_original_selection = !has_temporary_text_; if (save_original_selection) { // Save the original selection and URL so it can be reverted later. has_temporary_text_ = true; - original_url_ = *destination_for_temporary_text_change; + original_url_ = popup_->URLsForCurrentSelection(NULL, NULL, NULL); original_keyword_ui_state_ = keyword_ui_state_; } if (control_key_state_ == DOWN_WITHOUT_CHANGE) { @@ -533,6 +542,7 @@ void AutocompleteEditModel::Observe(NotificationType type, std::wstring inline_autocomplete_text; std::wstring keyword; bool is_keyword_hint = false; + AutocompleteMatch::Type match_type = AutocompleteMatch::SEARCH_WHAT_YOU_TYPED; const AutocompleteResult* result = Details<const AutocompleteResult>(details).ptr(); const AutocompleteResult::const_iterator match(result->default_match()); @@ -549,9 +559,11 @@ void AutocompleteEditModel::Observe(NotificationType type, // the OS DNS cache could suffer eviction problems for minimal gain. is_keyword_hint = popup_->GetKeywordForMatch(*match, &keyword); + match_type = match->type; } - OnPopupDataChanged(inline_autocomplete_text, NULL, keyword, is_keyword_hint); + OnPopupDataChanged(inline_autocomplete_text, false, keyword, is_keyword_hint, + match_type); } void AutocompleteEditModel::InternalSetUserText(const std::wstring& text) { @@ -574,14 +586,20 @@ std::wstring AutocompleteEditModel::UserTextFromDisplayText( text : (keyword_ + L" " + text); } -void AutocompleteEditModel::GetInfoForCurrentText( - AutocompleteMatch* match, +GURL AutocompleteEditModel::GetURLForCurrentText( + PageTransition::Type* transition, + bool* is_history_what_you_typed_match, GURL* alternate_nav_url) const { if (popup_->IsOpen() || query_in_progress()) { - popup_->InfoForCurrentSelection(match, alternate_nav_url); - } else { - profile_->GetAutocompleteClassifier()->Classify( - UserTextFromDisplayText(view_->GetText()), GetDesiredTLD(), match, - alternate_nav_url); + return popup_->URLsForCurrentSelection(transition, + is_history_what_you_typed_match, + alternate_nav_url); } + + GURL destination_url; + profile_->GetSearchVersusNavigateClassifier()->Classify( + UserTextFromDisplayText(view_->GetText()), GetDesiredTLD(), NULL, + &destination_url, transition, is_history_what_you_typed_match, + alternate_nav_url); + return destination_url; } diff --git a/chrome/browser/autocomplete/autocomplete_edit.h b/chrome/browser/autocomplete/autocomplete_edit.h index 9f4e973..1a0386c 100644 --- a/chrome/browser/autocomplete/autocomplete_edit.h +++ b/chrome/browser/autocomplete/autocomplete_edit.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -83,12 +83,14 @@ class AutocompleteEditModel : public NotificationObserver { const std::wstring& user_text, const std::wstring& keyword, bool is_keyword_hint, - KeywordUIState keyword_ui_state) + KeywordUIState keyword_ui_state, + bool show_search_hint) : user_input_in_progress(user_input_in_progress), user_text(user_text), keyword(keyword), is_keyword_hint(is_keyword_hint), - keyword_ui_state(keyword_ui_state) { + keyword_ui_state(keyword_ui_state), + show_search_hint(show_search_hint) { } bool user_input_in_progress; @@ -96,6 +98,7 @@ class AutocompleteEditModel : public NotificationObserver { const std::wstring keyword; const bool is_keyword_hint; const KeywordUIState keyword_ui_state; + const bool show_search_hint; }; AutocompleteEditModel(AutocompleteEditView* view, @@ -134,10 +137,7 @@ class AutocompleteEditModel : public NotificationObserver { // Returns true if the current edit contents will be treated as a // URL/navigation, as opposed to a search. - bool CurrentTextIsURL() const; - - // Returns the match type for the current edit contents. - AutocompleteMatch::Type CurrentTextType() const; + bool CurrentTextIsURL(); // Returns true if |text| (which is display text in the current context) // parses as a URL, and in that case sets |url| to the calculated URL. @@ -208,7 +208,7 @@ class AutocompleteEditModel : public NotificationObserver { // Accessors for keyword-related state (see comments on keyword_ and // is_keyword_hint_). std::wstring keyword() const { - return (is_keyword_hint_ || (keyword_ui_state_ != NO_KEYWORD)) ? + return (is_keyword_hint_ ? has_focus_ : (keyword_ui_state_ != NO_KEYWORD)) ? keyword_ : std::wstring(); } bool is_keyword_hint() const { return is_keyword_hint_; } @@ -220,6 +220,10 @@ class AutocompleteEditModel : public NotificationObserver { // currently visible in the edit. void ClearKeyword(const std::wstring& visible_text); + // True if we should show the "Type to search" hint (see comments on + // show_search_hint_). + bool show_search_hint() const { return has_focus_ && show_search_hint_; } + // Returns true if a query to an autocomplete provider is currently // in progress. This logic should in the future live in // AutocompleteController but resides here for now. This method is used by @@ -256,20 +260,21 @@ class AutocompleteEditModel : public NotificationObserver { // Called when any relevant data changes. This rolls together several // separate pieces of data into one call so we can update all the UI // efficiently: - // |text| is either the new temporary text from the user manually selecting - // a different match, or the inline autocomplete text. We distinguish by - // checking if |destination_for_temporary_text_change| is NULL. - // |destination_for_temporary_text_change| is NULL (if temporary text should - // not change) or the pre-change desitnation URL (if temporary text should - // change) so we can save it off to restore later. + // |text| is either the new temporary text (if |is_temporary_text| is true) + // from the user manually selecting a different match, or the inline + // autocomplete text (if |is_temporary_text| is false). // |keyword| is the keyword to show a hint for if |is_keyword_hint| is true, // or the currently selected keyword if |is_keyword_hint| is false (see // comments on keyword_ and is_keyword_hint_). + // |type| is the type of match selected; this is used to determine whether + // we can show the "Type to search" hint (see comments on + // show_search_hint_). void OnPopupDataChanged( const std::wstring& text, - GURL* destination_for_temporary_text_change, + bool is_temporary_text, const std::wstring& keyword, - bool is_keyword_hint); + bool is_keyword_hint, + AutocompleteMatch::Type type); // Called by the AutocompleteEditView after something changes, with details // about what state changes occured. Updates internal state, updates the @@ -321,10 +326,16 @@ class AutocompleteEditModel : public NotificationObserver { std::wstring DisplayTextFromUserText(const std::wstring& text) const; std::wstring UserTextFromDisplayText(const std::wstring& text) const; - // Returns the default match for the current text, as well as the alternate - // nav URL, if |alternate_nav_url| is non-NULL and there is such a URL. - void GetInfoForCurrentText(AutocompleteMatch* match, - GURL* alternate_nav_url) const; + // Returns the URL. If the user has not edited the text, this returns the + // permanent text. If the user has edited the text, this returns the default + // match based on the current text, which may be a search URL, or keyword + // generated URL. + // + // See AutocompleteEdit for a description of the args (they may be null if + // not needed). + GURL GetURLForCurrentText(PageTransition::Type* transition, + bool* is_history_what_you_typed_match, + GURL* alternate_nav_url) const; AutocompleteEditView* view_; @@ -421,6 +432,10 @@ class AutocompleteEditModel : public NotificationObserver { // See KeywordUIState enum. KeywordUIState keyword_ui_state_; + // True when it's safe to show a "Type to search" hint to the user (when the + // edit is empty, or the user is in the process of searching). + bool show_search_hint_; + // Paste And Go-related state. See CanPasteAndGo(). mutable GURL paste_and_go_url_; mutable PageTransition::Type paste_and_go_transition_; diff --git a/chrome/browser/autocomplete/autocomplete_edit_view.h b/chrome/browser/autocomplete/autocomplete_edit_view.h index 0d4c230..63c2524 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view.h +++ b/chrome/browser/autocomplete/autocomplete_edit_view.h @@ -59,13 +59,6 @@ class AutocompleteEditView { // browser, or just whatever the user has currently typed. virtual std::wstring GetText() const = 0; - // |true| if the user is in the process of editing the field, or if - // the field is empty. - virtual bool IsEditingOrEmpty() const = 0; - - // Returns the resource ID of the icon to show for the current text. - virtual int GetIcon() const = 0; - // The user text is the text the user has manually keyed in. When present, // this is shown in preference to the permanent text; hitting escape will // revert to the permanent text. diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc index 006395f..86d886d 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc +++ b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc @@ -17,6 +17,7 @@ #include "chrome/app/chrome_dll_resource.h" #include "chrome/browser/autocomplete/autocomplete_edit.h" #include "chrome/browser/autocomplete/autocomplete_popup_model.h" +#include "chrome/browser/autocomplete/autocomplete_popup_view_gtk.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/command_updater.h" #include "chrome/browser/defaults.h" @@ -33,11 +34,9 @@ #include "net/base/escape.h" #if defined(TOOLKIT_VIEWS) -#include "chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h" #include "chrome/browser/views/location_bar_view.h" #include "gfx/skia_utils_gtk.h" #else -#include "chrome/browser/autocomplete/autocomplete_popup_view_gtk.h" #include "chrome/browser/gtk/gtk_theme_provider.h" #include "chrome/browser/gtk/location_bar_view_gtk.h" #endif @@ -46,13 +45,11 @@ using gfx::SkColorToGdkColor; namespace { -const gchar* kAutocompleteEditViewGtkKey = "__ACE_VIEW_GTK__"; - const char kTextBaseColor[] = "#808080"; -const char kSecureSchemeColor[] = "#079500"; -const char kSecurityErrorSchemeColor[] = "#a20000"; +const char kSecureSchemeColor[] = "#009614"; +const char kInsecureSchemeColor[] = "#c80000"; -const double kStrikethroughStrokeRed = 162.0 / 256.0; +const double kStrikethroughStrokeRed = 210.0 / 256.0; const double kStrikethroughStrokeWidth = 2.0; size_t GetUTF8Offset(const std::wstring& wide_text, size_t wide_text_offset) { @@ -111,26 +108,6 @@ void SetEntryStyle() { "style \"chrome-location-bar-entry\""); } -// Copied from GTK+. Called when we lose the primary selection. This will clear -// the selection in the text buffer. -void ClipboardSelectionCleared(GtkClipboard* clipboard, - gpointer data) { - GtkTextIter insert; - GtkTextIter selection_bound; - GtkTextBuffer* buffer = GTK_TEXT_BUFFER(data); - - gtk_text_buffer_get_iter_at_mark(buffer, &insert, - gtk_text_buffer_get_insert(buffer)); - gtk_text_buffer_get_iter_at_mark(buffer, &selection_bound, - gtk_text_buffer_get_selection_bound(buffer)); - - if (!gtk_text_iter_equal(&insert, &selection_bound)) { - gtk_text_buffer_move_mark(buffer, - gtk_text_buffer_get_selection_bound(buffer), - &insert); - } -} - } // namespace AutocompleteEditViewGtk::AutocompleteEditViewGtk( @@ -139,30 +116,23 @@ AutocompleteEditViewGtk::AutocompleteEditViewGtk( Profile* profile, CommandUpdater* command_updater, bool popup_window_mode, -#if defined(TOOLKIT_VIEWS) - const views::View* location_bar) -#else - GtkWidget* location_bar) -#endif + const BubblePositioner* bubble_positioner) : text_view_(NULL), tag_table_(NULL), text_buffer_(NULL), faded_text_tag_(NULL), secure_scheme_tag_(NULL), - security_error_scheme_tag_(NULL), + insecure_scheme_tag_(NULL), model_(new AutocompleteEditModel(this, controller, profile)), -#if defined(TOOLKIT_VIEWS) - popup_view_(new AutocompletePopupContentsView( - gfx::Font(), this, model_.get(), profile, location_bar)), -#else - popup_view_(new AutocompletePopupViewGtk(this, model_.get(), profile, - location_bar)), -#endif + popup_view_(AutocompletePopupView::CreatePopupView(gfx::Font(), this, + model_.get(), + profile, + bubble_positioner)), controller_(controller), toolbar_model_(toolbar_model), command_updater_(command_updater), popup_window_mode_(popup_window_mode), - security_level_(ToolbarModel::NONE), + scheme_security_level_(ToolbarModel::NORMAL), mark_set_handler_id_(0), #if defined(OS_CHROMEOS) button_1_pressed_(false), @@ -215,7 +185,6 @@ void AutocompleteEditViewGtk::Init() { // the other objects adds a reference; it doesn't adopt them. tag_table_ = gtk_text_tag_table_new(); text_buffer_ = gtk_text_buffer_new(tag_table_); - g_object_set_data(G_OBJECT(text_buffer_), kAutocompleteEditViewGtkKey, this); text_view_ = gtk_text_view_new_with_buffer(text_buffer_); if (popup_window_mode_) gtk_text_view_set_editable(GTK_TEXT_VIEW(text_view_), false); @@ -246,8 +215,8 @@ void AutocompleteEditViewGtk::Init() { NULL, "foreground", kTextBaseColor, NULL); secure_scheme_tag_ = gtk_text_buffer_create_tag(text_buffer_, NULL, "foreground", kSecureSchemeColor, NULL); - security_error_scheme_tag_ = gtk_text_buffer_create_tag(text_buffer_, - NULL, "foreground", kSecurityErrorSchemeColor, NULL); + insecure_scheme_tag_ = gtk_text_buffer_create_tag(text_buffer_, + NULL, "foreground", kInsecureSchemeColor, NULL); normal_text_tag_ = gtk_text_buffer_create_tag(text_buffer_, NULL, "foreground", "#000000", NULL); @@ -289,8 +258,6 @@ void AutocompleteEditViewGtk::Init() { G_CALLBACK(&HandlePopulatePopupThunk), this); mark_set_handler_id_ = g_signal_connect( text_buffer_, "mark-set", G_CALLBACK(&HandleMarkSetThunk), this); - mark_set_handler_id2_ = g_signal_connect_after( - text_buffer_, "mark-set", G_CALLBACK(&HandleMarkSetAfterThunk), this); g_signal_connect(text_view_, "drag-data-received", G_CALLBACK(&HandleDragDataReceivedThunk), this); g_signal_connect(text_view_, "backspace", @@ -317,7 +284,7 @@ void AutocompleteEditViewGtk::Init() { SetBaseColor(); #endif - ViewIDUtil::SetID(GetNativeView(), VIEW_ID_AUTOCOMPLETE); + ViewIDUtil::SetID(widget(), VIEW_ID_AUTOCOMPLETE); } void AutocompleteEditViewGtk::SetFocus() { @@ -351,8 +318,9 @@ void AutocompleteEditViewGtk::SaveStateToTab(TabContents* tab) { DCHECK(tab); // If any text has been selected, register it as the PRIMARY selection so it // can still be pasted via middle-click after the text view is cleared. - if (!selected_text_.empty()) + if (!selected_text_.empty()) { SavePrimarySelection(selected_text_); + } // NOTE: GetStateForTabSwitch may affect GetSelection, so order is important. AutocompleteEditModel::State model_state = model_->GetStateForTabSwitch(); GetStateAccessor()->SetProperty( @@ -366,9 +334,15 @@ void AutocompleteEditViewGtk::Update(const TabContents* contents) { model_->UpdatePermanentText(toolbar_model_->GetText()); ToolbarModel::SecurityLevel security_level = - toolbar_model_->GetSecurityLevel(); - bool changed_security_level = (security_level != security_level_); - security_level_ = security_level; + toolbar_model_->GetSchemeSecurityLevel(); + bool changed_security_level = (security_level != scheme_security_level_); + scheme_security_level_ = security_level; + + // TODO(deanm): This doesn't exactly match Windows. There there is a member + // background_color_. I think we can get away with just the level though. + if (changed_security_level) { + SetBaseColor(); + } if (contents) { selected_text_.clear(); @@ -418,17 +392,6 @@ std::wstring AutocompleteEditViewGtk::GetText() const { return out; } -bool AutocompleteEditViewGtk::IsEditingOrEmpty() const { - return model_->user_input_in_progress() || - (gtk_text_buffer_get_char_count(text_buffer_) == 0); -} - -int AutocompleteEditViewGtk::GetIcon() const { - return IsEditingOrEmpty() ? - AutocompleteMatch::TypeToIcon(model_->CurrentTextType()) : - toolbar_model_->GetIcon(); -} - void AutocompleteEditViewGtk::SetUserText(const std::wstring& text, const std::wstring& display_text, bool update_popup) { @@ -619,8 +582,10 @@ void AutocompleteEditViewGtk::SetBaseColor() { bool use_gtk = theme_provider_->UseGtkTheme(); #endif - if (use_gtk) { - gtk_widget_modify_cursor(text_view_, NULL, NULL); + // If we're on a secure connection, ignore what the theme wants us to do + // and use a yellow background. + bool is_secure = (scheme_security_level_ == ToolbarModel::SECURE); + if (use_gtk && !is_secure) { gtk_widget_modify_base(text_view_, GTK_STATE_NORMAL, NULL); gtk_widget_modify_base(text_view_, GTK_STATE_SELECTED, NULL); gtk_widget_modify_text(text_view_, GTK_STATE_SELECTED, NULL); @@ -635,21 +600,20 @@ void AutocompleteEditViewGtk::SetBaseColor() { GdkColor average_color = gtk_util::AverageColors( style->text[GTK_STATE_NORMAL], style->base[GTK_STATE_NORMAL]); - g_object_set(faded_text_tag_, "foreground-gdk", &average_color, NULL); + g_object_set(faded_text_tag_, "foreground-gdk", + &average_color, NULL); g_object_set(normal_text_tag_, "foreground-gdk", &style->text[GTK_STATE_NORMAL], NULL); } else { - const GdkColor* background_color_ptr; #if defined(TOOLKIT_VIEWS) const GdkColor background_color = gfx::SkColorToGdkColor( - LocationBarView::GetColor(ToolbarModel::NONE, - LocationBarView::BACKGROUND)); - background_color_ptr = &background_color; + LocationBarView::GetColor(is_secure, LocationBarView::BACKGROUND)); + gtk_widget_modify_base(text_view_, GTK_STATE_NORMAL, + &background_color); #else - background_color_ptr = &LocationBarViewGtk::kBackgroundColor; + gtk_widget_modify_base(text_view_, GTK_STATE_NORMAL, + &LocationBarViewGtk::kBackgroundColorByLevel[scheme_security_level_]); #endif - gtk_widget_modify_cursor(text_view_, &gfx::kGdkBlack, &gfx::kGdkGray); - gtk_widget_modify_base(text_view_, GTK_STATE_NORMAL, background_color_ptr); #if !defined(TOOLKIT_VIEWS) // Override the selected colors so we don't leak colors from the current @@ -1073,32 +1037,11 @@ void AutocompleteEditViewGtk::HandleMarkSet(GtkTextBuffer* buffer, GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); if (gtk_clipboard_get_owner(clipboard) == G_OBJECT(text_buffer_)) SavePrimarySelection(selected_text_); - } else if (IsSelectAll() && !model_->user_input_in_progress()) { - // Copy the whole URL to the clipboard (including the scheme, which is - // hidden in the case of http://). - GURL url; - if (model_->GetURLForText(GetText(), &url)) - OwnPrimarySelection(url.spec()); } selected_text_ = new_selected_text; } -// Override the primary selection the text buffer has set. This has to happen -// after the default handler for the "mark-set" signal. -void AutocompleteEditViewGtk::HandleMarkSetAfter(GtkTextBuffer* buffer, - GtkTextIter* location, - GtkTextMark* mark) { - std::wstring text = GetText(); - if (IsSelectAll() && !model_->user_input_in_progress() && !text.empty()) { - // Copy the whole URL to the clipboard (including the scheme, which is - // hidden in the case of http://). - GURL url; - if (model_->GetURLForText(GetText(), &url)) - OwnPrimarySelection(url.spec()); - } -} - // Just use the default behavior for DnD, except if the drop can be a PasteAndGo // then override. void AutocompleteEditViewGtk::HandleDragDataReceived( @@ -1235,14 +1178,18 @@ void AutocompleteEditViewGtk::HandleCopyOrCutClipboard(GtkWidget* sender) { // string to avoid encoding and escaping issues when pasting this text // elsewhere. scw.WriteText(url_spec16); - OwnPrimarySelection(url.spec()); } else { scw.WriteText(text16); - OwnPrimarySelection(UTF16ToUTF8(text16)); } scw.WriteHyperlink(UTF16ToUTF8(EscapeForHTML(text16)), url.spec()); + // Update PRIMARY selection if it is not owned by the text_buffer. + if (gtk_clipboard_get_owner(clipboard) != G_OBJECT(text_buffer_)) { + std::string utf8_text(UTF16ToUTF8(text16)); + gtk_clipboard_set_text(clipboard, utf8_text.c_str(), utf8_text.length()); + } + // Stop propagating the signal. static guint signal_id = g_signal_lookup("copy-clipboard", GTK_TYPE_TEXT_VIEW); @@ -1250,27 +1197,16 @@ void AutocompleteEditViewGtk::HandleCopyOrCutClipboard(GtkWidget* sender) { return; } - OwnPrimarySelection(selected_text_); -} - -void AutocompleteEditViewGtk::OwnPrimarySelection(const std::string& text) { - primary_selection_text_ = text; - - GtkTargetList* list = gtk_target_list_new(NULL, 0); - gtk_target_list_add_text_targets(list, 0); - gint len; - GtkTargetEntry* entries = gtk_target_table_new_from_list(list, &len); - - // When |text_buffer_| is destroyed, it will clear the clipboard, hence - // we needn't worry about calling gtk_clipboard_clear(). - gtk_clipboard_set_with_owner(gtk_clipboard_get(GDK_SELECTION_PRIMARY), - entries, len, - ClipboardGetSelectionThunk, - ClipboardSelectionCleared, - G_OBJECT(text_buffer_)); + // Passing gtk_text_buffer_copy_clipboard() a text buffer that already owns + // the clipboard that's being updated clears the highlighted text, which we + // don't want to do (and it also appears to at least sometimes trigger a + // failed G_IS_OBJECT() assertion). + if (gtk_clipboard_get_owner(clipboard) == G_OBJECT(text_buffer_)) + return; - gtk_target_list_unref(list); - gtk_target_table_free(entries, len); + // We can't just call SavePrimarySelection(); that makes the text view lose + // the selection and unhighlight its text. + gtk_text_buffer_copy_clipboard(text_buffer_, clipboard); } void AutocompleteEditViewGtk::HandlePasteClipboard(GtkWidget* sender) { @@ -1358,7 +1294,6 @@ void AutocompleteEditViewGtk::StartUpdatingHighlightedText() { gtk_text_buffer_remove_selection_clipboard(text_buffer_, clipboard); } g_signal_handler_block(text_buffer_, mark_set_handler_id_); - g_signal_handler_block(text_buffer_, mark_set_handler_id2_); } void AutocompleteEditViewGtk::FinishUpdatingHighlightedText() { @@ -1370,7 +1305,6 @@ void AutocompleteEditViewGtk::FinishUpdatingHighlightedText() { gtk_text_buffer_add_selection_clipboard(text_buffer_, clipboard); } g_signal_handler_unblock(text_buffer_, mark_set_handler_id_); - g_signal_handler_unblock(text_buffer_, mark_set_handler_id2_); } AutocompleteEditViewGtk::CharRange AutocompleteEditViewGtk::GetSelection() { @@ -1440,21 +1374,22 @@ void AutocompleteEditViewGtk::EmphasizeURLComponents() { strikethrough_ = CharRange(); // Emphasize the scheme for security UI display purposes (if necessary). if (!model_->user_input_in_progress() && scheme.is_nonempty() && - (security_level_ != ToolbarModel::NONE)) { + (scheme_security_level_ != ToolbarModel::NORMAL)) { CharRange scheme_range = CharRange(GetUTF8Offset(text, scheme.begin), GetUTF8Offset(text, scheme.end())); ItersFromCharRange(scheme_range, &start, &end); - if (security_level_ == ToolbarModel::SECURITY_ERROR) { + if (scheme_security_level_ == ToolbarModel::SECURE) { + gtk_text_buffer_apply_tag(text_buffer_, secure_scheme_tag_, + &start, &end); + } else { strikethrough_ = scheme_range; // When we draw the strikethrough, we don't want to include the ':' at the // end of the scheme. strikethrough_.cp_max--; - gtk_text_buffer_apply_tag(text_buffer_, security_error_scheme_tag_, + gtk_text_buffer_apply_tag(text_buffer_, insecure_scheme_tag_, &start, &end); - } else { - gtk_text_buffer_apply_tag(text_buffer_, secure_scheme_tag_, &start, &end); } } } @@ -1534,23 +1469,3 @@ void AutocompleteEditViewGtk::HandleWidgetDirectionChanged( void AutocompleteEditViewGtk::HandleKeymapDirectionChanged(GdkKeymap* sender) { AdjustTextJustification(); } - -// static -void AutocompleteEditViewGtk::ClipboardGetSelectionThunk( - GtkClipboard* clipboard, - GtkSelectionData* selection_data, - guint info, - gpointer object) { - AutocompleteEditViewGtk* edit_view = - reinterpret_cast<AutocompleteEditViewGtk*>( - g_object_get_data(G_OBJECT(object), kAutocompleteEditViewGtkKey)); - edit_view->ClipboardGetSelection(clipboard, selection_data, info); -} - -void AutocompleteEditViewGtk::ClipboardGetSelection( - GtkClipboard* clipboard, - GtkSelectionData* selection_data, - guint info) { - gtk_selection_data_set_text(selection_data, primary_selection_text_.c_str(), - primary_selection_text_.size()); -} diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.h b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.h index 66b837b..1eb1736 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.h +++ b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -25,11 +25,9 @@ class AutocompleteEditController; class AutocompleteEditModel; class AutocompletePopupView; +class BubblePositioner; class Profile; class TabContents; -namespace views { -class View; -} #if !defined(TOOLKIT_VIEWS) class GtkThemeProvider; @@ -55,16 +53,14 @@ class AutocompleteEditViewGtk : public AutocompleteEditView, Profile* profile, CommandUpdater* command_updater, bool popup_window_mode, -#if defined(TOOLKIT_VIEWS) - const views::View* location_bar); -#else - GtkWidget* location_bar); -#endif + const BubblePositioner* bubble_positioner); ~AutocompleteEditViewGtk(); // Initialize, create the underlying widgets, etc. void Init(); + GtkWidget* widget() { return alignment_.get(); } + // Returns the width, in pixels, needed to display the current text. The // returned value includes margins and borders. int TextWidth(); @@ -86,9 +82,6 @@ class AutocompleteEditViewGtk : public AutocompleteEditView, virtual std::wstring GetText() const; - virtual bool IsEditingOrEmpty() const; - virtual int GetIcon() const; - virtual void SetUserText(const std::wstring& text) { SetUserText(text, text, true); } @@ -141,9 +134,6 @@ class AutocompleteEditViewGtk : public AutocompleteEditView, GtkTextBuffer*); CHROMEG_CALLBACK_2(AutocompleteEditViewGtk, void, HandleMarkSet, GtkTextBuffer*, GtkTextIter*, GtkTextMark*); - // As above, but called after the default handler. - CHROMEG_CALLBACK_2(AutocompleteEditViewGtk, void, HandleMarkSetAfter, - GtkTextBuffer*, GtkTextIter*, GtkTextMark*); CHROMEG_CALLBACK_3(AutocompleteEditViewGtk, void, HandleInsertText, GtkTextBuffer*, GtkTextIter*, const gchar*, gint); CHROMEG_CALLBACK_0(AutocompleteEditViewGtk, void, @@ -182,20 +172,6 @@ class AutocompleteEditViewGtk : public AutocompleteEditView, CHROMEGTK_CALLBACK_1(AutocompleteEditViewGtk, void, HandleWidgetDirectionChanged, GtkTextDirection); - // Callback for the PRIMARY selection clipboard. - static void ClipboardGetSelectionThunk(GtkClipboard* clipboard, - GtkSelectionData* selection_data, - guint info, - gpointer object); - void ClipboardGetSelection(GtkClipboard* clipboard, - GtkSelectionData* selection_data, - guint info); - - // Take control of the PRIMARY selection clipboard with |text|. Use - // |text_buffer_| as the owner, so that this doesn't remove the selection on - // it. This makes use of the above callbacks. - void OwnPrimarySelection(const std::string& text); - // Gets the GTK_TEXT_WINDOW_WIDGET coordinates for |text_view_| that bound the // given iters. gfx::Rect WindowBoundsFromIters(GtkTextIter* iter1, GtkTextIter* iter2); @@ -233,8 +209,7 @@ class AutocompleteEditViewGtk : public AutocompleteEditView, // Internally invoked whenever the text changes in some way. void TextChanged(); - // Save |selected_text| as the PRIMARY X selection. Unlike - // OwnPrimarySelection(), this won't set an owner or use callbacks. + // Save |selected_text| as the PRIMARY X selection. void SavePrimarySelection(const std::string& selected_text); // Update the field with |text| and set the selection. @@ -264,7 +239,7 @@ class AutocompleteEditViewGtk : public AutocompleteEditView, GtkTextBuffer* text_buffer_; GtkTextTag* faded_text_tag_; GtkTextTag* secure_scheme_tag_; - GtkTextTag* security_error_scheme_tag_; + GtkTextTag* insecure_scheme_tag_; GtkTextTag* normal_text_tag_; scoped_ptr<AutocompleteEditModel> model_; @@ -280,7 +255,7 @@ class AutocompleteEditViewGtk : public AutocompleteEditView, // different presentation (smaller font size). This is used for popups. bool popup_window_mode_; - ToolbarModel::SecurityLevel security_level_; + ToolbarModel::SecurityLevel scheme_security_level_; // Selection at the point where the user started using the // arrows to move around in the popup. @@ -297,12 +272,8 @@ class AutocompleteEditViewGtk : public AutocompleteEditView, // it, we pass this string to SavePrimarySelection()). std::string selected_text_; - // When we own the X clipboard, this is the text for it. - std::string primary_selection_text_; - - // IDs of the signal handlers for "mark-set" on |text_buffer_|. + // ID of the signal handler for "mark-set" on |text_buffer_|. gulong mark_set_handler_id_; - gulong mark_set_handler_id2_; #if defined(OS_CHROMEOS) // The following variables are used to implement select-all-on-mouse-up, which diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.h b/chrome/browser/autocomplete/autocomplete_edit_view_mac.h index 80f18e8..11bb62f 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.h +++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -13,6 +13,7 @@ class AutocompleteEditController; class AutocompletePopupViewMac; +class BubblePositioner; class Clipboard; class Profile; class ToolbarModel; @@ -23,6 +24,7 @@ class AutocompleteEditViewMac : public AutocompleteEditView, public AutocompleteTextFieldObserver { public: AutocompleteEditViewMac(AutocompleteEditController* controller, + const BubblePositioner* bubble_positioner, ToolbarModel* toolbar_model, Profile* profile, CommandUpdater* command_updater, @@ -46,10 +48,6 @@ class AutocompleteEditViewMac : public AutocompleteEditView, const std::wstring& keyword); virtual std::wstring GetText() const; - - virtual bool IsEditingOrEmpty() const; - virtual int GetIcon() const; - virtual void SetUserText(const std::wstring& text) { SetUserText(text, text, true); } @@ -100,10 +98,6 @@ class AutocompleteEditViewMac : public AutocompleteEditView, // empty string if no appropriate data is found on |clipboard|. static std::wstring GetClipboardText(Clipboard* clipboard); - // If |resource_id| has a PDF image which can be used, return it. - // Otherwise return the PNG image from the resource bundle. - static NSImage* ImageForResource(int resource_id); - private: // Called when the user hits backspace in |field_|. Checks whether // keyword search is being terminated. Returns true if the diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm index 61ff69dd..81a3daf 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm +++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm @@ -9,7 +9,6 @@ #include "app/clipboard/clipboard.h" #include "app/clipboard/scoped_clipboard_writer.h" #include "app/resource_bundle.h" -#include "base/nsimage_cache_mac.h" #include "base/string_util.h" #include "base/sys_string_conversions.h" #include "base/utf_string_conversions.h" @@ -21,7 +20,6 @@ #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/browser/toolbar_model.h" #include "grit/generated_resources.h" -#include "grit/theme_resources.h" #include "net/base/escape.h" // Focus-handling between |field_| and |model_| is a bit subtle. @@ -63,6 +61,15 @@ const NSColor* ColorWithRGBBytes(int rr, int gg, int bb) { blue:static_cast<float>(bb)/255.0 alpha:1.0]; } +const NSColor* SecureBackgroundColor() { + return ColorWithRGBBytes(255, 245, 195); // Yellow +} +const NSColor* NormalBackgroundColor() { + return [NSColor controlBackgroundColor]; +} +const NSColor* InsecureBackgroundColor() { + return [NSColor controlBackgroundColor]; +} const NSColor* HostTextColor() { return [NSColor blackColor]; @@ -70,14 +77,11 @@ const NSColor* HostTextColor() { const NSColor* BaseTextColor() { return [NSColor darkGrayColor]; } -const NSColor* EVSecureSchemeColor() { - return ColorWithRGBBytes(0x07, 0x95, 0x00); -} const NSColor* SecureSchemeColor() { - return ColorWithRGBBytes(0x00, 0x0e, 0x95); + return ColorWithRGBBytes(0x00, 0x96, 0x14); } -const NSColor* SecurityErrorSchemeColor() { - return ColorWithRGBBytes(0xa2, 0x00, 0x00); +const NSColor* InsecureSchemeColor() { + return ColorWithRGBBytes(0xc8, 0x00, 0x00); } // Store's the model and view state across tab switches. @@ -121,57 +125,20 @@ NSRange ComponentToNSRange(const url_parse::Component& component) { } // namespace -// static -NSImage* AutocompleteEditViewMac::ImageForResource(int resource_id) { - NSString* image_name = nil; - - switch(resource_id) { - // From the autocomplete popup, or the star icon at the RHS of the - // text field. - case IDR_OMNIBOX_STAR: image_name = @"omnibox_star.pdf"; break; - case IDR_OMNIBOX_STAR_LIT: image_name = @"omnibox_star_lit.pdf"; break; - - // Values from |AutocompleteMatch::TypeToIcon()|. - case IDR_OMNIBOX_SEARCH: image_name = @"omnibox_search.pdf"; break; - case IDR_OMNIBOX_HTTP: image_name = @"omnibox_http.pdf"; break; - case IDR_OMNIBOX_HISTORY: image_name = @"omnibox_history.pdf"; break; - case IDR_OMNIBOX_MORE: image_name = @"omnibox_more.pdf"; break; - - // Values from |ToolbarModel::GetIcon()|. - case IDR_OMNIBOX_HTTPS_VALID: - image_name = @"omnibox_https_valid.pdf"; break; - case IDR_OMNIBOX_HTTPS_WARNING: - image_name = @"omnibox_https_warning.pdf"; break; - case IDR_OMNIBOX_HTTPS_INVALID: - image_name = @"omnibox_https_invalid.pdf"; break; - } - - if (image_name) { - if (NSImage* image = nsimage_cache::ImageNamed(image_name)) { - return image; - } else { - NOTREACHED() - << "Missing image for " << base::SysNSStringToUTF8(image_name); - } - } - - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); - return rb.GetNSImageNamed(resource_id); -} - // TODO(shess): AutocompletePopupViewMac doesn't really need an // NSTextField. It wants to know where the position the popup, what // font to use, and it also needs to be able to attach the popup to // the window |field_| is in. AutocompleteEditViewMac::AutocompleteEditViewMac( AutocompleteEditController* controller, + const BubblePositioner* bubble_positioner, ToolbarModel* toolbar_model, Profile* profile, CommandUpdater* command_updater, AutocompleteTextField* field) : model_(new AutocompleteEditModel(this, controller, profile)), - popup_view_(new AutocompletePopupViewMac(this, model_.get(), profile, - field)), + popup_view_(new AutocompletePopupViewMac( + this, model_.get(), bubble_positioner, profile, field)), controller_(controller), toolbar_model_(toolbar_model), command_updater_(command_updater), @@ -305,17 +272,6 @@ std::wstring AutocompleteEditViewMac::GetText() const { return base::SysNSStringToWide([field_ stringValue]); } -bool AutocompleteEditViewMac::IsEditingOrEmpty() const { - return model_->user_input_in_progress() || - ([[field_ stringValue] length] == 0); -} - -int AutocompleteEditViewMac::GetIcon() const { - return IsEditingOrEmpty() ? - AutocompleteMatch::TypeToIcon(model_->CurrentTextType()) : - toolbar_model_->GetIcon(); -} - void AutocompleteEditViewMac::SetUserText(const std::wstring& text, const std::wstring& display_text, bool update_popup) { @@ -454,23 +410,32 @@ void AutocompleteEditViewMac::SetText(const std::wstring& display_text) { // TODO(shess): GTK has this as a member var, figure out why. // [Could it be to not change if no change? If so, I'm guessing // AppKit may already handle that.] - const ToolbarModel::SecurityLevel security_level = - toolbar_model_->GetSecurityLevel(); + const ToolbarModel::SecurityLevel scheme_security_level = + toolbar_model_->GetSchemeSecurityLevel(); + + if (scheme_security_level == ToolbarModel::SECURE) { + [field_ setBackgroundColor:SecureBackgroundColor()]; + } else if (scheme_security_level == ToolbarModel::NORMAL) { + [field_ setBackgroundColor:NormalBackgroundColor()]; + } else if (scheme_security_level == ToolbarModel::INSECURE) { + [field_ setBackgroundColor:InsecureBackgroundColor()]; + } else { + NOTREACHED() << "Unexpected scheme_security_level: " + << scheme_security_level; + } // Emphasize the scheme for security UI display purposes (if necessary). if (!model_->user_input_in_progress() && scheme.is_nonempty() && - (security_level != ToolbarModel::NONE)) { + (scheme_security_level != ToolbarModel::NORMAL)) { NSColor* color; - if (security_level == ToolbarModel::EV_SECURE) { - color = EVSecureSchemeColor(); - } else if (security_level == ToolbarModel::SECURITY_ERROR) { - color = SecurityErrorSchemeColor(); + if (scheme_security_level == ToolbarModel::SECURE) { + color = SecureSchemeColor(); + } else { + color = InsecureSchemeColor(); // Add a strikethrough through the scheme. [as addAttribute:NSStrikethroughStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:ComponentToNSRange(scheme)]; - } else { - color = SecureSchemeColor(); } [as addAttribute:NSForegroundColorAttributeName value:color range:ComponentToNSRange(scheme)]; diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_win.cc b/chrome/browser/autocomplete/autocomplete_edit_view_win.cc index 5a0632f..6ead1fe 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_win.cc +++ b/chrome/browser/autocomplete/autocomplete_edit_view_win.cc @@ -28,6 +28,7 @@ #include "chrome/app/chrome_dll_resource.h" #include "chrome/browser/autocomplete/autocomplete_accessibility.h" #include "chrome/browser/autocomplete/autocomplete_popup_model.h" +#include "chrome/browser/autocomplete/autocomplete_popup_view.h" #include "chrome/browser/autocomplete/keyword_provider.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/command_updater.h" @@ -386,10 +387,10 @@ AutocompleteEditViewWin::AutocompleteEditViewWin( Profile* profile, CommandUpdater* command_updater, bool popup_window_mode, - const views::View* location_bar) + const BubblePositioner* bubble_positioner) : model_(new AutocompleteEditModel(this, controller, profile)), - popup_view_(new AutocompletePopupContentsView(font, this, model_.get(), - profile, location_bar)), + popup_view_(AutocompletePopupView::CreatePopupView( + font, this, model_.get(), profile, bubble_positioner)), controller_(controller), parent_view_(parent_view), toolbar_model_(toolbar_model), @@ -406,9 +407,8 @@ AutocompleteEditViewWin::AutocompleteEditViewWin( in_drag_(false), initiated_drag_(false), drop_highlight_position_(-1), - background_color_(skia::SkColorToCOLORREF(LocationBarView::GetColor( - ToolbarModel::NONE, LocationBarView::BACKGROUND))), - security_level_(ToolbarModel::NONE), + background_color_(0), + scheme_security_level_(ToolbarModel::NORMAL), text_object_model_(NULL) { // Dummy call to a function exported by riched20.dll to ensure it sets up an // import dependency on the dll. @@ -459,8 +459,6 @@ AutocompleteEditViewWin::AutocompleteEditViewWin( cf.yOffset = -font_y_adjustment_ * kTwipsPerPixel; SetDefaultCharFormat(cf); - SetBackgroundColor(background_color_); - // By default RichEdit has a drop target. Revoke it so that we can install our // own. Revoke takes care of deleting the existing one. RevokeDragDrop(m_hWnd); @@ -510,21 +508,30 @@ void AutocompleteEditViewWin::Update( model_->UpdatePermanentText(toolbar_model_->GetText()); const ToolbarModel::SecurityLevel security_level = - toolbar_model_->GetSecurityLevel(); - const bool changed_security_level = (security_level != security_level_); + toolbar_model_->GetSchemeSecurityLevel(); + const COLORREF background_color = + skia::SkColorToCOLORREF(LocationBarView::GetColor( + security_level == ToolbarModel::SECURE, LocationBarView::BACKGROUND)); + const bool changed_security_level = + (security_level != scheme_security_level_); // Bail early when no visible state will actually change (prevents an // unnecessary ScopedFreeze, and thus UpdateWindow()). - if (!changed_security_level && !visibly_changed_permanent_text && - !tab_for_state_restoring) + if ((background_color == background_color_) && !changed_security_level && + !visibly_changed_permanent_text && !tab_for_state_restoring) return; - // Update our local state as desired. We set security_level_ here so it will - // already be correct before we get to any RevertAll()s below and use it. - security_level_ = security_level; + // Update our local state as desired. We set scheme_security_level_ here so + // it will already be correct before we get to any RevertAll()s below and use + // it. + ScopedFreeze freeze(this, GetTextObjectModel()); + if (background_color_ != background_color) { + background_color_ = background_color; + SetBackgroundColor(background_color_); + } + scheme_security_level_ = security_level; // When we're switching to a new tab, restore its state, if any. - ScopedFreeze freeze(this, GetTextObjectModel()); if (tab_for_state_restoring) { // Make sure we reset our own state first. The new tab may not have any // saved state, or it may not have had input in progress, in which case we @@ -598,16 +605,6 @@ std::wstring AutocompleteEditViewWin::GetText() const { return str; } -bool AutocompleteEditViewWin::IsEditingOrEmpty() const { - return model_->user_input_in_progress() || (GetTextLength() == 0); -} - -int AutocompleteEditViewWin::GetIcon() const { - return IsEditingOrEmpty() ? - AutocompleteMatch::TypeToIcon(model_->CurrentTextType()) : - toolbar_model_->GetIcon(); -} - void AutocompleteEditViewWin::SetUserText(const std::wstring& text, const std::wstring& display_text, bool update_popup) { @@ -1372,6 +1369,15 @@ void AutocompleteEditViewWin::OnKillFocus(HWND focus_wnd) { ScopedFreeze freeze(this, GetTextObjectModel()); DefWindowProc(WM_KILLFOCUS, reinterpret_cast<WPARAM>(focus_wnd), 0); + // Hide the "Type to search" hint if necessary. We do this after calling + // DefWindowProc() because processing the resulting IME messages may notify + // the controller that input is in progress, which could cause the visible + // hints to change. (I don't know if there's a real scenario where they + // actually do change, but this is safest.) + if (model_->show_search_hint() || + (model_->is_keyword_hint() && !model_->keyword().empty())) + controller_->OnChanged(); + // Cancel any user selection and scroll the text back to the beginning of the // URL. We have to do this after calling DefWindowProc() because otherwise // an in-progress IME composition will be completed at the new caret position, @@ -1681,6 +1687,12 @@ void AutocompleteEditViewWin::OnSetFocus(HWND focus_wnd) { model_->OnSetFocus(GetKeyState(VK_CONTROL) < 0); + // Notify controller if it needs to show hint UI of some kind. + ScopedFreeze freeze(this, GetTextObjectModel()); + if (model_->show_search_hint() || + (model_->is_keyword_hint() && !model_->keyword().empty())) + controller_->OnChanged(); + // Restore saved selection if available. if (saved_selection_for_focus_change_.cpMin != -1) { SetSelectionRange(saved_selection_for_focus_change_); @@ -2048,11 +2060,11 @@ void AutocompleteEditViewWin::EmphasizeURLComponents() { // Set the baseline emphasis. CHARFORMAT cf = {0}; cf.dwMask = CFM_COLOR; + const bool is_secure = (scheme_security_level_ == ToolbarModel::SECURE); // If we're going to emphasize parts of the text, then the baseline state // should be "de-emphasized". If not, then everything should be rendered in // the standard text color. - cf.crTextColor = skia::SkColorToCOLORREF(LocationBarView::GetColor( - security_level_, + cf.crTextColor = skia::SkColorToCOLORREF(LocationBarView::GetColor(is_secure, emphasize ? LocationBarView::DEEMPHASIZED_TEXT : LocationBarView::TEXT)); // NOTE: Don't use SetDefaultCharFormat() instead of the below; that sets the // format that will get applied to text added in the future, not to text @@ -2063,7 +2075,7 @@ void AutocompleteEditViewWin::EmphasizeURLComponents() { if (emphasize) { // We've found a host name, give it more emphasis. cf.crTextColor = skia::SkColorToCOLORREF(LocationBarView::GetColor( - security_level_, LocationBarView::TEXT)); + is_secure, LocationBarView::TEXT)); SetSelection(host.begin, host.end()); SetSelectionCharFormat(cf); } @@ -2071,13 +2083,13 @@ void AutocompleteEditViewWin::EmphasizeURLComponents() { // Emphasize the scheme for security UI display purposes (if necessary). insecure_scheme_component_.reset(); if (!model_->user_input_in_progress() && scheme.is_nonempty() && - (security_level_ != ToolbarModel::NONE)) { - if (security_level_ == ToolbarModel::SECURITY_ERROR) { + (scheme_security_level_ != ToolbarModel::NORMAL)) { + if (!is_secure) { insecure_scheme_component_.begin = scheme.begin; insecure_scheme_component_.len = scheme.len; } cf.crTextColor = skia::SkColorToCOLORREF(LocationBarView::GetColor( - security_level_, LocationBarView::SECURITY_TEXT)); + is_secure, LocationBarView::SECURITY_TEXT)); SetSelection(scheme.begin, scheme.end()); SetSelectionCharFormat(cf); } @@ -2171,8 +2183,8 @@ void AutocompleteEditViewWin::DrawSlashForInsecureScheme( canvas.save(); if (selection_rect.isEmpty() || canvas.clipRect(selection_rect, SkRegion::kDifference_Op)) { - paint.setColor(LocationBarView::GetColor(security_level_, - LocationBarView::SECURITY_TEXT)); + paint.setColor(LocationBarView::GetColor(false, + LocationBarView::SCHEME_STRIKEOUT)); canvas.drawLine(start_point.fX, start_point.fY, end_point.fX, end_point.fY, paint); } @@ -2180,7 +2192,7 @@ void AutocompleteEditViewWin::DrawSlashForInsecureScheme( // Draw the selected portion of the stroke. if (!selection_rect.isEmpty() && canvas.clipRect(selection_rect)) { - paint.setColor(LocationBarView::GetColor(security_level_, + paint.setColor(LocationBarView::GetColor(false, LocationBarView::SELECTED_TEXT)); canvas.drawLine(start_point.fX, start_point.fY, end_point.fX, end_point.fY, paint); diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_win.h b/chrome/browser/autocomplete/autocomplete_edit_view_win.h index 33af6a7..9de2d34 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_win.h +++ b/chrome/browser/autocomplete/autocomplete_edit_view_win.h @@ -69,7 +69,7 @@ class AutocompleteEditViewWin Profile* profile, CommandUpdater* command_updater, bool popup_window_mode, - const views::View* location_bar); + const BubblePositioner* bubble_positioner); ~AutocompleteEditViewWin(); views::View* parent_view() const { return parent_view_; } @@ -91,9 +91,6 @@ class AutocompleteEditViewWin virtual std::wstring GetText() const; - virtual bool IsEditingOrEmpty() const; - virtual int GetIcon() const; - virtual void SetUserText(const std::wstring& text) { SetUserText(text, text, true); } @@ -479,7 +476,7 @@ class AutocompleteEditViewWin // Security UI-related data. COLORREF background_color_; - ToolbarModel::SecurityLevel security_level_; + ToolbarModel::SecurityLevel scheme_security_level_; // This interface is useful for accessing the CRichEditCtrl at a low level. mutable ITextDocument* text_object_model_; diff --git a/chrome/browser/autocomplete/autocomplete_popup_model.cc b/chrome/browser/autocomplete/autocomplete_popup_model.cc index 009cc0b..41e0255 100644 --- a/chrome/browser/autocomplete/autocomplete_popup_model.cc +++ b/chrome/browser/autocomplete/autocomplete_popup_model.cc @@ -103,24 +103,12 @@ void AutocompletePopupModel::SetSelectedLine(size_t line, if (line == selected_line_) return; // Nothing else to do. - // We need to update |selected_line_| before calling OnPopupDataChanged(), so - // that when the edit notifies its controller that something has changed, the - // controller can get the correct updated data. - // - // NOTE: We should never reach here with no selected line; the same code that - // opened the popup and made it possible to get here should have also set a - // selected line. - CHECK(selected_line_ != kNoMatch); - GURL current_destination(result.match_at(selected_line_).destination_url); - view_->InvalidateLine(selected_line_); - selected_line_ = line; - view_->InvalidateLine(selected_line_); - // Update the edit with the new data for this match. // TODO(pkasting): If |selected_line_| moves to the controller, this can be // eliminated and just become a call to the observer on the edit. std::wstring keyword; const bool is_keyword_hint = GetKeywordForMatch(match, &keyword); + if (reset_to_default) { std::wstring inline_autocomplete_text; if ((match.inline_autocomplete_offset != std::wstring::npos) && @@ -128,15 +116,27 @@ void AutocompletePopupModel::SetSelectedLine(size_t line, inline_autocomplete_text = match.fill_into_edit.substr(match.inline_autocomplete_offset); } - edit_model_->OnPopupDataChanged(inline_autocomplete_text, NULL, - keyword, is_keyword_hint); + edit_model_->OnPopupDataChanged(inline_autocomplete_text, false, + keyword, is_keyword_hint, match.type); } else { - edit_model_->OnPopupDataChanged(match.fill_into_edit, ¤t_destination, - keyword, is_keyword_hint); + edit_model_->OnPopupDataChanged(match.fill_into_edit, true, + keyword, is_keyword_hint, match.type); } // Repaint old and new selected lines immediately, so that the edit doesn't - // appear to update [much] faster than the popup. + // appear to update [much] faster than the popup. We must not update + // |selected_line_| before calling OnPopupDataChanged() (since the edit may + // call us back to get data about the old selection), and we must not call + // UpdateWindow() before updating |selected_line_| (since the paint routine + // relies on knowing the correct selected line). + // + // NOTE: We should never reach here with no selected line; the same code that + // opened the popup and made it possible to get here should have also set a + // selected line. + CHECK(selected_line_ != kNoMatch); + view_->InvalidateLine(selected_line_); + selected_line_ = line; + view_->InvalidateLine(selected_line_); view_->PaintUpdatesNow(); } @@ -147,21 +147,22 @@ void AutocompletePopupModel::ResetToDefaultMatch() { view_->OnDragCanceled(); } -void AutocompletePopupModel::InfoForCurrentSelection( - AutocompleteMatch* match, +GURL AutocompletePopupModel::URLsForCurrentSelection( + PageTransition::Type* transition, + bool* is_history_what_you_typed_match, GURL* alternate_nav_url) const { - DCHECK(match != NULL); const AutocompleteResult* result; + AutocompleteResult::const_iterator match; if (!controller_->done()) { result = &controller_->latest_result(); // It's technically possible for |result| to be empty if no provider returns // a synchronous result but the query has not completed synchronously; // pratically, however, that should never actually happen. if (result->empty()) - return; + return GURL(); // The user cannot have manually selected a match, or the query would have // stopped. So the default match must be the desired selection. - *match = *result->default_match(); + match = result->default_match(); } else { CHECK(IsOpen()); // The query isn't running, so the standard result set can't possibly be out @@ -176,10 +177,15 @@ void AutocompletePopupModel::InfoForCurrentSelection( // called instead. CHECK(!result->empty()); CHECK(selected_line_ < result->size()); - *match = result->match_at(selected_line_); + match = result->begin() + selected_line_; } + if (transition) + *transition = match->transition; + if (is_history_what_you_typed_match) + *is_history_what_you_typed_match = match->is_history_what_you_typed_match; if (alternate_nav_url && manually_selected_match_.empty()) *alternate_nav_url = result->alternate_nav_url(); + return match->destination_url; } bool AutocompletePopupModel::GetKeywordForMatch(const AutocompleteMatch& match, @@ -233,7 +239,7 @@ void AutocompletePopupModel::Move(int count) { } void AutocompletePopupModel::TryDeletingCurrentItem() { - // We could use InfoForCurrentSelection() here, but it seems better to try + // We could use URLsForCurrentSelection() here, but it seems better to try // and shift-delete the actual selection, rather than any "in progress, not // yet visible" one. if (selected_line_ == kNoMatch) diff --git a/chrome/browser/autocomplete/autocomplete_popup_model.h b/chrome/browser/autocomplete/autocomplete_popup_model.h index a986419..166a238 100644 --- a/chrome/browser/autocomplete/autocomplete_popup_model.h +++ b/chrome/browser/autocomplete/autocomplete_popup_model.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -73,9 +73,15 @@ class AutocompletePopupModel : public NotificationObserver { // will change the selected line back to the default match and redraw. void ResetToDefaultMatch(); - // Copies the selected match into |match|. If an update is in progress, - // "selected" means "default in the latest matches". If there are no matches, - // does not update |match|. + // Returns the URL for the selected match. If an update is in progress, + // "selected" means "default in the latest matches". If there are no + // matches, returns the empty string. + // + // If |transition_type| is non-NULL, it will be set to the appropriate + // transition type for the selected entry (TYPED or GENERATED). + // + // If |is_history_what_you_typed_match| is non-NULL, it will be set based on + // the selected entry's is_history_what_you_typed value. // // If |alternate_nav_url| is non-NULL, it will be set to the alternate // navigation URL for |url| if one exists, or left unchanged otherwise. See @@ -83,8 +89,10 @@ class AutocompletePopupModel : public NotificationObserver { // // TODO(pkasting): When manually_selected_match_ moves to the controller, this // can move too. - void InfoForCurrentSelection(AutocompleteMatch* match, - GURL* alternate_nav_url) const; + GURL URLsForCurrentSelection( + PageTransition::Type* transition, + bool* is_history_what_you_typed_match, + GURL* alternate_nav_url) const; // Gets the selected keyword or keyword hint for the given match. Returns // true if |keyword| represents a keyword hint, or false if |keyword| diff --git a/chrome/browser/autocomplete/autocomplete_popup_view.h b/chrome/browser/autocomplete/autocomplete_popup_view.h index 5674e4b..41b21a6 100644 --- a/chrome/browser/autocomplete/autocomplete_popup_view.h +++ b/chrome/browser/autocomplete/autocomplete_popup_view.h @@ -13,7 +13,15 @@ #include "build/build_config.h" +class AutocompleteEditView; class AutocompletePopupModel; +class BubblePositioner; +namespace gfx { +class Font; +} +class AutocompleteEditViewWin; +class AutocompleteEditModel; +class Profile; class AutocompletePopupView { public: @@ -40,6 +48,17 @@ class AutocompletePopupView { // Returns the popup's model. virtual AutocompletePopupModel* GetModel() = 0; + +#if !defined(OS_MACOSX) + // Create a popup view implementation. It may make sense for this to become + // platform independent eventually. + static AutocompletePopupView* CreatePopupView( + const gfx::Font& font, + AutocompleteEditView* edit_view, + AutocompleteEditModel* edit_model, + Profile* profile, + const BubblePositioner* bubble_positioner); +#endif }; #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_VIEW_H_ diff --git a/chrome/browser/autocomplete/autocomplete_popup_view_gtk.cc b/chrome/browser/autocomplete/autocomplete_popup_view_gtk.cc index 46a2115..84538e0f 100644 --- a/chrome/browser/autocomplete/autocomplete_popup_view_gtk.cc +++ b/chrome/browser/autocomplete/autocomplete_popup_view_gtk.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -18,18 +18,16 @@ #include "chrome/browser/autocomplete/autocomplete_edit.h" #include "chrome/browser/autocomplete/autocomplete_edit_view_gtk.h" #include "chrome/browser/autocomplete/autocomplete_popup_model.h" +#include "chrome/browser/bubble_positioner.h" #include "chrome/browser/defaults.h" -#include "chrome/browser/gtk/gtk_theme_provider.h" #include "chrome/browser/gtk/gtk_util.h" #include "chrome/browser/profile.h" #include "chrome/browser/search_engines/template_url.h" #include "chrome/browser/search_engines/template_url_model.h" #include "chrome/common/notification_service.h" -#include "gfx/color_utils.h" #include "gfx/font.h" #include "gfx/gtk_util.h" #include "gfx/rect.h" -#include "gfx/skia_utils_gtk.h" #include "grit/theme_resources.h" namespace { @@ -46,40 +44,27 @@ const GdkColor kDescriptionSelectedTextColor = GDK_COLOR_RGB(0x78, 0x82, 0xb1); // We have a 1 pixel border around the entire results popup. const int kBorderThickness = 1; - // The vertical height of each result. const int kHeightPerResult = 24; - // Width of the icons. -const int kIconWidth = 17; - +const int kIconWidth = 16; // We want to vertically center the image in the result space. -const int kIconTopPadding = 2; - +const int kIconTopPadding = 4; // Space between the left edge (including the border) and the text. -const int kIconLeftPadding = 5 + kBorderThickness; - -// Space between the image and the text. -const int kIconRightPadding = 7; - +const int kIconLeftPadding = 6 + kBorderThickness; +// Space between the image and the text. Would be 6 to line up with the +// entry, but nudge it a bit more to match with the text in the entry. +const int kIconRightPadding = 10; // Space between the left edge (including the border) and the text. const int kIconAreaWidth = kIconLeftPadding + kIconWidth + kIconRightPadding; - // Space between the right edge (including the border) and the text. const int kRightPadding = 3; - // When we have both a content and description string, we don't want the // content to push the description off. Limit the content to a percentage of // the total width. const float kContentWidthPercentage = 0.7; -// How much to offset the popup from the bottom of the location bar in gtk mode. -const int kGtkVerticalOffset = 3; - -// How much we shrink the popup on the left/right in gtk mode. -const int kGtkHorizontalOffset = 1; - // UTF-8 Left-to-right embedding. const char* kLRE = "\xe2\x80\xaa"; @@ -118,7 +103,6 @@ void SetupLayoutForMatch(PangoLayout* layout, const std::wstring& text, AutocompleteMatch::ACMatchClassifications classifications, const GdkColor* base_color, - const GdkColor* url_color, const std::string& prefix_text) { // We can have a prefix, or insert additional characters while processing the @@ -155,7 +139,7 @@ void SetupLayoutForMatch(PangoLayout* layout, // support it. const GdkColor* color = base_color; if (i->style & ACMatchClassification::URL) { - color = url_color; + color = &kURLTextColor; // Insert a left to right embedding to make sure that URLs are shown LTR. std::string lre(kLRE); text_utf8.insert(offset, lre); @@ -180,81 +164,48 @@ void SetupLayoutForMatch(PangoLayout* layout, pango_attr_list_unref(attrs); } -GdkPixbuf* IconForMatch(BrowserThemeProvider* theme, - const AutocompleteMatch& match, - bool selected) { - int icon = match.starred ? - IDR_OMNIBOX_STAR : AutocompleteMatch::TypeToIcon(match.type); - if (selected) { - switch (icon) { - case IDR_OMNIBOX_HTTP: icon = IDR_OMNIBOX_HTTP_DARK; break; - case IDR_OMNIBOX_HISTORY: icon = IDR_OMNIBOX_HISTORY_DARK; break; - case IDR_OMNIBOX_SEARCH: icon = IDR_OMNIBOX_SEARCH_DARK; break; - case IDR_OMNIBOX_MORE: icon = IDR_OMNIBOX_MORE_DARK; break; - case IDR_OMNIBOX_STAR: icon = IDR_OMNIBOX_STAR_DARK; break; - default: NOTREACHED(); break; - } - } - +GdkPixbuf* IconForMatch(const AutocompleteMatch& match, bool selected) { + // TODO(deanm): These would be better as pixmaps someday. // TODO(estade): Do we want to flip these for RTL? (Windows doesn't). - return theme->GetPixbufNamed(icon); -} - -// Generates the normal URL color, a green color used in unhighlighted URL -// text. It is a mix of |kURLTextColor| and the current text color. Unlike the -// selected text color, It is more important to match the qualities of the -// foreground typeface color instead of taking the background into account. -GdkColor NormalURLColor(GdkColor foreground) { - color_utils::HSL fg_hsl; - color_utils::SkColorToHSL(gfx::GdkColorToSkColor(foreground), &fg_hsl); - - color_utils::HSL hue_hsl; - color_utils::SkColorToHSL(gfx::GdkColorToSkColor(kURLTextColor), &hue_hsl); - - // Only allow colors that have a fair amount of saturation in them (color vs - // white). This means that our output color will always be fairly green. - double s = std::max(0.5, fg_hsl.s); - - // Make sure the luminance is at least as bright as the |kURLTextColor| green - // would be if we were to use that. - double l; - if (fg_hsl.l < hue_hsl.l) - l = hue_hsl.l; - else - l = (fg_hsl.l + hue_hsl.l) / 2; - - color_utils::HSL output = { hue_hsl.h, s, l }; - return gfx::SkColorToGdkColor(color_utils::HSLToSkColor(output, 255)); -} + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + static GdkPixbuf* o2_globe = rb.GetPixbufNamed(IDR_O2_GLOBE); + static GdkPixbuf* o2_globe_s = rb.GetPixbufNamed(IDR_O2_GLOBE_SELECTED_DARK); + static GdkPixbuf* o2_history = rb.GetPixbufNamed(IDR_O2_HISTORY); + static GdkPixbuf* o2_history_s = + rb.GetPixbufNamed(IDR_O2_HISTORY_SELECTED_DARK); + static GdkPixbuf* o2_more = rb.GetPixbufNamed(IDR_O2_MORE); + static GdkPixbuf* o2_more_s = rb.GetPixbufNamed(IDR_O2_MORE_SELECTED_DARK); + static GdkPixbuf* o2_search = rb.GetPixbufNamed(IDR_O2_SEARCH); + static GdkPixbuf* o2_search_s = + rb.GetPixbufNamed(IDR_O2_SEARCH_SELECTED_DARK); + static GdkPixbuf* o2_star = rb.GetPixbufNamed(IDR_O2_STAR); + static GdkPixbuf* o2_star_s = rb.GetPixbufNamed(IDR_O2_STAR_SELECTED_DARK); + + if (match.starred) + return selected ? o2_star_s : o2_star; + + switch (match.type) { + case AutocompleteMatch::URL_WHAT_YOU_TYPED: + case AutocompleteMatch::NAVSUGGEST: + return selected ? o2_globe_s : o2_globe; + case AutocompleteMatch::HISTORY_URL: + case AutocompleteMatch::HISTORY_TITLE: + case AutocompleteMatch::HISTORY_BODY: + case AutocompleteMatch::HISTORY_KEYWORD: + return selected ? o2_history_s : o2_history; + case AutocompleteMatch::SEARCH_WHAT_YOU_TYPED: + case AutocompleteMatch::SEARCH_HISTORY: + case AutocompleteMatch::SEARCH_SUGGEST: + case AutocompleteMatch::SEARCH_OTHER_ENGINE: + return selected ? o2_search_s : o2_search; + case AutocompleteMatch::OPEN_HISTORY_PAGE: + return selected ? o2_more_s : o2_more; + default: + NOTREACHED(); + break; + } -// Generates the selected URL color, a green color used on URL text in the -// currently highlighted entry in the autocomplete popup. It's a mix of -// |kURLTextColor|, the current text color, and the background color (the -// select highlight). It is more important to contrast with the background -// saturation than to look exactly like the foreground color. -GdkColor SelectedURLColor(GdkColor foreground, GdkColor background) { - color_utils::HSL fg_hsl; - color_utils::SkColorToHSL(gfx::GdkColorToSkColor(foreground), &fg_hsl); - - color_utils::HSL bg_hsl; - color_utils::SkColorToHSL(gfx::GdkColorToSkColor(background), &bg_hsl); - - color_utils::HSL hue_hsl; - color_utils::SkColorToHSL(gfx::GdkColorToSkColor(kURLTextColor), &hue_hsl); - - // The saturation of the text should be opposite of the background, clamped - // to 0.2-0.8. We make sure it's greater than 0.2 so there's some color, but - // less than 0.8 so it's not the oversaturated neon-color. - double opposite_s = 1 - bg_hsl.s; - double s = std::max(0.2, std::min(0.8, opposite_s)); - - // The luminance should match the luminance of the foreground text. Again, - // we clamp so as to have at some amount of color (green) in the text. - double opposite_l = fg_hsl.l; - double l = std::max(0.1, std::min(0.9, opposite_l)); - - color_utils::HSL output = { hue_hsl.h, s, l }; - return gfx::SkColorToGdkColor(color_utils::HSLToSkColor(output, 255)); + return NULL; } } // namespace @@ -263,13 +214,12 @@ AutocompletePopupViewGtk::AutocompletePopupViewGtk( AutocompleteEditView* edit_view, AutocompleteEditModel* edit_model, Profile* profile, - GtkWidget* location_bar) + const BubblePositioner* bubble_positioner) : model_(new AutocompletePopupModel(this, edit_model, profile)), edit_view_(edit_view), - location_bar_(location_bar), + bubble_positioner_(bubble_positioner), window_(gtk_window_new(GTK_WINDOW_POPUP)), layout_(NULL), - theme_provider_(GtkThemeProvider::GetFrom(profile)), opened_(false) { GTK_WIDGET_UNSET_FLAGS(window_, GTK_CAN_FOCUS); // Don't allow the window to be resized. This also forces the window to @@ -278,6 +228,8 @@ AutocompletePopupViewGtk::AutocompletePopupViewGtk( gtk_widget_set_app_paintable(window_, TRUE); // Have GTK double buffer around the expose signal. gtk_widget_set_double_buffered(window_, TRUE); + // Set the background color, so we don't need to paint it manually. + gtk_widget_modify_bg(window_, GTK_STATE_NORMAL, &kBackgroundColor); // Cache the layout so we don't have to create it for every expose. If we // were a real widget we should handle changing directions, but we're not @@ -310,11 +262,6 @@ AutocompletePopupViewGtk::AutocompletePopupViewGtk( g_signal_connect(window_, "expose-event", G_CALLBACK(&HandleExposeThunk), this); - registrar_.Add(this, - NotificationType::BROWSER_THEME_CHANGED, - NotificationService::AllSources()); - theme_provider_->InitThemesFor(this); - // TODO(erg): There appears to be a bug somewhere in something which shows // itself when we're in NX. Previously, we called // gtk_util::ActAsRoundedWindow() to make this popup have rounded @@ -365,85 +312,16 @@ AutocompletePopupModel* AutocompletePopupViewGtk::GetModel() { return model_.get(); } -void AutocompletePopupViewGtk::Observe(NotificationType type, - const NotificationSource& source, - const NotificationDetails& details) { - DCHECK(type == NotificationType::BROWSER_THEME_CHANGED); - - if (theme_provider_->UseGtkTheme()) { - border_color_ = theme_provider_->GetBorderColor(); - - // Create a fake gtk table - GtkWidget* fake_tree = gtk_entry_new(); - GtkStyle* style = gtk_rc_get_style(fake_tree); - - background_color_ = style->base[GTK_STATE_NORMAL]; - selected_background_color_ = style->base[GTK_STATE_SELECTED]; - hovered_background_color_ = gtk_util::AverageColors( - background_color_, selected_background_color_); - - content_text_color_ = style->text[GTK_STATE_NORMAL]; - selected_content_text_color_ = style->text[GTK_STATE_SELECTED]; - url_text_color_ = - NormalURLColor(style->text[GTK_STATE_NORMAL]); - url_selected_text_color_ = - SelectedURLColor(style->text[GTK_STATE_SELECTED], - style->base[GTK_STATE_SELECTED]); - - description_text_color_ = style->text[GTK_STATE_NORMAL]; - description_selected_text_color_ = style->text[GTK_STATE_SELECTED]; - - g_object_ref_sink(fake_tree); - g_object_unref(fake_tree); - } else { - border_color_ = kBorderColor; - background_color_ = kBackgroundColor; - selected_background_color_ = kSelectedBackgroundColor; - hovered_background_color_ = kHoveredBackgroundColor; - - content_text_color_ = kContentTextColor; - selected_content_text_color_ = kContentTextColor; - url_text_color_ = kURLTextColor; - url_selected_text_color_ = kURLTextColor; - description_text_color_ = kDescriptionTextColor; - description_selected_text_color_ = kDescriptionSelectedTextColor; - } - - // Set the background color, so we don't need to paint it manually. - gtk_widget_modify_bg(window_, GTK_STATE_NORMAL, &background_color_); -} - void AutocompletePopupViewGtk::Show(size_t num_results) { - gint origin_x, origin_y; - gdk_window_get_origin(location_bar_->window, &origin_x, &origin_y); - GtkAllocation allocation = location_bar_->allocation; - int vertical_offset = 0; - int horizontal_offset = 0; - if (theme_provider_->UseGtkTheme()) { - // Shrink the popup by 1 pixel on both sides in gtk mode. The darkest line - // is usually one pixel in, and is almost always +/-1 pixel from this, - // meaning the vertical offset will hide (hopefully) problems when this is - // wrong. - horizontal_offset = kGtkHorizontalOffset; - - // We offset the the popup from the bottom of the location bar in gtk - // mode. The background color between the bottom of the location bar and - // the popup helps hide the fact that we can't really reliably match what - // the user would otherwise preceive as the left/right edges of the - // location bar. - vertical_offset = kGtkVerticalOffset; - } - - gtk_window_move(GTK_WINDOW(window_), - origin_x + allocation.x - kBorderThickness + horizontal_offset, - origin_y + allocation.y + allocation.height - kBorderThickness - 1 + - vertical_offset); - gtk_widget_set_size_request(window_, - allocation.width + (kBorderThickness * 2) - (horizontal_offset * 2), - (num_results * kHeightPerResult) + (kBorderThickness * 2)); - gtk_widget_show(window_); - StackWindow(); - opened_ = true; + gfx::Rect rect = bubble_positioner_->GetLocationStackBounds(); + rect.set_y(rect.bottom()); + rect.set_height((num_results * kHeightPerResult) + (kBorderThickness * 2)); + + gtk_window_move(GTK_WINDOW(window_), rect.x(), rect.y()); + gtk_widget_set_size_request(window_, rect.width(), rect.height()); + gtk_widget_show(window_); + StackWindow(); + opened_ = true; } void AutocompletePopupViewGtk::Hide() { @@ -536,7 +414,7 @@ gboolean AutocompletePopupViewGtk::HandleExpose(GtkWidget* widget, GdkGC* gc = gdk_gc_new(drawable); // kBorderColor is unallocated, so use the GdkRGB routine. - gdk_gc_set_rgb_fg_color(gc, &border_color_); + gdk_gc_set_rgb_fg_color(gc, &kBorderColor); // This assert is kinda ugly, but it would be more currently unneeded work // to support painting a border that isn't 1 pixel thick. There is no point @@ -549,17 +427,8 @@ gboolean AutocompletePopupViewGtk::HandleExpose(GtkWidget* widget, pango_layout_set_height(layout_, kHeightPerResult * PANGO_SCALE); - // An offset to align text in gtk mode. The hard coded constants in this file - // are all created for the chrome-theme. In an effort to make this look good - // on the majority of gtk themes, we shrink the popup by one pixel on each - // side and push it downwards a bit so there's space between the drawn - // location bar and the popup so we don't touch it (contrast with - // chrome-theme where that's exactly what we want). Because of that, we need - // to shift the content inside the popup by one pixel. - int gtk_offset = 0; - if (theme_provider_->UseGtkTheme()) - gtk_offset = kGtkHorizontalOffset; - + // TODO(deanm): Intersect the line and damage rects, and only repaint and + // layout the lines that are actually damaged. For now paint everything. for (size_t i = 0; i < result.size(); ++i) { gfx::Rect line_rect = GetRectForLine(i, window_rect.width()); // Only repaint and layout damaged lines. @@ -570,19 +439,18 @@ gboolean AutocompletePopupViewGtk::HandleExpose(GtkWidget* widget, bool is_selected = (model_->selected_line() == i); bool is_hovered = (model_->hovered_line() == i); if (is_selected || is_hovered) { - gdk_gc_set_rgb_fg_color(gc, is_selected ? &selected_background_color_ : - &hovered_background_color_); + gdk_gc_set_rgb_fg_color(gc, is_selected ? &kSelectedBackgroundColor : + &kHoveredBackgroundColor); // This entry is selected or hovered, fill a rect with the color. gdk_draw_rectangle(drawable, gc, TRUE, line_rect.x(), line_rect.y(), line_rect.width(), line_rect.height()); } - int icon_start_x = ltr ? (kIconLeftPadding - gtk_offset) : - (line_rect.width() - kIconLeftPadding - kIconWidth + gtk_offset); + int icon_start_x = ltr ? kIconLeftPadding : + line_rect.width() - kIconLeftPadding - kIconWidth; // Draw the icon for this result. - DrawFullPixbuf(drawable, gc, - IconForMatch(theme_provider_, match, is_selected), + DrawFullPixbuf(drawable, gc, IconForMatch(match, is_selected), icon_start_x, line_rect.y() + kIconTopPadding); // Draw the results text vertically centered in the results space. @@ -596,11 +464,7 @@ gboolean AutocompletePopupViewGtk::HandleExpose(GtkWidget* widget, // Note: We force to URL to LTR for all text directions. SetupLayoutForMatch(layout_, match.contents, match.contents_class, - is_selected ? &selected_content_text_color_ : - &content_text_color_, - is_selected ? &url_selected_text_color_ : - &url_text_color_, - std::string()); + &kContentTextColor, std::string()); int actual_content_width, actual_content_height; pango_layout_get_size(layout_, @@ -614,25 +478,22 @@ gboolean AutocompletePopupViewGtk::HandleExpose(GtkWidget* widget, line_rect.y() + ((kHeightPerResult - actual_content_height) / 2)); gdk_draw_layout(drawable, gc, - ltr ? (kIconAreaWidth - gtk_offset) : - (text_width - actual_content_width + gtk_offset), + ltr ? kIconAreaWidth : text_width - actual_content_width, content_y, layout_); if (has_description) { pango_layout_set_width(layout_, (text_width - actual_content_width) * PANGO_SCALE); SetupLayoutForMatch(layout_, match.description, match.description_class, - is_selected ? &description_selected_text_color_ : - &description_text_color_, - is_selected ? &url_selected_text_color_ : - &url_text_color_, + is_selected ? &kDescriptionSelectedTextColor : + &kDescriptionTextColor, std::string(" - ")); gint actual_description_width; pango_layout_get_size(layout_, &actual_description_width, NULL); - gdk_draw_layout(drawable, gc, ltr ? - (kIconAreaWidth - gtk_offset + actual_content_width) : - (text_width - actual_content_width + gtk_offset - - (actual_description_width / PANGO_SCALE)), + gdk_draw_layout(drawable, gc, + ltr ? kIconAreaWidth + actual_content_width : + text_width - actual_content_width - + actual_description_width / PANGO_SCALE, content_y, layout_); } } @@ -641,3 +502,14 @@ gboolean AutocompletePopupViewGtk::HandleExpose(GtkWidget* widget, return TRUE; } + +// static +AutocompletePopupView* AutocompletePopupView::CreatePopupView( + const gfx::Font& font, + AutocompleteEditView* edit_view, + AutocompleteEditModel* edit_model, + Profile* profile, + const BubblePositioner* bubble_positioner) { + return new AutocompletePopupViewGtk(edit_view, edit_model, profile, + bubble_positioner); +} diff --git a/chrome/browser/autocomplete/autocomplete_popup_view_gtk.h b/chrome/browser/autocomplete/autocomplete_popup_view_gtk.h index 90cd2c9..f46cfb2 100644 --- a/chrome/browser/autocomplete/autocomplete_popup_view_gtk.h +++ b/chrome/browser/autocomplete/autocomplete_popup_view_gtk.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -10,27 +10,23 @@ #include "base/basictypes.h" #include "base/scoped_ptr.h" #include "chrome/browser/autocomplete/autocomplete_popup_view.h" -#include "chrome/common/notification_observer.h" -#include "chrome/common/notification_registrar.h" #include "webkit/glue/window_open_disposition.h" class AutocompleteEditModel; class AutocompleteEditView; class AutocompletePopupModel; -class GtkThemeProvider; class Profile; class SkBitmap; -class AutocompletePopupViewGtk : public AutocompletePopupView, - public NotificationObserver { +class AutocompletePopupViewGtk : public AutocompletePopupView { public: AutocompletePopupViewGtk(AutocompleteEditView* edit_view, AutocompleteEditModel* edit_model, Profile* profile, - GtkWidget* location_bar); + const BubblePositioner* bubble_positioner); ~AutocompletePopupViewGtk(); - // Overridden from AutocompletePopupView: + // Implement the AutocompletePopupView interface. virtual bool IsOpen() const { return opened_; } virtual void InvalidateLine(size_t line); virtual void UpdatePopupAppearance(); @@ -38,11 +34,6 @@ class AutocompletePopupViewGtk : public AutocompletePopupView, virtual void OnDragCanceled() {} virtual AutocompletePopupModel* GetModel(); - // Overridden from NotificationObserver: - virtual void Observe(NotificationType type, - const NotificationSource& source, - const NotificationDetails& details); - private: void Show(size_t num_results); void Hide(); @@ -88,7 +79,7 @@ class AutocompletePopupViewGtk : public AutocompletePopupView, scoped_ptr<AutocompletePopupModel> model_; AutocompleteEditView* edit_view_; - GtkWidget* location_bar_; + const BubblePositioner* bubble_positioner_; // Our popup window, which is the only widget used, and we paint it on our // own. This widget shouldn't be exposed outside of this class. @@ -96,22 +87,6 @@ class AutocompletePopupViewGtk : public AutocompletePopupView, // The pango layout object created from the window, cached across exposes. PangoLayout* layout_; - GtkThemeProvider* theme_provider_; - NotificationRegistrar registrar_; - - // A list of colors which we should use for drawing the popup. These change - // between gtk and normal mode. - GdkColor border_color_; - GdkColor background_color_; - GdkColor selected_background_color_; - GdkColor hovered_background_color_; - GdkColor content_text_color_; - GdkColor selected_content_text_color_; - GdkColor url_text_color_; - GdkColor url_selected_text_color_; - GdkColor description_text_color_; - GdkColor description_selected_text_color_; - // Whether our popup is currently open / shown, or closed / hidden. bool opened_; diff --git a/chrome/browser/autocomplete/autocomplete_popup_view_mac.h b/chrome/browser/autocomplete/autocomplete_popup_view_mac.h index 56d20fd..a430f58 100644 --- a/chrome/browser/autocomplete/autocomplete_popup_view_mac.h +++ b/chrome/browser/autocomplete/autocomplete_popup_view_mac.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -32,6 +32,7 @@ class AutocompletePopupViewMac : public AutocompletePopupView { public: AutocompletePopupViewMac(AutocompleteEditViewMac* edit_view, AutocompleteEditModel* edit_model, + const BubblePositioner* bubble_positioner, Profile* profile, NSTextField* field); virtual ~AutocompletePopupViewMac(); @@ -108,6 +109,7 @@ class AutocompletePopupViewMac : public AutocompletePopupView { scoped_ptr<AutocompletePopupModel> model_; AutocompleteEditViewMac* edit_view_; + const BubblePositioner* bubble_positioner_; // owned by toolbar controller NSTextField* field_; // owned by tab controller // Child window containing a matrix which implements the popup. diff --git a/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm b/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm index 29ea9ab..644c065 100644 --- a/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm +++ b/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -10,11 +10,11 @@ #include "chrome/browser/autocomplete/autocomplete_edit.h" #include "chrome/browser/autocomplete/autocomplete_edit_view_mac.h" #include "chrome/browser/autocomplete/autocomplete_popup_model.h" +#include "chrome/browser/bubble_positioner.h" #include "chrome/browser/cocoa/event_utils.h" #include "gfx/rect.h" #include "grit/theme_resources.h" #import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h" -#import "third_party/GTM/AppKit/GTMNSBezierPath+RoundRect.h" namespace { @@ -31,17 +31,17 @@ const int kCellHeightAdjust = 7.0; const CGFloat kPopupRoundingRadius = 3.5; // Gap between the field and the popup. -const CGFloat kPopupFieldGap = 0.0; +const CGFloat kPopupFieldGap = 2.0; // How opaque the popup window should be. This matches Windows (see // autocomplete_popup_contents_view.cc, kGlassPopupTransparency). const CGFloat kPopupAlpha = 240.0 / 255.0; // How much space to leave for the left and right margins. -const CGFloat kLeftRightMargin = 5.0; +const CGFloat kLeftRightMargin = 8.0; // How far to offset the text column from the left. -const CGFloat kTextXOffset = 29.0; +const CGFloat kTextXOffset = 33.0; // Animation duration when animating the popup window smaller. const CGFloat kShrinkAnimationDuration = 0.1; @@ -78,6 +78,54 @@ static const NSColor* DescriptionTextColor() { return [NSColor darkGrayColor]; } +// Helper to fetch and retain an image from the resource bundle. +NSImage* RetainedResourceImage(int resource_id) { + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + NSImage* image = rb.GetNSImageNamed(resource_id); + DCHECK(image); + return [image retain]; +} + +// Return the appropriate icon for the given match. Derived from the +// gtk code. +NSImage* MatchIcon(const AutocompleteMatch& match) { + if (match.starred) { + static NSImage* starImage = RetainedResourceImage(IDR_O2_STAR); + return starImage; + } + + switch (match.type) { + case AutocompleteMatch::URL_WHAT_YOU_TYPED: + case AutocompleteMatch::NAVSUGGEST: { + static NSImage* globeImage = RetainedResourceImage(IDR_O2_GLOBE); + return globeImage; + } + case AutocompleteMatch::HISTORY_URL: + case AutocompleteMatch::HISTORY_TITLE: + case AutocompleteMatch::HISTORY_BODY: + case AutocompleteMatch::HISTORY_KEYWORD: { + static NSImage* historyImage = RetainedResourceImage(IDR_O2_HISTORY); + return historyImage; + } + case AutocompleteMatch::SEARCH_WHAT_YOU_TYPED: + case AutocompleteMatch::SEARCH_HISTORY: + case AutocompleteMatch::SEARCH_SUGGEST: + case AutocompleteMatch::SEARCH_OTHER_ENGINE: { + static NSImage* searchImage = RetainedResourceImage(IDR_O2_SEARCH); + return searchImage; + } + case AutocompleteMatch::OPEN_HISTORY_PAGE: { + static NSImage* moreImage = RetainedResourceImage(IDR_O2_MORE); + return moreImage; + } + default: + NOTREACHED(); + break; + } + + return nil; +} + } // namespace // Helper for MatchText() to allow sharing code between the contents @@ -245,10 +293,12 @@ NSAttributedString* AutocompletePopupViewMac::MatchText( AutocompletePopupViewMac::AutocompletePopupViewMac( AutocompleteEditViewMac* edit_view, AutocompleteEditModel* edit_model, + const BubblePositioner* bubble_positioner, Profile* profile, NSTextField* field) : model_(new AutocompletePopupModel(this, edit_model, profile)), edit_view_(edit_view), + bubble_positioner_(bubble_positioner), field_(field), popup_(nil) { DCHECK(edit_view); @@ -315,12 +365,8 @@ void AutocompletePopupViewMac::UpdatePopupAppearance() { CreatePopupIfNeeded(); // Layout the popup and size it to land underneath the field. - // The field has a single-pixel border on the left and right. This - // needs to be factored out so that the popup window's border (which - // is outside the frame) lines up. - const int kLocationStackEdgeWidth = 1; - NSRect r = NSInsetRect([field_ convertRect:[field_ bounds] toView:nil], - kLocationStackEdgeWidth, 0); + NSRect r = + NSRectFromCGRect(bubble_positioner_->GetLocationStackBounds().ToCGRect()); r.origin = [[field_ window] convertBaseToScreen:r.origin]; DCHECK_GT(r.size.width, 0.0); @@ -340,9 +386,7 @@ void AutocompletePopupViewMac::UpdatePopupAppearance() { for (size_t ii = 0; ii < rows; ++ii) { AutocompleteButtonCell* cell = [matrix cellAtRow:ii column:0]; const AutocompleteMatch& match = model_->result().match_at(ii); - const int resource_id = match.starred ? IDR_OMNIBOX_STAR - : AutocompleteMatch::TypeToIcon(match.type); - [cell setImage:AutocompleteEditViewMac::ImageForResource(resource_id)]; + [cell setImage:MatchIcon(match)]; [cell setAttributedTitle:MatchText(match, resultFont, r.size.width)]; } @@ -463,11 +507,7 @@ void AutocompletePopupViewMac::OpenURLForRow(int row, bool force_background) { imageRect.origin.y += floor((NSHeight(cellFrame) - NSHeight(imageRect)) / 2); imageRect.origin.x += kLeftRightMargin; - [image setFlipped:[controlView isFlipped]]; - [image drawInRect:imageRect - fromRect:NSZeroRect // Entire image - operation:NSCompositeSourceOver - fraction:1.0]; + [self drawImage:image withFrame:imageRect inView:controlView]; } // Adjust the title position to be lined up under the field's text. @@ -664,15 +704,10 @@ void AutocompletePopupViewMac::OpenURLForRow(int row, bool force_background) { // This handles drawing the decorations of the rounded popup window, // calling on NSMatrix to draw the actual contents. - (void)drawRect:(NSRect)rect { - // Apparently this expects flipped coordinates, because in order to - // round the bottom corners visually, I need to specify the top - // corners here. NSBezierPath* path = - [NSBezierPath gtm_bezierPathWithRoundRect:[self bounds] - topLeftCornerRadius:kPopupRoundingRadius - topRightCornerRadius:kPopupRoundingRadius - bottomLeftCornerRadius:0.0 - bottomRightCornerRadius:0.0]; + [NSBezierPath bezierPathWithRoundedRect:[self bounds] + xRadius:kPopupRoundingRadius + yRadius:kPopupRoundingRadius]; // Draw the matrix clipped to our border. [NSGraphicsContext saveGraphicsState]; diff --git a/chrome/browser/autocomplete/history_contents_provider.cc b/chrome/browser/autocomplete/history_contents_provider.cc index 1e72ceb..ac81c31 100644 --- a/chrome/browser/autocomplete/history_contents_provider.cc +++ b/chrome/browser/autocomplete/history_contents_provider.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -207,9 +207,11 @@ AutocompleteMatch HistoryContentsProvider::ResultToMatch( // Also show star in popup. AutocompleteMatch match(this, score, false, MatchInTitle(result) ? AutocompleteMatch::HISTORY_TITLE : AutocompleteMatch::HISTORY_BODY); - match.fill_into_edit = StringForURLDisplay(result.url(), true, trim_http_); + match.fill_into_edit = StringForURLDisplay(result.url(), true); match.destination_url = result.url(); match.contents = match.fill_into_edit; + if (trim_http_) + TrimHttpPrefix(&match.contents); match.contents_class.push_back( ACMatchClassification(0, ACMatchClassification::URL)); match.description = result.title(); diff --git a/chrome/browser/autocomplete/history_url_provider.cc b/chrome/browser/autocomplete/history_url_provider.cc index a748700..2708d47 100644 --- a/chrome/browser/autocomplete/history_url_provider.cc +++ b/chrome/browser/autocomplete/history_url_provider.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -256,14 +256,10 @@ AutocompleteMatch HistoryURLProvider::SuggestExactInput( const GURL& url = input.canonicalized_url(); if (url.is_valid()) { match.destination_url = url; - match.fill_into_edit = StringForURLDisplay(url, false, false); + match.fill_into_edit = StringForURLDisplay(url, false); // NOTE: Don't set match.input_location (to allow inline autocompletion) // here, it's surprising and annoying. // Trim off "http://" if the user didn't type it. - // Double NOTE: we use TrimHttpPrefix here rather than StringForURLDisplay - // to strip the http as we need to know the offset so we can adjust the - // match_location below. StringForURLDisplay and TrimHttpPrefix have - // slightly different behavior when stripping http as well. const size_t offset = trim_http ? TrimHttpPrefix(&match.fill_into_edit) : 0; // Try to highlight "innermost" match location. If we fix up "w" into @@ -832,13 +828,17 @@ AutocompleteMatch HistoryURLProvider::HistoryMatchToACMatch( DCHECK(match.destination_url.is_valid()); size_t inline_autocomplete_offset = history_match.input_location + params->input.text().length(); - const net::FormatUrlTypes format_types = - (params->trim_http && !history_match.match_in_scheme) ? - net::kFormatUrlOmitAll : net::kFormatUrlOmitUsernamePassword; match.fill_into_edit = net::FormatUrl(info.url(), - match_type == WHAT_YOU_TYPED ? std::wstring() : params->languages, - format_types, UnescapeRule::SPACES, NULL, NULL, - &inline_autocomplete_offset); + match_type == WHAT_YOU_TYPED ? std::wstring() : params->languages, true, + UnescapeRule::SPACES, NULL, NULL, &inline_autocomplete_offset); + size_t offset = 0; + if (params->trim_http && !history_match.match_in_scheme) { + offset = TrimHttpPrefix(&match.fill_into_edit); + if (inline_autocomplete_offset != std::wstring::npos) { + DCHECK(inline_autocomplete_offset >= offset); + inline_autocomplete_offset -= offset; + } + } if (!params->input.prevent_inline_autocomplete()) match.inline_autocomplete_offset = inline_autocomplete_offset; DCHECK((match.inline_autocomplete_offset == std::wstring::npos) || @@ -846,8 +846,15 @@ AutocompleteMatch HistoryURLProvider::HistoryMatchToACMatch( size_t match_start = history_match.input_location; match.contents = net::FormatUrl(info.url(), - match_type == WHAT_YOU_TYPED ? std::wstring() : params->languages, - format_types, UnescapeRule::SPACES, NULL, NULL, &match_start); + match_type == WHAT_YOU_TYPED ? std::wstring() : params->languages, true, + UnescapeRule::SPACES, NULL, NULL, &match_start); + if (offset) { + TrimHttpPrefix(&match.contents); + if (match_start != std::wstring::npos) { + DCHECK(match_start >= offset); + match_start -= offset; + } + } if ((match_start != std::wstring::npos) && (inline_autocomplete_offset != std::wstring::npos) && (inline_autocomplete_offset != match_start)) { diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc index acba81e..5833611 100644 --- a/chrome/browser/autocomplete/search_provider.cc +++ b/chrome/browser/autocomplete/search_provider.cc @@ -98,8 +98,8 @@ void SearchProvider::Start(const AutocompleteInput& input, // User typed "?" alone. Give them a placeholder result indicating what // this syntax does. if (default_provider) { - AutocompleteMatch match; - match.provider = this; + AutocompleteMatch match(this, 0, false, + AutocompleteMatch::SEARCH_WHAT_YOU_TYPED); match.contents.assign(l10n_util::GetString(IDS_EMPTY_KEYWORD_VALUE)); match.contents_class.push_back( ACMatchClassification(0, ACMatchClassification::NONE)); @@ -737,9 +737,10 @@ AutocompleteMatch SearchProvider::NavigationToMatch( AutocompleteMatch match(this, relevance, false, AutocompleteMatch::NAVSUGGEST); match.destination_url = navigation.url; - const bool trim_http = !url_util::FindAndCompareScheme( - WideToUTF8(input_text), chrome::kHttpScheme, NULL); - match.contents = StringForURLDisplay(navigation.url, true, trim_http); + match.contents = StringForURLDisplay(navigation.url, true); + if (!url_util::FindAndCompareScheme(WideToUTF8(input_text), + chrome::kHttpScheme, NULL)) + TrimHttpPrefix(&match.contents); AutocompleteMatch::ClassifyMatchInString(input_text, match.contents, ACMatchClassification::URL, &match.contents_class); diff --git a/chrome/browser/bookmarks/bookmark_table_model.cc b/chrome/browser/bookmarks/bookmark_table_model.cc index 0ac5416..f7848e4 100644 --- a/chrome/browser/bookmarks/bookmark_table_model.cc +++ b/chrome/browser/bookmarks/bookmark_table_model.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -325,8 +325,8 @@ std::wstring BookmarkTableModel::GetText(int row, int column_id) { std::wstring languages = model_ && model_->profile() ? model_->profile()->GetPrefs()->GetString(prefs::kAcceptLanguages) : std::wstring(); - std::wstring url_text = net::FormatUrl(node->GetURL(), languages, - net::kFormatUrlOmitAll, UnescapeRule::SPACES, NULL, NULL, NULL); + std::wstring url_text = net::FormatUrl(node->GetURL(), languages, false, + UnescapeRule::SPACES, NULL, NULL, NULL); if (base::i18n::IsRTL()) base::i18n::WrapStringWithLTRFormatting(&url_text); return url_text; diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc index 4ffeeb2..2214e4c 100644 --- a/chrome/browser/bookmarks/bookmark_utils.cc +++ b/chrome/browser/bookmarks/bookmark_utils.cc @@ -224,8 +224,7 @@ bool DoesBookmarkContainWords(const BookmarkNode* node, DoesBookmarkTextContainWords( l10n_util::ToLower(UTF8ToWide(node->GetURL().spec())), words) || DoesBookmarkTextContainWords(l10n_util::ToLower(net::FormatUrl( - node->GetURL(), languages, net::kFormatUrlOmitNothing, - UnescapeRule::NORMAL, NULL, NULL, NULL)), words); + node->GetURL(), languages, false, true, NULL, NULL, NULL)), words); } } // namespace diff --git a/chrome/browser/browser_theme_pack.cc b/chrome/browser/browser_theme_pack.cc index 130a6e8..d0252f1 100644 --- a/chrome/browser/browser_theme_pack.cc +++ b/chrome/browser/browser_theme_pack.cc @@ -4,26 +4,37 @@ #include "chrome/browser/browser_theme_pack.h" +#include <algorithm> +#include <climits> +#include <set> +#include <vector> + #include "app/resource_bundle.h" #include "base/data_pack.h" +#include "base/logging.h" #include "base/stl_util-inl.h" #include "base/string_util.h" #include "base/utf_string_conversions.h" +#include "base/values.h" #include "chrome/browser/browser_theme_provider.h" #include "chrome/browser/chrome_thread.h" +#include "chrome/browser/theme_resources_util.h" +#include "chrome/common/extensions/extension.h" #include "gfx/codec/png_codec.h" #include "gfx/skbitmap_operations.h" #include "grit/app_resources.h" #include "grit/theme_resources.h" #include "net/base/file_stream.h" #include "net/base/net_errors.h" +#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkCanvas.h" +#include "third_party/skia/include/core/SkUnPreMultiply.h" namespace { // Version number of the current theme pack. We just throw out and rebuild // theme packs that aren't int-equal to this. -const int kThemePackVersion = 6; +const int kThemePackVersion = 7; // IDs that are in the DataPack won't clash with the positive integer // int32_t. kHeaderID should always have the maximum value because we want the @@ -120,33 +131,42 @@ PersistingImagesTable kPersistingImages[] = { { 21, IDR_FORWARD_H, NULL }, { 22, IDR_FORWARD_P, NULL }, { 23, IDR_RELOAD, NULL }, - { 24, IDR_RELOAD_NOBORDER, NULL }, - { 25, IDR_RELOAD_NOBORDER_CENTER, NULL }, - { 26, IDR_RELOAD_H, NULL }, - { 27, IDR_RELOAD_P, NULL }, - { 28, IDR_HOME, NULL }, - { 29, IDR_HOME_H, NULL }, - { 30, IDR_HOME_P, NULL }, - { 31, IDR_GO, NULL }, - { 32, IDR_GO_NOBORDER, NULL }, - { 33, IDR_GO_NOBORDER_CENTER, NULL }, - { 34, IDR_GO_H, NULL }, - { 35, IDR_GO_P, NULL }, - { 36, IDR_STOP, NULL }, - { 37, IDR_STOP_NOBORDER, NULL }, - { 38, IDR_STOP_NOBORDER_CENTER, NULL }, - { 39, IDR_STOP_H, NULL }, - { 40, IDR_STOP_P, NULL }, - { 41, IDR_MENU_BOOKMARK, NULL }, - { 42, IDR_MENU_PAGE, NULL }, - { 43, IDR_MENU_PAGE_RTL, NULL }, - { 44, IDR_MENU_CHROME, NULL }, - { 45, IDR_MENU_CHROME_RTL, NULL }, - { 46, IDR_MENU_DROPARROW, NULL }, - { 47, IDR_THROBBER, NULL }, - { 48, IDR_THROBBER_WAITING, NULL }, - { 49, IDR_THROBBER_LIGHT, NULL }, - { 50, IDR_LOCATIONBG, NULL } + { 24, IDR_RELOAD_H, NULL }, + { 25, IDR_RELOAD_P, NULL }, + { 26, IDR_HOME, NULL }, + { 27, IDR_HOME_H, NULL }, + { 28, IDR_HOME_P, NULL }, + { 29, IDR_STAR, NULL }, + { 30, IDR_STAR_NOBORDER, NULL }, + { 31, IDR_STAR_NOBORDER_CENTER, NULL }, + { 32, IDR_STAR_D, NULL }, + { 33, IDR_STAR_H, NULL }, + { 34, IDR_STAR_P, NULL }, + { 35, IDR_STARRED, NULL }, + { 36, IDR_STARRED_NOBORDER, NULL }, + { 37, IDR_STARRED_NOBORDER_CENTER, NULL }, + { 38, IDR_STARRED_H, NULL }, + { 39, IDR_STARRED_P, NULL }, + { 40, IDR_GO, NULL }, + { 41, IDR_GO_NOBORDER, NULL }, + { 42, IDR_GO_NOBORDER_CENTER, NULL }, + { 43, IDR_GO_H, NULL }, + { 44, IDR_GO_P, NULL }, + { 45, IDR_STOP, NULL }, + { 46, IDR_STOP_NOBORDER, NULL }, + { 47, IDR_STOP_NOBORDER_CENTER, NULL }, + { 48, IDR_STOP_H, NULL }, + { 49, IDR_STOP_P, NULL }, + { 50, IDR_MENU_BOOKMARK, NULL }, + { 51, IDR_MENU_PAGE, NULL }, + { 52, IDR_MENU_PAGE_RTL, NULL }, + { 53, IDR_MENU_CHROME, NULL }, + { 54, IDR_MENU_CHROME_RTL, NULL }, + { 55, IDR_MENU_DROPARROW, NULL }, + { 56, IDR_THROBBER, NULL }, + { 57, IDR_THROBBER_WAITING, NULL }, + { 58, IDR_THROBBER_LIGHT, NULL }, + { 59, IDR_LOCATIONBG, NULL } }; int GetPersistentIDByName(const std::string& key) { @@ -496,8 +516,6 @@ bool BrowserThemePack::GetDisplayProperty(int id, int* result) const { SkBitmap* BrowserThemePack::GetBitmapNamed(int idr_id) const { int prs_id = GetPersistentIDByIDR(idr_id); - if (prs_id == -1) - return NULL; // Check our cache of prepared images, first. ImageCache::const_iterator image_iter = prepared_images_.find(prs_id); @@ -947,7 +965,6 @@ void BrowserThemePack::GenerateTintedButtons( for (std::set<int>::const_iterator it = idr_ids.begin(); it != idr_ids.end(); ++it) { int prs_id = GetPersistentIDByIDR(*it); - DCHECK(prs_id > 0); // Fetch the image by IDR... scoped_ptr<SkBitmap> button(new SkBitmap(*rb.GetBitmapNamed(*it))); diff --git a/chrome/browser/browser_theme_provider.cc b/chrome/browser/browser_theme_provider.cc index 92fefc3..d682548 100644 --- a/chrome/browser/browser_theme_provider.cc +++ b/chrome/browser/browser_theme_provider.cc @@ -1,21 +1,40 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/browser_theme_provider.h" #include "app/resource_bundle.h" -#include "base/utf_string_conversions.h" +#include "base/file_util.h" +#include "base/stl_util-inl.h" +#include "base/string_util.h" +#include "base/thread.h" +#include "base/values.h" +#include "chrome/browser/browser_list.h" +#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_theme_pack.h" +#include "chrome/browser/browser_window.h" #include "chrome/browser/extensions/extensions_service.h" #include "chrome/browser/metrics/user_metrics.h" +#include "chrome/browser/pref_service.h" #include "chrome/browser/profile.h" +#include "chrome/browser/theme_resources_util.h" #include "chrome/common/chrome_constants.h" +#include "chrome/common/extensions/extension.h" +#include "chrome/common/notification_details.h" #include "chrome/common/notification_service.h" +#include "chrome/common/notification_source.h" #include "chrome/common/notification_type.h" #include "chrome/common/pref_names.h" +#include "gfx/codec/png_codec.h" +#include "gfx/skbitmap_operations.h" #include "grit/app_resources.h" #include "grit/theme_resources.h" +#include "net/base/file_stream.h" +#include "net/base/net_errors.h" +#include "third_party/skia/include/core/SkBitmap.h" +#include "third_party/skia/include/core/SkCanvas.h" +#include "third_party/skia/include/core/SkUnPreMultiply.h" #if defined(OS_WIN) #include "app/win_util.h" @@ -43,15 +62,15 @@ SkColor TintForUnderline(SkColor input) { } // Default colors. -const SkColor kDefaultColorFrame = SkColorSetRGB(66, 116, 201); -const SkColor kDefaultColorFrameInactive = SkColorSetRGB(161, 182, 228); +const SkColor kDefaultColorFrame = SkColorSetRGB(77, 139, 217); +const SkColor kDefaultColorFrameInactive = SkColorSetRGB(152, 188, 233); const SkColor kDefaultColorFrameIncognito = SkColorSetRGB(83, 106, 139); const SkColor kDefaultColorFrameIncognitoInactive = SkColorSetRGB(126, 139, 156); #if defined(OS_MACOSX) const SkColor kDefaultColorToolbar = SkColorSetRGB(230, 230, 230); #else -const SkColor kDefaultColorToolbar = SkColorSetRGB(223, 223, 223); +const SkColor kDefaultColorToolbar = SkColorSetRGB(210, 225, 246); #endif const SkColor kDefaultColorTabText = SK_ColorBLACK; #if defined(OS_MACOSX) @@ -135,16 +154,15 @@ bool HasThemeableImage(int themeable_image_id) { } // The image resources that will be tinted by the 'button' tint value. -// If you change this list, you must increment the version number in -// browser_theme_pack.cc and you should assign persistant ids to the -// data table at the start of said file or otherwise tinted versions of -// these resources will not be created. const int kToolbarButtonIDs[] = { IDR_BACK, IDR_BACK_D, IDR_BACK_H, IDR_BACK_P, IDR_FORWARD, IDR_FORWARD_D, IDR_FORWARD_H, IDR_FORWARD_P, - IDR_RELOAD, IDR_RELOAD_NOBORDER, IDR_RELOAD_NOBORDER_CENTER, IDR_RELOAD_H, - IDR_RELOAD_P, + IDR_RELOAD, IDR_RELOAD_H, IDR_RELOAD_P, IDR_HOME, IDR_HOME_H, IDR_HOME_P, + IDR_STAR, IDR_STAR_NOBORDER, IDR_STAR_NOBORDER_CENTER, IDR_STAR_D, IDR_STAR_H, + IDR_STAR_P, + IDR_STARRED, IDR_STARRED_NOBORDER, IDR_STARRED_NOBORDER_CENTER, IDR_STARRED_H, + IDR_STARRED_P, IDR_GO, IDR_GO_NOBORDER, IDR_GO_NOBORDER_CENTER, IDR_GO_H, IDR_GO_P, IDR_STOP, IDR_STOP_NOBORDER, IDR_STOP_NOBORDER_CENTER, IDR_STOP_H, IDR_STOP_P, IDR_MENU_BOOKMARK, diff --git a/chrome/browser/bubble_positioner.h b/chrome/browser/bubble_positioner.h new file mode 100644 index 0000000..7ea4df0 --- /dev/null +++ b/chrome/browser/bubble_positioner.h @@ -0,0 +1,24 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_BUBBLE_POSITIONER_H_ +#define CHROME_BROWSER_BUBBLE_POSITIONER_H_ + +namespace gfx { +class Rect; +} + +// An object in the browser UI can implement this interface to provide display +// bounds for the omnibox bubble and info bubble views. +class BubblePositioner { + public: + // Returns the bounds of the "location bar" stack (including star/go buttons + // where relevant). The omnibox dropdown uses this to calculate its width and + // y-coordinate, and views showing InfoBubbles use it to find the y-coordinate + // they should show at, so that all "bubble" UIs show up at the same vertical + // position. + virtual gfx::Rect GetLocationStackBounds() const = 0; +}; + +#endif // CHROME_BROWSER_BUBBLE_POSITIONER_H_ diff --git a/chrome/browser/cert_store.cc b/chrome/browser/cert_store.cc index 89c5ffe..4d804ca 100644 --- a/chrome/browser/cert_store.cc +++ b/chrome/browser/cert_store.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -88,8 +88,7 @@ bool CertStore::RetrieveCert(int cert_id, CertMap::iterator iter = id_to_cert_.find(cert_id); if (iter == id_to_cert_.end()) return false; - if (cert) - *cert = iter->second; + *cert = iter->second; return true; } diff --git a/chrome/browser/cert_store.h b/chrome/browser/cert_store.h index 0b19540..995a3db 100644 --- a/chrome/browser/cert_store.h +++ b/chrome/browser/cert_store.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -34,9 +34,9 @@ class CertStore : public NotificationObserver { // Note: ids starts at 1. int StoreCert(net::X509Certificate* cert, int render_process_host_id); - // Tries to retrieve the previously stored cert associated with the specified - // |cert_id|. Returns whether the cert could be found, and, if |cert| is - // non-NULL, copies it in. + // Retrieves the previously stored cert associated with the specified + // |cert_id| and set it in |cert|. Returns false if no cert was found for + // that id. bool RetrieveCert(int cert_id, scoped_refptr<net::X509Certificate>* cert); // NotificationObserver implementation. diff --git a/chrome/browser/chromeos/compact_location_bar_host.cc b/chrome/browser/chromeos/compact_location_bar_host.cc index eaba6ef..a412cb6 100644 --- a/chrome/browser/chromeos/compact_location_bar_host.cc +++ b/chrome/browser/chromeos/compact_location_bar_host.cc @@ -22,6 +22,7 @@ #include "chrome/browser/views/frame/browser_view.h" #include "chrome/browser/views/tabs/tab.h" #include "chrome/browser/views/tabs/tab_strip.h" +#include "chrome/browser/views/toolbar_star_toggle.h" #include "views/controls/scrollbar/native_scroll_bar.h" #include "views/focus/external_focus_tracker.h" #include "views/focus/view_storage.h" @@ -267,6 +268,10 @@ void CompactLocationBarHost::SetEnabled(bool enabled) { } } +ToolbarStarToggle* CompactLocationBarHost::GetStarButton() { + return GetClbView()->star_button(); +} + void CompactLocationBarHost::Show(bool a) { MessageLoopForUI::current()->AddObserver(mouse_observer_.get()); DropdownBarHost::Show(a); diff --git a/chrome/browser/chromeos/compact_location_bar_host.h b/chrome/browser/chromeos/compact_location_bar_host.h index 7ec6a25..e6816fc 100644 --- a/chrome/browser/chromeos/compact_location_bar_host.h +++ b/chrome/browser/chromeos/compact_location_bar_host.h @@ -16,6 +16,7 @@ class BrowserView; class TabContents; class Tab; +class ToolbarStarToggle; namespace chromeos { @@ -60,6 +61,9 @@ class CompactLocationBarHost : public DropdownBarHost, // Enable/disable the compact location bar. void SetEnabled(bool enabled); + // Returns the star button for compact location bar. + ToolbarStarToggle* GetStarButton(); + // Overridden from DropdownBarhost. virtual void Show(bool animate); virtual void Hide(bool animate); diff --git a/chrome/browser/chromeos/compact_location_bar_view.cc b/chrome/browser/chromeos/compact_location_bar_view.cc index 9f7c066..af803e4 100644 --- a/chrome/browser/chromeos/compact_location_bar_view.cc +++ b/chrome/browser/chromeos/compact_location_bar_view.cc @@ -8,8 +8,10 @@ #include <algorithm> #include "app/l10n_util.h" +#include "app/drag_drop_types.h" #include "app/resource_bundle.h" #include "chrome/app/chrome_dll_resource.h" +#include "chrome/browser/bookmarks/bookmark_drag_data.h" #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/autocomplete/autocomplete_edit_view_gtk.h" #include "chrome/browser/browser_list.h" @@ -22,6 +24,7 @@ #include "chrome/browser/views/browser_actions_container.h" #include "chrome/browser/views/event_utils.h" #include "chrome/browser/views/frame/browser_view.h" +#include "chrome/browser/views/toolbar_star_toggle.h" #include "gfx/canvas.h" #include "gfx/point.h" #include "grit/chromium_strings.h" @@ -30,10 +33,12 @@ #include "views/background.h" #include "views/controls/button/image_button.h" #include "views/controls/native/native_view_host.h" +#include "views/drag_utils.h" #include "views/widget/widget.h" #include "views/window/window.h" namespace chromeos { +const int kAutocompletePopupWidth = 700; const int kDefaultLocationEntryWidth = 250; const int kCompactLocationLeftMargin = 5; const int kCompactLocationRightMargin = 10; @@ -46,7 +51,8 @@ const int kWidgetsSeparatorWidth = 2; CompactLocationBarView::CompactLocationBarView(CompactLocationBarHost* host) : DropdownBarView(host), reload_(NULL), - browser_actions_(NULL) { + browser_actions_(NULL), + star_(NULL) { SetFocusable(true); } @@ -95,7 +101,7 @@ void CompactLocationBarView::Init() { reload_->SetImage(views::CustomButton::BS_PUSHED, tp->GetBitmapNamed(IDR_RELOAD_P)); reload_->SetBackground(color, background, - tp->GetBitmapNamed(IDR_RELOAD_MASK)); + tp->GetBitmapNamed(IDR_BUTTON_MASK)); AddChildView(reload_); @@ -114,6 +120,14 @@ void CompactLocationBarView::Init() { location_entry_view_->set_focus_view(this); location_entry_view_->Attach(location_entry_->GetNativeView()); + star_ = new ToolbarStarToggle(this); + star_->SetDragController(this); + star_->set_profile(browser()->profile()); + star_->set_host_view(this); + star_->set_bubble_positioner(this); + star_->Init(); + AddChildView(star_); + location_entry_->Update(browser()->GetSelectedTabContents()); // Note: we tell the BrowserActionsContainer not to save its size because @@ -131,12 +145,15 @@ gfx::Size CompactLocationBarView::GetPreferredSize() { return gfx::Size(); // Not initialized yet, do nothing. gfx::Size reload_size = reload_->GetPreferredSize(); + gfx::Size star_size = star_->GetPreferredSize(); gfx::Size location_size = location_entry_view_->GetPreferredSize(); gfx::Size ba_size = browser_actions_->GetPreferredSize(); - int width = kCompactLocationLeftMargin + reload_size.width() + + int width = + reload_size.width() + kEntryLeftMargin + star_size.width() + std::max(kDefaultLocationEntryWidth, location_entry_view_->GetPreferredSize().width()) + ba_size.width() + + kCompactLocationLeftMargin + kCompactLocationRightMargin; return gfx::Size(width, kDefaultLocationBarHeight); } @@ -151,7 +168,12 @@ void CompactLocationBarView::Layout() { int reload_y = (height() - reload_size.height()) / 2; reload_->SetBounds(cur_x, reload_y, reload_size.width(), reload_size.height()); - cur_x += reload_size.width(); + cur_x += reload_size.width() + kEntryLeftMargin; + + gfx::Size star_size = star_->GetPreferredSize(); + int star_y = (height() - star_size.height()) / 2; + star_->SetBounds(cur_x, star_y, star_size.width(), star_size.height()); + cur_x += star_size.width(); gfx::Size ba_size = browser_actions_->GetPreferredSize(); int ba_y = (height() - ba_size.height()) / 2; @@ -245,4 +267,62 @@ std::wstring CompactLocationBarView::GetTitle() const { return std::wstring(); } +//////////////////////////////////////////////////////////////////////////////// +// BubblePositioner overrides: +gfx::Rect CompactLocationBarView::GetLocationStackBounds() const { + gfx::Point lower_left(0, height()); + ConvertPointToScreen(this, &lower_left); + gfx::Rect popup = gfx::Rect(lower_left.x(), lower_left.y(), + kAutocompletePopupWidth, 0); + return popup.AdjustToFit(GetWidget()->GetWindow()->GetBounds()); +} + +//////////////////////////////////////////////////////////////////////////////// +// views::DragController overrides: +void CompactLocationBarView::WriteDragData(views::View* sender, + const gfx::Point& press_pt, + OSExchangeData* data) { + DCHECK(GetDragOperations(sender, press_pt) != DragDropTypes::DRAG_NONE); + + UserMetrics::RecordAction(UserMetricsAction("CompactLocationBar_DragStar"), + browser()->profile()); + + // If there is a bookmark for the URL, add the bookmark drag data for it. We + // do this to ensure the bookmark is moved, rather than creating an new + // bookmark. + TabContents* tab = browser()->GetSelectedTabContents(); + if (tab) { + Profile* profile = browser()->profile(); + if (profile && profile->GetBookmarkModel()) { + const BookmarkNode* node = profile->GetBookmarkModel()-> + GetMostRecentlyAddedNodeForURL(tab->GetURL()); + if (node) { + BookmarkDragData bookmark_data(node); + bookmark_data.Write(profile, data); + } + } + + drag_utils::SetURLAndDragImage(tab->GetURL(), + UTF16ToWideHack(tab->GetTitle()), + tab->GetFavIcon(), + data); + } +} + +int CompactLocationBarView::GetDragOperations(views::View* sender, + const gfx::Point& p) { + DCHECK(sender == star_); + TabContents* tab = browser()->GetSelectedTabContents(); + if (!tab || !tab->ShouldDisplayURL() || !tab->GetURL().is_valid()) { + return DragDropTypes::DRAG_NONE; + } + Profile* profile = browser()->profile(); + if (profile && profile->GetBookmarkModel() && + profile->GetBookmarkModel()->IsBookmarked(tab->GetURL())) { + return DragDropTypes::DRAG_MOVE | DragDropTypes::DRAG_COPY | + DragDropTypes::DRAG_LINK; + } + return DragDropTypes::DRAG_COPY | DragDropTypes::DRAG_LINK; +} + } // namespace chromeos diff --git a/chrome/browser/chromeos/compact_location_bar_view.h b/chrome/browser/chromeos/compact_location_bar_view.h index ec284b0..e4f8d73 100644 --- a/chrome/browser/chromeos/compact_location_bar_view.h +++ b/chrome/browser/chromeos/compact_location_bar_view.h @@ -6,6 +6,7 @@ #define CHROME_BROWSER_CHROMEOS_COMPACT_LOCATION_BAR_VIEW_H_ #include "base/basictypes.h" +#include "chrome/browser/bubble_positioner.h" #include "chrome/browser/autocomplete/autocomplete_edit.h" #include "chrome/browser/chromeos/compact_location_bar_host.h" #include "chrome/browser/views/dropdown_bar_view.h" @@ -16,9 +17,11 @@ class AutocompleteEditViewGtk; class Browser; class BrowserActionsContainer; class BrowserView; +class ToolbarStarToggleGtk; class Tab; class TabContents; class TabStrip; +class ToolbarStarToggle; namespace views { class ImageButton; @@ -32,7 +35,9 @@ namespace chromeos { // navigation bar mode. class CompactLocationBarView : public DropdownBarView, public views::ButtonListener, - public AutocompleteEditController { + public AutocompleteEditController, + public BubblePositioner, + public views::DragController { public: explicit CompactLocationBarView(CompactLocationBarHost* host); ~CompactLocationBarView(); @@ -42,6 +47,8 @@ class CompactLocationBarView : public DropdownBarView, void Update(const TabContents* contents); + ToolbarStarToggle* star_button() const { return star_; } + private: Browser* browser() const; @@ -74,6 +81,20 @@ class CompactLocationBarView : public DropdownBarView, virtual SkBitmap GetFavIcon() const; virtual std::wstring GetTitle() const; + // BubblePositioner implementation. + virtual gfx::Rect GetLocationStackBounds() const; + + // views::DragController implementation. + virtual void WriteDragData(View* sender, + const gfx::Point& press_pt, + OSExchangeData* data); + virtual int GetDragOperations(View* sender, const gfx::Point& p); + virtual bool CanStartDrag(View* sender, + const gfx::Point& press_pt, + const gfx::Point& p) { + return true; + } + CompactLocationBarHost* clb_host() { return static_cast<CompactLocationBarHost*>(host()); } @@ -82,6 +103,7 @@ class CompactLocationBarView : public DropdownBarView, scoped_ptr<AutocompleteEditViewGtk> location_entry_; views::NativeViewHost* location_entry_view_; BrowserActionsContainer* browser_actions_; + ToolbarStarToggle* star_; DISALLOW_COPY_AND_ASSIGN(CompactLocationBarView); }; diff --git a/chrome/browser/chromeos/frame/browser_view.cc b/chrome/browser/chromeos/frame/browser_view.cc index eb2029c..254be1d 100644 --- a/chrome/browser/chromeos/frame/browser_view.cc +++ b/chrome/browser/chromeos/frame/browser_view.cc @@ -28,6 +28,7 @@ #include "chrome/browser/views/tabs/tab.h" #include "chrome/browser/views/tabs/tab_strip.h" #include "chrome/browser/views/toolbar_view.h" +#include "chrome/browser/views/toolbar_star_toggle.h" #include "gfx/canvas.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" @@ -440,6 +441,19 @@ void BrowserView::ChildPreferredSizeChanged(View* child) { SchedulePaint(); } +void BrowserView::SetStarredState(bool is_starred) { + ::BrowserView::SetStarredState(is_starred); + compact_location_bar_host_->GetStarButton()->SetToggled(is_starred); +} + +void BrowserView::ShowBookmarkBubble(const GURL& url, bool already_bookmarked) { + if (is_compact_style()) + compact_location_bar_host_->GetStarButton()->ShowStarBubble( + url, !already_bookmarked); + else + ::BrowserView::ShowBookmarkBubble(url, already_bookmarked); +} + // views::ButtonListener overrides. void BrowserView::ButtonPressed(views::Button* sender, const views::Event& event) { @@ -450,7 +464,7 @@ void BrowserView::ButtonPressed(views::Button* sender, origin.Offset(kAppLauncherLeftPadding, 0); views::RootView::ConvertPointToScreen(this, &origin); bounds.set_origin(origin); - ::AppLauncher::Show(browser(), bounds, gfx::Point()); + ::AppLauncher::Show(browser(), bounds); } // views::ContextMenuController overrides. diff --git a/chrome/browser/chromeos/frame/browser_view.h b/chrome/browser/chromeos/frame/browser_view.h index cd868c7..0d3dd2a 100644 --- a/chrome/browser/chromeos/frame/browser_view.h +++ b/chrome/browser/chromeos/frame/browser_view.h @@ -66,6 +66,8 @@ class BrowserView : public ::BrowserView, virtual views::LayoutManager* CreateLayoutManager() const; virtual BaseTabStrip* CreateTabStrip(TabStripModel* tab_strip_model); virtual void ChildPreferredSizeChanged(View* child); + virtual void SetStarredState(bool is_starred); + virtual void ShowBookmarkBubble(const GURL& url, bool already_bookmarked); // views::ButtonListener overrides. virtual void ButtonPressed(views::Button* sender, const views::Event& event); diff --git a/chrome/browser/cocoa/autocomplete_text_field.h b/chrome/browser/cocoa/autocomplete_text_field.h index 8e16705..1b1856d 100644 --- a/chrome/browser/cocoa/autocomplete_text_field.h +++ b/chrome/browser/cocoa/autocomplete_text_field.h @@ -119,13 +119,6 @@ class AutocompleteTextFieldObserver { // is not over an action. - (NSMenu*)actionMenuForEvent:(NSEvent*)event; -// Return the rectangle the star is being shown in, for purposes of -// positioning the bookmark bubble. -- (NSRect)starIconFrame; - -// If the location icon is draggable, return its drag pasteboard. -- (NSPasteboard*)locationDragPasteboard; - @end #endif // CHROME_BROWSER_COCOA_AUTOCOMPLETE_TEXT_FIELD_H_ diff --git a/chrome/browser/cocoa/autocomplete_text_field.mm b/chrome/browser/cocoa/autocomplete_text_field.mm index a07cac1..60d3507 100644 --- a/chrome/browser/cocoa/autocomplete_text_field.mm +++ b/chrome/browser/cocoa/autocomplete_text_field.mm @@ -124,10 +124,14 @@ return; } - // Give the cell a chance to intercept clicks in page-actions and - // other decorative items. - if ([cell mouseDown:theEvent inRect:bounds ofView:self]) { - return; + // If the user clicked on one of the icons (security icon, Page + // Actions, etc), let the icon handle the click. + for (AutocompleteTextFieldIcon* icon in [cell layedOutIcons:bounds]) { + const NSRect iconRect = [icon rect]; + if (NSMouseInRect(location, iconRect, flipped)) { + [icon view]->OnMousePressed(iconRect); + return; + } } NSText* editor = [self currentEditor]; @@ -195,7 +199,6 @@ // Show the I-beam cursor unless the mouse is over an image within the field // (Page Actions or the security icon) in which case show the arrow cursor. -// TODO(rohitrao): Should default to the arrow cursor. http://crbug.com/41612 - (void)resetCursorRects { NSRect fieldBounds = [self bounds]; [self addCursorRect:fieldBounds cursor:[NSCursor IBeamCursor]]; @@ -203,17 +206,8 @@ AutocompleteTextFieldCell* cell = [self autocompleteTextFieldCell]; for (AutocompleteTextFieldIcon* icon in [cell layedOutIcons:fieldBounds]) [self addCursorRect:[icon rect] cursor:[NSCursor arrowCursor]]; - - // Special-case the location image, since it is not in |-layedOutIcons|. - const NSRect locationIconFrame = [cell locationIconFrameForFrame:fieldBounds]; - [self addCursorRect:locationIconFrame cursor:[NSCursor arrowCursor]]; } -// TODO(shess): -resetFieldEditorFrameIfNeeded is the place where -// changes to the cell layout should be flushed. LocationBarViewMac -// and ToolbarController are calling this routine directly, and I -// think they are probably wrong. -// http://crbug.com/40053 - (void)updateCursorAndToolTipRects { // This will force |resetCursorRects| to be called, as it is not to be called // directly. @@ -377,13 +371,4 @@ actionMenuForEvent:event inRect:[self bounds] ofView:self]; } -- (NSRect)starIconFrame { - AutocompleteTextFieldCell* cell = [self autocompleteTextFieldCell]; - return [cell starIconFrameForFrame:[self bounds]]; -} - -- (NSPasteboard*)locationDragPasteboard { - return [[self autocompleteTextFieldCell] locationDragPasteboard]; -} - @end diff --git a/chrome/browser/cocoa/autocomplete_text_field_cell.h b/chrome/browser/cocoa/autocomplete_text_field_cell.h index bc791cf..1e0a3c5 100644 --- a/chrome/browser/cocoa/autocomplete_text_field_cell.h +++ b/chrome/browser/cocoa/autocomplete_text_field_cell.h @@ -13,15 +13,7 @@ class ExtensionAction; // Holds a |LocationBarImageView| and its current rect. Do not keep references // to this object, only use it directly after calling |-layedOutIcons:|. -// TODO(shess): This class is basically a helper for laying out the -// icons. Try to refactor it away. If that is not reasonable, at -// least split the image and label cases into subclasses once the -// Omnibox stuff is settled. @interface AutocompleteTextFieldIcon : NSObject { - // YES to draw the label part of |view_|, otherwise draw the image - // part. - BOOL isLabel_; - // The frame rect of |view_|. NSRect rect_; @@ -29,20 +21,12 @@ class ExtensionAction; LocationBarViewMac::LocationBarImageView* view_; } +// Returns a new AutocompleteTextFieldIcon object. ++ (AutocompleteTextFieldIcon*) + iconWithRect:(NSRect)rect + view:(LocationBarViewMac::LocationBarImageView*)view; @property(assign, nonatomic) NSRect rect; @property(assign, nonatomic) LocationBarViewMac::LocationBarImageView* view; - -- (id)initImageWithView:(LocationBarViewMac::LocationBarImageView*)view; -- (id)initLabelWithView:(LocationBarViewMac::LocationBarImageView*)view; - -// Position |view_| right-justified in |frame|. -- (void)positionInFrame:(NSRect)frame; - -// Draw image or label of |view_| in |rect_| within |controlView|. -// Only call after |-positionInFrame:| has set |rect_| (or after an -// explicit |-setRect:|). -- (void)drawInView:(NSView*)controlView; - @end // AutocompleteTextFieldCell extends StyledTextFieldCell to provide support for @@ -60,17 +44,10 @@ class ExtensionAction; // side of the field. Exclusive WRT |keywordString_|; scoped_nsobject<NSAttributedString> hintString_; - // The location icon sits at the left-hand side of the field. - // |keywordString_| overrides. - LocationBarViewMac::LocationIconView* locationIconView_; - - // The star icon sits at the right-hand side of the field when an - // URL is being shown. - LocationBarViewMac::LocationBarImageView* starIconView_; - - // The security label floats to the left of page actions at the - // right-hand side. - LocationBarViewMac::LocationBarImageView* securityLabelView_; + // View showing the state of the SSL connection. Owned by the location bar. + // Display is exclusive WRT the |hintString_| and |keywordString_|. + // This may be NULL during testing. + LocationBarViewMac::SecurityImageView* security_image_view_; // List of views showing visible Page Actions. Owned by the location bar. // Display is exclusive WRT the |hintString_| and |keywordString_|. @@ -100,58 +77,34 @@ class ExtensionAction; availableWidth:(CGFloat)width; - (void)clearKeywordAndHint; -- (void)setLocationIconView:(LocationBarViewMac::LocationIconView*)view; -- (void)setStarIconView:(LocationBarViewMac::LocationBarImageView*)view; -- (void)setSecurityLabelView:(LocationBarViewMac::LocationBarImageView*)view; +- (void)setSecurityImageView:(LocationBarViewMac::SecurityImageView*)view; - (void)setPageActionViewList:(LocationBarViewMac::PageActionViewList*)list; - (void)setContentSettingViewsList: (LocationBarViewMac::ContentSettingViews*)views; -// Returns the portion of the cell to use for displaying the location -// icon. -- (NSRect)locationIconFrameForFrame:(NSRect)cellFrame; - // Returns an array of the visible AutocompleteTextFieldIcon objects. Returns // only visible icons. - (NSArray*)layedOutIcons:(NSRect)cellFrame; -// Return the rectangle the star is being shown in, for purposes of -// positioning the bookmark bubble. -- (NSRect)starIconFrameForFrame:(NSRect)cellFrame; - -// Returns the portion of the cell to use for displaying the Page -// Action icon at the given index. May be NSZeroRect if the index's -// action is not visible. This does a linear walk over all page -// actions, so do not call this in a loop to get the position of all -// page actions. Use |-layedOutIcons:| instead in that case. -- (NSRect)pageActionFrameForIndex:(size_t)index inFrame:(NSRect)cellFrame; // Similar to |pageActionFrameForIndex:inFrame| but accepts an // ExtensionAction for when the index is not known. - (NSRect)pageActionFrameForExtensionAction:(ExtensionAction*)action inFrame:(NSRect)cellFrame; -// Find the icon under the event. |nil| if |theEvent| is not over -// anything. -- (AutocompleteTextFieldIcon*)iconForEvent:(NSEvent*)theEvent - inRect:(NSRect)cellFrame - ofView:(AutocompleteTextField*)controlView; +// Returns the portion of the cell to use for displaying the Page Action icon +// at the given index. May be NSZeroRect if the index's action is not visible. +// This does a linear walk over all page actions, so do not call this in a loop +// to get the position of all page actions. Use |-layedOutIcons:| instead in that +// case. +- (NSRect)pageActionFrameForIndex:(size_t)index inFrame:(NSRect)cellFrame; // Return the appropriate menu for any page actions under event. // Returns nil if no menu is present for the action, or if the event // is not over an action. -- (NSMenu*)actionMenuForEvent:(NSEvent*)theEvent +- (NSMenu*)actionMenuForEvent:(NSEvent*)event inRect:(NSRect)cellFrame - ofView:(AutocompleteTextField*)controlView; - -// Called by |AutocompleteTextField| to let page actions intercept -// clicks. Returns |YES| if the click has been intercepted. -- (BOOL)mouseDown:(NSEvent*)theEvent - inRect:(NSRect)cellFrame - ofView:(AutocompleteTextField*)controlView; - -// If the location icon is draggable, return its drag pasteboard. -- (NSPasteboard*)locationDragPasteboard; + ofView:(NSView*)aView; @end @@ -165,4 +118,8 @@ class ExtensionAction; // Returns the total number of installed Page Actions, visible or not. - (size_t)pageActionCount; +// Returns the portion of the cell to use for displaying the security (SSL lock) +// icon, leaving space for its label if any. +- (NSRect)securityImageFrameForFrame:(NSRect)cellFrame; + @end diff --git a/chrome/browser/cocoa/autocomplete_text_field_cell.mm b/chrome/browser/cocoa/autocomplete_text_field_cell.mm index 9801892..7b7f35c 100644 --- a/chrome/browser/cocoa/autocomplete_text_field_cell.mm +++ b/chrome/browser/cocoa/autocomplete_text_field_cell.mm @@ -7,20 +7,6 @@ #include "app/resource_bundle.h" #include "base/logging.h" #include "gfx/font.h" -#include "grit/theme_resources.h" - -@interface AutocompleteTextAttachmentCell : NSTextAttachmentCell { -} - -// TODO(shess): -// Override -cellBaselineOffset to allow the image to be shifted up or -// down relative to the containing text's baseline. - -// Draw the image using |DrawImageInRect()| helper function for -// |-setFlipped:| consistency with other image drawing. -- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)aView; - -@end namespace { @@ -49,28 +35,16 @@ const NSInteger kKeywordYInset = 4; // technique would be nice to have, though. const NSInteger kKeywordHintImageBaseline = -6; -// Drops the magnifying glass icon so that it looks centered in the -// keyword-search bubble. -const NSInteger kKeywordSearchImageBaseline = -5; - // The amount of padding on either side reserved for drawing an icon. const NSInteger kIconHorizontalPad = 3; // How far to shift bounding box of hint icon label down from top of field. -const NSInteger kIconLabelYOffset = 7; +const NSInteger kIconLabelYOffset = 5; // How far the editor insets itself, for purposes of determining if // decorations need to be trimmed. const CGFloat kEditorHorizontalInset = 3.0; -// Cause the location icon to line up above the icons in the popup. -const CGFloat kLocationIconXOffset = 6.0; -const CGFloat kLocationIconXPad = 1.0; - -// How long to wait for mouse-up on the location icon before assuming -// that the user wants to drag. -const NSTimeInterval kLocationIconDragTimeout = 0.25; - // Conveniences to centralize width+offset calculations. CGFloat WidthForHint(NSAttributedString* hintString) { return kHintXOffset + ceil([hintString size].width); @@ -80,103 +54,20 @@ CGFloat WidthForKeyword(NSAttributedString* keywordString) { 2 * kKeywordTokenInset; } -// Convenience to draw |image| in the |rect| portion of |view|. -void DrawImageInRect(NSImage* image, NSView* view, const NSRect& rect) { - // If there is an image, make sure we calculated the target size - // correctly. - DCHECK(!image || NSEqualSizes([image size], rect.size)); - [image setFlipped:[view isFlipped]]; - [image drawInRect:rect - fromRect:NSZeroRect // Entire image - operation:NSCompositeSourceOver - fraction:1.0]; -} - -// Helper function to generate an attributed string containing -// |anImage|. If |baselineAdjustment| is 0, the image sits on the -// text baseline, positive values shift it up, negative values shift -// it down. -NSAttributedString* AttributedStringForImage(NSImage* anImage, - CGFloat baselineAdjustment) { - scoped_nsobject<AutocompleteTextAttachmentCell> attachmentCell( - [[AutocompleteTextAttachmentCell alloc] initImageCell:anImage]); - scoped_nsobject<NSTextAttachment> attachment( - [[NSTextAttachment alloc] init]); - [attachment setAttachmentCell:attachmentCell]; - - scoped_nsobject<NSMutableAttributedString> as( - [[NSAttributedString attributedStringWithAttachment:attachment] - mutableCopy]); - [as addAttribute:NSBaselineOffsetAttributeName - value:[NSNumber numberWithFloat:baselineAdjustment] - range:NSMakeRange(0, [as length])]; - - return [[as copy] autorelease]; -} - } // namespace -@implementation AutocompleteTextAttachmentCell - -- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)aView { - // Draw image with |DrawImageInRect()| to get consistent - // |-setFlipped:| treatment. - DrawImageInRect([self image], aView, cellFrame); -} - -@end - @implementation AutocompleteTextFieldIcon @synthesize rect = rect_; @synthesize view = view_; -// Private helper. -- (id)initWithView:(LocationBarViewMac::LocationBarImageView*)view - isLabel:(BOOL)isLabel { - self = [super init]; - if (self) { - isLabel_ = isLabel; - view_ = view; - rect_ = NSZeroRect; - } - return self; -} - -- (id)initImageWithView:(LocationBarViewMac::LocationBarImageView*)view { - return [self initWithView:view isLabel:NO]; -} - -- (id)initLabelWithView:(LocationBarViewMac::LocationBarImageView*)view { - return [self initWithView:view isLabel:YES]; -} - -- (void)positionInFrame:(NSRect)frame { - if (isLabel_) { - NSAttributedString* label = view_->GetLabel(); - DCHECK(label); - const CGFloat labelWidth = ceil([label size].width); - rect_ = NSMakeRect(NSMaxX(frame) - labelWidth, - NSMinY(frame) + kIconLabelYOffset, - labelWidth, NSHeight(frame) - kIconLabelYOffset); - } else { - const NSSize imageSize = view_->GetImageSize(); - const CGFloat yOffset = floor((NSHeight(frame) - imageSize.height) / 2); - rect_ = NSMakeRect(NSMaxX(frame) - imageSize.width, - NSMinY(frame) + yOffset, - imageSize.width, imageSize.height); - } -} - -- (void)drawInView:(NSView*)controlView { - // Make sure someone called |-positionInFrame:|. - DCHECK(!NSIsEmptyRect(rect_)); - if (isLabel_) { - NSAttributedString* label = view_->GetLabel(); - [label drawInRect:rect_]; - } else { - DrawImageInRect(view_->GetImage(), controlView, rect_); - } ++ (AutocompleteTextFieldIcon*) + iconWithRect:(NSRect)rect + view:(LocationBarViewMac::LocationBarImageView*)view { + AutocompleteTextFieldIcon* result = [[AutocompleteTextFieldIcon alloc] init]; + [result setRect:rect]; + [result setView:view]; + return [result autorelease]; } @end @@ -205,40 +96,18 @@ NSAttributedString* AttributedStringForImage(NSImage* anImage, // Adjust for space between editor and decorations. width -= 2 * kEditorHorizontalInset; - // Get the magnifying glass to put at the front of the string. - NSImage* image = - AutocompleteEditViewMac::ImageForResource(IDR_OMNIBOX_SEARCH); - const NSSize imageSize = [image size]; - - // Based on what fits, choose |fullString| with the image, - // |fullString| without the image, or |partialString|. + // If |fullString| won't fit, choose |partialString|. NSDictionary* attributes = [NSDictionary dictionaryWithObject:[self font] forKey:NSFontAttributeName]; NSString* s = fullString; - const CGFloat sWidth = [s sizeWithAttributes:attributes].width; - if (sWidth + imageSize.width > width) { - image = nil; - } - if (sWidth > width) { + if ([s sizeWithAttributes:attributes].width > width) { if (partialString) { s = partialString; } } - - scoped_nsobject<NSMutableAttributedString> as( - [[NSMutableAttributedString alloc] initWithString:s - attributes:attributes]); - - // Insert the image at the front of the string if it didn't make - // things too wide. - if (image) { - NSAttributedString* is = - AttributedStringForImage(image, kKeywordSearchImageBaseline); - [as insertAttributedString:is atIndex:0]; - } - - keywordString_.reset([as copy]); + keywordString_.reset( + [[NSAttributedString alloc] initWithString:s attributes:attributes]); } // Convenience for the attributes used in the right-justified info @@ -286,8 +155,21 @@ NSAttributedString* AttributedStringForImage(NSImage* anImage, initWithString:s attributes:[self hintAttributes]]); // Build an attachment containing the hint image. - NSAttributedString* is = - AttributedStringForImage(anImage, kKeywordHintImageBaseline); + scoped_nsobject<NSTextAttachmentCell> attachmentCell( + [[NSTextAttachmentCell alloc] initImageCell:anImage]); + scoped_nsobject<NSTextAttachment> attachment( + [[NSTextAttachment alloc] init]); + [attachment setAttachmentCell:attachmentCell]; + + // The attachment's baseline needs to be adjusted so the image + // doesn't sit on the same baseline as the text and make + // everything too tall. + scoped_nsobject<NSMutableAttributedString> is( + [[NSAttributedString attributedStringWithAttachment:attachment] + mutableCopy]); + [is addAttribute:NSBaselineOffsetAttributeName + value:[NSNumber numberWithFloat:kKeywordHintImageBaseline] + range:NSMakeRange(0, [is length])]; // Stuff the image attachment between the prefix and suffix. [as insertAttributedString:is atIndex:[prefixString length]]; @@ -331,16 +213,8 @@ NSAttributedString* AttributedStringForImage(NSImage* anImage, page_action_views_ = list; } -- (void)setLocationIconView:(LocationBarViewMac::LocationIconView*)view { - locationIconView_ = view; -} - -- (void)setStarIconView:(LocationBarViewMac::LocationBarImageView*)view { - starIconView_ = view; -} - -- (void)setSecurityLabelView:(LocationBarViewMac::LocationBarImageView*)view { - securityLabelView_ = view; +- (void)setSecurityImageView:(LocationBarViewMac::SecurityImageView*)view { + security_image_view_ = view; } - (void)setContentSettingViewsList: @@ -352,81 +226,69 @@ NSAttributedString* AttributedStringForImage(NSImage* anImage, - (NSRect)textFrameForFrame:(NSRect)cellFrame { NSRect textFrame([super textFrameForFrame:cellFrame]); - // NOTE: This function must closely match the logic in - // |-drawInteriorWithFrame:inView:|. - - // Location icon is not shown in keyword search mode. - if (!keywordString_ && locationIconView_ && locationIconView_->IsVisible()) { - const NSRect iconFrame = [self locationIconFrameForFrame:cellFrame]; - const CGFloat newOrigin = NSMaxX(iconFrame) + kLocationIconXPad; - textFrame.size.width = NSMaxX(textFrame) - newOrigin; - textFrame.origin.x = newOrigin; - } - - // Leave room for items on the right (SSL label, page actions, etc). - // Icons are laid out in |cellFrame| rather than |textFrame| for - // consistency with drawing code. - NSArray* icons = [self layedOutIcons:cellFrame]; - if ([icons count]) { - // Max x for resulting text frame. - const CGFloat maxX = NSMinX([[icons objectAtIndex:0] rect]); - textFrame.size.width = maxX - NSMinX(textFrame); - } - - // Keyword string or hint string if they fit. - if (keywordString_) { - DCHECK(!hintString_); - const CGFloat keywordWidth(WidthForKeyword(keywordString_)); - - if (keywordWidth < NSWidth(textFrame)) { - textFrame.origin.x += keywordWidth; - textFrame.size.width -= keywordWidth; - } - } else if (hintString_) { + if (hintString_) { DCHECK(!keywordString_); const CGFloat hintWidth(WidthForHint(hintString_)); // TODO(shess): This could be better. Show the hint until the // non-hint text bumps against it? - if (hintWidth < NSWidth(textFrame)) { + if (hintWidth < NSWidth(cellFrame)) { textFrame.size.width -= hintWidth; } - } + } else if (keywordString_) { + DCHECK(!hintString_); + const CGFloat keywordWidth(WidthForKeyword(keywordString_)); - // SSL label if it fits. - if (securityLabelView_ && securityLabelView_->IsVisible() && - securityLabelView_->GetLabel()) { - NSAttributedString* label = securityLabelView_->GetLabel(); - const CGFloat labelWidth = ceil([label size].width) + kIconHorizontalPad; - if (NSWidth(textFrame) > labelWidth) { - textFrame.size.width -= labelWidth; + // TODO(shess): This could be better. There's support for a + // "short" version of the keyword string, work that in in a + // follow-on pass. + if (keywordWidth < NSWidth(cellFrame)) { + textFrame.origin.x += keywordWidth; + textFrame.size.width = NSMaxX(cellFrame) - NSMinX(textFrame); } + } else { + // Leave room for images on the right (lock icon etc). + NSArray* iconFrames = [self layedOutIcons:cellFrame]; + CGFloat width = 0; + if ([iconFrames count] > 0) + width = NSMaxX(cellFrame) - NSMinX([[iconFrames lastObject] rect]); + if (width > 0) + width += kIconHorizontalPad; + if (width < NSWidth(cellFrame)) + textFrame.size.width -= width; } return textFrame; } -- (NSRect)locationIconFrameForFrame:(NSRect)cellFrame { - if (!locationIconView_ || !locationIconView_->IsVisible()) - return NSZeroRect; - - const NSSize imageSize = locationIconView_->GetImageSize(); - const CGFloat yOffset = floor((NSHeight(cellFrame) - imageSize.height) / 2); - return NSMakeRect(NSMinX(cellFrame) + kLocationIconXOffset, - NSMinY(cellFrame) + yOffset, - imageSize.width, imageSize.height); +// Returns a rect of size |imageSize| centered vertically and right-justified in +// the |box|, with its top left corner |margin| pixels from the right end of the +// box. (The image thus occupies part of the |margin|.) +- (NSRect)rightJustifyImage:(NSSize)imageSize + inRect:(NSRect)box + withMargin:(CGFloat)margin { + box.origin.x += box.size.width - margin; + box.origin.y += floor((box.size.height - imageSize.height) / 2); + box.size = imageSize; + return box; } -- (NSRect)starIconFrameForFrame:(NSRect)cellFrame { - if (!starIconView_ || !starIconView_->IsVisible()) +- (NSRect)securityImageFrameForFrame:(NSRect)cellFrame { + if (!security_image_view_ || !security_image_view_->IsVisible()) { return NSZeroRect; + } + + // Calculate the total width occupied by the image, label, and padding. + NSSize imageSize = [security_image_view_->GetImage() size]; + CGFloat widthUsed = imageSize.width + kIconHorizontalPad; + NSAttributedString* label = security_image_view_->GetLabel(); + if (label) { + widthUsed += ceil([label size].width) + kHintXOffset; + } - // The star icon is always at the RHS. - scoped_nsobject<AutocompleteTextFieldIcon> icon( - [[AutocompleteTextFieldIcon alloc] initImageWithView:starIconView_]); - cellFrame.size.width -= kHintXOffset; - [icon positionInFrame:cellFrame]; - return [icon rect]; + return [self rightJustifyImage:imageSize + inRect:cellFrame + withMargin:widthUsed]; } - (size_t)pageActionCount { @@ -503,223 +365,118 @@ NSAttributedString* AttributedStringForImage(NSImage* anImage, [path stroke]; // Draw text w/in the rectangle. - infoFrame.origin.x += 3.0; + infoFrame.origin.x += 4.0; + infoFrame.origin.y += 1.0; [keywordString_.get() drawInRect:infoFrame]; } -- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView*)controlView { - NSRect workingFrame = cellFrame; - - // NOTE: This function must closely match the logic in - // |-textFrameForFrame:|. - - // Location icon is not shown in keyword search mode. - if (!keywordString_ && locationIconView_ && locationIconView_->IsVisible()) { - const NSRect iconFrame = [self locationIconFrameForFrame:cellFrame]; - DrawImageInRect(locationIconView_->GetImage(), controlView, iconFrame); - const CGFloat newOrigin = NSMaxX(iconFrame) + kLocationIconXPad; - workingFrame.size.width = NSMaxX(workingFrame) - newOrigin; - workingFrame.origin.x = newOrigin; - } - - NSArray* icons = [self layedOutIcons:cellFrame]; - for (AutocompleteTextFieldIcon* icon in icons) { - [icon drawInView:controlView]; - } - if ([icons count]) { - // Max x for resulting text frame. - const CGFloat maxX = NSMinX([[icons objectAtIndex:0] rect]); - workingFrame.size.width = maxX - NSMinX(workingFrame); +- (void)drawImageView:(LocationBarViewMac::LocationBarImageView*)imageView + inFrame:(NSRect)imageFrame + inView:(NSView*)controlView { + // If there's a label, draw it to the right of the icon. The caller must have + // left sufficient space. + NSAttributedString* label = imageView->GetLabel(); + if (label) { + CGFloat labelWidth = ceil([label size].width) + kHintXOffset; + NSRect textFrame(NSMakeRect(NSMaxX(imageFrame) + kIconHorizontalPad, + imageFrame.origin.y + kIconLabelYOffset, + labelWidth, + imageFrame.size.height - kIconLabelYOffset)); + [label drawInRect:textFrame]; } - // Keyword string or hint string if they fit. - if (keywordString_) { - DCHECK(!hintString_); - const CGFloat keywordWidth(WidthForKeyword(keywordString_)); - - if (keywordWidth < NSWidth(workingFrame)) { - [self drawKeywordWithFrame:cellFrame inView:controlView]; - workingFrame.origin.x += keywordWidth; - workingFrame.size.width -= keywordWidth; - } - } else if (hintString_) { - DCHECK(!keywordString_); - const CGFloat hintWidth(WidthForHint(hintString_)); - - // TODO(shess): This could be better. Show the hint until the - // non-hint text bumps against it? - if (hintWidth < NSWidth(workingFrame)) { - [self drawHintWithFrame:cellFrame inView:controlView]; - workingFrame.size.width -= hintWidth; - } - } + // Draw the entire image. + NSRect imageRect = NSZeroRect; + NSImage* image = imageView->GetImage(); + image.size = [image size]; + [image setFlipped:[controlView isFlipped]]; + [image drawInRect:imageFrame + fromRect:imageRect + operation:NSCompositeSourceOver + fraction:1.0]; +} - // SSL label if it fits. - if (securityLabelView_ && securityLabelView_->IsVisible() && - securityLabelView_->GetLabel()) { - NSAttributedString* label = securityLabelView_->GetLabel(); - const CGFloat labelWidth = ceil([label size].width) + kIconHorizontalPad; - if (NSWidth(workingFrame) > labelWidth) { - workingFrame.size.width -= kIconHorizontalPad; - - scoped_nsobject<AutocompleteTextFieldIcon> icon( - [[AutocompleteTextFieldIcon alloc] - initLabelWithView:securityLabelView_]); - [icon positionInFrame:workingFrame]; - [icon drawInView:controlView]; - DCHECK_EQ(labelWidth, NSWidth([icon rect]) + kIconHorizontalPad); - workingFrame.size.width -= NSWidth([icon rect]); +- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView*)controlView { + if (hintString_) { + [self drawHintWithFrame:cellFrame inView:controlView]; + } else if (keywordString_) { + [self drawKeywordWithFrame:cellFrame inView:controlView]; + } else { + for (AutocompleteTextFieldIcon* icon in [self layedOutIcons:cellFrame]) { + [self drawImageView:[icon view] + inFrame:[icon rect] + inView:controlView]; } } - // Superclass draws text portion WRT original |cellFrame|. [super drawInteriorWithFrame:cellFrame inView:controlView]; } - (NSArray*)layedOutIcons:(NSRect)cellFrame { - // The set of views to display right-justified in the cell, from - // left to right. - NSMutableArray* result = [NSMutableArray array]; - - // Collect the image views for bulk processing. - // TODO(shess): Refactor with LocationBarViewMac to make the - // different types of items more consistent. - std::vector<LocationBarViewMac::LocationBarImageView*> views; - - if (content_setting_views_) { - views.insert(views.end(), - content_setting_views_->begin(), - content_setting_views_->end()); - } - - // TODO(shess): Previous implementation of this method made a - // right-to-left array, so add the page-action items in that order. - // As part of the refactor mentioned above, lay everything out - // nicely left-to-right. - for (size_t i = [self pageActionCount]; i-- > 0;) { - views.push_back(page_action_views_->ViewAt(i)); + NSMutableArray* result = [NSMutableArray arrayWithCapacity:0]; + NSRect iconFrame = cellFrame; + if (security_image_view_ && security_image_view_->IsVisible()) { + NSRect securityImageFrame = [self securityImageFrameForFrame:iconFrame]; + [result addObject: + [AutocompleteTextFieldIcon iconWithRect:securityImageFrame + view:security_image_view_]]; + iconFrame.size.width -= NSMaxX(iconFrame) - NSMinX(securityImageFrame); } - // The star icon should always come last. - if (starIconView_) - views.push_back(starIconView_); - - // Load the visible views into |result|. - for (std::vector<LocationBarViewMac::LocationBarImageView*>::const_iterator - iter = views.begin(); iter != views.end(); ++iter) { - if ((*iter)->IsVisible()) { - scoped_nsobject<AutocompleteTextFieldIcon> icon( - [[AutocompleteTextFieldIcon alloc] initImageWithView:*iter]); - [result addObject:icon]; + const size_t pageActionCount = [self pageActionCount]; + for (size_t i = 0; i < pageActionCount; ++i) { + LocationBarViewMac::PageActionImageView* view = + page_action_views_->ViewAt(i); + if (view->IsVisible()) { + // If this function is called right after a page action icon has been + // created, the images for all views will still be loading; in this case, + // each visible view will give us its default size. + NSSize iconSize = view->GetPreferredImageSize(); + NSRect pageActionFrame = + [self rightJustifyImage:iconSize + inRect:iconFrame + withMargin:kIconHorizontalPad + iconSize.width]; + [result addObject: + [AutocompleteTextFieldIcon iconWithRect:pageActionFrame view:view]]; + iconFrame.size.width -= NSMaxX(iconFrame) - NSMinX(pageActionFrame); } } - // Leave a boundary at RHS of field. - cellFrame.size.width -= kHintXOffset; - - // Position each view within the frame from right to left. - for (AutocompleteTextFieldIcon* icon in [result reverseObjectEnumerator]) { - [icon positionInFrame:cellFrame]; - - // Trim the icon's space from the frame. - cellFrame.size.width = NSMinX([icon rect]) - kIconHorizontalPad; + if (content_setting_views_) { + // We use a reverse_iterator here because we're laying out the views from + // right to left but in the vector they're ordered left to right. + for (LocationBarViewMac::ContentSettingViews::const_reverse_iterator + it(content_setting_views_->rbegin()); + it != const_cast<const LocationBarViewMac::ContentSettingViews*>( + content_setting_views_)->rend(); + ++it) { + if ((*it)->IsVisible()) { + NSImage* image = (*it)->GetImage(); + NSRect blockedContentFrame = + [self rightJustifyImage:[image size] + inRect:iconFrame + withMargin:[image size].width + kIconHorizontalPad]; + [result addObject: + [AutocompleteTextFieldIcon iconWithRect:blockedContentFrame + view:*it]]; + iconFrame.size.width -= NSMaxX(iconFrame) - NSMinX(blockedContentFrame); + } + } } return result; } -- (AutocompleteTextFieldIcon*)iconForEvent:(NSEvent*)theEvent - inRect:(NSRect)cellFrame - ofView:(AutocompleteTextField*)controlView { - const BOOL flipped = [controlView isFlipped]; - const NSPoint location = - [controlView convertPoint:[theEvent locationInWindow] fromView:nil]; - - // Special check for location image, it is not in |-layedOutIcons:|. - const NSRect locationIconFrame = [self locationIconFrameForFrame:cellFrame]; - if (NSMouseInRect(location, locationIconFrame, flipped)) { - // Make up an icon to return. - AutocompleteTextFieldIcon* icon = - [[[AutocompleteTextFieldIcon alloc] - initImageWithView:locationIconView_] autorelease]; - [icon setRect:locationIconFrame]; - return icon; - } - - for (AutocompleteTextFieldIcon* icon in [self layedOutIcons:cellFrame]) { - if (NSMouseInRect(location, [icon rect], flipped)) - return icon; - } - - return nil; -} - -- (NSMenu*)actionMenuForEvent:(NSEvent*)theEvent +- (NSMenu*)actionMenuForEvent:(NSEvent*)event inRect:(NSRect)cellFrame - ofView:(AutocompleteTextField*)controlView { - AutocompleteTextFieldIcon* - icon = [self iconForEvent:theEvent inRect:cellFrame ofView:controlView]; - if (icon) - return [icon view]->GetMenu(); - return nil; -} + ofView:(NSView*)aView { + NSPoint location = [aView convertPoint:[event locationInWindow] fromView:nil]; -- (BOOL)mouseDown:(NSEvent*)theEvent - inRect:(NSRect)cellFrame - ofView:(AutocompleteTextField*)controlView { - AutocompleteTextFieldIcon* icon = - [self iconForEvent:theEvent inRect:cellFrame ofView:controlView]; - if (!icon) - return NO; - - // If the icon is draggable, then initiate a drag if the user drags - // or holds the mouse down for awhile. - if ([icon view]->IsDraggable()) { - NSDate* timeout = - [NSDate dateWithTimeIntervalSinceNow:kLocationIconDragTimeout]; - NSEvent* event = [NSApp nextEventMatchingMask:(NSLeftMouseDraggedMask | - NSLeftMouseUpMask) - untilDate:timeout - inMode:NSEventTrackingRunLoopMode - dequeue:YES]; - if (!event || [event type] == NSLeftMouseDragged) { - NSPasteboard* pboard = [icon view]->GetDragPasteboard(); - DCHECK(pboard); - - // TODO(shess): My understanding is that the -isFlipped - // adjustment should not be necessary. But without it, the - // image is nowhere near the cursor. Perhaps the icon's rect is - // incorrectly calculated? - // http://crbug.com/40711 - NSPoint dragPoint = [icon rect].origin; - if ([controlView isFlipped]) - dragPoint.y += NSHeight([icon rect]); - - [controlView dragImage:[icon view]->GetImage() - at:dragPoint - offset:NSZeroSize - event:event ? event : theEvent - pasteboard:pboard - source:self - slideBack:YES]; - return YES; + const BOOL flipped = [aView isFlipped]; + for (AutocompleteTextFieldIcon* icon in [self layedOutIcons:cellFrame]) { + if (NSMouseInRect(location, [icon rect], flipped)) { + return [icon view]->GetMenu(); } - - // On mouse-up fall through to mouse-pressed case. - DCHECK_EQ([event type], NSLeftMouseUp); } - - [icon view]->OnMousePressed([icon rect]); - return YES; -} - -- (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal { - return NSDragOperationCopy; -} - -- (NSPasteboard*)locationDragPasteboard { - if (locationIconView_ && locationIconView_->IsDraggable()) - return locationIconView_->GetDragPasteboard(); - return nil; } diff --git a/chrome/browser/cocoa/autocomplete_text_field_cell_unittest.mm b/chrome/browser/cocoa/autocomplete_text_field_cell_unittest.mm index 5bd02cc..0a16c48 100644 --- a/chrome/browser/cocoa/autocomplete_text_field_cell_unittest.mm +++ b/chrome/browser/cocoa/autocomplete_text_field_cell_unittest.mm @@ -4,11 +4,9 @@ #import <Cocoa/Cocoa.h> -#include "app/resource_bundle.h" #include "base/scoped_nsobject.h" #import "chrome/browser/cocoa/autocomplete_text_field_cell.h" #import "chrome/browser/cocoa/cocoa_test_helper.h" -#include "grit/theme_resources.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" @@ -45,7 +43,7 @@ class TestPageActionViewList : public LocationBarViewMac::PageActionViewList { class AutocompleteTextFieldCellTest : public CocoaTest { public: - AutocompleteTextFieldCellTest() : location_icon_view_(NULL), + AutocompleteTextFieldCellTest() : security_image_view_(NULL, NULL, NULL), page_action_views_() { // Make sure this is wide enough to play games with the cell // decorations. @@ -59,8 +57,7 @@ class AutocompleteTextFieldCellTest : public CocoaTest { [[AutocompleteTextFieldCell alloc] initTextCell:@"Testing"]); [cell setEditable:YES]; [cell setBordered:YES]; - [cell setLocationIconView:&location_icon_view_]; - [cell setSecurityLabelView:&security_label_view_]; + [cell setSecurityImageView:&security_image_view_]; [cell setPageActionViewList:&page_action_views_]; [view_ setCell:cell.get()]; @@ -68,8 +65,7 @@ class AutocompleteTextFieldCellTest : public CocoaTest { } NSTextField* view_; - LocationBarViewMac::LocationIconView location_icon_view_; - LocationBarViewMac::LocationBarImageView security_label_view_; + LocationBarViewMac::SecurityImageView security_image_view_; TestPageActionViewList page_action_views_; }; @@ -203,16 +199,15 @@ TEST_F(AutocompleteTextFieldCellTest, TextFrame) { EXPECT_EQ(NSMaxX(bounds), NSMaxX(textFrame)); EXPECT_TRUE(NSContainsRect(cursorFrame, textFrame)); - // Location icon takes up space on the left - location_icon_view_.SetImage( - ResourceBundle::GetSharedInstance().GetNSImageNamed( - IDR_OMNIBOX_HTTPS_VALID)); - location_icon_view_.SetVisible(true); + // Security icon takes up space on the right + security_image_view_.SetImageShown( + LocationBarViewMac::SecurityImageView::LOCK); + security_image_view_.SetVisible(true); textFrame = [cell textFrameForFrame:bounds]; EXPECT_FALSE(NSIsEmptyRect(textFrame)); EXPECT_TRUE(NSContainsRect(bounds, textFrame)); - EXPECT_GT(NSMinX(textFrame), NSMinX(bounds)); + EXPECT_LT(NSMaxX(textFrame), NSMaxX(bounds)); EXPECT_TRUE(NSContainsRect(cursorFrame, textFrame)); // Search hint text takes precedence over the hint icon; the text frame @@ -270,10 +265,9 @@ TEST_F(AutocompleteTextFieldCellTest, DrawingRectForBounds) { EXPECT_TRUE(NSContainsRect(NSInsetRect(textFrame, 1, 1), drawingRect)); EXPECT_TRUE(NSEqualRects(drawingRect, originalDrawingRect)); - location_icon_view_.SetImage( - ResourceBundle::GetSharedInstance().GetNSImageNamed( - IDR_OMNIBOX_HTTPS_VALID)); - location_icon_view_.SetVisible(true); + security_image_view_.SetImageShown( + LocationBarViewMac::SecurityImageView::LOCK); + security_image_view_.SetVisible(true); textFrame = [cell textFrameForFrame:bounds]; drawingRect = [cell drawingRectForBounds:bounds]; @@ -281,60 +275,55 @@ TEST_F(AutocompleteTextFieldCellTest, DrawingRectForBounds) { EXPECT_TRUE(NSContainsRect(NSInsetRect(textFrame, 1, 1), drawingRect)); } -// Test that the location icon is at the right side of the cell. -TEST_F(AutocompleteTextFieldCellTest, LocationIconFrame) { +// Test that the security icon is at the right side of the cell. +TEST_F(AutocompleteTextFieldCellTest, SecurityImageFrame) { AutocompleteTextFieldCell* cell = static_cast<AutocompleteTextFieldCell*>([view_ cell]); const NSRect bounds([view_ bounds]); - location_icon_view_.SetImage( - ResourceBundle::GetSharedInstance().GetNSImageNamed( - IDR_OMNIBOX_HTTPS_VALID)); + security_image_view_.SetImageShown( + LocationBarViewMac::SecurityImageView::LOCK); - location_icon_view_.SetVisible(true); - const NSRect iconRect = [cell locationIconFrameForFrame:bounds]; - EXPECT_FALSE(NSIsEmptyRect(iconRect)); - EXPECT_TRUE(NSContainsRect(bounds, iconRect)); + security_image_view_.SetVisible(false); + EXPECT_EQ(0u, [[cell layedOutIcons:bounds] count]); - // Location icon should be left of |drawingRect|. - const NSRect drawingRect = [cell drawingRectForBounds:bounds]; - EXPECT_GT(NSMinX(drawingRect), NSMinX(iconRect)); + security_image_view_.SetVisible(true); + NSArray* icons = [cell layedOutIcons:bounds]; + ASSERT_EQ(1u, [icons count]); + NSRect iconRect = [[icons objectAtIndex:0] rect]; - // Location icon should be left of |textFrame|. - const NSRect textFrame = [cell textFrameForFrame:bounds]; - EXPECT_GT(NSMinX(textFrame), NSMinX(iconRect)); -} + EXPECT_FALSE(NSIsEmptyRect(iconRect)); + EXPECT_TRUE(NSContainsRect(bounds, iconRect)); -// Test that security label takes space to the right. -TEST_F(AutocompleteTextFieldCellTest, SecurityLabelFrame) { - AutocompleteTextFieldCell* cell = - static_cast<AutocompleteTextFieldCell*>([view_ cell]); - const NSRect bounds([view_ bounds]); + // Make sure we are right of the |drawingRect|. + NSRect drawingRect = [cell drawingRectForBounds:bounds]; + EXPECT_LE(NSMaxX(drawingRect), NSMinX(iconRect)); - // No label shows nothing, regardless of visibility setting. - security_label_view_.SetVisible(false); - const NSRect baseTextFrame = [cell textFrameForFrame:bounds]; - security_label_view_.SetVisible(true); - EXPECT_TRUE(NSEqualRects(baseTextFrame, [cell textFrameForFrame:bounds])); + // Make sure we're right of the |textFrame|. + NSRect textFrame = [cell textFrameForFrame:bounds]; + EXPECT_LE(NSMaxX(textFrame), NSMinX(iconRect)); - // Still not visible even with a label. + // Now add a label. NSFont* font = [NSFont controlContentFontOfSize:12.0]; NSColor* color = [NSColor blackColor]; - security_label_view_.SetLabel(@"Label", font, color); - security_label_view_.SetVisible(false); - EXPECT_TRUE(NSEqualRects(baseTextFrame, [cell textFrameForFrame:bounds])); + security_image_view_.SetLabel(@"Label", font, color); + icons = [cell layedOutIcons:bounds]; + ASSERT_EQ(1u, [icons count]); + iconRect = [[icons objectAtIndex:0] rect]; - // Visible with a label is strictly narrower than without. - security_label_view_.SetVisible(true); - NSRect textFrame = [cell textFrameForFrame:bounds]; - const CGFloat labelWidth = [security_label_view_.GetLabel() size].width; - EXPECT_TRUE(NSContainsRect(baseTextFrame, textFrame)); - EXPECT_LT(NSWidth(textFrame), NSWidth(baseTextFrame) - labelWidth); + EXPECT_FALSE(NSIsEmptyRect(iconRect)); + EXPECT_TRUE(NSContainsRect(bounds, iconRect)); - NSString* longLabel = - @"Really super-long labels will not show up if there's not enough room."; - security_label_view_.SetLabel(longLabel, font, color); + // Make sure we are right of the |drawingRect|. + drawingRect = [cell drawingRectForBounds:bounds]; + EXPECT_LE(NSMaxX(drawingRect), NSMinX(iconRect)); + + // Make sure we're right of the |textFrame|. textFrame = [cell textFrameForFrame:bounds]; - EXPECT_TRUE(NSEqualRects(baseTextFrame, [cell textFrameForFrame:bounds])); + EXPECT_LE(NSMaxX(textFrame), NSMinX(iconRect)); + + // Make sure we clear correctly. + security_image_view_.SetVisible(false); + EXPECT_EQ(0u, [[cell layedOutIcons:bounds] count]); } // Test Page Action counts. @@ -360,6 +349,8 @@ TEST_F(AutocompleteTextFieldCellTest, PageActionImageFrame) { AutocompleteTextFieldCell* cell = static_cast<AutocompleteTextFieldCell*>([view_ cell]); const NSRect bounds([view_ bounds]); + security_image_view_.SetImageShown( + LocationBarViewMac::SecurityImageView::LOCK); TestPageActionImageView page_action_view; // We'll assume that the extensions code enforces icons smaller than the @@ -377,12 +368,13 @@ TEST_F(AutocompleteTextFieldCellTest, PageActionImageFrame) { list.Add(&page_action_view2); [cell setPageActionViewList:&list]; + security_image_view_.SetVisible(false); page_action_view.SetVisible(false); page_action_view2.SetVisible(false); EXPECT_TRUE(NSIsEmptyRect([cell pageActionFrameForIndex:0 inFrame:bounds])); EXPECT_TRUE(NSIsEmptyRect([cell pageActionFrameForIndex:1 inFrame:bounds])); - // One page action, no lock icon. + // One page action, no security icon. page_action_view.SetVisible(true); NSRect iconRect0 = [cell pageActionFrameForIndex:0 inFrame:bounds]; @@ -397,19 +389,17 @@ TEST_F(AutocompleteTextFieldCellTest, PageActionImageFrame) { NSRect textFrame = [cell textFrameForFrame:bounds]; EXPECT_LE(NSMaxX(textFrame), NSMinX(iconRect0)); - // Two page actions plus a security label. + // Two page actions plus a security icon. page_action_view2.SetVisible(true); + security_image_view_.SetVisible(true); NSArray* icons = [cell layedOutIcons:bounds]; - ASSERT_EQ(2u, [icons count]); - - // TODO(shess): page-action list is inverted from -layedOutIcons: - // Yes, this is confusing, fix it. + EXPECT_EQ(3u, [icons count]); iconRect0 = [cell pageActionFrameForIndex:0 inFrame:bounds]; NSRect iconRect1 = [cell pageActionFrameForIndex:1 inFrame:bounds]; - NSRect labelRect = [[icons objectAtIndex:0] rect]; + NSRect lockRect = [[icons objectAtIndex:0] rect]; EXPECT_TRUE(NSEqualRects(iconRect0, [[icons objectAtIndex:1] rect])); - EXPECT_TRUE(NSEqualRects(iconRect1, [[icons objectAtIndex:0] rect])); + EXPECT_TRUE(NSEqualRects(iconRect1, [[icons objectAtIndex:2] rect])); // Make sure they're all in the expected order, and right of the |drawingRect| // and |textFrame|. @@ -420,13 +410,13 @@ TEST_F(AutocompleteTextFieldCellTest, PageActionImageFrame) { EXPECT_TRUE(NSContainsRect(bounds, iconRect0)); EXPECT_FALSE(NSIsEmptyRect(iconRect1)); EXPECT_TRUE(NSContainsRect(bounds, iconRect1)); - EXPECT_FALSE(NSIsEmptyRect(labelRect)); - EXPECT_TRUE(NSContainsRect(bounds, labelRect)); + EXPECT_FALSE(NSIsEmptyRect(lockRect)); + EXPECT_TRUE(NSContainsRect(bounds, lockRect)); EXPECT_LE(NSMaxX(drawingRect), NSMinX(iconRect1)); EXPECT_LE(NSMaxX(textFrame), NSMinX(iconRect1)); EXPECT_LE(NSMaxX(iconRect1), NSMinX(iconRect0)); - EXPECT_LE(NSMaxX(labelRect), NSMinX(iconRect0)); + EXPECT_LE(NSMaxX(iconRect0), NSMinX(lockRect)); } // Test that the cell correctly chooses the partial keyword if there's @@ -438,22 +428,11 @@ TEST_F(AutocompleteTextFieldCellTest, UsesPartialKeywordIfNarrow) { const NSString* kFullString = @"Search Engine:"; const NSString* kPartialString = @"Search Eng:"; - // Wide width chooses the full string, including an image on the - // left. + // Wide width chooses the full string. [cell setKeywordString:kFullString partialString:kPartialString availableWidth:kWidth]; EXPECT_TRUE([cell keywordString]); - EXPECT_TRUE([[[cell keywordString] string] hasSuffix:kFullString]); - EXPECT_TRUE([[cell keywordString] containsAttachments]); - - // If not enough space to include the image, uses exactly the full - // string. - CGFloat allWidth = [[cell keywordString] size].width; - [cell setKeywordString:kFullString - partialString:kPartialString - availableWidth:allWidth - 5.0]; - EXPECT_TRUE([cell keywordString]); EXPECT_TRUE([[[cell keywordString] string] isEqualToString:kFullString]); // Narrow width chooses the partial string. diff --git a/chrome/browser/cocoa/autocomplete_text_field_editor.mm b/chrome/browser/cocoa/autocomplete_text_field_editor.mm index 974b346..70aa5cd 100644 --- a/chrome/browser/cocoa/autocomplete_text_field_editor.mm +++ b/chrome/browser/cocoa/autocomplete_text_field_editor.mm @@ -33,35 +33,6 @@ class Extension; return self; } -// If the entire field is selected, drag the same data as would be -// dragged from the field's location icon. In some cases the textual -// contents will not contain relevant data (for instance, "http://" is -// stripped from URLs). -- (BOOL)dragSelectionWithEvent:(NSEvent *)event - offset:(NSSize)mouseOffset - slideBack:(BOOL)slideBack { - const NSRange allRange = NSMakeRange(0, [[self textStorage] length]); - if (NSEqualRanges(allRange, [self selectedRange])) { - NSPasteboard* pboard = [[self delegate] locationDragPasteboard]; - if (pboard) { - NSPoint p; - NSImage* image = [self dragImageForSelectionWithEvent:event origin:&p]; - - [self dragImage:image - at:p - offset:mouseOffset - event:event - pasteboard:pboard - source:self - slideBack:slideBack]; - return YES; - } - } - return [super dragSelectionWithEvent:event - offset:mouseOffset - slideBack:slideBack]; -} - - (void)copy:(id)sender { AutocompleteTextFieldObserver* observer = [self observer]; DCHECK(observer); diff --git a/chrome/browser/cocoa/autocomplete_text_field_unittest.mm b/chrome/browser/cocoa/autocomplete_text_field_unittest.mm index 1d0ae49..d695f86 100644 --- a/chrome/browser/cocoa/autocomplete_text_field_unittest.mm +++ b/chrome/browser/cocoa/autocomplete_text_field_unittest.mm @@ -4,7 +4,6 @@ #import <Cocoa/Cocoa.h> -#include "app/resource_bundle.h" #import "base/cocoa_protocols_mac.h" #include "base/scoped_nsobject.h" #import "chrome/browser/cocoa/autocomplete_text_field.h" @@ -12,7 +11,6 @@ #import "chrome/browser/cocoa/autocomplete_text_field_editor.h" #import "chrome/browser/cocoa/autocomplete_text_field_unittest_helper.h" #import "chrome/browser/cocoa/cocoa_test_helper.h" -#include "grit/theme_resources.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" @@ -22,34 +20,18 @@ using ::testing::Return; using ::testing::StrictMock; namespace { -class MockLocationIconView : public LocationBarViewMac::LocationIconView { +class MockSecurityImageView : public LocationBarViewMac::SecurityImageView { public: - MockLocationIconView() - : LocationBarViewMac::LocationIconView(NULL), - is_draggable_(false), - mouse_was_pressed_(false) {} - - // |LocationBarViewMac::LocationIconView| dragging support needs - // more setup than this test provides. - bool IsDraggable() { - return is_draggable_; - } - virtual NSPasteboard* GetDragPasteboard() { - return [NSPasteboard pasteboardWithUniqueName]; - } - void SetDraggable(bool is_draggable) { - is_draggable_ = is_draggable; - } + MockSecurityImageView(LocationBarViewMac* owner, + Profile* profile, + ToolbarModel* model) + : LocationBarViewMac::SecurityImageView(owner, profile, model) {} // We can't use gmock's MOCK_METHOD macro, because it doesn't like the // NSRect argument to OnMousePressed. virtual void OnMousePressed(NSRect bounds) { mouse_was_pressed_ = true; } - bool MouseWasPressed() { return mouse_was_pressed_; } - - private: - bool is_draggable_; bool mouse_was_pressed_; }; @@ -600,35 +582,32 @@ TEST_F(AutocompleteTextFieldTest, TripleClickSelectsAll) { } // Clicking the security icon should call its OnMousePressed. -TEST_F(AutocompleteTextFieldTest, LocationIconMouseDown) { +TEST_F(AutocompleteTextFieldObserverTest, SecurityIconMouseDown) { AutocompleteTextFieldCell* cell = [field_ autocompleteTextFieldCell]; - MockLocationIconView location_icon_view; - [cell setLocationIconView:&location_icon_view]; - location_icon_view.SetImage( - ResourceBundle::GetSharedInstance().GetNSImageNamed( - IDR_OMNIBOX_HTTPS_VALID)); - location_icon_view.SetVisible(true); + MockSecurityImageView security_image_view(NULL, NULL, NULL); + [cell setSecurityImageView:&security_image_view]; + security_image_view.SetImageShown( + LocationBarViewMac::SecurityImageView::LOCK); + security_image_view.SetVisible(true); - NSRect iconFrame([cell locationIconFrameForFrame:[field_ bounds]]); + NSRect iconFrame([cell securityImageFrameForFrame:[field_ bounds]]); NSPoint location(NSMakePoint(NSMidX(iconFrame), NSMidY(iconFrame))); - NSEvent* downEvent(Event(field_, location, NSLeftMouseDown, 1)); - NSEvent* upEvent(Event(field_, location, NSLeftMouseUp, 1)); - - // Since location icon can be dragged, the mouse-press is sent on - // mouse-up. - [NSApp postEvent:upEvent atStart:YES]; - [field_ mouseDown:downEvent]; - EXPECT_TRUE(location_icon_view.MouseWasPressed()); + NSEvent* event(Event(field_, location, NSLeftMouseDown, 1)); - // TODO(shess): Test that mouse drags are initiated if the next - // event is a drag, or if the mouse-up takes too long to arrive. + [field_ mouseDown:event]; + EXPECT_TRUE(security_image_view.mouse_was_pressed_); } // Clicking a Page Action icon should call its OnMousePressed. -TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { +TEST_F(AutocompleteTextFieldObserverTest, PageActionMouseDown) { AutocompleteTextFieldCell* cell = [field_ autocompleteTextFieldCell]; + MockSecurityImageView security_image_view(NULL, NULL, NULL); + security_image_view.SetImageShown( + LocationBarViewMac::SecurityImageView::LOCK); + [cell setSecurityImageView:&security_image_view]; + MockPageActionImageView page_action_view; NSImage* image = [NSImage imageNamed:@"NSApplicationIcon"]; page_action_view.SetImage(image); @@ -641,7 +620,8 @@ TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { list.Add(&page_action_view2); [cell setPageActionViewList:&list]; - // One page action. + // One page action, no security lock. + security_image_view.SetVisible(false); page_action_view.SetVisible(true); page_action_view2.SetVisible(false); NSRect iconFrame([cell pageActionFrameForIndex:0 inFrame:[field_ bounds]]); @@ -651,7 +631,7 @@ TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { [field_ mouseDown:event]; EXPECT_TRUE(page_action_view.MouseWasPressed()); - // Two page actions, no lock. + // Two page actions, no security lock. page_action_view2.SetVisible(true); iconFrame = [cell pageActionFrameForIndex:0 inFrame:[field_ bounds]]; location = NSMakePoint(NSMidX(iconFrame), NSMidY(iconFrame)); @@ -667,7 +647,8 @@ TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { [field_ mouseDown:event]; EXPECT_TRUE(page_action_view.MouseWasPressed()); - // Two page actions. + // Two page actions plus security lock. + security_image_view.SetVisible(true); iconFrame = [cell pageActionFrameForIndex:0 inFrame:[field_ bounds]]; location = NSMakePoint(NSMidX(iconFrame), NSMidY(iconFrame)); event = Event(field_, location, NSLeftMouseDown, 1); @@ -681,6 +662,13 @@ TEST_F(AutocompleteTextFieldTest, PageActionMouseDown) { [field_ mouseDown:event]; EXPECT_TRUE(page_action_view.MouseWasPressed()); + + iconFrame = [cell securityImageFrameForFrame:[field_ bounds]]; + location = NSMakePoint(NSMidX(iconFrame), NSMidY(iconFrame)); + event = Event(field_, location, NSLeftMouseDown, 1); + + [field_ mouseDown:event]; + EXPECT_TRUE(security_image_view.mouse_was_pressed_); } // Test that page action menus are properly returned. @@ -872,22 +860,4 @@ TEST_F(AutocompleteTextFieldObserverTest, SendsOnResignKey) { [test_window() resignKeyWindow]; } -TEST_F(AutocompleteTextFieldTest, LocationDragPasteboard) { - AutocompleteTextFieldCell* cell = [field_ autocompleteTextFieldCell]; - - MockLocationIconView location_icon_view; - location_icon_view.SetImage( - ResourceBundle::GetSharedInstance().GetNSImageNamed( - IDR_OMNIBOX_HTTPS_VALID)); - location_icon_view.SetVisible(true); - [cell setLocationIconView:&location_icon_view]; - - // Not draggable, so no pasteboard. - EXPECT_FALSE([field_ locationDragPasteboard]); - - // Gets a pasteboard when draggable. - location_icon_view.SetDraggable(true); - EXPECT_TRUE([field_ locationDragPasteboard]); -} - } // namespace diff --git a/chrome/browser/cocoa/bookmark_bubble_controller.mm b/chrome/browser/cocoa/bookmark_bubble_controller.mm index 465691e..fc2ff7b 100644 --- a/chrome/browser/cocoa/bookmark_bubble_controller.mm +++ b/chrome/browser/cocoa/bookmark_bubble_controller.mm @@ -98,7 +98,7 @@ [BrowserWindowController browserWindowControllerForWindow:parentWindow_]; [bwc lockBarVisibilityForOwner:self withAnimation:NO delay:NO]; NSWindow* window = [self window]; // completes nib load - [bubble_ setArrowLocation:kTopRight]; + [bubble_ setArrowLocation:kTopLeft]; // Insure decent positioning even in the absence of a browser controller, // which will occur for some unit tests. NSPoint arrowtip = bwc ? [bwc pointForBubbleArrowTip] : diff --git a/chrome/browser/cocoa/browser_test_helper.h b/chrome/browser/cocoa/browser_test_helper.h index b7e3e64..0420c7a 100644 --- a/chrome/browser/cocoa/browser_test_helper.h +++ b/chrome/browser/cocoa/browser_test_helper.h @@ -25,15 +25,6 @@ class BrowserTestHelper { profile_.reset(new TestingProfile()); profile_->CreateBookmarkModel(true); profile_->BlockUntilBookmarkModelLoaded(); - - // TODO(shess): These are needed in case someone creates a browser - // window off of browser_. pkasting indicates that other - // platforms use a stub |BrowserWindow| and thus don't need to do - // this. - // http://crbug.com/39725 - profile_->CreateAutocompleteClassifier(); - profile_->CreateTemplateURLModel(); - browser_.reset(new Browser(Browser::TYPE_NORMAL, profile_.get())); } diff --git a/chrome/browser/cocoa/browser_window_controller.mm b/chrome/browser/cocoa/browser_window_controller.mm index ceee615..101807d 100644 --- a/chrome/browser/cocoa/browser_window_controller.mm +++ b/chrome/browser/cocoa/browser_window_controller.mm @@ -1375,7 +1375,7 @@ } - (NSPoint)pointForBubbleArrowTip { - NSRect rect = [toolbarController_ starIconInWindowCoordinates]; + NSRect rect = [toolbarController_ starButtonInWindowCoordinates]; // Determine the point of the arrow of the bubble window. NSPoint p = rect.origin; p.x += (NSWidth(rect) / 2.0) + 1.0; // Star is not exactly in center. diff --git a/chrome/browser/cocoa/browser_window_controller_unittest.mm b/chrome/browser/cocoa/browser_window_controller_unittest.mm index d6a3dca..5b054fa 100644 --- a/chrome/browser/cocoa/browser_window_controller_unittest.mm +++ b/chrome/browser/cocoa/browser_window_controller_unittest.mm @@ -437,10 +437,10 @@ TEST_F(BrowserWindowControllerTest, TestTopRightForBubble) { NSPoint p = [controller_ pointForBubbleArrowTip]; NSRect all = [[controller_ window] frame]; - // As a sanity check make sure the point is vaguely in the top right + // As a sanity check make sure the point is vaguely in the top left // of the window. EXPECT_GT(p.y, all.origin.y + (all.size.height/2)); - EXPECT_GT(p.x, all.origin.x + (all.size.width/2)); + EXPECT_LT(p.x, all.origin.x + (all.size.width/2)); } // By the "zoom frame", we mean what Apple calls the "standard frame". diff --git a/chrome/browser/cocoa/location_bar_view_mac.h b/chrome/browser/cocoa/location_bar_view_mac.h index 66584f0..2107ec3 100644 --- a/chrome/browser/cocoa/location_bar_view_mac.h +++ b/chrome/browser/cocoa/location_bar_view_mac.h @@ -24,6 +24,7 @@ #include "third_party/skia/include/core/SkBitmap.h" @class AutocompleteTextField; +class BubblePositioner; class CommandUpdater; class ContentSettingImageModel; @class ExtensionPopupController; @@ -40,6 +41,7 @@ class LocationBarViewMac : public AutocompleteEditController, public NotificationObserver { public: LocationBarViewMac(AutocompleteTextField* field, + const BubblePositioner* bubble_positioner, CommandUpdater* command_updater, ToolbarModel* toolbar_model, Profile* profile, @@ -62,9 +64,6 @@ class LocationBarViewMac : public AutocompleteEditController, virtual void InvalidatePageActions(); virtual void SaveStateToContents(TabContents* contents); virtual void Revert(); - virtual const AutocompleteEditView* location_entry() const { - return edit_view_.get(); - } virtual AutocompleteEditView* location_entry() { return edit_view_.get(); } @@ -77,13 +76,6 @@ class LocationBarViewMac : public AutocompleteEditController, virtual ExtensionAction* GetVisiblePageAction(size_t index); virtual void TestPageActionPressed(size_t index); - // Set/Get the editable state of the field. - void SetEditable(bool editable); - bool IsEditable(); - - // Set the starred state of the bookmark star. - void SetStarred(bool starred); - // Updates the location bar. Resets the bar's permanent text and // security style, and if |should_restore_state| is true, restores // saved state from the tab (for tab switching). @@ -132,6 +124,7 @@ class LocationBarViewMac : public AutocompleteEditController, const std::wstring& keyword, const std::wstring& short_name, const bool is_keyword_hint, + const bool show_search_hint, NSImage* image); // Overridden from NotificationObserver. @@ -149,9 +142,7 @@ class LocationBarViewMac : public AutocompleteEditController, // Sets the image. void SetImage(NSImage* image); - - // Get the |resource_id| image resource and set the image. - void SetIcon(int resource_id); + void SetImage(SkBitmap* image); // Sets the label text, font, and color. |text| may be nil; |color| and // |font| are ignored if |text| is nil. @@ -165,21 +156,9 @@ class LocationBarViewMac : public AutocompleteEditController, const NSAttributedString* GetLabel() const { return label_; } bool IsVisible() const { return visible_; } - // Default size when no image is present. - virtual NSSize GetDefaultImageSize() const; - - // Returns the size of the image, else the default size. - NSSize GetImageSize() const; - // Returns the tooltip for this image view or |nil| if there is none. virtual const NSString* GetToolTip() { return nil; } - // Used to determinate if the item can act as a drag source. - virtual bool IsDraggable() { return false; } - - // The drag pasteboard to use if a drag is initiated. - virtual NSPasteboard* GetDragPasteboard() { return nil; } - // Called on mouse down. virtual void OnMousePressed(NSRect bounds) {} @@ -197,50 +176,42 @@ class LocationBarViewMac : public AutocompleteEditController, DISALLOW_COPY_AND_ASSIGN(LocationBarImageView); }; - // LocationIconView is used to display an icon to the left of the address. - class LocationIconView : public LocationBarImageView { + // SecurityImageView is used to display the lock or warning icon when the + // current URL's scheme is https. + class SecurityImageView : public LocationBarImageView { public: - explicit LocationIconView(LocationBarViewMac* owner); - virtual ~LocationIconView(); + enum Image { + LOCK = 0, + WARNING + }; - // Is draggable if the autocomplete edit view has not be changed. - virtual bool IsDraggable(); + SecurityImageView(LocationBarViewMac* owner, + Profile* profile, + ToolbarModel* model); + virtual ~SecurityImageView(); - // Drag the URL and title from the current tab. - virtual NSPasteboard* GetDragPasteboard(); + // Sets the image to the appropriate icon. + void SetImageShown(Image image); // Shows the page info dialog. virtual void OnMousePressed(NSRect bounds); private: - // The location bar view that owns us. - LocationBarViewMac* owner_; + // The lock icon shown when using HTTPS. Loaded lazily, the first time it's + // needed. + scoped_nsobject<NSImage> lock_icon_; - DISALLOW_COPY_AND_ASSIGN(LocationIconView); - }; - - // Used to display the bookmark star in the RHS. - class StarIconView : public LocationBarImageView { - public: - explicit StarIconView(CommandUpdater* command_updater); - virtual ~StarIconView() {} + // The warning icon shown when HTTPS is broken. Loaded lazily, the first + // time it's needed. + scoped_nsobject<NSImage> warning_icon_; - // Shows the bookmark bubble. - virtual void OnMousePressed(NSRect bounds); - - // Set the image and tooltip based on |starred|. - void SetStarred(bool starred); - - virtual const NSString* GetToolTip(); - - private: - // For bringing up bookmark bar. - CommandUpdater* command_updater_; // Weak, owned by Browser. + // The location bar view that owns us. + LocationBarViewMac* owner_; - // The string to show for a tooltip. - scoped_nsobject<NSString> tooltip_; + Profile* profile_; + ToolbarModel* model_; - DISALLOW_COPY_AND_ASSIGN(StarIconView); + DISALLOW_COPY_AND_ASSIGN(SecurityImageView); }; // PageActionImageView is used to display the icon for a given Page Action @@ -260,13 +231,14 @@ class LocationBarViewMac : public AutocompleteEditController, void set_preview_enabled(bool enabled) { preview_enabled_ = enabled; } - bool preview_enabled() const { return preview_enabled_; } + bool preview_enabled() { return preview_enabled_; } + // Returns the size of the image, or a default size if no image available. // When a new page action is created, all the icons are destroyed and // recreated; at this point we need to calculate sizes to lay out the // icons even though no images are available yet. For this case, we return // the default image size for a page icon. - virtual NSSize GetDefaultImageSize() const; + virtual NSSize GetPreferredImageSize(); // Either notify listeners or show a popup depending on the Page Action. virtual void OnMousePressed(NSRect bounds); @@ -412,11 +384,11 @@ class LocationBarViewMac : public AutocompleteEditController, }; private: - // Sets the location icon we should be showing. - void SetIcon(int resource_id); + // Sets the SSL icon we should be showing. + void SetSecurityIcon(ToolbarModel::Icon icon); - // Sets the label for the SSL state. - void SetSecurityLabel(); + // Sets the label for the SSL icon. + void SetSecurityIconLabel(); // Posts |notification| to the default notification center. void PostNotification(const NSString* notification); @@ -439,14 +411,8 @@ class LocationBarViewMac : public AutocompleteEditController, // The user's desired disposition for how their input should be opened. WindowOpenDisposition disposition_; - // A view that shows an icon to the left of the address. - LocationIconView location_icon_view_; - - // Security info as text which floats left of the page actions. - LocationBarImageView security_label_view_; - - // Bookmark star right of page actions. - StarIconView star_icon_view_; + // The view that shows the lock/warning when in HTTPS mode. + SecurityImageView security_image_view_; // Any installed Page Actions. PageActionViewList page_action_views_; diff --git a/chrome/browser/cocoa/location_bar_view_mac.mm b/chrome/browser/cocoa/location_bar_view_mac.mm index 6e33130..62b12d4 100644 --- a/chrome/browser/cocoa/location_bar_view_mac.mm +++ b/chrome/browser/cocoa/location_bar_view_mac.mm @@ -41,7 +41,6 @@ #include "grit/generated_resources.h" #include "grit/theme_resources.h" #include "skia/ext/skia_utils_mac.h" -#import "third_party/mozilla/NSPasteboard+Utils.h" // TODO(shess): This code is mostly copied from the gtk @@ -63,13 +62,11 @@ std::wstring GetKeywordName(Profile* profile, const std::wstring& keyword) { return std::wstring(); } -// Values for the label colors for different security states. -static const CGFloat kEVSecureTextColorRedComponent = 0.03; -static const CGFloat kEVSecureTextColorGreenComponent = 0.58; -static const CGFloat kEVSecureTextColorBlueComponent = 0.0; -static const CGFloat kSecurityErrorTextColorRedComponent = 0.63; -static const CGFloat kSecurityErrorTextColorGreenComponent = 0.0; -static const CGFloat kSecurityErrorTextColorBlueComponent = 0.0; +// Values for the green text color displayed for EV certificates, based +// on the values for kEvTextColor in location_bar_view_gtk.cc. +static const CGFloat kEvTextColorRedComponent = 0.0; +static const CGFloat kEvTextColorGreenComponent = 0.59; +static const CGFloat kEvTextColorBlueComponent = 0.08; // Build a short string to use in keyword-search when the field isn't // very big. @@ -94,18 +91,17 @@ std::wstring CalculateMinString(const std::wstring& description) { LocationBarViewMac::LocationBarViewMac( AutocompleteTextField* field, + const BubblePositioner* bubble_positioner, CommandUpdater* command_updater, ToolbarModel* toolbar_model, Profile* profile, Browser* browser) - : edit_view_(new AutocompleteEditViewMac(this, toolbar_model, profile, - command_updater, field)), + : edit_view_(new AutocompleteEditViewMac(this, bubble_positioner, + toolbar_model, profile, command_updater, field)), command_updater_(command_updater), field_(field), disposition_(CURRENT_TAB), - location_icon_view_(this), - security_label_view_(), - star_icon_view_(command_updater), + security_image_view_(this, profile, toolbar_model), page_action_views_(this, profile, toolbar_model), profile_(profile), browser_(browser), @@ -120,9 +116,7 @@ LocationBarViewMac::LocationBarViewMac( } AutocompleteTextFieldCell* cell = [field_ autocompleteTextFieldCell]; - [cell setLocationIconView:&location_icon_view_]; - [cell setSecurityLabelView:&security_label_view_]; - [cell setStarIconView:&star_icon_view_]; + [cell setSecurityImageView:&security_image_view_]; [cell setPageActionViewList:&page_action_views_]; [cell setContentSettingViewsList:&content_setting_views_]; @@ -135,9 +129,7 @@ LocationBarViewMac::~LocationBarViewMac() { // Disconnect from cell in case it outlives us. AutocompleteTextFieldCell* cell = [field_ autocompleteTextFieldCell]; [cell setPageActionViewList:NULL]; - [cell setLocationIconView:NULL]; - [cell setSecurityLabelView:NULL]; - [cell setStarIconView:NULL]; + [cell setSecurityImageView:NULL]; } std::wstring LocationBarViewMac::GetInputString() const { @@ -214,7 +206,7 @@ void LocationBarViewMac::SaveStateToContents(TabContents* contents) { void LocationBarViewMac::Update(const TabContents* contents, bool should_restore_state) { - SetIcon(edit_view_->GetIcon()); + SetSecurityIcon(toolbar_model_->GetIcon()); page_action_views_.RefreshViews(); RefreshContentSettingsViews(); // AutocompleteEditView restores state if the tab is non-NULL. @@ -260,6 +252,7 @@ void LocationBarViewMac::OnChangedImpl(AutocompleteTextField* field, const std::wstring& keyword, const std::wstring& short_name, const bool is_keyword_hint, + const bool show_search_hint, NSImage* image) { AutocompleteTextFieldCell* cell = [field autocompleteTextFieldCell]; const CGFloat availableWidth([field availableDecorationWidth]); @@ -305,6 +298,12 @@ void LocationBarViewMac::OnChangedImpl(AutocompleteTextField* field, [cell setKeywordHintPrefix:prefix image:image suffix:suffix availableWidth:availableWidth]; + } else if (show_search_hint) { + // Show a search hint right-justified in the field if there is no + // keyword. + const std::wstring hint(l10n_util::GetString(IDS_OMNIBOX_EMPTY_TEXT)); + [cell setSearchHintString:base::SysWideToNSString(hint) + availableWidth:availableWidth]; } else { // Nothing interesting to show, plain old text field. [cell clearKeywordAndHint]; @@ -331,6 +330,7 @@ void LocationBarViewMac::OnChanged() { keyword, short_name, edit_view_->model()->is_keyword_hint(), + edit_view_->model()->show_search_hint(), GetTabButtonImage()); } @@ -444,22 +444,6 @@ void LocationBarViewMac::TestPageActionPressed(size_t index) { page_action_views_.OnMousePressed(NSZeroRect, index); } -void LocationBarViewMac::SetEditable(bool editable) { - [field_ setEditable:editable ? YES : NO]; - star_icon_view_.SetVisible(editable); - UpdatePageActions(); -} - -bool LocationBarViewMac::IsEditable() { - return [field_ isEditable] ? true : false; -} - -void LocationBarViewMac::SetStarred(bool starred) { - star_icon_view_.SetStarred(starred); - [field_ updateCursorAndToolTipRects]; - [field_ resetFieldEditorFrameIfNeeded]; -} - NSImage* LocationBarViewMac::GetTabButtonImage() { if (!tab_button_image_) { SkBitmap* skiaBitmap = ResourceBundle::GetSharedInstance(). @@ -471,37 +455,44 @@ NSImage* LocationBarViewMac::GetTabButtonImage() { return tab_button_image_; } -void LocationBarViewMac::SetIcon(int resource_id) { - DCHECK(resource_id != 0); - - // The icon is always visible except when there is a keyword hint. - if (!edit_view_->model()->keyword().empty() && - !edit_view_->model()->is_keyword_hint()) { - location_icon_view_.SetVisible(false); +void LocationBarViewMac::SetSecurityIconLabel() { + std::wstring info_text; + std::wstring info_tooltip; + ToolbarModel::InfoTextType info_text_type = + toolbar_model_->GetInfoText(&info_text, &info_tooltip); + if (info_text_type == ToolbarModel::INFO_EV_TEXT) { + NSString* icon_label = base::SysWideToNSString(info_text); + NSColor* color = [NSColor colorWithCalibratedRed:kEvTextColorRedComponent + green:kEvTextColorGreenComponent + blue:kEvTextColorBlueComponent + alpha:1.0]; + security_image_view_.SetLabel(icon_label, [field_ font], color); } else { - NSImage* image = AutocompleteEditViewMac::ImageForResource(resource_id); - location_icon_view_.SetImage(image); - location_icon_view_.SetVisible(true); - SetSecurityLabel(); + security_image_view_.SetLabel(nil, nil, nil); } - [field_ resetFieldEditorFrameIfNeeded]; } -void LocationBarViewMac::SetSecurityLabel() { - if (toolbar_model_->GetSecurityLevel() == ToolbarModel::EV_SECURE) { - std::wstring security_info_text(toolbar_model_->GetEVCertName()); - NSString* icon_label = base::SysWideToNSString(security_info_text); - NSColor* color = - [NSColor colorWithCalibratedRed:kEVSecureTextColorRedComponent - green:kEVSecureTextColorGreenComponent - blue:kEVSecureTextColorBlueComponent - alpha:1.0]; - security_label_view_.SetLabel(icon_label, [field_ font], color); - security_label_view_.SetVisible(true); - } else { - security_label_view_.SetLabel(nil, nil, nil); - security_label_view_.SetVisible(false); +void LocationBarViewMac::SetSecurityIcon(ToolbarModel::Icon icon) { + switch (icon) { + case ToolbarModel::LOCK_ICON: + security_image_view_.SetImageShown(SecurityImageView::LOCK); + security_image_view_.SetVisible(true); + SetSecurityIconLabel(); + break; + case ToolbarModel::WARNING_ICON: + security_image_view_.SetImageShown(SecurityImageView::WARNING); + security_image_view_.SetVisible(true); + SetSecurityIconLabel(); + break; + case ToolbarModel::NO_ICON: + security_image_view_.SetVisible(false); + break; + default: + NOTREACHED(); + security_image_view_.SetVisible(false); + break; } + [field_ resetFieldEditorFrameIfNeeded]; } void LocationBarViewMac::Observe(NotificationType type, @@ -544,9 +535,8 @@ void LocationBarViewMac::LocationBarImageView::SetImage(NSImage* image) { image_.reset([image retain]); } -void LocationBarViewMac::LocationBarImageView::SetIcon(int resource_id) { - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); - SetImage(rb.GetNSImageNamed(resource_id)); +void LocationBarViewMac::LocationBarImageView::SetImage(SkBitmap* image) { + SetImage(gfx::SkBitmapToNSImage(*image)); } void LocationBarViewMac::LocationBarImageView::SetLabel(NSString* text, @@ -574,32 +564,43 @@ void LocationBarViewMac::LocationBarImageView::SetVisible(bool visible) { visible_ = visible; } -NSSize LocationBarViewMac::LocationBarImageView::GetDefaultImageSize() const { - return NSZeroSize; -} +// SecurityImageView------------------------------------------------------------ -NSSize LocationBarViewMac::LocationBarImageView::GetImageSize() const { - NSImage* image = GetImage(); - if (image) - return [image size]; - return GetDefaultImageSize(); -} +LocationBarViewMac::SecurityImageView::SecurityImageView( + LocationBarViewMac* owner, + Profile* profile, + ToolbarModel* model) + : lock_icon_(nil), + warning_icon_(nil), + owner_(owner), + profile_(profile), + model_(model) {} -// LocationIconView ------------------------------------------------------------ +LocationBarViewMac::SecurityImageView::~SecurityImageView() {} -LocationBarViewMac::LocationIconView::LocationIconView( - LocationBarViewMac* owner) - : owner_(owner) { +void LocationBarViewMac::SecurityImageView::SetImageShown(Image image) { + switch (image) { + case LOCK: + if (!lock_icon_.get()) { + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + lock_icon_.reset([rb.GetNSImageNamed(IDR_LOCK) retain]); + } + SetImage(lock_icon_); + break; + case WARNING: + if (!warning_icon_.get()) { + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + warning_icon_.reset([rb.GetNSImageNamed(IDR_WARNING) retain]); + } + SetImage(warning_icon_); + break; + default: + NOTREACHED(); + break; + } } -LocationBarViewMac::LocationIconView::~LocationIconView() {} - -void LocationBarViewMac::LocationIconView::OnMousePressed(NSRect bounds) { - // Do not show page info if the user has been editing the location - // bar, or the location bar is at the NTP. - if (owner_->location_entry()->IsEditingOrEmpty()) - return; - +void LocationBarViewMac::SecurityImageView::OnMousePressed(NSRect bounds) { TabContents* tab = owner_->GetTabContents(); NavigationEntry* nav_entry = tab->controller().GetActiveEntry(); if (!nav_entry) { @@ -609,57 +610,6 @@ void LocationBarViewMac::LocationIconView::OnMousePressed(NSRect bounds) { tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true); } -bool LocationBarViewMac::LocationIconView::IsDraggable() { - // Do not drag if the user has been editing the location bar, or the - // location bar is at the NTP. - if (owner_->location_entry()->IsEditingOrEmpty()) - return false; - - return true; -} - -NSPasteboard* LocationBarViewMac::LocationIconView::GetDragPasteboard() { - TabContents* tab = owner_->GetTabContents(); - DCHECK(tab); - - NSString* url = base::SysUTF8ToNSString(tab->GetURL().spec()); - NSString* title = base::SysUTF16ToNSString(tab->GetTitle()); - - NSPasteboard* pboard = [NSPasteboard pasteboardWithName:NSDragPboard]; - [pboard declareURLPasteboardWithAdditionalTypes:[NSArray array] - owner:nil]; - [pboard setDataForURL:url title:title]; - return pboard; -} - -// StarIconView----------------------------------------------------------------- - -LocationBarViewMac::StarIconView::StarIconView(CommandUpdater* command_updater) - : command_updater_(command_updater) { - SetVisible(true); - SetStarred(false); -} - -void LocationBarViewMac::StarIconView::SetStarred(bool starred) { - if (starred) { - SetImage(AutocompleteEditViewMac::ImageForResource(IDR_OMNIBOX_STAR_LIT)); - tooltip_.reset( - [l10n_util::GetNSStringWithFixup(IDS_TOOLTIP_STARRED) retain]); - } else { - SetImage(AutocompleteEditViewMac::ImageForResource(IDR_OMNIBOX_STAR)); - tooltip_.reset( - [l10n_util::GetNSStringWithFixup(IDS_TOOLTIP_STAR) retain]); - } -} - -void LocationBarViewMac::StarIconView::OnMousePressed(NSRect bounds) { - command_updater_->ExecuteCommand(IDC_BOOKMARK_PAGE); -} - -const NSString* LocationBarViewMac::StarIconView::GetToolTip() { - return tooltip_.get(); -} - // PageActionImageView---------------------------------------------------------- LocationBarViewMac::PageActionImageView::PageActionImageView( @@ -697,9 +647,14 @@ LocationBarViewMac::PageActionImageView::PageActionImageView( LocationBarViewMac::PageActionImageView::~PageActionImageView() { } -NSSize LocationBarViewMac::PageActionImageView::GetDefaultImageSize() const { - return NSMakeSize(Extension::kPageActionIconMaxSize, - Extension::kPageActionIconMaxSize); +NSSize LocationBarViewMac::PageActionImageView::GetPreferredImageSize() { + NSImage* image = GetImage(); + if (image) { + return [image size]; + } else { + return NSMakeSize(Extension::kPageActionIconMaxSize, + Extension::kPageActionIconMaxSize); + } } // Overridden from LocationBarImageView. Either notify listeners or show a @@ -913,9 +868,10 @@ void LocationBarViewMac::ContentSettingImageView::UpdateFromTabContents( const TabContents* tab_contents) { content_setting_image_model_->UpdateFromTabContents(tab_contents); if (content_setting_image_model_->is_visible()) { + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); // TODO(thakis): We should use pdfs for these icons on OSX. // http://crbug.com/35847 - SetIcon(content_setting_image_model_->get_icon()); + SetImage(rb.GetNSImageNamed(content_setting_image_model_->get_icon())); SetToolTip(base::SysUTF8ToNSString( content_setting_image_model_->get_tooltip())); SetVisible(true); @@ -939,11 +895,6 @@ void LocationBarViewMac::PageActionViewList::DeleteAll() { } void LocationBarViewMac::PageActionViewList::RefreshViews() { - if (!owner_->IsEditable()) { - DeleteAll(); - return; - } - std::vector<ExtensionAction*> page_actions; ExtensionsService* service = profile_->GetExtensionsService(); if (!service) diff --git a/chrome/browser/cocoa/location_bar_view_mac_unittest.mm b/chrome/browser/cocoa/location_bar_view_mac_unittest.mm index ecb2a7b..aec948d 100644 --- a/chrome/browser/cocoa/location_bar_view_mac_unittest.mm +++ b/chrome/browser/cocoa/location_bar_view_mac_unittest.mm @@ -81,6 +81,7 @@ TEST_F(LocationBarViewMacTest, OnChangedImpl) { NSImage* image = [NSImage imageNamed:@"NSApplicationIcon"]; const std::wstring kKeyword(L"Google"); + const NSString* kSearchHint = @"Type to search"; const NSString* kKeywordPrefix = @"Press "; const NSString* kKeywordSuffix = @" to search Google"; const NSString* kKeywordString = @"Search Google:"; @@ -89,20 +90,39 @@ TEST_F(LocationBarViewMacTest, OnChangedImpl) { [NSString stringWithFormat:@"Search Go%C:", 0x2026]; // With no special hints requested, none set. - LocationBarViewMac::OnChangedImpl(field_, std::wstring(), std::wstring(), false, image); + LocationBarViewMac::OnChangedImpl( + field_, std::wstring(), std::wstring(), false, false, image); EXPECT_FALSE([cell keywordString]); EXPECT_FALSE([cell hintString]); - // Request a keyword hint. - LocationBarViewMac::OnChangedImpl(field_, kKeyword, kKeyword, true, image); + // Request only a search hint. + LocationBarViewMac::OnChangedImpl( + field_, std::wstring(), std::wstring(), false, true, image); + EXPECT_FALSE([cell keywordString]); + EXPECT_TRUE([[[cell hintString] string] isEqualToString:kSearchHint]); + + // Request a keyword hint, same results whether |search_hint| + // parameter is true or false. + LocationBarViewMac::OnChangedImpl( + field_, kKeyword, kKeyword, true, true, image); + EXPECT_FALSE([cell keywordString]); + EXPECT_TRUE([[[cell hintString] string] hasPrefix:kKeywordPrefix]); + EXPECT_TRUE([[[cell hintString] string] hasSuffix:kKeywordSuffix]); + LocationBarViewMac::OnChangedImpl( + field_, kKeyword, kKeyword, true, false, image); EXPECT_FALSE([cell keywordString]); EXPECT_TRUE([[[cell hintString] string] hasPrefix:kKeywordPrefix]); EXPECT_TRUE([[[cell hintString] string] hasSuffix:kKeywordSuffix]); - // Request keyword-search mode. + // Request keyword-search mode, same results whether |search_hint| + // parameter is true or false. LocationBarViewMac::OnChangedImpl( - field_, kKeyword, kKeyword, false, image); - EXPECT_TRUE([[[cell keywordString] string] hasSuffix:kKeywordString]); + field_, kKeyword, kKeyword, false, true, image); + EXPECT_TRUE([[[cell keywordString] string] isEqualToString:kKeywordString]); + EXPECT_FALSE([cell hintString]); + LocationBarViewMac::OnChangedImpl( + field_, kKeyword, kKeyword, false, false, image); + EXPECT_TRUE([[[cell keywordString] string] isEqualToString:kKeywordString]); EXPECT_FALSE([cell hintString]); // Check that a partial keyword-search string is passed down in case @@ -112,13 +132,14 @@ TEST_F(LocationBarViewMacTest, OnChangedImpl) { NSRect frame([field_ frame]); frame.size.width = 10.0; [field_ setFrame:frame]; - LocationBarViewMac::OnChangedImpl(field_, kKeyword, kKeyword, false, image); + LocationBarViewMac::OnChangedImpl( + field_, kKeyword, kKeyword, false, true, image); EXPECT_TRUE([[[cell keywordString] string] isEqualToString:kPartialString]); EXPECT_FALSE([cell hintString]); // Transition back to baseline. LocationBarViewMac::OnChangedImpl( - field_, std::wstring(), std::wstring(), false, image); + field_, std::wstring(), std::wstring(), false, false, image); EXPECT_FALSE([cell keywordString]); EXPECT_FALSE([cell hintString]); } diff --git a/chrome/browser/cocoa/status_bubble_mac_unittest.mm b/chrome/browser/cocoa/status_bubble_mac_unittest.mm index 6f4dab4..3dd628e 100644 --- a/chrome/browser/cocoa/status_bubble_mac_unittest.mm +++ b/chrome/browser/cocoa/status_bubble_mac_unittest.mm @@ -141,7 +141,7 @@ TEST_F(StatusBubbleMacTest, SetURL) { EXPECT_TRUE([GetURLText() isEqualToString:@"foopy://"]); bubble_->SetURL(GURL("http://www.cnn.com"), L""); EXPECT_TRUE(IsVisible()); - EXPECT_TRUE([GetURLText() isEqualToString:@"www.cnn.com/"]); + EXPECT_TRUE([GetURLText() isEqualToString:@"http://www.cnn.com/"]); } // Test hiding bubble that's already hidden. @@ -162,7 +162,7 @@ TEST_F(StatusBubbleMacTest, SetStatusAndURL) { EXPECT_TRUE([GetBubbleViewText() isEqualToString:@"Status"]); bubble_->SetURL(GURL("http://www.nytimes.com/"), L""); EXPECT_TRUE(IsVisible()); - EXPECT_TRUE([GetBubbleViewText() isEqualToString:@"www.nytimes.com/"]); + EXPECT_TRUE([GetBubbleViewText() isEqualToString:@"http://www.nytimes.com/"]); bubble_->SetURL(GURL(), L""); EXPECT_TRUE(IsVisible()); EXPECT_TRUE([GetBubbleViewText() isEqualToString:@"Status"]); @@ -170,13 +170,13 @@ TEST_F(StatusBubbleMacTest, SetStatusAndURL) { EXPECT_FALSE(IsVisible()); bubble_->SetURL(GURL("http://www.nytimes.com/"), L""); EXPECT_TRUE(IsVisible()); - EXPECT_TRUE([GetBubbleViewText() isEqualToString:@"www.nytimes.com/"]); + EXPECT_TRUE([GetBubbleViewText() isEqualToString:@"http://www.nytimes.com/"]); bubble_->SetStatus(L"Status"); EXPECT_TRUE(IsVisible()); EXPECT_TRUE([GetBubbleViewText() isEqualToString:@"Status"]); bubble_->SetStatus(L""); EXPECT_TRUE(IsVisible()); - EXPECT_TRUE([GetBubbleViewText() isEqualToString:@"www.nytimes.com/"]); + EXPECT_TRUE([GetBubbleViewText() isEqualToString:@"http://www.nytimes.com/"]); bubble_->SetURL(GURL(), L""); EXPECT_FALSE(IsVisible()); } diff --git a/chrome/browser/cocoa/tab_strip_controller_unittest.mm b/chrome/browser/cocoa/tab_strip_controller_unittest.mm index 82cea8e..0967ae4 100644 --- a/chrome/browser/cocoa/tab_strip_controller_unittest.mm +++ b/chrome/browser/cocoa/tab_strip_controller_unittest.mm @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. diff --git a/chrome/browser/cocoa/toolbar_controller.h b/chrome/browser/cocoa/toolbar_controller.h index c038077..3c5086b 100644 --- a/chrome/browser/cocoa/toolbar_controller.h +++ b/chrome/browser/cocoa/toolbar_controller.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -22,6 +22,7 @@ class AppMenuModel; @class BackForwardMenuController; class Browser; @class BrowserActionsController; +class BubblePositioner; class CommandUpdater; @class DelayedMenuButton; class LocationBar; @@ -69,6 +70,8 @@ class ToolbarModel; // Used for monitoring the optional toolbar button prefs. scoped_ptr<ToolbarControllerInternal::PrefObserverBridge> prefObserver_; + // Used to position the omnibox bubble. + scoped_ptr<BubblePositioner> bubblePositioner_; BooleanPrefMember showHomeButton_; BooleanPrefMember showPageOptionButtons_; BOOL hasToolbar_; // If NO, we may have only the location bar. @@ -96,6 +99,7 @@ class ToolbarModel; IBOutlet DelayedMenuButton* forwardButton_; IBOutlet NSButton* reloadButton_; IBOutlet NSButton* homeButton_; + IBOutlet NSButton* starButton_; IBOutlet NSButton* goButton_; IBOutlet MenuButton* pageButton_; IBOutlet MenuButton* wrenchButton_; @@ -143,10 +147,9 @@ class ToolbarModel; // ignored. This changes the behavior of other methods, like |-view|. - (void)setHasToolbar:(BOOL)toolbar hasLocationBar:(BOOL)locBar; -// The bookmark bubble (when you click the star or hit Command-d) -// needs to know where to go. Somewhere near the star icon seems like -// a good start. -- (NSRect)starIconInWindowCoordinates; +// The bookmark bubble (when you click the star) needs to know where to go. +// Somewhere near the star button seems like a good start. +- (NSRect)starButtonInWindowCoordinates; // Returns the desired toolbar height for the given compression factor. - (CGFloat)desiredHeightForCompression:(CGFloat)compressByHeight; @@ -168,6 +171,7 @@ class ToolbarModel; - (NSArray*)toolbarViews; - (void)showOptionalHomeButton; - (void)showOptionalPageWrenchButtons; +- (gfx::Rect)locationStackBounds; // Return a hover button for the current event. - (NSButton*)hoverButtonForEvent:(NSEvent*)theEvent; @end diff --git a/chrome/browser/cocoa/toolbar_controller.mm b/chrome/browser/cocoa/toolbar_controller.mm index 085c493..0d12ee5 100644 --- a/chrome/browser/cocoa/toolbar_controller.mm +++ b/chrome/browser/cocoa/toolbar_controller.mm @@ -15,6 +15,7 @@ #include "chrome/browser/autocomplete/autocomplete_edit_view.h" #include "chrome/browser/browser.h" #include "chrome/browser/browser_window.h" +#include "chrome/browser/bubble_positioner.h" #import "chrome/browser/cocoa/autocomplete_text_field.h" #import "chrome/browser/cocoa/autocomplete_text_field_editor.h" #import "chrome/browser/cocoa/back_forward_menu_controller.h" @@ -50,6 +51,8 @@ NSString* const kBackButtonImageName = @"back_Template.pdf"; NSString* const kForwardButtonImageName = @"forward_Template.pdf"; NSString* const kReloadButtonImageName = @"reload_Template.pdf"; NSString* const kHomeButtonImageName = @"home_Template.pdf"; +NSString* const kStarButtonImageName = @"star_Template.pdf"; +NSString* const kStarButtonFillingImageName = @"starred.pdf"; NSString* const kGoButtonGoImageName = @"go_Template.pdf"; NSString* const kGoButtonStopImageName = @"stop_Template.pdf"; NSString* const kPageButtonImageName = @"menu_page_Template.pdf"; @@ -84,6 +87,26 @@ const CGFloat kAnimationDuration = 0.2; - (void)adjustLocationAndGoPositionsBy:(CGFloat)dX animate:(BOOL)animate; @end +namespace { + +// A C++ class used to correctly position the omnibox. +class BubblePositionerMac : public BubblePositioner { + public: + BubblePositionerMac(ToolbarController* controller) + : controller_(controller) { } + virtual ~BubblePositionerMac() { } + + // BubblePositioner: + virtual gfx::Rect GetLocationStackBounds() const { + return [controller_ locationStackBounds]; + } + + private: + ToolbarController* controller_; // weak, owns us +}; + +} // namespace + namespace ToolbarControllerInternal { // A C++ delegate that handles enabling/disabling menu items and handling when @@ -202,6 +225,7 @@ class PrefObserverBridge : public NotificationObserver { [forwardButton_ setImage:nsimage_cache::ImageNamed(kForwardButtonImageName)]; [reloadButton_ setImage:nsimage_cache::ImageNamed(kReloadButtonImageName)]; [homeButton_ setImage:nsimage_cache::ImageNamed(kHomeButtonImageName)]; + [starButton_ setImage:nsimage_cache::ImageNamed(kStarButtonImageName)]; [goButton_ setImage:nsimage_cache::ImageNamed(kGoButtonGoImageName)]; [pageButton_ setImage:nsimage_cache::ImageNamed(kPageButtonImageName)]; [wrenchButton_ setImage:nsimage_cache::ImageNamed(kWrenchButtonImageName)]; @@ -210,7 +234,9 @@ class PrefObserverBridge : public NotificationObserver { [wrenchButton_ setShowsBorderOnlyWhileMouseInside:YES]; [self initCommandStatus:commands_]; + bubblePositioner_.reset(new BubblePositionerMac(self)); locationBarView_.reset(new LocationBarViewMac(locationBar_, + bubblePositioner_.get(), commands_, toolbarModel_, profile_, browser_)); [locationBar_ setFont:[NSFont systemFontOfSize:[NSFont systemFontSize]]]; @@ -286,6 +312,10 @@ class PrefObserverBridge : public NotificationObserver { [[homeButton_ cell] accessibilitySetOverrideValue:description forAttribute:NSAccessibilityDescriptionAttribute]; + description = l10n_util::GetNSStringWithFixup(IDS_ACCNAME_STAR); + [[starButton_ cell] + accessibilitySetOverrideValue:description + forAttribute:NSAccessibilityDescriptionAttribute]; description = l10n_util::GetNSStringWithFixup(IDS_ACCNAME_LOCATION); [[locationBar_ cell] accessibilitySetOverrideValue:description @@ -364,6 +394,9 @@ class PrefObserverBridge : public NotificationObserver { case IDC_HOME: button = homeButton_; break; + case IDC_BOOKMARK_PAGE: + button = starButton_; + break; } [button setEnabled:enabled]; } @@ -376,6 +409,8 @@ class PrefObserverBridge : public NotificationObserver { setEnabled:commands->IsCommandEnabled(IDC_FORWARD) ? YES : NO]; [reloadButton_ setEnabled:commands->IsCommandEnabled(IDC_RELOAD) ? YES : NO]; [homeButton_ setEnabled:commands->IsCommandEnabled(IDC_HOME) ? YES : NO]; + [starButton_ + setEnabled:commands->IsCommandEnabled(IDC_BOOKMARK_PAGE) ? YES : NO]; } - (void)updateToolbarWithContents:(TabContents*)tab @@ -390,7 +425,23 @@ class PrefObserverBridge : public NotificationObserver { } - (void)setStarredState:(BOOL)isStarred { - locationBarView_->SetStarred(isStarred ? true : false); + NSImage* starImage = nil; + NSString* toolTip; + if (isStarred) { + starImage = nsimage_cache::ImageNamed(kStarButtonFillingImageName); + // Cache the string since we'll need it a lot + static NSString* starredToolTip = + [l10n_util::GetNSStringWithFixup(IDS_TOOLTIP_STARRED) retain]; + toolTip = starredToolTip; + } else { + // Cache the string since we'll need it a lot + static NSString* starToolTip = + [l10n_util::GetNSStringWithFixup(IDS_TOOLTIP_STAR) retain]; + toolTip = starToolTip; + } + + [(GradientButtonCell*)[starButton_ cell] setUnderlayImage:starImage]; + [starButton_ setToolTip:toolTip]; } - (void)setIsLoading:(BOOL)isLoading { @@ -419,7 +470,7 @@ class PrefObserverBridge : public NotificationObserver { // Make location bar not editable when in a pop-up. // TODO(viettrungluu): is this right (all the time)? - locationBarView_->SetEditable(toolbar ? true : false); + [locationBar_ setEditable:toolbar]; } - (NSView*)view { @@ -457,7 +508,7 @@ class PrefObserverBridge : public NotificationObserver { // Returns an array of views in the order of the outlets above. - (NSArray*)toolbarViews { return [NSArray arrayWithObjects:backButton_, forwardButton_, reloadButton_, - homeButton_, goButton_, pageButton_, wrenchButton_, + homeButton_, starButton_, goButton_, pageButton_, wrenchButton_, locationBar_, browserActionsContainerView_, nil]; } @@ -470,16 +521,14 @@ class PrefObserverBridge : public NotificationObserver { return frame; } -// Computes the padding between the buttons that should have a -// separation from the positions in the nib. |homeButton_| is right -// of |forwardButton_| unless it has been hidden, in which case -// |reloadButton_| is in that spot. +// Computes the padding between the buttons that should have a separation from +// the positions in the nib. Since the forward and reload buttons are always +// visible, we use those buttons as the canonical spacing. - (CGFloat)interButtonSpacing { - const NSRect forwardFrame = [forwardButton_ frame]; - NSButton* nextButton = [homeButton_ isHidden] ? reloadButton_ : homeButton_; - const NSRect nextButtonFrame = [nextButton frame]; - DCHECK_GT(NSMinX(nextButtonFrame), NSMaxX(forwardFrame)); - return NSMinX(nextButtonFrame) - NSMaxX(forwardFrame); + NSRect forwardFrame = [forwardButton_ frame]; + NSRect reloadFrame = [reloadButton_ frame]; + DCHECK(NSMinX(reloadFrame) > NSMaxX(forwardFrame)); + return NSMinX(reloadFrame) - NSMaxX(forwardFrame); } // Show or hide the home button based on the pref. @@ -498,7 +547,7 @@ class PrefObserverBridge : public NotificationObserver { if (hide) moveX *= -1; // Reverse the direction of the move. - [reloadButton_ setFrame:NSOffsetRect([reloadButton_ frame], moveX, 0)]; + [starButton_ setFrame:NSOffsetRect([starButton_ frame], moveX, 0)]; [locationBar_ setFrame:[self adjustRect:[locationBar_ frame] byAmount:moveX]]; [homeButton_ setHidden:hide]; @@ -721,8 +770,8 @@ class PrefObserverBridge : public NotificationObserver { [NSAnimationContext endGrouping]; } -- (NSRect)starIconInWindowCoordinates { - return [locationBar_ convertRect:[locationBar_ starIconFrame] toView:nil]; +- (NSRect)starButtonInWindowCoordinates { + return [starButton_ convertRect:[starButton_ bounds] toView:nil]; } - (CGFloat)desiredHeightForCompression:(CGFloat)compressByHeight { @@ -797,6 +846,31 @@ class PrefObserverBridge : public NotificationObserver { } +- (gfx::Rect)locationStackBounds { + // The number of pixels from the left or right edges of the location stack to + // "just inside the visible borders". When the omnibox bubble contents are + // aligned with this, the visible borders tacked on to the outsides will line + // up with the visible borders on the location stack. + const int kLocationStackEdgeWidth = 2; + + const NSRect locationFrame = [locationBar_ frame]; + + // Expand to include star and go buttons. Including the widths + // rather that calculating from their current placement because this + // method can be called while the resize is still rearranging the + // views involved. + const CGFloat minX = NSMinX(locationFrame) - NSWidth([starButton_ frame]); + const CGFloat maxX = NSMaxX(locationFrame) + NSWidth([goButton_ frame]); + + NSRect r = NSMakeRect(minX, NSMinY(locationFrame), maxX - minX, + NSHeight(locationFrame)); + gfx::Rect stack_bounds( + NSRectToCGRect([[self view] convertRect:r toView:nil])); + // Inset the bounds to just inside the visible edges (see comment above). + stack_bounds.Inset(kLocationStackEdgeWidth, 0); + return stack_bounds; +} + // (URLDropTargetController protocol) - (void)dropURLs:(NSArray*)urls inView:(NSView*)view at:(NSPoint)point { // TODO(viettrungluu): This code is more or less copied from the code in diff --git a/chrome/browser/cocoa/toolbar_controller_unittest.mm b/chrome/browser/cocoa/toolbar_controller_unittest.mm index 08e3176..dab5cba 100644 --- a/chrome/browser/cocoa/toolbar_controller_unittest.mm +++ b/chrome/browser/cocoa/toolbar_controller_unittest.mm @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -43,7 +43,7 @@ class ToolbarControllerTest : public CocoaTest { // Indexes that match the ordering returned by the private ToolbarController // |-toolbarViews| method. enum { - kBackIndex, kForwardIndex, kReloadIndex, kHomeIndex, kGoIndex, + kBackIndex, kForwardIndex, kReloadIndex, kHomeIndex, kStarIndex, kGoIndex, kPageIndex, kWrenchIndex, kLocationIndex, kBrowserActionContainerViewIndex }; @@ -78,6 +78,8 @@ class ToolbarControllerTest : public CocoaTest { [[views objectAtIndex:kReloadIndex] isEnabled] ? true : false); EXPECT_EQ(updater->IsCommandEnabled(IDC_HOME), [[views objectAtIndex:kHomeIndex] isEnabled] ? true : false); + EXPECT_EQ(updater->IsCommandEnabled(IDC_BOOKMARK_PAGE), + [[views objectAtIndex:kStarIndex] isEnabled] ? true : false); } BrowserTestHelper helper_; @@ -158,16 +160,16 @@ TEST_F(ToolbarControllerTest, ToggleHome) { NSView* homeButton = [[bar_ toolbarViews] objectAtIndex:kHomeIndex]; EXPECT_EQ(showHome, ![homeButton isHidden]); - NSView* reloadButton = [[bar_ toolbarViews] objectAtIndex:kReloadIndex]; + NSView* starButton = [[bar_ toolbarViews] objectAtIndex:kStarIndex]; NSView* locationBar = [[bar_ toolbarViews] objectAtIndex:kLocationIndex]; - NSRect originalReloadFrame = [reloadButton frame]; + NSRect originalStarFrame = [starButton frame]; NSRect originalLocationBarFrame = [locationBar frame]; // Toggle the pref and make sure the button changed state and the other // views moved. prefs->SetBoolean(prefs::kShowHomeButton, !showHome); EXPECT_EQ(showHome, [homeButton isHidden]); - EXPECT_NE(NSMinX(originalReloadFrame), NSMinX([reloadButton frame])); + EXPECT_NE(NSMinX(originalStarFrame), NSMinX([starButton frame])); EXPECT_NE(NSMinX(originalLocationBarFrame), NSMinX([locationBar frame])); EXPECT_NE(NSWidth(originalLocationBarFrame), NSWidth([locationBar frame])); } @@ -218,14 +220,32 @@ TEST_F(ToolbarControllerTest, DontToggleWhenNoToolbar) { EXPECT_TRUE(NSEqualRects(locationBarFrame, newLocationBarFrame)); } -TEST_F(ToolbarControllerTest, StarIconInWindowCoordinates) { - NSRect star = [bar_ starIconInWindowCoordinates]; +TEST_F(ToolbarControllerTest, StarButtonInWindowCoordinates) { + NSRect star = [bar_ starButtonInWindowCoordinates]; NSRect all = [[[bar_ view] window] frame]; // Make sure the star is completely inside the window rect EXPECT_TRUE(NSContainsRect(all, star)); } +TEST_F(ToolbarControllerTest, BubblePosition) { + NSView* locationBar = [[bar_ toolbarViews] objectAtIndex:kLocationIndex]; + + // The window frame (in window base coordinates). + NSRect all = [[[bar_ view] window] frame]; + // The frame of the location bar in window base coordinates. + NSRect locationFrame = + [locationBar convertRect:[locationBar bounds] toView:nil]; + // The frame of the location stack in window base coordinates. The horizontal + // coordinates here are used for the omnibox dropdown. + gfx::Rect locationStackFrame = [bar_ locationStackBounds]; + + // Make sure the location stack starts to the left of and ends to the right of + // the location bar. + EXPECT_LT(locationStackFrame.x(), NSMinX(locationFrame)); + EXPECT_GT(locationStackFrame.right(), NSMaxX(locationFrame)); +} + TEST_F(ToolbarControllerTest, HoverButtonForEvent) { scoped_nsobject<HitView> view([[HitView alloc] initWithFrame:NSMakeRect(0,0,100,100)]); diff --git a/chrome/browser/gtk/accelerators_gtk.cc b/chrome/browser/gtk/accelerators_gtk.cc index c93d8f0..21ffe03 100644 --- a/chrome/browser/gtk/accelerators_gtk.cc +++ b/chrome/browser/gtk/accelerators_gtk.cc @@ -151,7 +151,8 @@ const struct AcceleratorMapping { { GDK_o, IDC_OPEN_FILE, GDK_CONTROL_MASK }, { GDK_f, IDC_FIND, GDK_CONTROL_MASK }, { GDK_p, IDC_PRINT, GDK_CONTROL_MASK }, - { GDK_b, IDC_SHOW_BOOKMARK_BAR, + { GDK_b, IDC_SHOW_BOOKMARK_BAR, GDK_CONTROL_MASK }, + { GDK_b, IDC_SHOW_BOOKMARK_MANAGER, GdkModifierType(GDK_CONTROL_MASK | GDK_SHIFT_MASK) }, { GDK_F11, IDC_FULLSCREEN, GdkModifierType(0) }, { GDK_Delete, IDC_CLEAR_BROWSING_DATA, diff --git a/chrome/browser/gtk/bookmark_bubble_gtk.cc b/chrome/browser/gtk/bookmark_bubble_gtk.cc index 2bf86e2..524c9c3 100644 --- a/chrome/browser/gtk/bookmark_bubble_gtk.cc +++ b/chrome/browser/gtk/bookmark_bubble_gtk.cc @@ -219,7 +219,7 @@ BookmarkBubbleGtk::BookmarkBubbleGtk(GtkWidget* anchor, gtk_container_set_focus_child(GTK_CONTAINER(content), table); InfoBubbleGtk::ArrowLocationGtk arrow_location = - base::i18n::IsRTL() ? + !base::i18n::IsRTL() ? InfoBubbleGtk::ARROW_LOCATION_TOP_LEFT : InfoBubbleGtk::ARROW_LOCATION_TOP_RIGHT; bubble_ = InfoBubbleGtk::Show(anchor_, diff --git a/chrome/browser/gtk/browser_toolbar_gtk.cc b/chrome/browser/gtk/browser_toolbar_gtk.cc index bfe25fc..a4e79b0 100644 --- a/chrome/browser/gtk/browser_toolbar_gtk.cc +++ b/chrome/browser/gtk/browser_toolbar_gtk.cc @@ -35,6 +35,7 @@ #include "chrome/browser/gtk/location_bar_view_gtk.h" #include "chrome/browser/gtk/standard_menus.h" #include "chrome/browser/gtk/tabs/tab_strip_gtk.h" +#include "chrome/browser/gtk/toolbar_star_toggle_gtk.h" #include "chrome/browser/gtk/view_id_util.h" #include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/pref_service.h" @@ -65,13 +66,17 @@ const int kToolbarHeightLocationBarOnly = kToolbarHeight - 2; // Interior spacing between toolbar widgets. const int kToolbarWidgetSpacing = 2; +// The color used as the base[] color of the location entry during a secure +// connection. +const GdkColor kSecureColor = GDK_COLOR_RGB(255, 245, 195); + } // namespace // BrowserToolbarGtk, public --------------------------------------------------- BrowserToolbarGtk::BrowserToolbarGtk(Browser* browser, BrowserWindowGtk* window) : toolbar_(NULL), - location_bar_(new LocationBarViewGtk(browser)), + location_bar_(new LocationBarViewGtk(this, browser)), model_(browser->toolbar_model()), page_menu_model_(this, browser), app_menu_model_(this, browser), @@ -155,6 +160,11 @@ void BrowserToolbarGtk::Init(Profile* profile, gtk_box_pack_start(GTK_BOX(toolbar_), back_forward_hbox_, FALSE, FALSE, kToolbarWidgetSpacing); + reload_.reset(BuildToolbarButton(IDR_RELOAD, IDR_RELOAD_P, IDR_RELOAD_H, 0, + IDR_BUTTON_MASK, + l10n_util::GetStringUTF8(IDS_TOOLTIP_RELOAD), + GTK_STOCK_REFRESH)); + home_.reset(BuildToolbarButton(IDR_HOME, IDR_HOME_P, IDR_HOME_H, 0, IDR_BUTTON_MASK, l10n_util::GetStringUTF8(IDS_TOOLTIP_HOME), @@ -162,25 +172,23 @@ void BrowserToolbarGtk::Init(Profile* profile, gtk_util::SetButtonTriggersNavigation(home_->widget()); SetUpDragForHomeButton(); + // Group the start, omnibox, and go button into an hbox. + GtkWidget* location_hbox = gtk_hbox_new(FALSE, 0); + star_.reset(BuildStarButton(l10n_util::GetStringUTF8(IDS_TOOLTIP_STAR))); + gtk_box_pack_start(GTK_BOX(location_hbox), star_->widget(), FALSE, FALSE, 0); - reload_.reset(BuildToolbarButton(IDR_RELOAD, IDR_RELOAD_P, IDR_RELOAD_H, 0, - IDR_RELOAD_MASK, - l10n_util::GetStringUTF8(IDS_TOOLTIP_RELOAD), - GTK_STOCK_REFRESH)); - - location_hbox_ = gtk_hbox_new(FALSE, 0); location_bar_->Init(ShouldOnlyShowLocation()); - gtk_box_pack_start(GTK_BOX(location_hbox_), location_bar_->widget(), TRUE, + gtk_box_pack_start(GTK_BOX(location_hbox), location_bar_->widget(), TRUE, TRUE, 0); - g_signal_connect(location_hbox_, "expose-event", + go_.reset(new GoButtonGtk(location_bar_.get(), browser_)); + gtk_box_pack_start(GTK_BOX(location_hbox), go_->widget(), FALSE, FALSE, 0); + + g_signal_connect(location_hbox, "expose-event", G_CALLBACK(OnLocationHboxExposeThunk), this); - gtk_box_pack_start(GTK_BOX(toolbar_), location_hbox_, TRUE, TRUE, + gtk_box_pack_start(GTK_BOX(toolbar_), location_hbox, TRUE, TRUE, kToolbarWidgetSpacing + (ShouldOnlyShowLocation() ? 1 : 0)); - go_.reset(new GoButtonGtk(location_bar_.get(), browser_)); - gtk_box_pack_start(GTK_BOX(toolbar_), go_->widget(), FALSE, FALSE, 0); - if (!ShouldOnlyShowLocation()) { actions_toolbar_.reset(new BrowserActionsToolbarGtk(browser_)); gtk_box_pack_start(GTK_BOX(toolbar_), actions_toolbar_->widget(), @@ -219,16 +227,17 @@ void BrowserToolbarGtk::Init(Profile* profile, gtk_widget_show(event_box_); gtk_widget_show(alignment_); gtk_widget_show(toolbar_); - gtk_widget_show_all(location_hbox_); - gtk_widget_hide(reload_->widget()); + gtk_widget_show_all(location_hbox); + gtk_widget_hide(star_->widget()); gtk_widget_hide(go_->widget()); } else { gtk_widget_show_all(event_box_); - if (show_home_button_.GetValue()) + if (show_home_button_.GetValue()) { gtk_widget_show(home_->widget()); - else + } else { gtk_widget_hide(home_->widget()); + } if (actions_toolbar_->button_count() == 0) gtk_widget_hide(actions_toolbar_->widget()); @@ -239,7 +248,6 @@ void BrowserToolbarGtk::Init(Profile* profile, location_bar_->UpdateContentSettingsIcons(); SetViewIDs(); - theme_provider_->InitThemesFor(this); } void BrowserToolbarGtk::SetViewIDs() { @@ -248,6 +256,7 @@ void BrowserToolbarGtk::SetViewIDs() { ViewIDUtil::SetID(forward_->widget(), VIEW_ID_FORWARD_BUTTON); ViewIDUtil::SetID(reload_->widget(), VIEW_ID_RELOAD_BUTTON); ViewIDUtil::SetID(home_->widget(), VIEW_ID_HOME_BUTTON); + ViewIDUtil::SetID(star_->widget(), VIEW_ID_STAR_BUTTON); ViewIDUtil::SetID(location_bar_->widget(), VIEW_ID_LOCATION_BAR); ViewIDUtil::SetID(go_->widget(), VIEW_ID_GO_BUTTON); ViewIDUtil::SetID(page_menu_button_.get(), VIEW_ID_PAGE_MENU); @@ -303,6 +312,9 @@ void BrowserToolbarGtk::EnabledStateChangedForCommand(int id, bool enabled) { if (home_.get()) widget = home_->widget(); break; + case IDC_BOOKMARK_PAGE: + widget = star_->widget(); + break; } if (widget) { if (!enabled && GTK_WIDGET_STATE(widget) == GTK_STATE_PRELIGHT) { @@ -398,19 +410,6 @@ void BrowserToolbarGtk::Observe(NotificationType type, gtk_image_set_from_pixbuf(GTK_IMAGE(app_menu_image_), theme_provider_->GetRTLEnabledPixbufNamed(IDR_MENU_CHROME)); - // Update the spacing between the reload button and the location bar. - gtk_box_set_child_packing( - GTK_BOX(toolbar_), reload_->widget(), - FALSE, FALSE, - theme_provider_->UseGtkTheme() ? kToolbarWidgetSpacing : 0, - GTK_PACK_START); - gtk_box_set_child_packing( - GTK_BOX(toolbar_), location_hbox_, - TRUE, TRUE, - (theme_provider_->UseGtkTheme() ? kToolbarWidgetSpacing : 0) + - (ShouldOnlyShowLocation() ? 1 : 0), - GTK_PACK_START); - // When using the GTK+ theme, we need to have the event box be visible so // buttons don't get a halo color from the background. When using Chromium // themes, we want to let the background show through the toolbar. @@ -446,6 +445,38 @@ void BrowserToolbarGtk::UpdateTabContents(TabContents* contents, actions_toolbar_->Update(); } +gfx::Rect BrowserToolbarGtk::GetLocationStackBounds() const { + // The number of pixels from the left or right edges of the location stack to + // "just inside the visible borders". When the omnibox bubble contents are + // aligned with this, the visible borders tacked on to the outsides will line + // up with the visible borders on the location stack. + const int kLocationStackEdgeWidth = 1; + + GtkWidget* left; + GtkWidget* right; + if (base::i18n::IsRTL()) { + left = go_->widget(); + right = star_->widget(); + } else { + left = star_->widget(); + right = go_->widget(); + } + + gint origin_x, origin_y; + DCHECK_EQ(left->window, right->window); + gdk_window_get_origin(left->window, &origin_x, &origin_y); + + gint right_x = origin_x + right->allocation.x + right->allocation.width; + gint left_x = origin_x + left->allocation.x; + DCHECK_LE(left_x, right_x); + + gfx::Rect stack_bounds(left_x, origin_y + left->allocation.y, + right_x - left_x, left->allocation.height); + // Inset the bounds to just inside the visible edges (see comment above). + stack_bounds.Inset(kLocationStackEdgeWidth, 0); + return stack_bounds; +} + // BrowserToolbarGtk, private -------------------------------------------------- CustomDrawButton* BrowserToolbarGtk::BuildToolbarButton( @@ -467,6 +498,18 @@ CustomDrawButton* BrowserToolbarGtk::BuildToolbarButton( return button; } +ToolbarStarToggleGtk* BrowserToolbarGtk::BuildStarButton( + const std::string& localized_tooltip) { + ToolbarStarToggleGtk* button = new ToolbarStarToggleGtk(this); + + gtk_widget_set_tooltip_text(button->widget(), + localized_tooltip.c_str()); + g_signal_connect(button->widget(), "clicked", + G_CALLBACK(OnButtonClickThunk), this); + + return button; +} + GtkWidget* BrowserToolbarGtk::BuildToolbarMenuButton( const std::string& localized_tooltip, OwnedWidgetGtk* owner) { @@ -536,9 +579,42 @@ gboolean BrowserToolbarGtk::OnAlignmentExpose(GtkWidget* widget, gboolean BrowserToolbarGtk::OnLocationHboxExpose(GtkWidget* location_hbox, GdkEventExpose* e) { if (theme_provider_->UseGtkTheme()) { + // To get the proper look surrounding the location bar, we issue raw gtk + // painting commands to the theme engine. We figure out the region from the + // leftmost widget to the rightmost and then tell GTK to perform the same + // drawing commands that draw a GtkEntry on that region. + GtkWidget* star = star_->widget(); + GtkWidget* left = NULL; + GtkWidget* right = NULL; + if (ShouldOnlyShowLocation()) { + left = location_hbox; + right = location_hbox; + } else if (gtk_widget_get_direction(star) == GTK_TEXT_DIR_LTR) { + left = star_->widget(); + right = go_->widget(); + } else { + left = go_->widget(); + right = star_->widget(); + } + + GdkRectangle rec = { + left->allocation.x, + left->allocation.y, + (right->allocation.x - left->allocation.x) + right->allocation.width, + (right->allocation.y - left->allocation.y) + right->allocation.height + }; + + // Make sure our off screen entry has the correct base color if we're in + // secure mode. + gtk_widget_modify_base( + offscreen_entry_.get(), GTK_STATE_NORMAL, + (browser_->toolbar_model()->GetSchemeSecurityLevel() == + ToolbarModel::SECURE) ? + &kSecureColor : NULL); + gtk_util::DrawTextEntryBackground(offscreen_entry_.get(), location_hbox, &e->area, - &location_hbox->allocation); + &rec); } return FALSE; @@ -563,6 +639,8 @@ void BrowserToolbarGtk::OnButtonClick(GtkWidget* button) { location_bar_->Revert(); } else if (home_.get() && button == home_->widget()) { tag = IDC_HOME; + } else if (button == star_->widget()) { + tag = IDC_BOOKMARK_PAGE; } DCHECK_NE(tag, -1) << "Unexpected button click callback"; diff --git a/chrome/browser/gtk/browser_toolbar_gtk.h b/chrome/browser/gtk/browser_toolbar_gtk.h index 9c5f2c8..1ece0db 100644 --- a/chrome/browser/gtk/browser_toolbar_gtk.h +++ b/chrome/browser/gtk/browser_toolbar_gtk.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -12,8 +12,8 @@ #include "app/menus/simple_menu_model.h" #include "base/scoped_ptr.h" #include "chrome/browser/app_menu_model.h" +#include "chrome/browser/bubble_positioner.h" #include "chrome/browser/command_updater.h" -#include "chrome/browser/gtk/custom_button.h" #include "chrome/browser/gtk/menu_bar_helper.h" #include "chrome/browser/gtk/menu_gtk.h" #include "chrome/browser/page_menu_model.h" @@ -35,6 +35,7 @@ class LocationBarViewGtk; class Profile; class TabContents; class ToolbarModel; +class ToolbarStarToggleGtk; // View class that displays the GTK version of the toolbar and routes gtk // events back to the Browser. @@ -43,6 +44,7 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver, public menus::SimpleMenuModel::Delegate, public MenuGtk::Delegate, public NotificationObserver, + public BubblePositioner, public MenuBarHelper::Delegate { public: explicit BrowserToolbarGtk(Browser* browser, BrowserWindowGtk* window); @@ -111,6 +113,11 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver, // Message that we should react to a state change. void UpdateTabContents(TabContents* contents, bool should_restore_state); + ToolbarStarToggleGtk* star() { return star_.get(); } + + // BubblePositioner: + virtual gfx::Rect GetLocationStackBounds() const; + // MenuBarHelper::Delegate implementation ------------------------------------ virtual void PopupForButton(GtkWidget* button); virtual void PopupForButtonNextTo(GtkWidget* button, @@ -128,6 +135,9 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver, const std::string& localized_tooltip, const char* stock_id); + // Create the star button given the tooltip. Returns the widget created. + ToolbarStarToggleGtk* BuildStarButton(const std::string& localized_tooltip); + // Create a menu for the toolbar given the icon id and tooltip. Returns the // widget created. GtkWidget* BuildToolbarMenuButton(const std::string& localized_tooltip, @@ -181,16 +191,14 @@ class BrowserToolbarGtk : public CommandUpdater::CommandObserver, // toolbar placed side by side. GtkWidget* toolbar_; - // Contains all the widgets of the location bar. - GtkWidget* location_hbox_; - // The location bar view. scoped_ptr<LocationBarViewGtk> location_bar_; // All the buttons in the toolbar. scoped_ptr<BackForwardButtonGtk> back_, forward_; - scoped_ptr<CustomDrawButton> home_; scoped_ptr<CustomDrawButton> reload_; + scoped_ptr<CustomDrawButton> home_; + scoped_ptr<ToolbarStarToggleGtk> star_; scoped_ptr<GoButtonGtk> go_; scoped_ptr<BrowserActionsToolbarGtk> actions_toolbar_; OwnedWidgetGtk page_menu_button_, app_menu_button_; diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index e31d564..03f9228 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -57,7 +57,6 @@ #include "chrome/browser/gtk/info_bubble_gtk.h" #include "chrome/browser/gtk/infobar_container_gtk.h" #include "chrome/browser/gtk/keyword_editor_view.h" -#include "chrome/browser/gtk/location_bar_view_gtk.h" #include "chrome/browser/gtk/nine_box.h" #include "chrome/browser/gtk/options/content_settings_window_gtk.h" #include "chrome/browser/gtk/repost_form_warning_gtk.h" @@ -66,6 +65,7 @@ #include "chrome/browser/gtk/tabs/tab_strip_gtk.h" #include "chrome/browser/gtk/task_manager_gtk.h" #include "chrome/browser/gtk/theme_install_bubble_view_gtk.h" +#include "chrome/browser/gtk/toolbar_star_toggle_gtk.h" #include "chrome/browser/location_bar.h" #include "chrome/browser/page_info_window.h" #include "chrome/browser/pref_service.h" @@ -742,7 +742,7 @@ void BrowserWindowGtk::LoadingAnimationCallback() { } void BrowserWindowGtk::SetStarredState(bool is_starred) { - toolbar_->GetLocationBarView()->SetStarred(is_starred); + toolbar_->star()->SetStarred(is_starred); } gfx::Rect BrowserWindowGtk::GetRestoredBounds() const { @@ -846,7 +846,7 @@ void BrowserWindowGtk::ShowBookmarkManager() { void BrowserWindowGtk::ShowBookmarkBubble(const GURL& url, bool already_bookmarked) { - toolbar_->GetLocationBarView()->ShowStarBubble(url, !already_bookmarked); + toolbar_->star()->ShowStarBubble(url, !already_bookmarked); } bool BrowserWindowGtk::IsDownloadShelfVisible() const { diff --git a/chrome/browser/gtk/find_bar_gtk.cc b/chrome/browser/gtk/find_bar_gtk.cc index b8785da..e3bc7ff 100644 --- a/chrome/browser/gtk/find_bar_gtk.cc +++ b/chrome/browser/gtk/find_bar_gtk.cc @@ -456,7 +456,6 @@ void FindBarGtk::Observe(NotificationType type, container_height_ = -1; if (theme_provider_->UseGtkTheme()) { - gtk_widget_modify_cursor(text_entry_, NULL, NULL); gtk_widget_modify_base(text_entry_, GTK_STATE_NORMAL, NULL); gtk_widget_modify_text(text_entry_, GTK_STATE_NORMAL, NULL); @@ -483,7 +482,6 @@ void FindBarGtk::Observe(NotificationType type, gtk_misc_set_alignment(GTK_MISC(match_count_label_), 0.5, 0.5); } else { - gtk_widget_modify_cursor(text_entry_, &gfx::kGdkBlack, &gfx::kGdkGray); gtk_widget_modify_base(text_entry_, GTK_STATE_NORMAL, &kEntryBackgroundColor); gtk_widget_modify_text(text_entry_, GTK_STATE_NORMAL, diff --git a/chrome/browser/gtk/gtk_theme_provider.cc b/chrome/browser/gtk/gtk_theme_provider.cc index ab8cd00..651fdda 100644 --- a/chrome/browser/gtk/gtk_theme_provider.cc +++ b/chrome/browser/gtk/gtk_theme_provider.cc @@ -91,30 +91,10 @@ const int kThemeImages[] = { IDR_THEME_FRAME_INCOGNITO_INACTIVE, }; -// A list of icons used in the autocomplete view that should be tinted to the -// current gtk theme selection color so they stand out against the GtkEntry's -// base color. -const int kAutocompleteImages[] = { - IDR_OMNIBOX_HTTP, - IDR_OMNIBOX_HTTP_DARK, - IDR_OMNIBOX_HISTORY, - IDR_OMNIBOX_HISTORY_DARK, - IDR_OMNIBOX_SEARCH, - IDR_OMNIBOX_SEARCH_DARK, - IDR_OMNIBOX_MORE, - IDR_OMNIBOX_MORE_DARK, - IDR_OMNIBOX_STAR, - IDR_OMNIBOX_STAR_DARK, - IDR_GEOLOCATION_ALLOWED_LOCATIONBAR_ICON, - IDR_GEOLOCATION_DENIED_LOCATIONBAR_ICON -}; - bool IsOverridableImage(int id) { static std::set<int> images; if (images.empty()) { images.insert(kThemeImages, kThemeImages + arraysize(kThemeImages)); - images.insert(kAutocompleteImages, - kAutocompleteImages + arraysize(kAutocompleteImages)); const std::set<int>& buttons = BrowserThemeProvider::GetTintableToolbarButtons(); @@ -758,49 +738,15 @@ SkBitmap* GtkThemeProvider::GenerateGtkThemeBitmap(int id) const { return GenerateFrameImage( BrowserThemeProvider::TINT_FRAME_INCOGNITO_INACTIVE); } - // Two sets of omnibox icons, the one for normal http and the one for - // history, include white backgrounds (and are supposed to, for the windows - // chrome-theme). On linux, where we have all sorts of wacky themes and - // color combinations we need to deal with, switch them out with - // transparent background versions. - case IDR_OMNIBOX_HTTP: { - TintMap::const_iterator it = tints_.find( - BrowserThemeProvider::TINT_BUTTONS); - DCHECK(it != tints_.end()); - return GenerateTintedIcon(IDR_OMNIBOX_HTTP_TRANSPARENT, it->second); - } - case IDR_OMNIBOX_HISTORY: { - TintMap::const_iterator it = tints_.find( - BrowserThemeProvider::TINT_BUTTONS); - DCHECK(it != tints_.end()); - return GenerateTintedIcon(IDR_OMNIBOX_HISTORY_TRANSPARENT, it->second); - } - // In GTK mode, the dark versions of the omnibox icons only ever appear in - // the autocomplete popup and only against the current theme's GtkEntry - // base[GTK_STATE_SELECTED] color, so tint the icons so they won't collide - // with the selected color. - case IDR_OMNIBOX_HTTP_DARK: { - color_utils::HSL tint; - GetEntryForegroundHSL(&tint); - return GenerateTintedIcon(IDR_OMNIBOX_HTTP_DARK_TRANSPARENT, tint); - } - case IDR_OMNIBOX_HISTORY_DARK: { - color_utils::HSL tint; - GetEntryForegroundHSL(&tint); - return GenerateTintedIcon(IDR_OMNIBOX_HISTORY_DARK_TRANSPARENT, tint); - } - case IDR_OMNIBOX_SEARCH_DARK: - case IDR_OMNIBOX_MORE_DARK: - case IDR_OMNIBOX_STAR_DARK: { - color_utils::HSL tint; - GetEntryForegroundHSL(&tint); - return GenerateTintedIcon(id, tint); - } default: { + // This is a tinted button. Tint it and return it. + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + scoped_ptr<SkBitmap> button(new SkBitmap(*rb.GetBitmapNamed(id))); TintMap::const_iterator it = tints_.find( BrowserThemeProvider::TINT_BUTTONS); DCHECK(it != tints_.end()); - return GenerateTintedIcon(id, it->second); + return new SkBitmap(SkBitmapOperations::CreateHSLShiftedBitmap( + *button, it->second)); } } } @@ -822,20 +768,6 @@ SkBitmap* GtkThemeProvider::GenerateTabImage(int base_id) const { bg_tint, 0, 0, bg_tint.width(), bg_tint.height())); } -SkBitmap* GtkThemeProvider::GenerateTintedIcon(int base_id, - color_utils::HSL tint) const { - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); - scoped_ptr<SkBitmap> button(new SkBitmap(*rb.GetBitmapNamed(base_id))); - return new SkBitmap(SkBitmapOperations::CreateHSLShiftedBitmap( - *button, tint)); -} - -void GtkThemeProvider::GetEntryForegroundHSL(color_utils::HSL* tint) const { - GtkStyle* style = gtk_rc_get_style(fake_entry_.get()); - const GdkColor color = style->text[GTK_STATE_SELECTED]; - color_utils::SkColorToHSL(GdkToSkColor(&color), tint); -} - void GtkThemeProvider::OnDestroyChromeButton(GtkWidget* button) { std::vector<GtkWidget*>::iterator it = find(chrome_buttons_.begin(), chrome_buttons_.end(), button); diff --git a/chrome/browser/gtk/gtk_theme_provider.h b/chrome/browser/gtk/gtk_theme_provider.h index 227bbbe..23c0a57 100644 --- a/chrome/browser/gtk/gtk_theme_provider.h +++ b/chrome/browser/gtk/gtk_theme_provider.h @@ -163,13 +163,6 @@ class GtkThemeProvider : public BrowserThemeProvider, // Takes the base frame image |base_id| and tints it with |tint_id|. SkBitmap* GenerateTabImage(int base_id) const; - // Tints an icon based on tint. - SkBitmap* GenerateTintedIcon(int base_id, color_utils::HSL tint) const; - - // Returns a tint that's the color of the current highlighted text in an - // entry. - void GetEntryForegroundHSL(color_utils::HSL* tint) const; - // A notification from the GtkChromeButton GObject destructor that we should // remove it from our internal list. CHROMEGTK_CALLBACK_0(GtkThemeProvider, void, OnDestroyChromeButton); diff --git a/chrome/browser/gtk/gtk_util.cc b/chrome/browser/gtk/gtk_util.cc index 4d5796a..3013b12 100644 --- a/chrome/browser/gtk/gtk_util.cc +++ b/chrome/browser/gtk/gtk_util.cc @@ -17,13 +17,11 @@ #include "base/i18n/rtl.h" #include "base/linux_util.h" #include "base/logging.h" -#include "chrome/browser/autocomplete/autocomplete.h" #include "chrome/browser/browser_list.h" #include "chrome/browser/browser_window.h" #include "chrome/browser/gtk/cairo_cached_surface.h" #include "chrome/browser/gtk/gtk_theme_provider.h" #include "chrome/common/renderer_preferences.h" -#include "googleurl/src/gurl.h" #include "grit/theme_resources.h" #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkColor.h" @@ -871,32 +869,4 @@ guint32 XTimeNow() { return ts.tv_sec * 1000 + ts.tv_nsec / 1000000; } -bool URLFromPrimarySelection(Profile* profile, GURL* url) { - GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); - DCHECK(clipboard); - gchar* selection_text = gtk_clipboard_wait_for_text(clipboard); - if (!selection_text) - return false; - - // Use autocomplete to clean up the text, going so far as to turn it into - // a search query if necessary. - AutocompleteController controller(profile); - controller.Start(UTF8ToWide(selection_text), - std::wstring(), // desired_tld - true, // prevent_inline_autocomplete - false, // prefer_keyword - true); // synchronous_only - g_free(selection_text); - const AutocompleteResult& result = controller.result(); - AutocompleteResult::const_iterator it = result.default_match(); - if (it == result.end()) - return false; - - if (!it->destination_url.is_valid()) - return false; - - *url = it->destination_url; - return true; -} - } // namespace gtk_util diff --git a/chrome/browser/gtk/gtk_util.h b/chrome/browser/gtk/gtk_util.h index 1d8b6d3..e28778a 100644 --- a/chrome/browser/gtk/gtk_util.h +++ b/chrome/browser/gtk/gtk_util.h @@ -17,8 +17,6 @@ typedef struct _GtkWidget GtkWidget; class GtkThemeProvider; -class GURL; -class Profile; struct RendererPreferences; // from common/renderer_preferences.h namespace event_utils { @@ -272,11 +270,6 @@ void SetWMLastUserActionTime(GtkWindow* window); // function, instead using the timestamp from the latest GDK event. guint32 XTimeNow(); -// Uses the autocomplete controller for |profile| to convert the contents of the -// PRIMARY selection to a parsed URL. Returns true and sets |url| on success, -// otherwise returns false. -bool URLFromPrimarySelection(Profile* profile, GURL* url); - } // namespace gtk_util #endif // CHROME_BROWSER_GTK_GTK_UTIL_H_ diff --git a/chrome/browser/gtk/location_bar_view_gtk.cc b/chrome/browser/gtk/location_bar_view_gtk.cc index 59da90c..453a8f54 100644 --- a/chrome/browser/gtk/location_bar_view_gtk.cc +++ b/chrome/browser/gtk/location_bar_view_gtk.cc @@ -6,7 +6,6 @@ #include <string> -#include "app/gtk_dnd_util.h" #include "app/l10n_util.h" #include "app/resource_bundle.h" #include "base/basictypes.h" @@ -27,7 +26,6 @@ #include "chrome/browser/extensions/extension_browser_event_router.h" #include "chrome/browser/extensions/extension_tabs_module.h" #include "chrome/browser/extensions/extensions_service.h" -#include "chrome/browser/gtk/bookmark_bubble_gtk.h" #include "chrome/browser/gtk/cairo_cached_surface.h" #include "chrome/browser/gtk/content_setting_bubble_gtk.h" #include "chrome/browser/gtk/extension_popup_gtk.h" @@ -35,7 +33,6 @@ #include "chrome/browser/gtk/gtk_theme_provider.h" #include "chrome/browser/gtk/gtk_util.h" #include "chrome/browser/gtk/rounded_window.h" -#include "chrome/browser/gtk/view_id_util.h" #include "chrome/browser/profile.h" #include "chrome/browser/search_engines/template_url.h" #include "chrome/browser/search_engines/template_url_model.h" @@ -76,12 +73,10 @@ const int kHboxBorder = 4; // Padding between the elements in the bar. static const int kInnerPadding = 4; -// Colors used to draw the EV certificate rounded bubble. -const GdkColor kEvSecureTextColor = GDK_COLOR_RGB(0x07, 0x95, 0x00); -const GdkColor kEvSecureBackgroundColor = GDK_COLOR_RGB(0xef, 0xfc, 0xef); -const GdkColor kEvSecureBorderColor = GDK_COLOR_RGB(0x90, 0xc3, 0x90); - -// Colors used to draw the Tab to Search rounded bubble. +// TODO(deanm): Eventually this should be painted with the background png +// image, but for now we get pretty close by just drawing a solid border. +const GdkColor kBorderColor = GDK_COLOR_RGB(0xbe, 0xc8, 0xd4); +const GdkColor kEvTextColor = GDK_COLOR_RGB(0x00, 0x96, 0x14); // Green. const GdkColor kKeywordBackgroundColor = GDK_COLOR_RGB(0xf0, 0xf4, 0xfa); const GdkColor kKeywordBorderColor = GDK_COLOR_RGB(0xcb, 0xde, 0xf7); @@ -136,22 +131,19 @@ std::wstring CalculateMinString(const std::wstring& description) { // LocationBarViewGtk // static -const GdkColor LocationBarViewGtk::kBackgroundColor = - GDK_COLOR_RGB(255, 255, 255); - -LocationBarViewGtk::LocationBarViewGtk(Browser* browser) - : star_image_(NULL), - starred_(false), - security_icon_event_box_(NULL), - ev_secure_icon_image_(NULL), - secure_icon_image_(NULL), +const GdkColor LocationBarViewGtk::kBackgroundColorByLevel[3] = { + GDK_COLOR_RGB(255, 245, 195), // SecurityLevel SECURE: Yellow. + GDK_COLOR_RGB(255, 255, 255), // SecurityLevel NORMAL: White. + GDK_COLOR_RGB(255, 255, 255), // SecurityLevel INSECURE: White. +}; + +LocationBarViewGtk::LocationBarViewGtk( + const BubblePositioner* bubble_positioner, + Browser* browser) + : security_icon_event_box_(NULL), + security_lock_icon_image_(NULL), security_warning_icon_image_(NULL), - security_error_icon_image_(NULL), - site_type_alignment_(NULL), - site_type_event_box_(NULL), - location_icon_image_(NULL), - enable_location_drag_(false), - security_info_label_(NULL), + info_label_(NULL), tab_to_search_box_(NULL), tab_to_search_full_label_(NULL), tab_to_search_partial_label_(NULL), @@ -159,10 +151,12 @@ LocationBarViewGtk::LocationBarViewGtk(Browser* browser) tab_to_search_hint_leading_label_(NULL), tab_to_search_hint_icon_(NULL), tab_to_search_hint_trailing_label_(NULL), + type_to_search_hint_(NULL), profile_(NULL), command_updater_(browser->command_updater()), toolbar_model_(browser->toolbar_model()), browser_(browser), + bubble_positioner_(bubble_positioner), disposition_(CURRENT_TAB), transition_(PageTransition::TYPED), first_run_bubble_(this), @@ -170,12 +164,12 @@ LocationBarViewGtk::LocationBarViewGtk(Browser* browser) theme_provider_(NULL), entry_box_width_(0), show_selected_keyword_(false), - show_keyword_hint_(false) { + show_keyword_hint_(false), + show_search_hint_(false) { } LocationBarViewGtk::~LocationBarViewGtk() { // All of our widgets should have be children of / owned by the alignment. - star_.Destroy(); hbox_.Destroy(); content_setting_hbox_.Destroy(); page_action_hbox_.Destroy(); @@ -183,8 +177,14 @@ LocationBarViewGtk::~LocationBarViewGtk() { void LocationBarViewGtk::Init(bool popup_window_mode) { popup_window_mode_ = popup_window_mode; + location_entry_.reset(new AutocompleteEditViewGtk(this, + toolbar_model_, + profile_, + command_updater_, + popup_window_mode_, + bubble_positioner_)); + location_entry_->Init(); - // Create the widget first, so we can pass it to the AutocompleteEditViewGtk. hbox_.Own(gtk_hbox_new(FALSE, kInnerPadding)); gtk_container_set_border_width(GTK_CONTAINER(hbox_.get()), kHboxBorder); // We will paint for the alignment, to paint the background and border. @@ -193,23 +193,30 @@ void LocationBarViewGtk::Init(bool popup_window_mode) { // the home button on/off. gtk_widget_set_redraw_on_allocate(hbox_.get(), TRUE); - // Now initialize the AutocompleteEditViewGtk. - location_entry_.reset(new AutocompleteEditViewGtk(this, - toolbar_model_, - profile_, - command_updater_, - popup_window_mode_, - hbox_.get())); - location_entry_->Init(); + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + security_lock_icon_image_ = gtk_image_new_from_pixbuf( + rb.GetPixbufNamed(IDR_LOCK)); + gtk_widget_set_name(security_lock_icon_image_, "chrome-security-lock-icon"); + gtk_widget_hide(GTK_WIDGET(security_lock_icon_image_)); + security_warning_icon_image_ = gtk_image_new(); + gtk_widget_set_name(security_warning_icon_image_, + "chrome-security-warning-icon"); + gtk_widget_hide(GTK_WIDGET(security_warning_icon_image_)); + + info_label_ = gtk_label_new(NULL); + gtk_widget_modify_base(info_label_, GTK_STATE_NORMAL, + &LocationBarViewGtk::kBackgroundColorByLevel[0]); + gtk_widget_hide(GTK_WIDGET(info_label_)); + gtk_widget_set_name(info_label_, + "chrome-location-bar-info-label"); g_signal_connect(hbox_.get(), "expose-event", G_CALLBACK(&HandleExposeThunk), this); - BuildSiteTypeArea(); - - // Put |tab_to_search_box_|, |location_entry_|, and |tab_to_search_hint_| into - // a sub hbox, so that we can make this part horizontally shrinkable without - // affecting other elements in the location bar. + // Put |tab_to_search_box_|, |location_entry_|, |tab_to_search_hint_| and + // |type_to_search_hint_| into a sub hbox, so that we can make this part + // horizontally shrinkable without affecting other elements in the location + // bar. GtkWidget* entry_box = gtk_hbox_new(FALSE, kInnerPadding); gtk_widget_show(entry_box); gtk_widget_set_size_request(entry_box, 0, -1); @@ -230,22 +237,13 @@ void LocationBarViewGtk::Init(bool popup_window_mode) { tab_to_search_full_label_, 0, 0); gtk_fixed_put(GTK_FIXED(tab_to_search_label_fixed), tab_to_search_partial_label_, 0, 0); - GtkWidget* tab_to_search_hbox = gtk_hbox_new(FALSE, 0); - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); - GtkWidget* tab_to_search_lens = gtk_image_new_from_pixbuf( - rb.GetPixbufNamed(IDR_OMNIBOX_SEARCH)); - gtk_box_pack_start(GTK_BOX(tab_to_search_hbox), tab_to_search_lens, - FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(tab_to_search_hbox), tab_to_search_label_fixed, - FALSE, FALSE, 0); // This creates a box around the keyword text with a border, background color, // and padding around the text. tab_to_search_box_ = gtk_util::CreateGtkBorderBin( - tab_to_search_hbox, NULL, 1, 1, 1, 3); + tab_to_search_label_fixed, NULL, 1, 1, 2, 2); gtk_widget_set_name(tab_to_search_box_, "chrome-tab-to-search-box"); - gtk_util::ActAsRoundedWindow(tab_to_search_box_, kKeywordBorderColor, - kCornerSize, + gtk_util::ActAsRoundedWindow(tab_to_search_box_, kBorderColor, kCornerSize, gtk_util::ROUNDED_ALL, gtk_util::BORDER_ALL); // Show all children widgets of |tab_to_search_box_| initially, except // |tab_to_search_partial_label_|. @@ -271,7 +269,7 @@ void LocationBarViewGtk::Init(bool popup_window_mode) { kBottomMargin + kBorderThickness, 0, 0); } - gtk_container_add(GTK_CONTAINER(align), location_entry_->GetNativeView()); + gtk_container_add(GTK_CONTAINER(align), location_entry_->widget()); gtk_box_pack_start(GTK_BOX(entry_box), align, TRUE, TRUE, 0); // Tab to search notification (the hint on the right hand side). @@ -299,11 +297,36 @@ void LocationBarViewGtk::Init(bool popup_window_mode) { // doesn't work, someone is probably calling show_all on our parent box. gtk_box_pack_end(GTK_BOX(entry_box), tab_to_search_hint_, FALSE, FALSE, 0); - // We don't show the star in popups, app windows, etc. - if (!ShouldOnlyShowLocation()) { - CreateStarButton(); - gtk_box_pack_end(GTK_BOX(hbox_.get()), star_.get(), FALSE, FALSE, 0); - } + // Type to search hint is on the right hand side. + type_to_search_hint_ = + gtk_label_new(l10n_util::GetStringUTF8(IDS_OMNIBOX_EMPTY_TEXT).c_str()); + gtk_widget_set_sensitive(type_to_search_hint_, FALSE); + gtk_box_pack_end(GTK_BOX(entry_box), type_to_search_hint_, FALSE, FALSE, 0); + + // Pack info_label_ and security icons in hbox. We hide/show them + // by SetSecurityIcon() and SetInfoText(). + gtk_box_pack_end(GTK_BOX(hbox_.get()), info_label_, FALSE, FALSE, 0); + + GtkWidget* security_icon_box = gtk_hbox_new(FALSE, 0); + gtk_box_pack_start(GTK_BOX(security_icon_box), + security_lock_icon_image_, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(security_icon_box), + security_warning_icon_image_, FALSE, FALSE, 0); + + // GtkImage is a "no window" widget and requires a GtkEventBox to receive + // events. + security_icon_event_box_ = gtk_event_box_new(); + // Make the event box not visible so it does not paint a background. + gtk_event_box_set_visible_window(GTK_EVENT_BOX(security_icon_event_box_), + FALSE); + g_signal_connect(security_icon_event_box_, "button-press-event", + G_CALLBACK(&OnSecurityIconPressed), this); + + gtk_container_add(GTK_CONTAINER(security_icon_event_box_), security_icon_box); + gtk_widget_set_name(security_icon_event_box_, + "chrome-security-icon-eventbox"); + gtk_box_pack_end(GTK_BOX(hbox_.get()), security_icon_event_box_, + FALSE, FALSE, 0); content_setting_hbox_.Own(gtk_hbox_new(FALSE, kInnerPadding)); gtk_widget_set_name(content_setting_hbox_.get(), @@ -327,7 +350,9 @@ void LocationBarViewGtk::Init(bool popup_window_mode) { FALSE, FALSE, 0); // Until we switch to vector graphics, force the font size of labels. - gtk_util::ForceFontSizePixels(security_info_label_, + gtk_util::ForceFontSizePixels(type_to_search_hint_, + browser_defaults::kAutocompleteEditFontPixelSize); + gtk_util::ForceFontSizePixels(info_label_, browser_defaults::kAutocompleteEditFontPixelSize); gtk_util::ForceFontSizePixels(tab_to_search_full_label_, browser_defaults::kAutocompleteEditFontPixelSize); @@ -337,6 +362,8 @@ void LocationBarViewGtk::Init(bool popup_window_mode) { browser_defaults::kAutocompleteEditFontPixelSize); gtk_util::ForceFontSizePixels(tab_to_search_hint_trailing_label_, browser_defaults::kAutocompleteEditFontPixelSize); + gtk_util::ForceFontSizePixels(type_to_search_hint_, + browser_defaults::kAutocompleteEditFontPixelSize); registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED, @@ -345,71 +372,6 @@ void LocationBarViewGtk::Init(bool popup_window_mode) { theme_provider_->InitThemesFor(this); } -void LocationBarViewGtk::BuildSiteTypeArea() { - location_icon_image_ = gtk_image_new(); - gtk_widget_set_name(location_icon_image_, "chrome-location-icon"); - gtk_widget_show(location_icon_image_); - - security_info_label_ = gtk_label_new(NULL); - gtk_widget_modify_fg(GTK_WIDGET(security_info_label_), GTK_STATE_NORMAL, - &kEvSecureTextColor); - gtk_widget_set_name(security_info_label_, - "chrome-location-bar-security-info-label"); - - GtkWidget* site_type_hbox = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(site_type_hbox), location_icon_image_, - FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(site_type_hbox), security_info_label_, - FALSE, FALSE, kCornerSize); - - site_type_event_box_ = gtk_event_box_new(); - gtk_widget_modify_bg(site_type_event_box_, GTK_STATE_NORMAL, - &kEvSecureBackgroundColor); - - // Make the event box not visible so it does not paint a background. - gtk_event_box_set_visible_window(GTK_EVENT_BOX(site_type_event_box_), - FALSE); - gtk_widget_set_name(site_type_event_box_, - "chrome-location-icon-eventbox"); - gtk_container_add(GTK_CONTAINER(site_type_event_box_), - site_type_hbox); - - // Put the event box in an alignment to get the padding correct. - site_type_alignment_ = gtk_alignment_new(0, 0, 1, 1); - gtk_alignment_set_padding(GTK_ALIGNMENT(site_type_alignment_), - 0, 0, 1, 0); - gtk_container_add(GTK_CONTAINER(site_type_alignment_), - site_type_event_box_); - gtk_box_pack_start(GTK_BOX(hbox_.get()), site_type_alignment_, - FALSE, FALSE, 0); - - // Set up drags. -} - -void LocationBarViewGtk::SetSiteTypeDragSource() { - bool enable = !location_entry()->IsEditingOrEmpty(); - if (enable_location_drag_ == enable) - return; - enable_location_drag_ = enable; - - if (!enable) { - gtk_drag_source_unset(site_type_event_box_); - return; - } - - gtk_drag_source_set(site_type_event_box_, GDK_BUTTON1_MASK, - NULL, 0, GDK_ACTION_COPY); - gtk_dnd_util::SetSourceTargetListFromCodeMask(site_type_event_box_, - gtk_dnd_util::TEXT_PLAIN | - gtk_dnd_util::TEXT_URI_LIST | - gtk_dnd_util::CHROME_NAMED_URL); - - g_signal_connect(site_type_event_box_, "button-release-event", - G_CALLBACK(&OnIconReleasedThunk), this); - g_signal_connect(site_type_event_box_, "drag-data-get", - G_CALLBACK(&OnIconDragDataThunk), this); -} - void LocationBarViewGtk::SetProfile(Profile* profile) { profile_ = profile; } @@ -448,9 +410,10 @@ GtkWidget* LocationBarViewGtk::GetPageActionWidget( } void LocationBarViewGtk::Update(const TabContents* contents) { - UpdateSiteTypeArea(); + SetSecurityIcon(toolbar_model_->GetIcon()); UpdateContentSettingsIcons(); UpdatePageActions(); + SetInfoText(); location_entry_->Update(contents); // The security level (background color) could have changed, etc. if (theme_provider_->UseGtkTheme()) { @@ -498,12 +461,12 @@ void LocationBarViewGtk::OnAutocompleteAccept(const GURL& url, } void LocationBarViewGtk::OnChanged() { - UpdateSiteTypeArea(); - const std::wstring keyword(location_entry_->model()->keyword()); const bool is_keyword_hint = location_entry_->model()->is_keyword_hint(); show_selected_keyword_ = !keyword.empty() && !is_keyword_hint; show_keyword_hint_ = !keyword.empty() && is_keyword_hint; + show_search_hint_ = location_entry_->model()->show_search_hint(); + DCHECK(keyword.empty() || !show_search_hint_); if (show_selected_keyword_) SetKeywordLabel(keyword); @@ -514,20 +477,6 @@ void LocationBarViewGtk::OnChanged() { AdjustChildrenVisibility(); } -void LocationBarViewGtk::CreateStarButton() { - star_.Own(gtk_event_box_new()); - gtk_event_box_set_visible_window(GTK_EVENT_BOX(star_.get()), FALSE); - star_image_ = gtk_image_new(); - gtk_container_add(GTK_CONTAINER(star_.get()), star_image_); - gtk_widget_show_all(star_.get()); - ViewIDUtil::SetID(star_.get(), VIEW_ID_STAR_BUTTON); - - gtk_widget_set_tooltip_text(star_.get(), - l10n_util::GetStringUTF8(IDS_TOOLTIP_STAR).c_str()); - g_signal_connect(star_.get(), "button-press-event", - G_CALLBACK(OnStarButtonPressThunk), this); -} - void LocationBarViewGtk::OnInputInProgress(bool in_progress) { // This is identical to the Windows code, except that we don't proxy the call // back through the Toolbar, and just access the model here. @@ -662,7 +611,7 @@ void LocationBarViewGtk::UpdatePageActions() { // If there are no visible page actions, hide the hbox too, so that it does // not affect the padding in the location bar. - if (PageActionVisibleCount() && !ShouldOnlyShowLocation()) + if (PageActionVisibleCount()) gtk_widget_show(page_action_hbox_.get()); else gtk_widget_hide(page_action_hbox_.get()); @@ -741,6 +690,11 @@ void LocationBarViewGtk::Observe(NotificationType type, gtk_util::SetLabelColor(tab_to_search_partial_label_, NULL); gtk_util::SetLabelColor(tab_to_search_hint_leading_label_, NULL); gtk_util::SetLabelColor(tab_to_search_hint_trailing_label_, NULL); + gtk_util::SetLabelColor(type_to_search_hint_, NULL); + + gtk_image_set_from_stock(GTK_IMAGE(security_warning_icon_image_), + GTK_STOCK_DIALOG_WARNING, + GTK_ICON_SIZE_SMALL_TOOLBAR); } else { gtk_widget_modify_bg(tab_to_search_box_, GTK_STATE_NORMAL, &kKeywordBackgroundColor); @@ -753,11 +707,12 @@ void LocationBarViewGtk::Observe(NotificationType type, &kHintTextColor); gtk_util::SetLabelColor(tab_to_search_hint_trailing_label_, &kHintTextColor); - } + gtk_util::SetLabelColor(type_to_search_hint_, &kHintTextColor); - UpdateStarIcon(); - UpdateSiteTypeArea(); - UpdateContentSettingsIcons(); + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + gtk_image_set_from_pixbuf(GTK_IMAGE(security_warning_icon_image_), + rb.GetPixbufNamed(IDR_WARNING)); + } } gboolean LocationBarViewGtk::HandleExpose(GtkWidget* widget, @@ -790,7 +745,8 @@ gboolean LocationBarViewGtk::HandleExpose(GtkWidget* widget, alloc_rect->width, alloc_rect->height - kTopMargin - kBottomMargin - 2 * kBorderThickness); - gdk_cairo_set_source_color(cr, const_cast<GdkColor*>(&kBackgroundColor)); + gdk_cairo_set_source_color(cr, const_cast<GdkColor*>( + &kBackgroundColorByLevel[toolbar_model_->GetSchemeSecurityLevel()])); cairo_fill(cr); cairo_destroy(cr); @@ -799,52 +755,45 @@ gboolean LocationBarViewGtk::HandleExpose(GtkWidget* widget, return FALSE; // Continue propagating the expose. } -void LocationBarViewGtk::UpdateSiteTypeArea() { - // The icon is always visible except when the |tab_to_search_box_| is visible. - if (!location_entry_->model()->keyword().empty() && - !location_entry_->model()->is_keyword_hint()) { - gtk_widget_hide(site_type_area()); - return; +void LocationBarViewGtk::SetSecurityIcon(ToolbarModel::Icon icon) { + gtk_widget_hide(GTK_WIDGET(security_lock_icon_image_)); + gtk_widget_hide(GTK_WIDGET(security_warning_icon_image_)); + if (icon != ToolbarModel::NO_ICON) + gtk_widget_show(GTK_WIDGET(security_icon_event_box_)); + else + gtk_widget_hide(GTK_WIDGET(security_icon_event_box_)); + switch (icon) { + case ToolbarModel::LOCK_ICON: + gtk_widget_show(GTK_WIDGET(security_lock_icon_image_)); + break; + case ToolbarModel::WARNING_ICON: + gtk_widget_show(GTK_WIDGET(security_warning_icon_image_)); + break; + case ToolbarModel::NO_ICON: + break; + default: + NOTREACHED(); + break; } +} - int resource_id = location_entry_->GetIcon(); - gtk_image_set_from_pixbuf(GTK_IMAGE(location_icon_image_), - theme_provider_->GetPixbufNamed(resource_id)); - - if (toolbar_model_->GetSecurityLevel() == ToolbarModel::EV_SECURE) { - if (!gtk_util::IsActingAsRoundedWindow(site_type_event_box_)) { - // Fun fact: If wee try to make |site_type_event_box_| act as a - // rounded window while it doesn't have a visible window, GTK interprets - // this as a sign that it should paint the skyline texture into the - // omnibox. - gtk_event_box_set_visible_window(GTK_EVENT_BOX(site_type_event_box_), - TRUE); - - gtk_util::ActAsRoundedWindow(site_type_event_box_, - kEvSecureBorderColor, - kCornerSize, - gtk_util::ROUNDED_ALL, - gtk_util::BORDER_ALL); - } - - std::wstring info_text = toolbar_model_->GetEVCertName(); - gtk_label_set_text(GTK_LABEL(security_info_label_), - WideToUTF8(info_text).c_str()); - gtk_widget_show(GTK_WIDGET(security_info_label_)); +void LocationBarViewGtk::SetInfoText() { + std::wstring info_text, info_tooltip; + ToolbarModel::InfoTextType info_text_type = + toolbar_model_->GetInfoText(&info_text, &info_tooltip); + if (info_text_type == ToolbarModel::INFO_EV_TEXT) { + gtk_widget_modify_fg(GTK_WIDGET(info_label_), GTK_STATE_NORMAL, + &kEvTextColor); + gtk_widget_show(GTK_WIDGET(info_label_)); } else { - if (gtk_util::IsActingAsRoundedWindow(site_type_event_box_)) { - gtk_util::StopActingAsRoundedWindow(site_type_event_box_); - - gtk_event_box_set_visible_window(GTK_EVENT_BOX(site_type_event_box_), - FALSE); - } - - gtk_widget_hide(GTK_WIDGET(security_info_label_)); + DCHECK_EQ(info_text_type, ToolbarModel::INFO_NO_INFO); + DCHECK(info_text.empty()); + // Clear info_text. Should we reset the fg here? + gtk_widget_hide(GTK_WIDGET(info_label_)); } - - gtk_widget_show(site_type_area()); - - SetSiteTypeDragSource(); + gtk_label_set_text(GTK_LABEL(info_label_), WideToUTF8(info_text).c_str()); + gtk_widget_set_tooltip_text(GTK_WIDGET(info_label_), + WideToUTF8(info_tooltip).c_str()); } void LocationBarViewGtk::SetKeywordLabel(const std::wstring& keyword) { @@ -915,114 +864,46 @@ void LocationBarViewGtk::ShowFirstRunBubbleInternal( FirstRunBubble::Show(profile_, anchor, rect, bubble_type); } -gboolean LocationBarViewGtk::OnIconReleased(GtkWidget* sender, - GdkEventButton* event) { - TabContents* tab = GetTabContents(); - - if (event->button == 1) { - // Do not show page info if the user has been editing the location - // bar, or the location bar is at the NTP. - if (location_entry()->IsEditingOrEmpty()) - return FALSE; - - // (0,0) event coordinates indicates that the release came at the end of - // a drag. - if (event->x == 0 && event->y == 0) - return FALSE; - - NavigationEntry* nav_entry = tab->controller().GetActiveEntry(); - if (!nav_entry) { - NOTREACHED(); - return FALSE; - } - tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true); - return TRUE; - } else if (event->button == 2) { - // When the user middle clicks on the location icon, try to open the - // contents of the PRIMARY selection in the current tab. - // If the click was outside our bounds, do nothing. - if (!gtk_util::WidgetBounds(sender).Contains( - gfx::Point(event->x, event->y))) { - return FALSE; - } - - GURL url; - if (!gtk_util::URLFromPrimarySelection(profile_, &url)) - return FALSE; - - tab->OpenURL(url, GURL(), CURRENT_TAB, PageTransition::TYPED); - return TRUE; +// static +gboolean LocationBarViewGtk::OnSecurityIconPressed( + GtkWidget* sender, + GdkEventButton* event, + LocationBarViewGtk* location_bar) { + TabContents* tab = location_bar->GetTabContents(); + NavigationEntry* nav_entry = tab->controller().GetActiveEntry(); + if (!nav_entry) { + NOTREACHED(); + return true; } - - return FALSE; -} - -void LocationBarViewGtk::OnIconDragData(GtkWidget* sender, - GdkDragContext* context, - GtkSelectionData* data, - guint info, guint time) { - TabContents* tab = GetTabContents(); - if (!tab) - return; - gtk_dnd_util::WriteURLWithName(data, tab->GetURL(), tab->GetTitle(), info); + tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true); + return true; } -void LocationBarViewGtk::OnEntryBoxSizeAllocate(GtkWidget* sender, - GtkAllocation* allocation) { +void LocationBarViewGtk::OnEntryBoxSizeAllocate(GtkAllocation* allocation) { if (entry_box_width_ != allocation->width) { entry_box_width_ = allocation->width; AdjustChildrenVisibility(); } } -gboolean LocationBarViewGtk::OnStarButtonPress(GtkWidget* widget, - GdkEventButton* event) { - browser_->ExecuteCommand(IDC_BOOKMARK_PAGE); - return FALSE; -} - -void LocationBarViewGtk::ShowStarBubble(const GURL& url, - bool newly_bookmarked) { - if (!star_.get()) - return; - - BookmarkBubbleGtk::Show(star_.get(), profile_, url, newly_bookmarked); -} - -void LocationBarViewGtk::SetStarred(bool starred) { - if (starred == starred_) - return; - - starred_ = starred; - UpdateStarIcon(); -} - -void LocationBarViewGtk::UpdateStarIcon() { - if (!star_.get()) - return; - - gtk_image_set_from_pixbuf(GTK_IMAGE(star_image_), - theme_provider_->GetPixbufNamed( - starred_ ? IDR_OMNIBOX_STAR_LIT : IDR_OMNIBOX_STAR)); -} - -bool LocationBarViewGtk::ShouldOnlyShowLocation() { - return browser_->type() != Browser::TYPE_NORMAL; -} - void LocationBarViewGtk::AdjustChildrenVisibility() { int text_width = location_entry_->TextWidth(); int available_width = entry_box_width_ - text_width - kInnerPadding; - // Only one of |tab_to_search_box_| and |tab_to_search_hint_| can be visible - // at the same time. + // Only one of |tab_to_search_box_|, |tab_to_search_hint_| and + // |type_to_search_hint_| can be visible at the same time. if (!show_selected_keyword_ && GTK_WIDGET_VISIBLE(tab_to_search_box_)) { gtk_widget_hide(tab_to_search_box_); } else if (!show_keyword_hint_ && GTK_WIDGET_VISIBLE(tab_to_search_hint_)) { gtk_widget_hide(tab_to_search_hint_); location_entry_->set_enable_tab_to_search(false); + } else if (!show_search_hint_ && GTK_WIDGET_VISIBLE(type_to_search_hint_)) { + gtk_widget_hide(type_to_search_hint_); } + if (!show_selected_keyword_ && !show_keyword_hint_ && !show_search_hint_) + return; + if (show_selected_keyword_) { GtkRequisition box, full_label, partial_label; gtk_widget_size_request(tab_to_search_box_, &box); @@ -1071,6 +952,13 @@ void LocationBarViewGtk::AdjustChildrenVisibility() { gtk_widget_show(tab_to_search_hint_); location_entry_->set_enable_tab_to_search(true); } + } else if (show_search_hint_) { + GtkRequisition requisition; + gtk_widget_size_request(type_to_search_hint_, &requisition); + if (requisition.width >= available_width) + gtk_widget_hide(type_to_search_hint_); + else if (requisition.width < available_width) + gtk_widget_show(type_to_search_hint_); } } @@ -1108,12 +996,14 @@ LocationBarViewGtk::ContentSettingImageViewGtk::~ContentSettingImageViewGtk() { void LocationBarViewGtk::ContentSettingImageViewGtk::UpdateFromTabContents( const TabContents* tab_contents) { + int old_icon = content_setting_image_model_->get_icon(); content_setting_image_model_->UpdateFromTabContents(tab_contents); if (content_setting_image_model_->is_visible()) { - gtk_image_set_from_pixbuf(GTK_IMAGE(image_.get()), - GtkThemeProvider::GetFrom(profile_)->GetPixbufNamed( + if (old_icon != content_setting_image_model_->get_icon()) { + gtk_image_set_from_pixbuf(GTK_IMAGE(image_.get()), + ResourceBundle::GetSharedInstance().GetPixbufNamed( content_setting_image_model_->get_icon())); - + } gtk_widget_set_tooltip_text(widget(), content_setting_image_model_->get_tooltip().c_str()); gtk_widget_show(widget()); diff --git a/chrome/browser/gtk/location_bar_view_gtk.h b/chrome/browser/gtk/location_bar_view_gtk.h index dd2db25..d31655b 100644 --- a/chrome/browser/gtk/location_bar_view_gtk.h +++ b/chrome/browser/gtk/location_bar_view_gtk.h @@ -10,7 +10,6 @@ #include <map> #include <string> -#include "app/gtk_signal.h" #include "base/basictypes.h" #include "base/scoped_ptr.h" #include "base/scoped_vector.h" @@ -31,6 +30,7 @@ #include "webkit/glue/window_open_disposition.h" class AutocompleteEditViewGtk; +class BubblePositioner; class Browser; class CommandUpdater; class ContentSettingImageModel; @@ -47,7 +47,8 @@ class LocationBarViewGtk : public AutocompleteEditController, public LocationBarTesting, public NotificationObserver { public: - explicit LocationBarViewGtk(Browser* browser); + LocationBarViewGtk(const BubblePositioner* bubble_positioner, + Browser* browser_); virtual ~LocationBarViewGtk(); void Init(bool popup_window_mode); @@ -77,12 +78,6 @@ class LocationBarViewGtk : public AutocompleteEditController, // restore saved state that the tab holds. void Update(const TabContents* tab_for_state_restoring); - // Show the bookmark bubble. - void ShowStarBubble(const GURL& url, bool newly_boomkarked); - - // Set the starred state of the bookmark star. - void SetStarred(bool starred); - // Implement the AutocompleteEditController interface. virtual void OnAutocompleteAccept(const GURL& url, WindowOpenDisposition disposition, @@ -109,9 +104,6 @@ class LocationBarViewGtk : public AutocompleteEditController, virtual void InvalidatePageActions(); virtual void SaveStateToContents(TabContents* contents); virtual void Revert(); - virtual const AutocompleteEditView* location_entry() const { - return location_entry_.get(); - } virtual AutocompleteEditView* location_entry() { return location_entry_.get(); } @@ -129,8 +121,9 @@ class LocationBarViewGtk : public AutocompleteEditController, const NotificationSource& source, const NotificationDetails& details); - // Edit background color. - static const GdkColor kBackgroundColor; + // Translation between a security level and the background color. Both the + // location bar and edit have to manage and match the background color. + static const GdkColor kBackgroundColorByLevel[3]; private: class ContentSettingImageViewGtk : public InfoBubbleGtkDelegate { @@ -148,8 +141,12 @@ class LocationBarViewGtk : public AutocompleteEditController, void UpdateFromTabContents(const TabContents* tab_contents); private: - CHROMEGTK_CALLBACK_1(ContentSettingImageViewGtk, gboolean, OnButtonPressed, - GdkEvent*); + static gboolean OnButtonPressedThunk(GtkWidget* sender, + GdkEvent* event, + ContentSettingImageViewGtk* view) { + return view->OnButtonPressed(sender, event); + } + gboolean OnButtonPressed(GtkWidget* sender, GdkEvent* event); // InfoBubbleDelegate overrides: virtual void InfoBubbleClosing(InfoBubbleGtk* info_bubble, @@ -211,10 +208,19 @@ class LocationBarViewGtk : public AutocompleteEditController, // with a debugger window attached. Returns true if a popup was shown. bool ShowPopup(bool devtools); - CHROMEGTK_CALLBACK_1(PageActionViewGtk, gboolean, OnButtonPressed, - GdkEvent*); - CHROMEGTK_CALLBACK_1(PageActionViewGtk, gboolean, OnExposeEvent, - GdkEventExpose*); + static gboolean OnButtonPressedThunk(GtkWidget* sender, + GdkEvent* event, + PageActionViewGtk* page_action_view) { + return page_action_view->OnButtonPressed(sender, event); + } + gboolean OnButtonPressed(GtkWidget* sender, GdkEvent* event); + + static gboolean OnExposeEventThunk(GtkWidget* widget, + GdkEventExpose* event, + PageActionViewGtk* page_action_view) { + return page_action_view->OnExposeEvent(widget, event); + } + gboolean OnExposeEvent(GtkWidget* widget, GdkEventExpose* event); // The location bar view that owns us. LocationBarViewGtk* owner_; @@ -262,30 +268,20 @@ class LocationBarViewGtk : public AutocompleteEditController, }; friend class PageActionViewGtk; - // Creates, initializes, and packs the location icon, EV certificate name, - // and optional border. - void BuildSiteTypeArea(); - - // Enable or disable the location icon/EV certificate as a drag source for - // the URL. - void SetSiteTypeDragSource(); + static gboolean HandleExposeThunk(GtkWidget* widget, GdkEventExpose* event, + gpointer userdata) { + return reinterpret_cast<LocationBarViewGtk*>(userdata)-> + HandleExpose(widget, event); + } - GtkWidget* site_type_area() { return site_type_alignment_; } + gboolean HandleExpose(GtkWidget* widget, GdkEventExpose* event); - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, gboolean, HandleExpose, - GdkEventExpose*); - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, gboolean, OnIconReleased, - GdkEventButton*); - CHROMEGTK_CALLBACK_4(LocationBarViewGtk, void, OnIconDragData, - GdkDragContext*, GtkSelectionData*, guint, guint); - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, void, OnEntryBoxSizeAllocate, - GtkAllocation*); - CHROMEGTK_CALLBACK_1(LocationBarViewGtk, gboolean, OnStarButtonPress, - GdkEventButton*); + static gboolean OnSecurityIconPressed(GtkWidget* sender, + GdkEventButton* event, + LocationBarViewGtk* location_bar); - // Updates the site type area: changes the icon and shows/hides the EV - // certificate information. - void UpdateSiteTypeArea(); + // Set the SSL icon we should be showing. + void SetSecurityIcon(ToolbarModel::Icon icon); // Sets the text that should be displayed in the info label and its associated // tooltip text. Call with an empty string if the info label should be @@ -300,43 +296,29 @@ class LocationBarViewGtk : public AutocompleteEditController, void ShowFirstRunBubbleInternal(FirstRun::BubbleType bubble_type); - // Show or hide |tab_to_search_box_| and |tab_to_search_hint_| according to - // the value of |show_selected_keyword_|, |show_keyword_hint_|, and the - // available horizontal space in the location bar. - void AdjustChildrenVisibility(); - - // Build the star icon. - void CreateStarButton(); - - // Update the star icon after it is toggled or the theme changes. - void UpdateStarIcon(); + static void OnEntryBoxSizeAllocateThunk(GtkWidget* widget, + GtkAllocation* allocation, + gpointer userdata) { + reinterpret_cast<LocationBarViewGtk*>(userdata)-> + OnEntryBoxSizeAllocate(allocation); + } + void OnEntryBoxSizeAllocate(GtkAllocation* allocation); - // Returns true if we should only show the URL and none of the extras like - // the star button or page actions. - bool ShouldOnlyShowLocation(); + // Show or hide |tab_to_search_box_|, |tab_to_search_hint_| and + // |type_to_search_hint_| according to the value of |show_selected_keyword_|, + // |show_keyword_hint_|, |show_search_hint_| and the available horizontal + // space in the location bar. + void AdjustChildrenVisibility(); // The outermost widget we want to be hosted. OwnedWidgetGtk hbox_; - // Star button. - OwnedWidgetGtk star_; - GtkWidget* star_image_; - bool starred_; - - // SSL state. + // SSL icons. GtkWidget* security_icon_event_box_; - GtkWidget* ev_secure_icon_image_; - GtkWidget* secure_icon_image_; + GtkWidget* security_lock_icon_image_; GtkWidget* security_warning_icon_image_; - GtkWidget* security_error_icon_image_; - // An icon to the left of the address bar. - GtkWidget* site_type_alignment_; - GtkWidget* site_type_event_box_; - GtkWidget* location_icon_image_; - bool enable_location_drag_; - // TODO(pkasting): Split this label off and move the rest of the items to the - // left of the address bar. - GtkWidget* security_info_label_; + // Toolbar info text (EV cert info). + GtkWidget* info_label_; // Content setting icons. OwnedWidgetGtk content_setting_hbox_; @@ -357,6 +339,9 @@ class LocationBarViewGtk : public AutocompleteEditController, GtkWidget* tab_to_search_hint_icon_; GtkWidget* tab_to_search_hint_trailing_label_; + // Hint to user that the inputted text is not a keyword or url. + GtkWidget* type_to_search_hint_; + scoped_ptr<AutocompleteEditViewGtk> location_entry_; Profile* profile_; @@ -364,6 +349,9 @@ class LocationBarViewGtk : public AutocompleteEditController, ToolbarModel* toolbar_model_; Browser* browser_; + // We need to hold on to this just to it pass to the edit. + const BubblePositioner* bubble_positioner_; + // When we get an OnAutocompleteAccept notification from the autocomplete // edit, we save the input string so we can give it back to the browser on // the LocationBar interface via GetInputString(). @@ -397,6 +385,9 @@ class LocationBarViewGtk : public AutocompleteEditController, // Indicate if |tab_to_search_hint_| should be shown. bool show_keyword_hint_; + // Indicate if |type_to_search_hint_| should be shown. + bool show_search_hint_; + DISALLOW_COPY_AND_ASSIGN(LocationBarViewGtk); }; diff --git a/chrome/browser/gtk/options/passwords_exceptions_page_gtk.cc b/chrome/browser/gtk/options/passwords_exceptions_page_gtk.cc index 8162610..5488e4f 100644 --- a/chrome/browser/gtk/options/passwords_exceptions_page_gtk.cc +++ b/chrome/browser/gtk/options/passwords_exceptions_page_gtk.cc @@ -116,7 +116,7 @@ void PasswordsExceptionsPageGtk::SetExceptionList( for (size_t i = 0; i < result.size(); ++i) { exception_list_[i] = *result[i]; std::wstring formatted = net::FormatUrl(result[i]->origin, languages, - net::kFormatUrlOmitAll, UnescapeRule::NONE, NULL, NULL, NULL); + false, UnescapeRule::NONE, NULL, NULL, NULL); std::string site = WideToUTF8(formatted); GtkTreeIter iter; gtk_list_store_insert_with_values(exception_list_store_, &iter, (gint) i, diff --git a/chrome/browser/gtk/options/passwords_page_gtk.cc b/chrome/browser/gtk/options/passwords_page_gtk.cc index 9ecf89f..0de0403 100644 --- a/chrome/browser/gtk/options/passwords_page_gtk.cc +++ b/chrome/browser/gtk/options/passwords_page_gtk.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -160,7 +160,7 @@ void PasswordsPageGtk::SetPasswordList( for (size_t i = 0; i < result.size(); ++i) { password_list_[i] = *result[i]; std::wstring formatted = net::FormatUrl(result[i]->origin, languages, - net::kFormatUrlOmitAll, UnescapeRule::NONE, NULL, NULL, NULL); + false, UnescapeRule::NONE, NULL, NULL, NULL); std::string site = WideToUTF8(formatted); std::string user = UTF16ToUTF8(result[i]->username_value); GtkTreeIter iter; diff --git a/chrome/browser/gtk/options/url_picker_dialog_gtk.cc b/chrome/browser/gtk/options/url_picker_dialog_gtk.cc index b5e5a5b..df45b14 100644 --- a/chrome/browser/gtk/options/url_picker_dialog_gtk.cc +++ b/chrome/browser/gtk/options/url_picker_dialog_gtk.cc @@ -198,8 +198,7 @@ std::string UrlPickerDialogGtk::GetURLForPath(GtkTreePath* path) const { // Because the url_field_ is user-editable, we set the URL with // username:password and escaped path and query. std::wstring formatted = net::FormatUrl(url_table_model_->GetURL(row), - languages, net::kFormatUrlOmitNothing, UnescapeRule::NONE, NULL, NULL, - NULL); + languages, false, UnescapeRule::NONE, NULL, NULL, NULL); return WideToUTF8(formatted); } diff --git a/chrome/browser/gtk/rounded_window.cc b/chrome/browser/gtk/rounded_window.cc index 52bedc9..540a465 100644 --- a/chrome/browser/gtk/rounded_window.cc +++ b/chrome/browser/gtk/rounded_window.cc @@ -287,10 +287,6 @@ void StopActingAsRoundedWindow(GtkWidget* widget) { gdk_window_shape_combine_mask(widget->window, NULL, 0, 0); } -bool IsActingAsRoundedWindow(GtkWidget* widget) { - return g_object_get_data(G_OBJECT(widget), kRoundedData) != NULL; -} - void SetRoundedWindowEdgesAndBorders(GtkWidget* widget, int corner_size, int rounded_edges, diff --git a/chrome/browser/gtk/rounded_window.h b/chrome/browser/gtk/rounded_window.h index cd98e71..95f91d9 100644 --- a/chrome/browser/gtk/rounded_window.h +++ b/chrome/browser/gtk/rounded_window.h @@ -42,9 +42,6 @@ void ActAsRoundedWindow( // Undoes most of the actions of ActAsRoundedWindow(). void StopActingAsRoundedWindow(GtkWidget* widget); -// Returns true if the window is rounded. -bool IsActingAsRoundedWindow(GtkWidget* widget); - // Sets edge and border properties on a widget that has already been configured // with ActAsRoundedWindow(). void SetRoundedWindowEdgesAndBorders(GtkWidget* widget, diff --git a/chrome/browser/gtk/tabs/tab_strip_gtk.cc b/chrome/browser/gtk/tabs/tab_strip_gtk.cc index 8d1d1c8..25a02c3 100644 --- a/chrome/browser/gtk/tabs/tab_strip_gtk.cc +++ b/chrome/browser/gtk/tabs/tab_strip_gtk.cc @@ -1980,8 +1980,28 @@ void TabStripGtk::OnNewTabClicked(GtkWidget* widget, TabStripGtk* tabstrip) { case 2: { // On middle-click, try to parse the PRIMARY selection as a URL and load // it instead of creating a blank page. - GURL url; - if (!gtk_util::URLFromPrimarySelection(tabstrip->model_->profile(), &url)) + GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); + DCHECK(clipboard); + gchar* selection_text = gtk_clipboard_wait_for_text(clipboard); + if (!selection_text) + return; + + // Use autocomplete to clean up the text, going so far as to turn it into + // a search query if necessary. + AutocompleteController controller(tabstrip->model_->profile()); + controller.Start(UTF8ToWide(selection_text), + std::wstring(), // desired_tld + true, // prevent_inline_autocomplete + false, // prefer_keyword + true); // synchronous_only + g_free(selection_text); + const AutocompleteResult& result = controller.result(); + AutocompleteResult::const_iterator it = result.default_match(); + if (it == result.end()) + return; + + GURL url(it->destination_url); + if (!url.is_valid()) return; TabContents* contents = diff --git a/chrome/browser/gtk/toolbar_star_toggle_gtk.cc b/chrome/browser/gtk/toolbar_star_toggle_gtk.cc new file mode 100644 index 0000000..a57d79e --- /dev/null +++ b/chrome/browser/gtk/toolbar_star_toggle_gtk.cc @@ -0,0 +1,142 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/gtk/toolbar_star_toggle_gtk.h" + +#include "app/gtk_dnd_util.h" +#include "app/resource_bundle.h" +#include "chrome/browser/browser.h" +#include "chrome/browser/gtk/bookmark_bubble_gtk.h" +#include "chrome/browser/gtk/browser_toolbar_gtk.h" +#include "chrome/browser/gtk/gtk_chrome_button.h" +#include "chrome/browser/gtk/gtk_theme_provider.h" +#include "chrome/browser/gtk/gtk_util.h" +#include "chrome/browser/profile.h" +#include "chrome/browser/tab_contents/tab_contents.h" +#include "chrome/common/notification_service.h" +#include "gfx/rect.h" +#include "grit/theme_resources.h" + +ToolbarStarToggleGtk::ToolbarStarToggleGtk(BrowserToolbarGtk* host) + : host_(host), + widget_(gtk_chrome_button_new()), + is_starred_(false), + theme_provider_(GtkThemeProvider::GetFrom(host->profile())), + unstarred_(theme_provider_, IDR_STAR, IDR_STAR_P, IDR_STAR_H, IDR_STAR_D, + IDR_STAR_MASK), + starred_(theme_provider_, IDR_STARRED, IDR_STARRED_P, IDR_STARRED_H, 0, + IDR_STAR_MASK) { + gtk_widget_set_size_request(widget_.get(), unstarred_.Width(), + unstarred_.Height()); + + gtk_widget_set_app_paintable(widget_.get(), TRUE); + // We effectively double-buffer by virtue of having only one image... + gtk_widget_set_double_buffered(widget_.get(), FALSE); + + g_signal_connect(widget(), "expose-event", + G_CALLBACK(OnExpose), this); + GTK_WIDGET_UNSET_FLAGS(widget(), GTK_CAN_FOCUS); + + gtk_drag_source_set(widget(), GDK_BUTTON1_MASK, NULL, 0, + static_cast<GdkDragAction>(GDK_ACTION_COPY | GDK_ACTION_LINK)); + gtk_dnd_util::SetSourceTargetListFromCodeMask(widget(), + gtk_dnd_util::TEXT_PLAIN | + gtk_dnd_util::TEXT_URI_LIST | + gtk_dnd_util::CHROME_NAMED_URL | + gtk_dnd_util::NETSCAPE_URL); + g_signal_connect(widget(), "drag-data-get", G_CALLBACK(OnDragDataGet), this); + + theme_provider_->InitThemesFor(this); + registrar_.Add(this, + NotificationType::BROWSER_THEME_CHANGED, + NotificationService::AllSources()); + + hover_controller_.Init(widget()); +} + +ToolbarStarToggleGtk::~ToolbarStarToggleGtk() { + widget_.Destroy(); +} + +void ToolbarStarToggleGtk::Observe(NotificationType type, + const NotificationSource& source, const NotificationDetails& details) { + DCHECK(NotificationType::BROWSER_THEME_CHANGED == type); + + GtkThemeProvider* provider = static_cast<GtkThemeProvider*>( + Source<GtkThemeProvider>(source).ptr()); + DCHECK(provider == theme_provider_); + UpdateGTKButton(); +} + +void ToolbarStarToggleGtk::ShowStarBubble(const GURL& url, + bool newly_bookmarked) { + GtkWidget* widget = widget_.get(); + BookmarkBubbleGtk::Show(GTK_WINDOW(gtk_widget_get_toplevel(widget)), + gtk_util::GetWidgetRectRelativeToToplevel(widget), + host_->profile(), + url, + newly_bookmarked); +} + +void ToolbarStarToggleGtk::SetStarred(bool starred) { + is_starred_ = starred; + gtk_widget_queue_draw(widget_.get()); + UpdateGTKButton(); +} + +// static +gboolean ToolbarStarToggleGtk::OnExpose(GtkWidget* widget, GdkEventExpose* e, + ToolbarStarToggleGtk* button) { + if (button->theme_provider_->UseGtkTheme()) { + return FALSE; + } else { + double hover_state = button->hover_controller_.GetCurrentValue(); + if (button->is_starred_) + return button->starred_.OnExpose(widget, e, hover_state); + else + return button->unstarred_.OnExpose(widget, e, hover_state); + } +} + +// static +void ToolbarStarToggleGtk::OnDragDataGet(GtkWidget* widget, + GdkDragContext* drag_context, GtkSelectionData* data, guint info, + guint time, ToolbarStarToggleGtk* star) { + const TabContents* tab = star->host_->browser()->tabstrip_model()-> + GetSelectedTabContents(); + if (!tab) + return; + gtk_dnd_util::WriteURLWithName(data, tab->GetURL(), tab->GetTitle(), info); +} + +void ToolbarStarToggleGtk::UpdateGTKButton() { + bool use_gtk = theme_provider_ && theme_provider_->UseGtkTheme(); + + if (use_gtk) { + GdkPixbuf* pixbuf = NULL; + if (is_starred_) { + pixbuf = theme_provider_->GetPixbufNamed(IDR_STARRED_NOBORDER_CENTER); + } else { + pixbuf = theme_provider_->GetPixbufNamed(IDR_STAR_NOBORDER_CENTER); + } + + gtk_button_set_image( + GTK_BUTTON(widget_.get()), + gtk_image_new_from_pixbuf(pixbuf)); + + gtk_widget_set_size_request(widget_.get(), -1, -1); + gtk_widget_set_app_paintable(widget_.get(), FALSE); + gtk_widget_set_double_buffered(widget_.get(), TRUE); + } else { + gtk_widget_set_size_request(widget_.get(), unstarred_.Width(), + unstarred_.Height()); + + gtk_widget_set_app_paintable(widget_.get(), TRUE); + // We effectively double-buffer by virtue of having only one image... + gtk_widget_set_double_buffered(widget_.get(), FALSE); + } + + gtk_chrome_button_set_use_gtk_rendering( + GTK_CHROME_BUTTON(widget_.get()), use_gtk); +} diff --git a/chrome/browser/gtk/toolbar_star_toggle_gtk.h b/chrome/browser/gtk/toolbar_star_toggle_gtk.h new file mode 100644 index 0000000..faa025a --- /dev/null +++ b/chrome/browser/gtk/toolbar_star_toggle_gtk.h @@ -0,0 +1,76 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_GTK_TOOLBAR_STAR_TOGGLE_GTK_H_ +#define CHROME_BROWSER_GTK_TOOLBAR_STAR_TOGGLE_GTK_H_ + +#include <gtk/gtk.h> + +#include "base/basictypes.h" +#include "chrome/browser/gtk/custom_button.h" +#include "chrome/common/notification_observer.h" +#include "chrome/common/notification_registrar.h" +#include "chrome/common/owned_widget_gtk.h" + +class BrowserToolbarGtk; +class GtkThemeProvider; +class GURL; + +// Displays the bookmark star button, which toggles between two images. +class ToolbarStarToggleGtk : public NotificationObserver { + public: + explicit ToolbarStarToggleGtk(BrowserToolbarGtk* host); + ~ToolbarStarToggleGtk(); + + // Provide NotificationObserver implementation. + virtual void Observe(NotificationType type, + const NotificationSource& source, + const NotificationDetails& details); + + // If the bubble isn't showing, shows it above the star button. + void ShowStarBubble(const GURL& url, bool newly_bookmarked); + + void SetStarred(bool starred); + + GtkWidget* widget() const { return widget_.get(); } + + private: + // Updates the properties of |widget_| when we would need to change its + // state. + void UpdateGTKButton(); + + // Callback for expose, used to draw the custom graphics. + static gboolean OnExpose(GtkWidget* widget, GdkEventExpose* e, + ToolbarStarToggleGtk* obj); + + // Callback to get the data associated with a drag. + static void OnDragDataGet(GtkWidget* widget, + GdkDragContext* drag_context, + GtkSelectionData* data, + guint info, + guint time, + ToolbarStarToggleGtk* star); + + // Used to listen for theme change notifications. + NotificationRegistrar registrar_; + + // The browser toolbar hosting this widget, for getting the current profile. + BrowserToolbarGtk* host_; + + // The actual button widget. + OwnedWidgetGtk widget_; + + // Whether we show the yellow star. + bool is_starred_; + + GtkThemeProvider* theme_provider_; + + CustomDrawButtonBase unstarred_; + CustomDrawButtonBase starred_; + CustomDrawHoverController hover_controller_; + + DISALLOW_COPY_AND_ASSIGN(ToolbarStarToggleGtk); +}; + +#endif // CHROME_BROWSER_GTK_TOOLBAR_STAR_TOGGLE_GTK_H_ diff --git a/chrome/browser/location_bar.h b/chrome/browser/location_bar.h index a30dcf0..7919406 100644 --- a/chrome/browser/location_bar.h +++ b/chrome/browser/location_bar.h @@ -69,7 +69,6 @@ class LocationBar { virtual void Revert() = 0; // Returns a pointer to the text entry view. - virtual const AutocompleteEditView* location_entry() const = 0; virtual AutocompleteEditView* location_entry() = 0; // Returns a pointer to the testing interface. diff --git a/chrome/browser/net/browser_url_util.cc b/chrome/browser/net/browser_url_util.cc index 24747b2..9c8ab48 100644 --- a/chrome/browser/net/browser_url_util.cc +++ b/chrome/browser/net/browser_url_util.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -23,8 +23,8 @@ void WriteURLToClipboard(const GURL& url, // may not encode non-ASCII characters in UTF-8. See crbug.com/2820. string16 text = url.SchemeIs(chrome::kMailToScheme) ? ASCIIToUTF16(url.path()) : - WideToUTF16(net::FormatUrl(url, languages, net::kFormatUrlOmitNothing, - UnescapeRule::NONE, NULL, NULL, NULL)); + WideToUTF16(net::FormatUrl(url, languages, false, UnescapeRule::NONE, + NULL, NULL, NULL)); ScopedClipboardWriter scw(clipboard); scw.WriteURL(text); diff --git a/chrome/browser/net/url_fixer_upper.cc b/chrome/browser/net/url_fixer_upper.cc index 9d974db..edacefd 100644 --- a/chrome/browser/net/url_fixer_upper.cc +++ b/chrome/browser/net/url_fixer_upper.cc @@ -170,9 +170,8 @@ static std::string FixupPath(const std::string& text) { // Here, we know the input looks like a file. GURL file_url = net::FilePathToFileURL(FilePath(filename)); if (file_url.is_valid()) { - return WideToUTF8(net::FormatUrl(file_url, std::wstring(), - net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, NULL, - NULL, NULL)); + return WideToUTF8(net::FormatUrl(file_url, std::wstring(), true, + UnescapeRule::NORMAL, NULL, NULL, NULL)); } // Invalid file URL, just return the input. @@ -558,8 +557,7 @@ std::string URLFixerUpper::FixupRelativeFile(const FilePath& base_dir, GURL file_url = net::FilePathToFileURL(full_path); if (file_url.is_valid()) return WideToUTF8(net::FormatUrl(file_url, std::wstring(), - net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, NULL, - NULL, NULL)); + true, UnescapeRule::NORMAL, NULL, NULL, NULL)); // Invalid files fall through to regular processing. } diff --git a/chrome/browser/profile.cc b/chrome/browser/profile.cc index 92b2ff8..ed480e8 100644 --- a/chrome/browser/profile.cc +++ b/chrome/browser/profile.cc @@ -13,7 +13,6 @@ #include "base/scoped_ptr.h" #include "base/string_util.h" #include "chrome/browser/appcache/chrome_appcache_service.h" -#include "chrome/browser/autocomplete/autocomplete_classifier.h" #include "chrome/browser/autofill/personal_data_manager.h" #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/browser_list.h" @@ -46,6 +45,7 @@ #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" #include "chrome/browser/profile_manager.h" #include "chrome/browser/renderer_host/render_process_host.h" +#include "chrome/browser/search_versus_navigate_classifier.h" #include "chrome/browser/search_engines/template_url_fetcher.h" #include "chrome/browser/search_engines/template_url_model.h" #include "chrome/browser/sessions/session_service.h" @@ -338,8 +338,8 @@ class OffTheRecordProfileImpl : public Profile, return NULL; } - virtual AutocompleteClassifier* GetAutocompleteClassifier() { - return profile_->GetAutocompleteClassifier(); + virtual SearchVersusNavigateClassifier* GetSearchVersusNavigateClassifier() { + return profile_->GetSearchVersusNavigateClassifier(); } virtual WebDataService* GetWebDataService(ServiceAccessType sat) { @@ -1139,10 +1139,13 @@ TemplateURLFetcher* ProfileImpl::GetTemplateURLFetcher() { return template_url_fetcher_.get(); } -AutocompleteClassifier* ProfileImpl::GetAutocompleteClassifier() { - if (!autocomplete_classifier_.get()) - autocomplete_classifier_.reset(new AutocompleteClassifier(this)); - return autocomplete_classifier_.get(); +SearchVersusNavigateClassifier* +ProfileImpl::GetSearchVersusNavigateClassifier() { + if (!search_versus_navigate_classifier_.get()) { + search_versus_navigate_classifier_.reset( + new SearchVersusNavigateClassifier(this)); + } + return search_versus_navigate_classifier_.get(); } WebDataService* ProfileImpl::GetWebDataService(ServiceAccessType sat) { diff --git a/chrome/browser/profile.h b/chrome/browser/profile.h index 751d2e2..a4f680ad 100644 --- a/chrome/browser/profile.h +++ b/chrome/browser/profile.h @@ -30,7 +30,6 @@ namespace webkit_database { class DatabaseTracker; } -class AutocompleteClassifier; class Blacklist; class BookmarkModel; class BrowserThemeProvider; @@ -56,6 +55,7 @@ class PinnedTabService; class PrefService; class ProfileSyncService; class ProfileSyncFactory; +class SearchVersusNavigateClassifier; class SessionService; class SpellCheckHost; class SSLConfigServiceManager; @@ -217,10 +217,11 @@ class Profile { // doesn't already exist. virtual HistoryService* GetHistoryServiceWithoutCreating() = 0; - // Retrieves a pointer to the AutocompleteClassifier associated with this - // profile. The AutocompleteClassifier is lazily created the first time that - // this method is called. - virtual AutocompleteClassifier* GetAutocompleteClassifier() = 0; + // Retrieves a pointer to the SearchVersusNavigateClassifier associated with + // this profile. The SearchVersusNavigateClassifier is lazily created the + // first time that this method is called. + virtual SearchVersusNavigateClassifier* + GetSearchVersusNavigateClassifier() = 0; // Returns the WebDataService for this profile. This is owned by // the Profile. Callers that outlive the life of this profile need to be @@ -472,7 +473,7 @@ class ProfileImpl : public Profile, virtual FaviconService* GetFaviconService(ServiceAccessType sat); virtual HistoryService* GetHistoryService(ServiceAccessType sat); virtual HistoryService* GetHistoryServiceWithoutCreating(); - virtual AutocompleteClassifier* GetAutocompleteClassifier(); + virtual SearchVersusNavigateClassifier* GetSearchVersusNavigateClassifier(); virtual WebDataService* GetWebDataService(ServiceAccessType sat); virtual WebDataService* GetWebDataServiceWithoutCreating(); virtual PasswordStore* GetPasswordStore(ServiceAccessType sat); @@ -597,7 +598,7 @@ class ProfileImpl : public Profile, scoped_refptr<DownloadManager> download_manager_; scoped_refptr<HistoryService> history_service_; scoped_refptr<FaviconService> favicon_service_; - scoped_ptr<AutocompleteClassifier> autocomplete_classifier_; + scoped_ptr<SearchVersusNavigateClassifier> search_versus_navigate_classifier_; scoped_refptr<WebDataService> web_data_service_; scoped_refptr<PasswordStore> password_store_; scoped_refptr<SessionService> session_service_; diff --git a/chrome/browser/search_versus_navigate_classifier.cc b/chrome/browser/search_versus_navigate_classifier.cc new file mode 100644 index 0000000..b32b92b --- /dev/null +++ b/chrome/browser/search_versus_navigate_classifier.cc @@ -0,0 +1,56 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/search_versus_navigate_classifier.h" + +#include "chrome/browser/autocomplete/autocomplete.h" +#include "googleurl/src/gurl.h" + +SearchVersusNavigateClassifier::SearchVersusNavigateClassifier(Profile* profile) + : controller_(new AutocompleteController(profile)) { +} + +SearchVersusNavigateClassifier::~SearchVersusNavigateClassifier() { +} + +void SearchVersusNavigateClassifier::Classify(const std::wstring& text, + const std::wstring& desired_tld, + bool* is_search, + GURL* destination_url, + PageTransition::Type* transition, + bool* is_history_what_you_typed_match, + GURL* alternate_nav_url) { + controller_->Start(text, desired_tld, true, false, true); + DCHECK(controller_->done()); + const AutocompleteResult& result = controller_->result(); + if (result.empty()) { + if (is_search) + *is_search = false; + if (destination_url) + *destination_url = GURL(); + if (transition) + *transition = PageTransition::TYPED; + if (is_history_what_you_typed_match) + *is_history_what_you_typed_match = false; + if (alternate_nav_url) + *alternate_nav_url = GURL(); + return; + } + + const AutocompleteResult::const_iterator match(result.default_match()); + DCHECK(match != result.end()); + + // If this is a search, the page transition will be GENERATED rather than + // TYPED. + if (is_search) + *is_search = (match->transition != PageTransition::TYPED); + if (destination_url) + *destination_url = match->destination_url; + if (transition) + *transition = match->transition; + if (is_history_what_you_typed_match) + *is_history_what_you_typed_match = match->is_history_what_you_typed_match; + if (alternate_nav_url) + *alternate_nav_url = result.alternate_nav_url(); +} diff --git a/chrome/browser/search_versus_navigate_classifier.h b/chrome/browser/search_versus_navigate_classifier.h new file mode 100644 index 0000000..94471b8 --- /dev/null +++ b/chrome/browser/search_versus_navigate_classifier.h @@ -0,0 +1,52 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_SEARCH_VERSUS_NAVIGATE_CLASSIFIER_H_ +#define CHROME_BROWSER_SEARCH_VERSUS_NAVIGATE_CLASSIFIER_H_ + +#include <string> + +#include "base/scoped_ptr.h" +#include "chrome/common/page_transition_types.h" + +class AutocompleteController; +class GURL; +class Profile; + +class SearchVersusNavigateClassifier { + public: + explicit SearchVersusNavigateClassifier(Profile* profile); + virtual ~SearchVersusNavigateClassifier(); + + // Given some string |text| that the user wants to use for navigation, + // determines whether to treat it as a search query or a URL, and returns the + // details of the resulting navigation. + // NOTE: After |desired_tld|, all parameters are potentially-NULL outparams. + // |desired_tld| - User's desired TLD. + // See AutocompleteInput::desired_tld(). + // |is_search| - Set to true if this is to be treated as a + // query rather than URL. + // |destination_url| - The URL to load. It may be empty if there is no + // possible navigation (when |text| is empty). + // |transition| - The transition type. + // |is_history_what_you_typed_match| + // - Set to true when the default match is the + // "what you typed" match from the history. + // |alternate_nav_url| - The navigational URL in case of an accidental + // search; see comments on + // AutocompleteResult::alternate_nav_url_ in + // autocomplete.h. + void Classify(const std::wstring& text, + const std::wstring& desired_tld, + bool* is_search, + GURL* destination_url, + PageTransition::Type* transition, + bool* is_history_what_you_typed_match, + GURL* alternate_nav_url); + + private: + scoped_ptr<AutocompleteController> controller_; +}; + +#endif // CHROME_BROWSER_SEARCH_VERSUS_NAVIGATE_CLASSIFIER_H_ diff --git a/chrome/browser/ssl/ssl_browser_tests.cc b/chrome/browser/ssl/ssl_browser_tests.cc index d6ef458..fb3d447 100644 --- a/chrome/browser/ssl/ssl_browser_tests.cc +++ b/chrome/browser/ssl/ssl_browser_tests.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -65,9 +65,6 @@ class SSLUITest : public InProcessBrowserTest { entry->page_type()); EXPECT_EQ(SECURITY_STYLE_AUTHENTICATION_BROKEN, entry->ssl().security_style()); - // CERT_STATUS_UNABLE_TO_CHECK_REVOCATION doesn't lower the security style - // to SECURITY_STYLE_AUTHENTICATION_BROKEN. - ASSERT_NE(net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION, error); EXPECT_EQ(error, entry->ssl().cert_status() & net::CERT_STATUS_ALL_ERRORS); EXPECT_FALSE(entry->ssl().has_mixed_content()); EXPECT_FALSE(entry->ssl().has_unsafe_content()); diff --git a/chrome/browser/ssl/ssl_manager.cc b/chrome/browser/ssl/ssl_manager.cc index 7683221..c1350e4 100644 --- a/chrome/browser/ssl/ssl_manager.cc +++ b/chrome/browser/ssl/ssl_manager.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -271,15 +271,30 @@ bool SSLManager::DeserializeSecurityInfo(const std::string& state, } // static -std::wstring SSLManager::GetEVCertName(const net::X509Certificate& cert) { +bool SSLManager::GetEVCertNames(const net::X509Certificate& cert, + std::wstring* short_name, + std::wstring* ca_name) { + DCHECK(short_name || ca_name); + // EV are required to have an organization name and country. if (cert.subject().organization_names.empty() || cert.subject().country_name.empty()) { NOTREACHED(); - return std::wstring(); + return false; } - return l10n_util::GetStringF(IDS_SECURE_CONNECTION_EV, - UTF8ToWide(cert.subject().organization_names[0]), - UTF8ToWide(cert.subject().country_name)); + if (short_name) { + *short_name = l10n_util::GetStringF( + IDS_SECURE_CONNECTION_EV, + UTF8ToWide(cert.subject().organization_names[0]), + UTF8ToWide(cert.subject().country_name)); + } + + if (ca_name) { + // TODO(wtc): should we show the root CA's name instead? + *ca_name = l10n_util::GetStringF( + IDS_SECURE_CONNECTION_EV_CA, + UTF8ToWide(cert.issuer().organization_names[0])); + } + return true; } diff --git a/chrome/browser/ssl/ssl_manager.h b/chrome/browser/ssl/ssl_manager.h index f9e1685..b0f18e1 100644 --- a/chrome/browser/ssl/ssl_manager.h +++ b/chrome/browser/ssl/ssl_manager.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -92,8 +92,12 @@ class SSLManager : public NotificationObserver { int* cert_status, int* security_bits); - // Returns "<organization_name> [<country>]". - static std::wstring GetEVCertName(const net::X509Certificate& cert); + // Sets |short_name| to <organization_name> [<country>] and |ca_name| + // to something like: + // "Verified by <issuer_organization_name>" + static bool GetEVCertNames(const net::X509Certificate& cert, + std::wstring* short_name, + std::wstring* ca_name); private: // SSLMessageInfo contains the information necessary for displaying a message diff --git a/chrome/browser/ssl/ssl_policy.cc b/chrome/browser/ssl/ssl_policy.cc index 7f3ad87..9b4a6e9 100644 --- a/chrome/browser/ssl/ssl_policy.cc +++ b/chrome/browser/ssl/ssl_policy.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -67,9 +67,10 @@ void SSLPolicy::OnCertError(SSLCertErrorHandler* handler) { handler->ContinueRequest(); break; case net::ERR_CERT_UNABLE_TO_CHECK_REVOCATION: - // We ignore this error but will show a warning status in the location - // bar. + // We ignore this error and display an infobar. handler->ContinueRequest(); + backend_->ShowMessage(l10n_util::GetString( + IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_INFO_BAR)); break; case net::ERR_CERT_CONTAINS_ERRORS: case net::ERR_CERT_REVOKED: @@ -126,12 +127,8 @@ void SSLPolicy::UpdateEntry(NavigationEntry* entry) { return; } - // If CERT_STATUS_UNABLE_TO_CHECK_REVOCATION is the only certificate error, - // don't lower the security style to SECURITY_STYLE_AUTHENTICATION_BROKEN. - int cert_errors = entry->ssl().cert_status() & net::CERT_STATUS_ALL_ERRORS; - if (cert_errors) { - if (cert_errors != net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION) - entry->ssl().set_security_style(SECURITY_STYLE_AUTHENTICATION_BROKEN); + if (net::IsCertStatusError(entry->ssl().cert_status())) { + entry->ssl().set_security_style(SECURITY_STYLE_AUTHENTICATION_BROKEN); return; } diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc index 471d2b8..105e95d 100644 --- a/chrome/browser/tab_contents/render_view_context_menu.cc +++ b/chrome/browser/tab_contents/render_view_context_menu.cc @@ -13,7 +13,6 @@ #include "base/logging.h" #include "base/string_util.h" #include "chrome/app/chrome_dll_resource.h" -#include "chrome/browser/autocomplete/autocomplete_classifier.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/child_process_security_policy.h" #include "chrome/browser/debugger/devtools_manager.h" @@ -28,6 +27,7 @@ #include "chrome/browser/pref_service.h" #include "chrome/browser/profile.h" #include "chrome/browser/renderer_host/render_view_host.h" +#include "chrome/browser/search_versus_navigate_classifier.h" #include "chrome/browser/search_engines/template_url_model.h" #include "chrome/browser/spellcheck_host.h" #include "chrome/browser/spellchecker_platform_engine.h" @@ -445,10 +445,10 @@ void RenderViewContextMenu::AppendSearchProvider() { if (params_.selection_text.empty()) return; - AutocompleteMatch match; - profile_->GetAutocompleteClassifier()->Classify(params_.selection_text, - std::wstring(), &match, NULL); - selection_navigation_url_ = match.destination_url; + bool is_search; + profile_->GetSearchVersusNavigateClassifier()->Classify( + params_.selection_text, std::wstring(), &is_search, + &selection_navigation_url_, NULL, NULL, NULL); if (!selection_navigation_url_.is_valid()) return; @@ -458,14 +458,7 @@ void RenderViewContextMenu::AppendSearchProvider() { i = printable_selection_text.find('&', i + 2)) printable_selection_text.insert(i, 1, '&'); - if (match.transition == PageTransition::TYPED) { - if (ChildProcessSecurityPolicy::GetInstance()->IsWebSafeScheme( - selection_navigation_url_.scheme())) { - AppendMenuItem(IDS_CONTENT_CONTEXT_GOTOURL, - l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_GOTOURL, - printable_selection_text)); - } - } else { + if (is_search) { const TemplateURL* const default_provider = profile_->GetTemplateURLModel()->GetDefaultSearchProvider(); if (!default_provider) @@ -474,6 +467,13 @@ void RenderViewContextMenu::AppendSearchProvider() { l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_SEARCHWEBFOR, WideToUTF16(default_provider->short_name()), printable_selection_text)); + } else { + if (ChildProcessSecurityPolicy::GetInstance()->IsWebSafeScheme( + selection_navigation_url_.scheme())) { + AppendMenuItem(IDS_CONTENT_CONTEXT_GOTOURL, + l10n_util::GetStringFUTF16(IDS_CONTENT_CONTEXT_GOTOURL, + printable_selection_text)); + } } } diff --git a/chrome/browser/theme_resources_util_unittest.cc b/chrome/browser/theme_resources_util_unittest.cc index 6153e75..4bd6bd0 100644 --- a/chrome/browser/theme_resources_util_unittest.cc +++ b/chrome/browser/theme_resources_util_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -20,7 +20,7 @@ TEST(ThemeResourcesUtil, SpotCheckIds) { const TestCase kTestCases[] = { {"back", IDR_BACK}, {"go", IDR_GO}, - {"omnibox_star", IDR_OMNIBOX_STAR}, + {"star", IDR_STAR}, {"sad_tab", IDR_SAD_TAB}, }; for (size_t i = 0; i < arraysize(kTestCases); ++i) { diff --git a/chrome/browser/toolbar_model.cc b/chrome/browser/toolbar_model.cc index c641539..c651e3d 100644 --- a/chrome/browser/toolbar_model.cc +++ b/chrome/browser/toolbar_model.cc @@ -17,7 +17,6 @@ #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "grit/generated_resources.h" -#include "grit/theme_resources.h" #include "net/base/cert_status_flags.h" #include "net/base/net_util.h" @@ -39,6 +38,7 @@ std::wstring ToolbarModel::GetText() const { languages = navigation_controller->profile()->GetPrefs()->GetString( prefs::kAcceptLanguages); NavigationEntry* entry = navigation_controller->GetActiveEntry(); + // We may not have a navigation entry yet if (!navigation_controller->tab_contents()->ShouldDisplayURL()) { // Explicitly hide the URL for this tab. url = GURL(); @@ -53,70 +53,144 @@ std::wstring ToolbarModel::GetText() const { url = GURL(url.scheme() + ":"); } } - return net::FormatUrl(url, languages, net::kFormatUrlOmitAll, - UnescapeRule::NORMAL, NULL, NULL, NULL); + return net::FormatUrl(url, languages, true, UnescapeRule::NORMAL, NULL, NULL, + NULL); } ToolbarModel::SecurityLevel ToolbarModel::GetSecurityLevel() const { if (input_in_progress_) // When editing, assume no security style. - return NONE; + return ToolbarModel::NORMAL; NavigationController* navigation_controller = GetNavigationController(); if (!navigation_controller) // We might not have a controller on init. - return NONE; + return ToolbarModel::NORMAL; NavigationEntry* entry = navigation_controller->GetActiveEntry(); if (!entry) - return NONE; + return ToolbarModel::NORMAL; - const NavigationEntry::SSLStatus& ssl = entry->ssl(); - switch (ssl.security_style()) { + switch (entry->ssl().security_style()) { + case SECURITY_STYLE_AUTHENTICATED: + if (entry->ssl().has_mixed_content()) + return ToolbarModel::NORMAL; + return ToolbarModel::SECURE; + case SECURITY_STYLE_AUTHENTICATION_BROKEN: + return ToolbarModel::INSECURE; case SECURITY_STYLE_UNKNOWN: case SECURITY_STYLE_UNAUTHENTICATED: - return NONE; + return ToolbarModel::NORMAL; + default: + NOTREACHED(); + return ToolbarModel::NORMAL; + } +} - case SECURITY_STYLE_AUTHENTICATION_BROKEN: - return SECURITY_ERROR; +ToolbarModel::SecurityLevel ToolbarModel::GetSchemeSecurityLevel() const { + // For now, in sync with the security level. + return GetSecurityLevel(); +} + +ToolbarModel::Icon ToolbarModel::GetIcon() const { + if (input_in_progress_) + return ToolbarModel::NO_ICON; + + NavigationController* navigation_controller = GetNavigationController(); + if (!navigation_controller) // We might not have a controller on init. + return ToolbarModel::NO_ICON; + NavigationEntry* entry = navigation_controller->GetActiveEntry(); + if (!entry) + return ToolbarModel::NO_ICON; + + const NavigationEntry::SSLStatus& ssl = entry->ssl(); + switch (ssl.security_style()) { case SECURITY_STYLE_AUTHENTICATED: if (ssl.has_mixed_content()) - return SECURITY_WARNING; - if (net::IsCertStatusError(ssl.cert_status())) { - DCHECK_EQ(ssl.cert_status() & net::CERT_STATUS_ALL_ERRORS, - net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION); - return SECURITY_WARNING; - } - if ((ssl.cert_status() & net::CERT_STATUS_IS_EV) && - CertStore::GetSharedInstance()->RetrieveCert(ssl.cert_id(), NULL)) - return EV_SECURE; - return SECURE; - + return ToolbarModel::WARNING_ICON; + return ToolbarModel::LOCK_ICON; + case SECURITY_STYLE_AUTHENTICATION_BROKEN: + return ToolbarModel::WARNING_ICON; + case SECURITY_STYLE_UNKNOWN: + case SECURITY_STYLE_UNAUTHENTICATED: + return ToolbarModel::NO_ICON; default: NOTREACHED(); - return NONE; + return ToolbarModel::NO_ICON; } } -int ToolbarModel::GetIcon() const { - static int icon_ids[NUM_SECURITY_LEVELS] = { - IDR_OMNIBOX_HTTP, - IDR_OMNIBOX_HTTPS_VALID, - IDR_OMNIBOX_HTTPS_VALID, - IDR_OMNIBOX_HTTPS_WARNING, - IDR_OMNIBOX_HTTPS_INVALID, - }; - DCHECK(arraysize(icon_ids) == NUM_SECURITY_LEVELS); - return icon_ids[GetSecurityLevel()]; +void ToolbarModel::GetIconHoverText(std::wstring* text) const { + DCHECK(text); + + NavigationController* navigation_controller = GetNavigationController(); + // We don't expect to be called during initialization, so the controller + // should never be NULL. + DCHECK(navigation_controller); + NavigationEntry* entry = navigation_controller->GetActiveEntry(); + DCHECK(entry); + + + const NavigationEntry::SSLStatus& ssl = entry->ssl(); + switch (ssl.security_style()) { + case SECURITY_STYLE_AUTHENTICATED: { + if (ssl.has_mixed_content()) { + SSLErrorInfo error_info = SSLErrorInfo::CreateError( + SSLErrorInfo::MIXED_CONTENTS, NULL, GURL()); + text->assign(error_info.short_description()); + } else { + DCHECK(entry->url().has_host()); + text->assign(l10n_util::GetStringF(IDS_SECURE_CONNECTION, + UTF8ToWide(entry->url().host()))); + } + break; + } + case SECURITY_STYLE_AUTHENTICATION_BROKEN: { + CreateErrorText(entry, text); + if (text->empty()) { + // If the authentication is broken, we should always have at least one + // error. + NOTREACHED(); + return; + } + break; + } + default: + // Don't show the info bubble in any other cases. + text->clear(); + break; + } } -std::wstring ToolbarModel::GetEVCertName() const { - DCHECK_EQ(GetSecurityLevel(), EV_SECURE); +ToolbarModel::InfoTextType ToolbarModel::GetInfoText( + std::wstring* text, + std::wstring* tooltip) const { + DCHECK(text && tooltip); + text->clear(); + tooltip->clear(); + + if (input_in_progress_) + return INFO_NO_INFO; + + NavigationController* navigation_controller = GetNavigationController(); + if (!navigation_controller) // We might not have a controller on init. + return INFO_NO_INFO; + + NavigationEntry* entry = navigation_controller->GetActiveEntry(); + const NavigationEntry::SSLStatus& ssl = entry->ssl(); + if (!entry || ssl.has_mixed_content() || + net::IsCertStatusError(ssl.cert_status()) || + ((ssl.cert_status() & net::CERT_STATUS_IS_EV) == 0)) + return INFO_NO_INFO; + scoped_refptr<net::X509Certificate> cert; - // Note: Navigation controller and active entry are guaranteed non-NULL or - // the security level would be NONE. - CertStore::GetSharedInstance()->RetrieveCert( - GetNavigationController()->GetActiveEntry()->ssl().cert_id(), &cert); - return SSLManager::GetEVCertName(*cert); + CertStore::GetSharedInstance()->RetrieveCert(ssl.cert_id(), &cert); + if (!cert.get()) { + NOTREACHED(); + return INFO_NO_INFO; + } + + SSLManager::GetEVCertNames(*cert, text, tooltip); + return INFO_EV_TEXT; } NavigationController* ToolbarModel::GetNavigationController() const { @@ -126,3 +200,37 @@ NavigationController* ToolbarModel::GetNavigationController() const { TabContents* current_tab = browser_->GetSelectedTabContents(); return current_tab ? ¤t_tab->controller() : NULL; } + +void ToolbarModel::CreateErrorText(NavigationEntry* entry, + std::wstring* text) const { + const NavigationEntry::SSLStatus& ssl = entry->ssl(); + std::vector<SSLErrorInfo> errors; + SSLErrorInfo::GetErrorsForCertStatus(ssl.cert_id(), + ssl.cert_status(), + entry->url(), + &errors); + if (ssl.has_mixed_content()) { + errors.push_back(SSLErrorInfo::CreateError(SSLErrorInfo::MIXED_CONTENTS, + NULL, GURL())); + } + if (ssl.has_unsafe_content()) { + errors.push_back(SSLErrorInfo::CreateError(SSLErrorInfo::UNSAFE_CONTENTS, + NULL, GURL())); + } + + int error_count = static_cast<int>(errors.size()); + if (error_count == 0) { + text->assign(L""); + } else if (error_count == 1) { + text->assign(errors[0].short_description()); + } else { + // Multiple errors. + text->assign(l10n_util::GetString(IDS_SEVERAL_SSL_ERRORS)); + text->append(L"\n"); + for (int i = 0; i < error_count; ++i) { + text->append(errors[i].short_description()); + if (i != error_count - 1) + text->append(L"\n"); + } + } +} diff --git a/chrome/browser/toolbar_model.h b/chrome/browser/toolbar_model.h index a4959e6fd..1d959c5 100644 --- a/chrome/browser/toolbar_model.h +++ b/chrome/browser/toolbar_model.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -18,36 +18,54 @@ class NavigationEntry; // from the navigation controller returned by GetNavigationController(). class ToolbarModel { public: - // TODO(wtc): unify ToolbarModel::SecurityLevel with SecurityStyle. We - // don't need two sets of security UI levels. SECURITY_STYLE_AUTHENTICATED - // needs to be refined into three levels: warning, standard, and EV. enum SecurityLevel { - NONE = 0, // HTTP/no URL/user is editing - EV_SECURE, // HTTPS with valid EV cert - SECURE, // HTTPS (non-EV) - SECURITY_WARNING, // HTTPS, but unable to check certificate revocation - // status or with mixed content on the page - SECURITY_ERROR, // Attempted HTTPS and failed, page not authenticated - NUM_SECURITY_LEVELS, + SECURE = 0, + NORMAL, + INSECURE + }; + + enum Icon { + NO_ICON = 0, + LOCK_ICON, + WARNING_ICON + }; + + enum InfoTextType { + INFO_NO_INFO = 0, + INFO_EV_TEXT, }; explicit ToolbarModel(Browser* browser); ~ToolbarModel(); // Returns the text that should be displayed in the location bar. + // Default value: empty string. std::wstring GetText() const; // Returns the security level that the toolbar should display. + // Default value: NORMAL. SecurityLevel GetSecurityLevel() const; - // Returns the resource_id of the icon to show to the left of the address, - // based on the current URL. This doesn't cover specialized icons while the - // user is editing; see AutocompleteEditView::GetIcon(). - int GetIcon() const; + // Returns the security level that should be used in the scheme part of the + // displayed URL. If SECURE, then the scheme is painted in green. If + // INSECURE, it is painted in red and stricken-out. + // Default value: NORMAL. + SecurityLevel GetSchemeSecurityLevel() const; - // Returns the name of the EV cert holder. Only call this when the security - // level is EV_SECURE. - std::wstring GetEVCertName() const; + // Returns the icon that should be displayed on the right of the location bar. + // Default value: NO_ICON. + Icon GetIcon() const; + + // Sets the text displayed in the info bubble that appears when the user + // hovers the mouse over the icon. + // Default value: empty string. + void GetIconHoverText(std::wstring* text) const; + + // Sets |text| to contain the text that should be displayed on the right of + // the location bar, and |tooltip| to the tooltip text that should be shown + // when the mouse hover over that info label. + // Default value: NO_INFO and empty string for |text| and |tooltip|. + InfoTextType GetInfoText(std::wstring* text, std::wstring* tooltip) const; // Getter/setter of whether the text in location bar is currently being // edited. @@ -60,6 +78,10 @@ class ToolbarModel { // If this returns NULL, default values are used. NavigationController* GetNavigationController() const; + // Builds a short error message from the SSL status code found in |entry|. + // The message is set in |text|. + void CreateErrorText(NavigationEntry* entry, std::wstring* text) const; + Browser* browser_; // Whether the text in the location bar is currently being edited. diff --git a/chrome/browser/views/accelerator_table_gtk.cc b/chrome/browser/views/accelerator_table_gtk.cc index 9e1f6c9..c8b54f7 100644 --- a/chrome/browser/views/accelerator_table_gtk.cc +++ b/chrome/browser/views/accelerator_table_gtk.cc @@ -115,6 +115,7 @@ const AcceleratorMapping kAcceleratorMap[] = { // Miscellany. { base::VKEY_D, false, true, false, IDC_BOOKMARK_PAGE }, { base::VKEY_D, true, true, false, IDC_BOOKMARK_ALL_TABS }, + { base::VKEY_B, false, true, false, IDC_SHOW_BOOKMARK_BAR }, { base::VKEY_DELETE, true, true, false, IDC_CLEAR_BROWSING_DATA }, { base::VKEY_H, false, true, false, IDC_SHOW_HISTORY }, { base::VKEY_J, false, true, false, IDC_SHOW_DOWNLOADS }, @@ -128,7 +129,7 @@ const AcceleratorMapping kAcceleratorMap[] = { { base::VKEY_F11, false, true, true, IDC_FULLSCREEN }, { base::VKEY_DELETE, false, true, true, IDC_TASK_MANAGER }, { base::VKEY_OEM_COMMA, false, true, false, IDC_SYSTEM_OPTIONS }, - { base::VKEY_B, true, true, false, IDC_SHOW_BOOKMARK_BAR }, + { base::VKEY_B, true, true, false, IDC_SHOW_BOOKMARK_MANAGER }, #if !defined(OS_CHROMEOS) { base::VKEY_F1, false, false, false, IDC_HELP_PAGE }, #endif diff --git a/chrome/browser/views/app_launcher.cc b/chrome/browser/views/app_launcher.cc index a074f84..d1e87aa 100644 --- a/chrome/browser/views/app_launcher.cc +++ b/chrome/browser/views/app_launcher.cc @@ -16,13 +16,12 @@ #include "chrome/browser/autocomplete/autocomplete_edit_view.h" #include "chrome/browser/browser.h" #include "chrome/browser/browser_window.h" +#include "chrome/browser/bubble_positioner.h" #include "chrome/browser/profile.h" #include "chrome/browser/tab_contents/tab_contents.h" -#include "chrome/browser/view_ids.h" #include "chrome/browser/views/dom_view.h" #include "chrome/browser/views/info_bubble.h" #include "chrome/browser/views/frame/browser_view.h" -#include "chrome/browser/views/toolbar_view.h" #include "chrome/common/url_constants.h" #include "views/widget/root_view.h" #include "views/widget/widget.h" @@ -46,11 +45,10 @@ const int kNavigationEntryYMargin = 1; // Padding between the navigation bar and the render view contents. const int kNavigationBarBottomPadding = 3; -// NavigationBar constants. -const int kNavigationBarHeight = 23; -const int kNavigationBarBorderThickness = 1; +// NavigationBar size. +const int kNavigationBarHeight = 25; -// The delta applied to the default font size for the Omnibox. +// The delta applied to the default font size for the omnibox. const int kAutocompleteEditFontDelta = 3; // Command line switch for specifying url of the page. @@ -74,7 +72,8 @@ static GURL GetMenuURL() { // mode. class NavigationBar : public views::View, - public AutocompleteEditController { + public AutocompleteEditController, + public BubblePositioner { public: explicit NavigationBar(AppLauncher* app_launcher) : app_launcher_(app_launcher), @@ -82,12 +81,7 @@ class NavigationBar : public views::View, SetFocusable(true); location_entry_view_ = new views::NativeViewHost; AddChildView(location_entry_view_); - set_border(views::Border::CreateSolidBorder(kNavigationBarBorderThickness, - SK_ColorGRAY)); - - AddChildView(&popup_positioning_view_); - popup_positioning_view_.SetVisible(false); - popup_positioning_view_.set_parent_owned(false); + set_border(views::Border::CreateSolidBorder(1, SK_ColorGRAY)); } virtual ~NavigationBar() { @@ -117,8 +111,7 @@ class NavigationBar : public views::View, new AutocompleteEditViewWin(font, this, browser->toolbar_model(), this, GetWidget()->GetNativeView(), browser->profile(), - browser->command_updater(), false, - &popup_positioning_view_); + browser->command_updater(), false, this); location_entry_.reset(autocomplete_view); autocomplete_view->Update(NULL); // The Update call above sets the autocomplete text to the current one in @@ -128,11 +121,10 @@ class NavigationBar : public views::View, AutocompleteEditViewGtk* autocomplete_view = new AutocompleteEditViewGtk(this, browser->toolbar_model(), browser->profile(), - browser->command_updater(), false, - &popup_positioning_view_); + browser->command_updater(), false, this); autocomplete_view->Init(); - gtk_widget_show_all(autocomplete_view->GetNativeView()); - gtk_widget_hide(autocomplete_view->GetNativeView()); + gtk_widget_show_all(autocomplete_view->widget()); + gtk_widget_hide(autocomplete_view->widget()); location_entry_.reset(autocomplete_view); #else NOTIMPLEMENTED(); @@ -149,10 +141,21 @@ class NavigationBar : public views::View, bounds.width() - 2 * (kNavigationEntryPadding + kNavigationEntryXMargin), bounds.height() - kNavigationEntryYMargin * 2); + } - gfx::Rect popup_positioning_bounds(bounds); - popup_positioning_bounds.Inset(0, -(kNavigationBarBorderThickness + 1)); - popup_positioning_view_.SetBounds(popup_positioning_bounds); + // BubblePositioner implementation. + virtual gfx::Rect GetLocationStackBounds() const { + gfx::Rect bounds = location_entry_view_->GetBounds( + views::View::APPLY_MIRRORING_TRANSFORMATION); + gfx::Point origin(bounds.x(), bounds.bottom() + kNavigationEntryPadding); + views::View::ConvertPointToScreen(this, &origin); + gfx::Rect rect = gfx::Rect(origin, gfx::Size(500, 0)); + if (UILayoutIsRightToLeft()) { + // Align the window to the right side of the entry view when + // UI is RTL mode. + rect.set_x(rect.x() - (rect.width() - location_entry_view_->width())); + } + return rect; } // AutocompleteController implementation. @@ -192,11 +195,6 @@ class NavigationBar : public views::View, NOTIMPLEMENTED(); #endif - // This invisible view is provided to the popup in place of |this|, so the - // popup can size itself against it using the same offsets it does with the - // LocationBarView. - views::View popup_positioning_view_; - DISALLOW_COPY_AND_ASSIGN(NavigationBar); }; @@ -239,7 +237,6 @@ InfoBubbleContentsView::InfoBubbleContentsView(AppLauncher* app_launcher) : app_launcher_(app_launcher), navigation_bar_(NULL), dom_view_(NULL) { - DCHECK(app_launcher); } InfoBubbleContentsView::~InfoBubbleContentsView() { @@ -302,7 +299,6 @@ void InfoBubbleContentsView::Layout() { AppLauncher::AppLauncher(Browser* browser) : browser_(browser), info_bubble_(NULL) { - DCHECK(browser); info_bubble_content_ = new InfoBubbleContentsView(this); } @@ -310,15 +306,12 @@ AppLauncher::~AppLauncher() { } // static -AppLauncher* AppLauncher::Show(Browser* browser, - const gfx::Rect& bounds, - const gfx::Point& bubble_anchor) { +AppLauncher* AppLauncher::Show(Browser* browser, const gfx::Rect& bounds) { AppLauncher* app_launcher = new AppLauncher(browser); BrowserView* browser_view = static_cast<BrowserView*>(browser->window()); app_launcher->info_bubble_ = - PinnedContentsInfoBubble::Show(browser_view->frame()->GetWindow(), - bounds, bubble_anchor, app_launcher->info_bubble_content_, - app_launcher); + InfoBubble::Show(browser_view->frame()->GetWindow(), bounds, + app_launcher->info_bubble_content_, app_launcher); app_launcher->info_bubble_content_->BubbleShown(); return app_launcher; } @@ -333,17 +326,7 @@ AppLauncher* AppLauncher::ShowForNewTab(Browser* browser) { gfx::Point origin = bounds.origin(); views::RootView::ConvertPointToScreen(tabstrip, &origin); bounds.set_origin(origin); - - // Figure out where the location bar is, so we can pin the bubble to - // make our url bar appear exactly over it. - views::RootView* root_view = views::Widget::GetWidgetFromNativeWindow( - browser_view->GetNativeHandle())->GetRootView(); - views::View* location_bar = root_view->GetViewByID(VIEW_ID_LOCATION_BAR); - gfx::Point location_bar_origin = location_bar->bounds().origin(); - views::RootView::ConvertPointToScreen(location_bar->GetParent(), - &location_bar_origin); - - return Show(browser, bounds, location_bar_origin); + return Show(browser, bounds); } void AppLauncher::Hide() { @@ -369,6 +352,7 @@ void AppLauncher::InfoBubbleClosing(InfoBubble* info_bubble, new DeleteTask<AppLauncher>(this)); } + void AppLauncher::AddTabWithURL(const GURL& url, PageTransition::Type transition) { #if defined(OS_CHROMEOS) diff --git a/chrome/browser/views/app_launcher.h b/chrome/browser/views/app_launcher.h index fa5cc03..229f265 100644 --- a/chrome/browser/views/app_launcher.h +++ b/chrome/browser/views/app_launcher.h @@ -7,7 +7,7 @@ #include "base/scoped_ptr.h" #include "chrome/browser/tab_contents/tab_contents_delegate.h" -#include "chrome/browser/views/pinned_contents_info_bubble.h" +#include "chrome/browser/views/info_bubble.h" #include "views/view.h" class Browser; @@ -49,17 +49,13 @@ class TabContentsDelegateImpl; // When a new url is opened, or the user clicks outsides the bounds of the // widget the app launcher is closed. class AppLauncher : public InfoBubbleDelegate, - public TabContentsDelegate { + public TabContentsDelegate { public: // Shows an application launcher bubble pointing to the |bounds| (which should - // be in screen coordinates). |bubble_anchor| specifies at which coordinates - // the bubble contents should appear (in screen coordinates). The bubble will - // be moved accordingly. + // be in screen coordinates). // The caller DOES NOT OWN the AppLauncher returned. It is deleted // automatically when the AppLauncher is closed. - static AppLauncher* Show(Browser* browser, - const gfx::Rect& bounds, - const gfx::Point& bubble_anchor); + static AppLauncher* Show(Browser* browser, const gfx::Rect& bounds); // Shows an application launcher bubble pointing to the new tab button. // The caller DOES NOT OWN the AppLauncher returned. It is deleted @@ -111,8 +107,8 @@ class AppLauncher : public InfoBubbleDelegate, // The currently active browser. We use this to open urls. Browser* browser_; - // The InfoBubble displaying the Omnibox and app contents. - PinnedContentsInfoBubble* info_bubble_; + // The InfoBubble displaying the omnibox and app contents. + InfoBubble* info_bubble_; // The view with the navigation bar and render view, shown in the info-bubble. InfoBubbleContentsView* info_bubble_content_; diff --git a/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc b/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc index de0464e..d5eb1f3 100644 --- a/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc +++ b/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc @@ -12,6 +12,7 @@ #include "base/i18n/rtl.h" #include "chrome/browser/autocomplete/autocomplete_edit_view.h" #include "chrome/browser/autocomplete/autocomplete_popup_model.h" +#include "chrome/browser/bubble_positioner.h" #include "chrome/browser/views/bubble_border.h" #include "gfx/canvas.h" #include "gfx/color_utils.h" @@ -90,8 +91,13 @@ const int kIconVerticalPadding = 2; // bottom of the row. See comment about the use of "minimum" for // kIconVerticalPadding. const int kTextVerticalPadding = 3; -// The padding between horizontally adjacent items (including row edges). -const int kHorizontalPadding = 3; +// The padding at the left edge of the row, left of the icon. +const int kRowLeftPadding = 6; +// The padding on the right edge of the row, right of the text. +const int kRowRightPadding = 3; +// The horizontal distance between the right edge of the icon and the left edge +// of the text. +const int kIconTextSpacing = 9; // The size delta between the font used for the edit and the result rows. Passed // to gfx::Font::DeriveFont. #if !defined(OS_CHROMEOS) @@ -164,15 +170,40 @@ class AutocompleteResultView : public views::View { gfx::Rect icon_bounds_; gfx::Rect text_bounds_; + // Icons for rows. + static SkBitmap* icon_url_; + static SkBitmap* icon_url_selected_; + static SkBitmap* icon_history_; + static SkBitmap* icon_history_selected_; + static SkBitmap* icon_search_; + static SkBitmap* icon_search_selected_; + static SkBitmap* icon_more_; + static SkBitmap* icon_more_selected_; + static SkBitmap* icon_star_; + static SkBitmap* icon_star_selected_; static int icon_size_; AutocompleteMatch match_; + static bool initialized_; + static void InitClass(); + DISALLOW_COPY_AND_ASSIGN(AutocompleteResultView); }; // static +SkBitmap* AutocompleteResultView::icon_url_ = NULL; +SkBitmap* AutocompleteResultView::icon_url_selected_ = NULL; +SkBitmap* AutocompleteResultView::icon_history_ = NULL; +SkBitmap* AutocompleteResultView::icon_history_selected_ = NULL; +SkBitmap* AutocompleteResultView::icon_search_ = NULL; +SkBitmap* AutocompleteResultView::icon_search_selected_ = NULL; +SkBitmap* AutocompleteResultView::icon_star_ = NULL; +SkBitmap* AutocompleteResultView::icon_star_selected_ = NULL; +SkBitmap* AutocompleteResultView::icon_more_ = NULL; +SkBitmap* AutocompleteResultView::icon_more_selected_ = NULL; int AutocompleteResultView::icon_size_ = 0; +bool AutocompleteResultView::initialized_ = false; // This class is a utility class which mirrors an x position, calculates the // index of the i-th run of a text, and calculates the index of the i-th @@ -291,11 +322,7 @@ AutocompleteResultView::AutocompleteResultView( mirroring_context_(new MirroringContext()), match_(NULL, 0, false, AutocompleteMatch::URL_WHAT_YOU_TYPED) { CHECK(model_index >= 0); - if (icon_size_ == 0) { - icon_size_ = ResourceBundle::GetSharedInstance().GetBitmapNamed( - AutocompleteMatch::TypeToIcon(AutocompleteMatch::URL_WHAT_YOU_TYPED))-> - width(); - } + InitClass(); } AutocompleteResultView::~AutocompleteResultView() { @@ -317,8 +344,7 @@ void AutocompleteResultView::Paint(gfx::Canvas* canvas) { // position of an input text. bool text_mirroring = View::UILayoutIsRightToLeft(); int text_left = MirroredLeftPointForRect(text_bounds_); - int text_right = - text_mirroring ? (x - kHorizontalPadding) : text_bounds_.right(); + int text_right = text_mirroring ? x - kIconTextSpacing : text_bounds_.right(); x = mirroring_context_->Initialize(text_left, text_right, text_mirroring); x = DrawString(canvas, match_.contents, match_.contents_class, false, x, text_bounds_.y()); @@ -339,11 +365,13 @@ void AutocompleteResultView::Paint(gfx::Canvas* canvas) { } void AutocompleteResultView::Layout() { - icon_bounds_.SetRect(kHorizontalPadding, (height() - icon_size_) / 2, + icon_bounds_.SetRect(kRowLeftPadding, (height() - icon_size_) / 2, icon_size_, icon_size_); - int text_x = icon_bounds_.right() + kHorizontalPadding; - text_bounds_.SetRect(text_x, std::max(0, (height() - font_.height()) / 2), - std::max(0, bounds().right() - text_x - kHorizontalPadding), + int text_x = icon_bounds_.right() + kIconTextSpacing; + text_bounds_.SetRect( + text_x, + std::max(0, (height() - font_.height()) / 2), + std::max(0, bounds().right() - text_x - kRowRightPadding), font_.height()); } @@ -361,19 +389,29 @@ ResultViewState AutocompleteResultView::GetState() const { } SkBitmap* AutocompleteResultView::GetIcon() const { - int icon = match_.starred ? - IDR_OMNIBOX_STAR : AutocompleteMatch::TypeToIcon(match_.type); - if (model_->IsSelectedIndex(model_index_)) { - switch (icon) { - case IDR_OMNIBOX_HTTP: icon = IDR_OMNIBOX_HTTP_SELECTED; break; - case IDR_OMNIBOX_HISTORY: icon = IDR_OMNIBOX_HISTORY_SELECTED; break; - case IDR_OMNIBOX_SEARCH: icon = IDR_OMNIBOX_SEARCH_SELECTED; break; - case IDR_OMNIBOX_MORE: icon = IDR_OMNIBOX_MORE_SELECTED; break; - case IDR_OMNIBOX_STAR: icon = IDR_OMNIBOX_STAR_SELECTED; break; - default: NOTREACHED(); break; - } + bool selected = model_->IsSelectedIndex(model_index_); + if (match_.starred) + return selected ? icon_star_selected_ : icon_star_; + switch (match_.type) { + case AutocompleteMatch::URL_WHAT_YOU_TYPED: + case AutocompleteMatch::HISTORY_URL: + case AutocompleteMatch::NAVSUGGEST: + return selected ? icon_url_selected_ : icon_url_; + case AutocompleteMatch::HISTORY_TITLE: + case AutocompleteMatch::HISTORY_BODY: + case AutocompleteMatch::HISTORY_KEYWORD: + return selected ? icon_history_selected_ : icon_history_; + case AutocompleteMatch::SEARCH_WHAT_YOU_TYPED: + case AutocompleteMatch::SEARCH_HISTORY: + case AutocompleteMatch::SEARCH_SUGGEST: + case AutocompleteMatch::SEARCH_OTHER_ENGINE: + return selected ? icon_search_selected_ : icon_search_; + case AutocompleteMatch::OPEN_HISTORY_PAGE: + return selected ? icon_more_selected_ : icon_more_; + default: + NOTREACHED(); + return NULL; } - return ResourceBundle::GetSharedInstance().GetBitmapNamed(icon); } int AutocompleteResultView::DrawString( @@ -470,7 +508,7 @@ int AutocompleteResultView::DrawStringFragment( // Clamp text width to the available width within the popup so we elide if // necessary. int string_width = std::min(display_font.GetStringWidth(text), - width() - kHorizontalPadding - x); + width() - kRowRightPadding - x); int string_left = mirroring_context_->GetLeft(x, x + string_width); const int flags = force_rtl_directionality ? gfx::Canvas::FORCE_RTL_DIRECTIONALITY : 0; @@ -493,6 +531,25 @@ SkColor AutocompleteResultView::GetFragmentTextColor(int style) const { (style & ACMatchClassification::DIM) ? DIMMED_TEXT : TEXT); } +void AutocompleteResultView::InitClass() { + if (!initialized_) { + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + icon_url_ = rb.GetBitmapNamed(IDR_O2_GLOBE); + icon_url_selected_ = rb.GetBitmapNamed(IDR_O2_GLOBE_SELECTED); + icon_history_ = rb.GetBitmapNamed(IDR_O2_HISTORY); + icon_history_selected_ = rb.GetBitmapNamed(IDR_O2_HISTORY_SELECTED); + icon_search_ = rb.GetBitmapNamed(IDR_O2_SEARCH); + icon_search_selected_ = rb.GetBitmapNamed(IDR_O2_SEARCH_SELECTED); + icon_star_ = rb.GetBitmapNamed(IDR_O2_STAR); + icon_star_selected_ = rb.GetBitmapNamed(IDR_O2_STAR_SELECTED); + icon_more_ = rb.GetBitmapNamed(IDR_O2_MORE); + icon_more_selected_ = rb.GetBitmapNamed(IDR_O2_MORE_SELECTED); + // All icons are assumed to be square, and the same size. + icon_size_ = icon_url_->width(); + initialized_ = true; + } +} + //////////////////////////////////////////////////////////////////////////////// // AutocompletePopupContentsView, public: @@ -501,10 +558,10 @@ AutocompletePopupContentsView::AutocompletePopupContentsView( AutocompleteEditView* edit_view, AutocompleteEditModel* edit_model, Profile* profile, - const views::View* location_bar) + const BubblePositioner* bubble_positioner) : model_(new AutocompletePopupModel(this, edit_model, profile)), edit_view_(edit_view), - location_bar_(location_bar), + bubble_positioner_(bubble_positioner), result_font_(font.DeriveFont(kEditFontAdjust)), ignore_mouse_drag_(false), ALLOW_THIS_IN_INITIALIZER_LIST(size_animation_(this)) { @@ -580,13 +637,10 @@ void AutocompletePopupContentsView::UpdatePopupAppearance() { } // Calculate desired bounds. - gfx::Rect location_bar_bounds(location_bar_->bounds()); - gfx::Point location; - views::View::ConvertPointToScreen(location_bar_, &location); - location_bar_bounds.set_origin(location); - location_bar_bounds.set_height(location_bar_bounds.height() - 1); - gfx::Rect new_target_bounds(bubble_border_->GetBounds(location_bar_bounds, - gfx::Size(location_bar_bounds.width(), total_child_height))); + gfx::Rect location_stack_bounds = + bubble_positioner_->GetLocationStackBounds(); + gfx::Rect new_target_bounds(bubble_border_->GetBounds(location_stack_bounds, + gfx::Size(location_stack_bounds.width(), total_child_height))); // If we're animating and our target height changes, reset the animation. // NOTE: If we just reset blindly on _every_ update, then when the user types @@ -793,19 +847,7 @@ void AutocompletePopupContentsView::MakeContentsPath( SkIntToScalar(bounding_rect.bottom())); SkScalar radius = SkIntToScalar(BubbleBorder::GetCornerRadius()); - SkScalar scaled_radius = - SkScalarMul(radius, (SK_ScalarSqrt2 - SK_Scalar1) * 4 / 3); - path->moveTo(rect.fRight, rect.fTop); - path->lineTo(rect.fRight, rect.fBottom - radius); - path->cubicTo(rect.fRight, rect.fBottom - radius + scaled_radius, - rect.fRight - radius + scaled_radius, rect.fBottom, - rect.fRight - radius, rect.fBottom); - path->lineTo(rect.fLeft + radius, rect.fBottom); - path->cubicTo(rect.fLeft + radius - scaled_radius, rect.fBottom, - rect.fLeft, rect.fBottom - radius + scaled_radius, - rect.fLeft, rect.fBottom - radius); - path->lineTo(rect.fLeft, rect.fTop); - path->close(); + path->addRoundRect(rect, radius, radius); } void AutocompletePopupContentsView::UpdateBlurRegion() { @@ -878,3 +920,14 @@ size_t AutocompletePopupContentsView::GetIndexForPoint( } return AutocompletePopupModel::kNoMatch; } + +// static +AutocompletePopupView* AutocompletePopupView::CreatePopupView( + const gfx::Font& font, + AutocompleteEditView* edit_view, + AutocompleteEditModel* edit_model, + Profile* profile, + const BubblePositioner* bubble_positioner) { + return new AutocompletePopupContentsView(font, edit_view, edit_model, + profile, bubble_positioner); +} diff --git a/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h b/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h index d814206..30a9bf1 100644 --- a/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h +++ b/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h @@ -45,7 +45,7 @@ class AutocompletePopupContentsView : public views::View, AutocompleteEditView* edit_view, AutocompleteEditModel* edit_model, Profile* profile, - const views::View* location_bar); + const BubblePositioner* bubble_positioner); virtual ~AutocompletePopupContentsView(); // Returns the bounds the popup should be shown at. This is the display bounds @@ -125,8 +125,8 @@ class AutocompletePopupContentsView : public views::View, // The edit view that invokes us. AutocompleteEditView* edit_view_; - // An object that the popup positions itself against. - const views::View* location_bar_; + // An object that tells the popup how to position itself. + const BubblePositioner* bubble_positioner_; // Our border, which can compute our desired bounds. const BubbleBorder* bubble_border_; diff --git a/chrome/browser/views/bookmark_editor_view.cc b/chrome/browser/views/bookmark_editor_view.cc index bd61ab3..34f8e91 100644 --- a/chrome/browser/views/bookmark_editor_view.cc +++ b/chrome/browser/views/bookmark_editor_view.cc @@ -282,9 +282,10 @@ void BookmarkEditorView::Init() { std::wstring languages = profile_ ? profile_->GetPrefs()->GetString(prefs::kAcceptLanguages) : std::wstring(); - // The following URL is user-editable, so we don't strip anything from it. + // The following URL is user-editable. We specify omit_username_password= + // false and unescape=false to show the original URL except IDN. url_text = net::FormatUrl(details_.existing_node->GetURL(), languages, - net::kFormatUrlOmitNothing, UnescapeRule::NONE, NULL, NULL, NULL); + false, UnescapeRule::NONE, NULL, NULL, NULL); } url_tf_.SetText(url_text); url_tf_.SetController(this); diff --git a/chrome/browser/views/browser_views_accessibility_browsertest.cc b/chrome/browser/views/browser_views_accessibility_browsertest.cc index 6a5bcf1..ac20277 100644 --- a/chrome/browser/views/browser_views_accessibility_browsertest.cc +++ b/chrome/browser/views/browser_views_accessibility_browsertest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -218,8 +218,7 @@ IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestHomeButtonAccObj) { } // Retrieve accessibility object for Star button and verify accessibility info. -IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, - TestStarButtonAccObj) { +IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestStarButtonAccObj) { // Verify Star button MSAA name and role. TestViewAccessibilityObject( GetToolbarView()->GetViewByID(VIEW_ID_STAR_BUTTON), diff --git a/chrome/browser/views/bubble_border.cc b/chrome/browser/views/bubble_border.cc index 3548286..230a0f4 100644 --- a/chrome/browser/views/bubble_border.cc +++ b/chrome/browser/views/bubble_border.cc @@ -1,6 +1,6 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this +// source code is governed by a BSD-style license that can be found in the +// LICENSE file. #include "chrome/browser/views/bubble_border.h" @@ -31,6 +31,10 @@ static const int kArrowInteriorHeight = 7; gfx::Rect BubbleBorder::GetBounds(const gfx::Rect& position_relative_to, const gfx::Size& contents_size) const { + // The spacing (in pixels) between |position_relative_to| and the bubble + // content. + const int kBubbleSpacing = 2; + // Desired size is size of contents enlarged by the size of the border images. gfx::Size border_size(contents_size); gfx::Insets insets; @@ -39,40 +43,33 @@ gfx::Rect BubbleBorder::GetBounds(const gfx::Rect& position_relative_to, insets.top() + insets.bottom()); // Screen position depends on the arrow location. - // The arrow should overlap the target by some amount since the bottom arrow - // has lots of shadow below it and the top arrow is given an equivalent amount - // of padding. - const int kArrowOverlap = 3; int x = position_relative_to.x() + (position_relative_to.width() / 2); - int arrow_offset = override_arrow_x_offset_ ? override_arrow_x_offset_ : - arrow_x_offset_; if (arrow_is_left()) - x -= arrow_offset; + x -= arrow_x_offset_; else if (arrow_location_ == NONE) x -= ((contents_size.width() / 2) + insets.left()); else - x += (arrow_offset - border_size.width() + 1); + x += (arrow_x_offset_ - border_size.width() + 1); int y = position_relative_to.y(); - if (arrow_is_bottom()) - y += (kArrowOverlap - border_size.height()); - else if (arrow_location_ == NONE) - y += position_relative_to.height(); - else - y += (position_relative_to.height() - kArrowOverlap); + if (arrow_is_top()) { + y += (position_relative_to.height() - + (top_arrow_->height() - kBubbleSpacing)); + } else if (arrow_location_ == NONE) { + y += (position_relative_to.height() - (top_->height() - kBubbleSpacing)); + } else { + y += ((bottom_arrow_->height() - kBubbleSpacing) - border_size.height()); + } return gfx::Rect(x, y, border_size.width(), border_size.height()); } void BubbleBorder::GetInsets(gfx::Insets* insets) const { - int top, bottom; - if (arrow_is_bottom()) { - top = top_->height(); - bottom = std::max(bottom_->height(), bottom_arrow_->height()); - } else { - top = (arrow_location_ == NONE) ? - 0 : std::max(top_->height(), top_arrow_->height()); - bottom = bottom_->height(); - } + int top = top_->height(); + int bottom = bottom_->height(); + if (arrow_is_top()) + top = std::max(top, top_arrow_->height()); + else if (arrow_location_ != NONE) + bottom = std::max(bottom, bottom_arrow_->height()); insets->Set(top, left_->width(), bottom, right_->width()); } @@ -105,7 +102,7 @@ void BubbleBorder::InitClass() { } void BubbleBorder::Paint(const views::View& view, gfx::Canvas* canvas) const { - // Convenience shorthand variables. + // Convenience shorthand variables int width = view.width(); int tl_width = top_left_->width(); int tl_height = top_left_->height(); @@ -135,33 +132,25 @@ void BubbleBorder::Paint(const views::View& view, gfx::Canvas* canvas) const { * border_bottom∙∙∙∙└────┴─┤ ▼ ├──────┤ ▼ ├─┴────┘ * view.height()∙∙∙∙∙∙∙∙∙∙∙└───┘ └───┘ * - * If |arrow_location_| == NONE, the entire top edge is ommitted, and - * |tl_bottom| == |tr_bottom| == 0. Otherwise, one of the four arrows will be - * drawn. + * (At most one of the arrows will be drawn) */ gfx::Insets insets; GetInsets(&insets); int top = insets.top(); + int border_top = top - t_height; + int tl_bottom = border_top + tl_height; + int tr_bottom = border_top + tr_height; int bottom = view.height() - insets.bottom(); int border_bottom = bottom + b_height; int bl_y = border_bottom - bl_height; int br_y = border_bottom - br_height; - int border_top, tl_bottom, tr_bottom; - if (arrow_location_ == NONE) { - border_top = tl_bottom = tr_bottom = 0; - } else { - border_top = top - t_height; - tl_bottom = border_top + tl_height; - tr_bottom = border_top + tr_height; - - // Top left corner - canvas->DrawBitmapInt(*top_left_, 0, border_top); + // Top left corner + canvas->DrawBitmapInt(*top_left_, 0, border_top); - // Top right corner - canvas->DrawBitmapInt(*top_right_, width - tr_width, border_top); - } + // Top right corner + canvas->DrawBitmapInt(*top_right_, width - tr_width, border_top); // Right edge canvas->TileImageInt(*right_, width - r_width, tr_bottom, r_width, @@ -178,7 +167,7 @@ void BubbleBorder::Paint(const views::View& view, gfx::Canvas* canvas) const { canvas->TileImageInt(*left_, 0, tl_bottom, left_->width(), bl_y - tl_bottom); // Arrow edge, if necessary - bool should_draw_top_edge = false; + bool should_draw_top_edge = true; bool should_draw_bottom_edge = true; if (arrow_location_ != NONE) { /* Here's what the variables below mean (without loss of generality): @@ -205,17 +194,8 @@ void BubbleBorder::Paint(const views::View& view, gfx::Canvas* canvas) const { SkBitmap* arrow; int left_of_edge, right_of_edge, edge_y, arrow_y; SkScalar border_y, tip_y; - if (arrow_is_bottom()) { - should_draw_top_edge = true; - should_draw_bottom_edge = false; - edge = bottom_; - arrow = bottom_arrow_; - left_of_edge = bl_width; - right_of_edge = br_width; - edge_y = arrow_y = bottom; - border_y = SkIntToScalar(bottom); - tip_y = SkIntToScalar(bottom + kArrowInteriorHeight); - } else { + if (arrow_is_top()) { + should_draw_top_edge = false; edge = top_; arrow = top_arrow_; left_of_edge = tl_width; @@ -224,12 +204,19 @@ void BubbleBorder::Paint(const views::View& view, gfx::Canvas* canvas) const { arrow_y = top - top_arrow_->height(); border_y = SkIntToScalar(top); tip_y = SkIntToScalar(top - kArrowInteriorHeight); + } else { + should_draw_bottom_edge = false; + edge = bottom_; + arrow = bottom_arrow_; + left_of_edge = bl_width; + right_of_edge = br_width; + edge_y = arrow_y = bottom; + border_y = SkIntToScalar(bottom); + tip_y = SkIntToScalar(bottom + kArrowInteriorHeight); } - int arrow_offset = override_arrow_x_offset_ ? override_arrow_x_offset_ : - arrow_x_offset_; - int arrow_width = arrow->width(); + int arrow_width = (arrow_is_top() ? top_arrow_ : bottom_arrow_)->width(); int arrow_center = arrow_is_left() ? - arrow_offset : width - arrow_offset - 1; + arrow_x_offset_ : width - arrow_x_offset_ - 1; int arrow_x = arrow_center - (arrow_width / 2); SkScalar arrow_interior_x = SkIntToScalar(arrow_center - kArrowInteriorHeight); @@ -284,8 +271,6 @@ void BubbleBorder::Paint(const views::View& view, gfx::Canvas* canvas) const { void BubbleBackground::Paint(gfx::Canvas* canvas, views::View* view) const { // The border of this view creates an anti-aliased round-rect region for the // contents, which we need to fill with the background color. - // NOTE: This doesn't handle an arrow location of "NONE", which has square top - // corners. SkPaint paint; paint.setAntiAlias(true); paint.setStyle(SkPaint::kFill_Style); diff --git a/chrome/browser/views/bubble_border.h b/chrome/browser/views/bubble_border.h index 3670503..3b48048 100644 --- a/chrome/browser/views/bubble_border.h +++ b/chrome/browser/views/bubble_border.h @@ -1,6 +1,6 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this +// source code is governed by a BSD-style license that can be found in the +// LICENSE file. #ifndef CHROME_BROWSER_VIEWS_BUBBLE_BORDER_H_ #define CHROME_BROWSER_VIEWS_BUBBLE_BORDER_H_ @@ -11,11 +11,8 @@ class SkBitmap; -// Renders a border, with optional arrow (off by default), and a custom -// dropshadow. This can be used to produce floating "bubble" objects. -// -// If the arrow is on, the bubble has four round corner. If not, it has round -// corners on the bottom and square corners on the top, and lacks a top border. +// Renders a round-rect border, with optional arrow (off by default), and a +// custom dropshadow. This can be used to produce floating "bubble" objects. class BubbleBorder : public views::Border { public: // Possible locations for the (optional) arrow. @@ -27,9 +24,7 @@ class BubbleBorder : public views::Border { BOTTOM_RIGHT }; - BubbleBorder() : override_arrow_x_offset_(0), - arrow_location_(NONE), - background_color_(SK_ColorWHITE) { + BubbleBorder() : arrow_location_(NONE), background_color_(SK_ColorWHITE) { InitClass(); } @@ -47,12 +42,6 @@ class BubbleBorder : public views::Border { arrow_location_ = arrow_location; } - // Sets a fixed x offset for the arrow. The arrow will still point to the - // same location but the bubble will shift horizontally to make that happen. - void set_arrow_offset(int offset) { - override_arrow_x_offset_ = offset; - } - // Sets the background color for the arrow body. This is irrelevant if you do // not also set the arrow location to something other than NONE. void set_background_color(SkColor background_color) { @@ -79,10 +68,9 @@ class BubbleBorder : public views::Border { virtual ~BubbleBorder() { } - // Returns true if there is an arrow and it is positioned on the bottom edge. - bool arrow_is_bottom() const { - return (arrow_location_ == BOTTOM_LEFT) || - (arrow_location_ == BOTTOM_RIGHT); + // Returns true if there is an arrow and it is positioned on the top edge. + bool arrow_is_top() const { + return (arrow_location_ == TOP_LEFT) || (arrow_location_ == TOP_RIGHT); } // Returns true if there is an arrow and it is positioned on the left side. @@ -107,9 +95,6 @@ class BubbleBorder : public views::Border { static int arrow_x_offset_; - // If specified, overrides the pre-calculated |arrow_x_offset_| of the arrow. - int override_arrow_x_offset_; - ArrowLocation arrow_location_; SkColor background_color_; diff --git a/chrome/browser/views/constrained_window_win.cc b/chrome/browser/views/constrained_window_win.cc index c70ec75..488f1a4 100644 --- a/chrome/browser/views/constrained_window_win.cc +++ b/chrome/browser/views/constrained_window_win.cc @@ -34,7 +34,6 @@ #include "views/window/client_view.h" #include "views/window/non_client_view.h" #include "views/window/window_resources.h" -#include "views/window/window_shape.h" using base::TimeDelta; @@ -350,7 +349,24 @@ int ConstrainedWindowFrameView::NonClientHitTest(const gfx::Point& point) { void ConstrainedWindowFrameView::GetWindowMask(const gfx::Size& size, gfx::Path* window_mask) { DCHECK(window_mask); - views::GetDefaultWindowMask(size, window_mask); + + // Redefine the window visible region for the new size. + window_mask->moveTo(0, 3); + window_mask->lineTo(1, 2); + window_mask->lineTo(1, 1); + window_mask->lineTo(2, 1); + window_mask->lineTo(3, 0); + + window_mask->lineTo(SkIntToScalar(size.width() - 3), 0); + window_mask->lineTo(SkIntToScalar(size.width() - 2), 1); + window_mask->lineTo(SkIntToScalar(size.width() - 1), 1); + window_mask->lineTo(SkIntToScalar(size.width() - 1), 2); + window_mask->lineTo(SkIntToScalar(size.width()), 3); + + window_mask->lineTo(SkIntToScalar(size.width()), + SkIntToScalar(size.height())); + window_mask->lineTo(0, SkIntToScalar(size.height())); + window_mask->close(); } void ConstrainedWindowFrameView::EnableClose(bool enable) { diff --git a/chrome/browser/views/frame/browser_frame_win.cc b/chrome/browser/views/frame/browser_frame_win.cc index 0092fa7..d12963f 100644 --- a/chrome/browser/views/frame/browser_frame_win.cc +++ b/chrome/browser/views/frame/browser_frame_win.cc @@ -28,9 +28,6 @@ // static static const int kClientEdgeThickness = 3; static const int kTabDragWindowAlpha = 200; -// We need to offset the DWMFrame into the toolbar so that the blackness -// doesn't show up on our rounded corners. -static const int kDWMFrameTopOffset = 3; // static (Factory method.) BrowserFrame* BrowserFrame::Create(BrowserView* browser_view, @@ -306,8 +303,7 @@ void BrowserFrameWin::UpdateDWMFrame() { margins.cyTopHeight += GetSystemMetrics(SM_CYSIZEFRAME); } else { margins.cyTopHeight = - GetBoundsForTabStrip(browser_view_->tabstrip()).bottom() + - kDWMFrameTopOffset; + GetBoundsForTabStrip(browser_view_->tabstrip()).bottom(); } } } else { diff --git a/chrome/browser/views/frame/browser_root_view.cc b/chrome/browser/views/frame/browser_root_view.cc index d2985dd..d789b94 100644 --- a/chrome/browser/views/frame/browser_root_view.cc +++ b/chrome/browser/views/frame/browser_root_view.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,10 +7,9 @@ #include "app/drag_drop_types.h" #include "app/l10n_util.h" #include "app/os_exchange_data.h" -#include "chrome/browser/autocomplete/autocomplete.h" -#include "chrome/browser/autocomplete/autocomplete_classifier.h" #include "chrome/browser/location_bar.h" #include "chrome/browser/profile.h" +#include "chrome/browser/search_versus_navigate_classifier.h" #include "chrome/browser/views/frame/browser_view.h" #include "chrome/browser/views/frame/browser_frame.h" #include "chrome/browser/views/tabs/tab_strip.h" @@ -142,13 +141,13 @@ bool BrowserRootView::GetPasteAndGoURL(const OSExchangeData& data, GURL* url) { if (!data.GetString(&text) || text.empty()) return false; - AutocompleteMatch match; - browser_view_->browser()->profile()->GetAutocompleteClassifier()->Classify( - text, std::wstring(), &match, NULL); - if (!match.destination_url.is_valid()) + GURL destination_url; + browser_view_->browser()->profile()->GetSearchVersusNavigateClassifier()-> + Classify(text, std::wstring(), NULL, &destination_url, NULL, NULL, NULL); + if (!destination_url.is_valid()) return false; if (url) - *url = match.destination_url; + *url = destination_url; return true; } diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index f96964a..cc77bc6 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -8,13 +8,20 @@ #include <gtk/gtk.h> #endif +#include "app/drag_drop_types.h" #include "app/l10n_util.h" +#include "app/os_exchange_data.h" #include "app/resource_bundle.h" +#include "base/command_line.h" #include "base/i18n/rtl.h" +#include "base/keyboard_codes.h" +#include "base/time.h" +#include "build/build_config.h" #include "chrome/app/chrome_dll_resource.h" #include "chrome/browser/app_modal_dialog_queue.h" #include "chrome/browser/automation/ui_controls.h" #include "chrome/browser/bookmarks/bookmark_utils.h" +#include "chrome/browser/browser.h" #include "chrome/browser/browser_list.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_theme_provider.h" @@ -23,30 +30,40 @@ #include "chrome/browser/ntp_background_util.h" #include "chrome/browser/page_info_window.h" #include "chrome/browser/pref_service.h" -#include "chrome/browser/sessions/tab_restore_service.h" -#include "chrome/browser/tab_contents/tab_contents.h" -#include "chrome/browser/tab_contents/tab_contents_view.h" +#include "chrome/browser/profile.h" #include "chrome/browser/view_ids.h" #include "chrome/browser/views/accessible_view_helper.h" #include "chrome/browser/views/bookmark_bar_view.h" +#include "chrome/browser/views/browser_bubble.h" #include "chrome/browser/views/browser_dialogs.h" +#include "chrome/browser/views/chrome_views_delegate.h" #include "chrome/browser/views/download_shelf_view.h" #include "chrome/browser/views/extensions/extension_shelf.h" -#include "chrome/browser/views/frame/browser_extender.h" #include "chrome/browser/views/frame/browser_view_layout.h" +#include "chrome/browser/views/frame/browser_extender.h" +#include "chrome/browser/views/frame/browser_frame.h" #include "chrome/browser/views/fullscreen_exit_bubble.h" +#include "chrome/browser/views/infobars/infobar_container.h" #include "chrome/browser/views/status_bubble_views.h" #include "chrome/browser/views/tab_contents/tab_contents_container.h" #include "chrome/browser/views/tabs/browser_tab_strip_controller.h" #include "chrome/browser/views/tabs/side_tab_strip.h" +#include "chrome/browser/views/tabs/tab_strip.h" #include "chrome/browser/views/theme_install_bubble_view.h" +#include "chrome/browser/views/toolbar_star_toggle.h" #include "chrome/browser/views/toolbar_view.h" +#include "chrome/browser/sessions/tab_restore_service.h" +#include "chrome/browser/tab_contents/navigation_entry.h" +#include "chrome/browser/tab_contents/tab_contents.h" +#include "chrome/browser/tab_contents/tab_contents_view.h" #include "chrome/browser/window_sizer.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/native_web_keyboard_event.h" #include "chrome/common/native_window_notification_source.h" #include "chrome/common/notification_service.h" #include "chrome/common/pref_names.h" #include "gfx/canvas.h" +#include "gfx/scrollbar_size.h" #include "grit/app_resources.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" @@ -54,11 +71,14 @@ #include "grit/theme_resources.h" #include "grit/webkit_resources.h" #include "views/controls/single_split_view.h" +#include "views/fill_layout.h" #include "views/focus/external_focus_tracker.h" #include "views/focus/view_storage.h" #include "views/grid_layout.h" +#include "views/view.h" #include "views/widget/root_view.h" #include "views/window/dialog_delegate.h" +#include "views/window/non_client_view.h" #include "views/window/window.h" #if defined(OS_WIN) @@ -769,7 +789,7 @@ void BrowserView::UpdateLoadingAnimations(bool should_animate) { } void BrowserView::SetStarredState(bool is_starred) { - toolbar_->location_bar()->SetStarToggled(is_starred); + toolbar_->star_button()->SetToggled(is_starred); } gfx::Rect BrowserView::GetRestoredBounds() const { @@ -949,7 +969,7 @@ void BrowserView::ShowBookmarkManager() { } void BrowserView::ShowBookmarkBubble(const GURL& url, bool already_bookmarked) { - toolbar_->location_bar()->ShowStarBubble(url, !already_bookmarked); + toolbar_->star_button()->ShowStarBubble(url, !already_bookmarked); } void BrowserView::SetDownloadShelfVisible(bool visible) { diff --git a/chrome/browser/views/frame/glass_browser_frame_view.cc b/chrome/browser/views/frame/glass_browser_frame_view.cc index 9a665f7..608fea9 100644 --- a/chrome/browser/views/frame/glass_browser_frame_view.cc +++ b/chrome/browser/views/frame/glass_browser_frame_view.cc @@ -40,8 +40,6 @@ const int kOTRBottomSpacing = 2; // There are 2 px on each side of the OTR avatar (between the frame border and // it on the left, and between it and the tabstrip on the right). const int kOTRSideSpacing = 2; -// The content left/right images have a shadow built into them. -const int kContentEdgeShadowThickness = 2; // The top 1 px of the tabstrip is shadow; in maximized mode we push this off // the top of the screen so the tabs appear flush against the screen edge. const int kTabstripTopShadowThickness = 1; @@ -263,46 +261,19 @@ void GlassBrowserFrameView::PaintToolbarBackground(gfx::Canvas* canvas) { toolbar_bounds.x() - 1, toolbar_bounds.y() + 2, toolbar_bounds.width() + 2, theme_toolbar->height()); - // Draw rounded corners for the tab. - SkBitmap* toolbar_left_mask = - tp->GetBitmapNamed(IDR_CONTENT_TOP_LEFT_CORNER_MASK); - SkBitmap* toolbar_right_mask = - tp->GetBitmapNamed(IDR_CONTENT_TOP_RIGHT_CORNER_MASK); - - // We mask out the corners by using the DestinationIn transfer mode, - // which keeps the RGB pixels from the destination and the alpha from - // the source. - SkPaint paint; - paint.setXfermodeMode(SkXfermode::kDstIn_Mode); - - // Mask out the top left corner. - int left_x = toolbar_bounds.x() - kContentEdgeShadowThickness - - kClientEdgeThickness; - canvas->DrawBitmapInt(*toolbar_left_mask, - left_x, toolbar_bounds.y(), paint); - - // Mask out the top right corner. - int right_x = toolbar_bounds.right() - toolbar_right_mask->width() + - kContentEdgeShadowThickness + kClientEdgeThickness; - canvas->DrawBitmapInt(*toolbar_right_mask, - right_x, toolbar_bounds.y(), - paint); - - // Draw left edge. - SkBitmap* toolbar_left = tp->GetBitmapNamed(IDR_CONTENT_TOP_LEFT_CORNER); - canvas->DrawBitmapInt(*toolbar_left, left_x, toolbar_bounds.y()); - - // Draw center edge. + SkBitmap* toolbar_left = + tp->GetBitmapNamed(IDR_CONTENT_TOP_LEFT_CORNER); + canvas->DrawBitmapInt(*toolbar_left, + toolbar_bounds.x() - toolbar_left->width(), + toolbar_bounds.y()); + SkBitmap* toolbar_center = tp->GetBitmapNamed(IDR_CONTENT_TOP_CENTER); - canvas->TileImageInt(*toolbar_center, left_x + toolbar_left->width(), - toolbar_bounds.y(), - right_x - (left_x + toolbar_left->width()), - toolbar_center->height()); + canvas->TileImageInt(*toolbar_center, toolbar_bounds.x(), toolbar_bounds.y(), + toolbar_bounds.width(), toolbar_center->height()); - // Right edge. canvas->DrawBitmapInt(*tp->GetBitmapNamed(IDR_CONTENT_TOP_RIGHT_CORNER), - right_x, toolbar_bounds.y()); + toolbar_bounds.right(), toolbar_bounds.y()); // Draw the content/toolbar separator. canvas->DrawLineInt(ResourceBundle::toolbar_separator_color, diff --git a/chrome/browser/views/frame/opaque_browser_frame_view.cc b/chrome/browser/views/frame/opaque_browser_frame_view.cc index c91cb51..e9276f8 100644 --- a/chrome/browser/views/frame/opaque_browser_frame_view.cc +++ b/chrome/browser/views/frame/opaque_browser_frame_view.cc @@ -26,7 +26,6 @@ #include "views/widget/root_view.h" #include "views/window/window.h" #include "views/window/window_resources.h" -#include "views/window/window_shape.h" #if defined(OS_WIN) #include "app/win_util.h" @@ -59,8 +58,6 @@ const int kResizeAreaCornerSize = 16; // The titlebar never shrinks too short to show the caption button plus some // padding below it. const int kCaptionButtonHeightWithPadding = 19; -// The content left/right images have a shadow built into them. -const int kContentEdgeShadowThickness = 2; // The titlebar has a 2 px 3D edge along the top and bottom. const int kTitlebarTopAndBottomEdgeThickness = 2; // The icon is inset 2 px from the left frame border. @@ -92,9 +89,6 @@ const int kNewTabCaptionRestoredSpacing = 5; // similar vertical coordinates, we need to reserve a larger, 16 px gap to avoid // looking too cluttered. const int kNewTabCaptionMaximizedSpacing = 16; -// How far to indent the tabstrip from the left side of the screen when there -// is no OTR icon. -const int kTabStripIndent = 1; } /////////////////////////////////////////////////////////////////////////////// @@ -194,7 +188,7 @@ gfx::Rect OpaqueBrowserFrameView::GetBoundsForTabStrip( BaseTabStrip* tabstrip) const { int tabstrip_x = browser_view_->ShouldShowOffTheRecordAvatar() ? (otr_avatar_icon_->bounds().right() + kOTRSideSpacing) : - NonClientBorderThickness() + kTabStripIndent; + NonClientBorderThickness(); int tabstrip_width = minimize_button_->x() - tabstrip_x - (frame_->GetWindow()->IsMaximized() ? kNewTabCaptionMaximizedSpacing : kNewTabCaptionRestoredSpacing); @@ -304,7 +298,23 @@ void OpaqueBrowserFrameView::GetWindowMask(const gfx::Size& size, if (frame_->GetWindow()->IsMaximized() || frame_->GetWindow()->IsFullscreen()) return; - views::GetDefaultWindowMask(size, window_mask); + // Redefine the window visible region for the new size. + window_mask->moveTo(0, 3); + window_mask->lineTo(1, 2); + window_mask->lineTo(1, 1); + window_mask->lineTo(2, 1); + window_mask->lineTo(3, 0); + + window_mask->lineTo(SkIntToScalar(size.width() - 3), 0); + window_mask->lineTo(SkIntToScalar(size.width() - 2), 1); + window_mask->lineTo(SkIntToScalar(size.width() - 1), 1); + window_mask->lineTo(SkIntToScalar(size.width() - 1), 2); + window_mask->lineTo(SkIntToScalar(size.width()), 3); + + window_mask->lineTo(SkIntToScalar(size.width()), + SkIntToScalar(size.height())); + window_mask->lineTo(0, SkIntToScalar(size.height())); + window_mask->close(); } void OpaqueBrowserFrameView::EnableClose(bool enable) { @@ -707,17 +717,6 @@ void OpaqueBrowserFrameView::PaintToolbarBackground(gfx::Canvas* canvas) { int bottom_edge_height = std::min(toolbar_left->height(), toolbar_bounds.height()) - split_point; - // Split our canvas out so we can mask out the corners of the toolbar - // without masking out the frame. - SkRect bounds; - bounds.set(SkIntToScalar(toolbar_bounds.x() - kClientEdgeThickness), - SkIntToScalar(toolbar_bounds.y()), - SkIntToScalar(toolbar_bounds.x() + toolbar_bounds.width() + - kClientEdgeThickness * 2), - SkIntToScalar(toolbar_bounds.y() + toolbar_bounds.height())); - canvas->saveLayerAlpha(&bounds, 255); - canvas->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode); - SkColor theme_toolbar_color = tp->GetColor(BrowserThemeProvider::COLOR_TOOLBAR); canvas->FillRectInt(theme_toolbar_color, toolbar_bounds.x(), bottom_y, @@ -733,65 +732,26 @@ void OpaqueBrowserFrameView::PaintToolbarBackground(gfx::Canvas* canvas) { toolbar_bounds.width() + (2 * kClientEdgeThickness), theme_toolbar->height()); - // Draw rounded corners for the tab. - SkBitmap* toolbar_left_mask = - tp->GetBitmapNamed(IDR_CONTENT_TOP_LEFT_CORNER_MASK); - SkBitmap* toolbar_right_mask = - tp->GetBitmapNamed(IDR_CONTENT_TOP_RIGHT_CORNER_MASK); - - // We mask out the corners by using the DestinationIn transfer mode, - // which keeps the RGB pixels from the destination and the alpha from - // the source. - SkPaint paint; - paint.setXfermodeMode(SkXfermode::kDstIn_Mode); - - // Make the left edge. - int left_x = toolbar_bounds.x() - kClientEdgeThickness - - kContentEdgeShadowThickness; - canvas->DrawBitmapInt(*toolbar_left_mask, 0, 0, - toolbar_left_mask->width(), split_point, - left_x, toolbar_bounds.y(), - toolbar_left_mask->width(), split_point, false, paint); - canvas->DrawBitmapInt(*toolbar_left_mask, 0, - toolbar_left_mask->height() - bottom_edge_height, - toolbar_left_mask->width(), bottom_edge_height, - left_x, bottom_y, - toolbar_left_mask->width(), bottom_edge_height, false, paint); - - // Mask the right edge. - int right_x = toolbar_bounds.right() - - toolbar_right_mask->width() + kClientEdgeThickness + - kContentEdgeShadowThickness; - canvas->DrawBitmapInt(*toolbar_right_mask, 0, 0, - toolbar_right_mask->width(), split_point, right_x, toolbar_bounds.y(), - toolbar_right_mask->width(), split_point, false, paint); - canvas->DrawBitmapInt(*toolbar_right_mask, 0, - toolbar_right_mask->height() - bottom_edge_height, - toolbar_right_mask->width(), bottom_edge_height, right_x, bottom_y, - toolbar_right_mask->width(), bottom_edge_height, false, paint); - canvas->restore(); - canvas->DrawBitmapInt(*toolbar_left, 0, 0, toolbar_left->width(), split_point, - left_x, toolbar_bounds.y(), + toolbar_bounds.x() - toolbar_left->width(), toolbar_bounds.y(), toolbar_left->width(), split_point, false); canvas->DrawBitmapInt(*toolbar_left, 0, toolbar_left->height() - bottom_edge_height, toolbar_left->width(), - bottom_edge_height, left_x, bottom_y, + bottom_edge_height, toolbar_bounds.x() - toolbar_left->width(), bottom_y, toolbar_left->width(), bottom_edge_height, false); SkBitmap* toolbar_center = tp->GetBitmapNamed(IDR_CONTENT_TOP_CENTER); - canvas->TileImageInt(*toolbar_center, 0, 0, left_x + toolbar_left->width(), - toolbar_bounds.y(), right_x - (left_x + toolbar_left->width()), - split_point); + canvas->TileImageInt(*toolbar_center, 0, 0, toolbar_bounds.x(), + toolbar_bounds.y(), toolbar_bounds.width(), split_point); SkBitmap* toolbar_right = tp->GetBitmapNamed(IDR_CONTENT_TOP_RIGHT_CORNER); canvas->DrawBitmapInt(*toolbar_right, 0, 0, toolbar_right->width(), - split_point, right_x, toolbar_bounds.y(), + split_point, toolbar_bounds.right(), toolbar_bounds.y(), toolbar_right->width(), split_point, false); canvas->DrawBitmapInt(*toolbar_right, 0, toolbar_right->height() - bottom_edge_height, toolbar_right->width(), - bottom_edge_height, right_x, bottom_y, + bottom_edge_height, toolbar_bounds.right(), bottom_y, toolbar_right->width(), bottom_edge_height, false); // Draw the content/toolbar separator. diff --git a/chrome/browser/views/info_bubble.cc b/chrome/browser/views/info_bubble.cc index 8150db9..e5c4858 100644 --- a/chrome/browser/views/info_bubble.cc +++ b/chrome/browser/views/info_bubble.cc @@ -29,17 +29,55 @@ const SkColor InfoBubble::kBackgroundColor = const SkColor InfoBubble::kBackgroundColor = SK_ColorWHITE; #endif +// BorderContents ------------------------------------------------------------- + +// This is used to paint the border of the InfoBubble. Windows uses this via +// BorderWidget (see below), while others can use it directly in the bubble. +class BorderContents : public views::View { + public: + BorderContents() { } + + // Given the size of the contents and the rect to point at, initializes the + // bubble and returns the bounds of both the border + // and the contents inside the bubble. + // |prefer_arrow_on_right| specifies the preferred location for the arrow + // anchor. If the bubble does not fit on the monitor, the arrow location may + // changed so it can. + // + // TODO(pkasting): Maybe this should use mirroring transformations instead, + // which would hopefully simplify this code. + void InitAndGetBounds( + const gfx::Rect& position_relative_to, // In screen coordinates + const gfx::Size& contents_size, + bool prefer_arrow_on_right, + gfx::Rect* contents_bounds, // Returned in window coordinates + gfx::Rect* window_bounds); // Returned in screen coordinates + + private: + virtual ~BorderContents() { } + + // Overridden from View: + virtual void Paint(gfx::Canvas* canvas); + + DISALLOW_COPY_AND_ASSIGN(BorderContents); +}; + void BorderContents::InitAndGetBounds( const gfx::Rect& position_relative_to, const gfx::Size& contents_size, bool prefer_arrow_on_right, gfx::Rect* contents_bounds, gfx::Rect* window_bounds) { + // Margins between the contents and the inside of the border, in pixels. + const int kLeftMargin = 6; + const int kTopMargin = 6; + const int kRightMargin = 6; + const int kBottomMargin = 9; + // Set the border. - if (!bubble_border_) - bubble_border_ = new BubbleBorder; - set_border(bubble_border_); - bubble_border_->set_background_color(InfoBubble::kBackgroundColor); + BubbleBorder* bubble_border = new BubbleBorder; + set_border(bubble_border); + bubble_border->set_background_color(InfoBubble::kBackgroundColor); // Give the contents a margin. gfx::Size local_contents_size(contents_size); @@ -50,9 +88,9 @@ void BorderContents::InitAndGetBounds( // bounds. BubbleBorder::ArrowLocation arrow_location(prefer_arrow_on_right ? BubbleBorder::TOP_RIGHT : BubbleBorder::TOP_LEFT); - bubble_border_->set_arrow_location(arrow_location); + bubble_border->set_arrow_location(arrow_location); *window_bounds = - bubble_border_->GetBounds(position_relative_to, local_contents_size); + bubble_border->GetBounds(position_relative_to, local_contents_size); // See if those bounds will fit on the monitor. scoped_ptr<WindowSizer::MonitorInfoProvider> monitor_provider( @@ -71,10 +109,10 @@ void BorderContents::InitAndGetBounds( arrow_location = arrow_on_left ? BubbleBorder::TOP_LEFT : BubbleBorder::TOP_RIGHT; } - bubble_border_->set_arrow_location(arrow_location); + bubble_border->set_arrow_location(arrow_location); // Now get the recalculated bounds. - *window_bounds = bubble_border_->GetBounds(position_relative_to, + *window_bounds = bubble_border->GetBounds(position_relative_to, local_contents_size); } @@ -82,7 +120,7 @@ void BorderContents::InitAndGetBounds( // subtracting the border dimensions and margin amounts. *contents_bounds = gfx::Rect(gfx::Point(), window_bounds->size()); gfx::Insets insets; - bubble_border_->GetInsets(&insets); + bubble_border->GetInsets(&insets); contents_bounds->Inset(insets.left() + kLeftMargin, insets.top() + kTopMargin, insets.right() + kRightMargin, insets.bottom() + kBottomMargin); } @@ -90,8 +128,6 @@ void BorderContents::InitAndGetBounds( void BorderContents::Paint(gfx::Canvas* canvas) { // The border of this view creates an anti-aliased round-rect region for the // contents, which we need to fill with the background color. - // NOTE: This doesn't handle an arrow location of "NONE", which has square top - // corners. SkPaint paint; paint.setAntiAlias(true); paint.setStyle(SkPaint::kFill_Style); @@ -114,7 +150,7 @@ void BorderContents::Paint(gfx::Canvas* canvas) { #if defined(OS_WIN) // BorderWidget --------------------------------------------------------------- -BorderWidget::BorderWidget() : border_contents_(NULL) { +BorderWidget::BorderWidget() { set_delete_on_destroy(false); // Our owner will free us manually. set_window_style(WS_POPUP); set_window_ex_style(WS_EX_TOOLWINDOW | WS_EX_LAYERED); @@ -127,16 +163,15 @@ gfx::Rect BorderWidget::InitAndGetBounds( bool prefer_arrow_on_right) { // Set up the border view and ask it to calculate our bounds (and our // contents'). - if (!border_contents_) - border_contents_ = new BorderContents; + BorderContents* border_contents = new BorderContents; gfx::Rect contents_bounds, window_bounds; - border_contents_->InitAndGetBounds(position_relative_to, contents_size, - prefer_arrow_on_right, &contents_bounds, - &window_bounds); + border_contents->InitAndGetBounds(position_relative_to, contents_size, + prefer_arrow_on_right, &contents_bounds, + &window_bounds); // Initialize ourselves. WidgetWin::Init(GetAncestor(owner, GA_ROOT), window_bounds); - SetContentsView(border_contents_); + SetContentsView(border_contents); SetWindowPos(owner, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOREDRAW); @@ -233,8 +268,7 @@ void InfoBubble::Init(views::Window* parent, (contents->UILayoutIsRightToLeft() == delegate->PreferOriginSideAnchor()); #if defined(OS_WIN) - if (!border_.get()) - border_.reset(new BorderWidget); + border_.reset(new BorderWidget); // Initialize and position the border window. window_bounds = border_->InitAndGetBounds(GetNativeView(), position_relative_to, contents->GetPreferredSize(), diff --git a/chrome/browser/views/info_bubble.h b/chrome/browser/views/info_bubble.h index ea80b0f..90911b5 100644 --- a/chrome/browser/views/info_bubble.h +++ b/chrome/browser/views/info_bubble.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,7 +7,6 @@ #include "third_party/skia/include/core/SkColor.h" #include "views/accelerator.h" -#include "views/view.h" #if defined(OS_WIN) #include "views/widget/widget_win.h" #elif defined(OS_LINUX) @@ -24,7 +23,6 @@ // have any additional margins. class BorderWidget; -class BubbleBorder; class InfoBubble; namespace views { @@ -35,46 +33,6 @@ namespace gfx { class Path; } -// This is used to paint the border of the InfoBubble. Windows uses this via -// BorderWidget (see below), while others can use it directly in the bubble. -class BorderContents : public views::View { - public: - BorderContents() : bubble_border_(NULL) { } - - // Given the size of the contents and the rect to point at, initializes the - // bubble and returns the bounds of both the border - // and the contents inside the bubble. - // |prefer_arrow_on_right| specifies the preferred location for the arrow - // anchor. If the bubble does not fit on the monitor, the arrow location may - // changed so it can. - // - // TODO(pkasting): Maybe this should use mirroring transformations instead, - // which would hopefully simplify this code. - virtual void InitAndGetBounds( - const gfx::Rect& position_relative_to, // In screen coordinates - const gfx::Size& contents_size, - bool prefer_arrow_on_right, - gfx::Rect* contents_bounds, // Returned in window coordinates - gfx::Rect* window_bounds); // Returned in screen coordinates - - protected: - virtual ~BorderContents() { } - - // Margins between the contents and the inside of the border, in pixels. - static const int kLeftMargin = 6; - static const int kTopMargin = 6; - static const int kRightMargin = 6; - static const int kBottomMargin = 9; - - BubbleBorder* bubble_border_; - - private: - // Overridden from View: - virtual void Paint(gfx::Canvas* canvas); - - DISALLOW_COPY_AND_ASSIGN(BorderContents); -}; - #if defined(OS_WIN) // This is a window that surrounds the info bubble and paints the margin and // border. It is a separate window so that it can be a layered window, so that @@ -89,15 +47,12 @@ class BorderWidget : public views::WidgetWin { // Given the owning (parent) window, the size of the contained contents // (without margins), and the rect (in screen coordinates) to point to, // initializes the window and returns the bounds (in screen coordinates) the - // contents should use. |is_rtl| is supplied to + // contents should use. |is_rtl| is supplied to // BorderContents::InitAndGetBounds(), see its declaration for details. - virtual gfx::Rect InitAndGetBounds(HWND owner, - const gfx::Rect& position_relative_to, - const gfx::Size& contents_size, - bool is_rtl); - - protected: - BorderContents* border_contents_; + gfx::Rect InitAndGetBounds(HWND owner, + const gfx::Rect& position_relative_to, + const gfx::Size& contents_size, + bool is_rtl); private: // Overridden from WidgetWin: @@ -127,7 +82,7 @@ class InfoBubbleDelegate { virtual bool PreferOriginSideAnchor() { return true; } }; -// TODO(sky): this code is ifdef-tastic. It might be cleaner to refactor the +// TODO: this code is ifdef-tastic. It might be cleaner to refactor the // WidgetFoo subclass into a separate class that calls into InfoBubble. // That way InfoBubble has no (or very few) ifdefs. class InfoBubble @@ -165,10 +120,10 @@ class InfoBubble virtual ~InfoBubble() {} // Creates the InfoBubble. - virtual void Init(views::Window* parent, - const gfx::Rect& position_relative_to, - views::View* contents, - InfoBubbleDelegate* delegate); + void Init(views::Window* parent, + const gfx::Rect& position_relative_to, + views::View* contents, + InfoBubbleDelegate* delegate); #if defined(OS_WIN) // Overridden from WidgetWin: @@ -178,11 +133,6 @@ class InfoBubble virtual void IsActiveChanged(); #endif -#if defined(OS_WIN) - // The window used to render the padding, border and arrow. - scoped_ptr<BorderWidget> border_; -#endif - private: // Closes the window notifying the delegate. |closed_by_escape| is true if // the close is the result of pressing escape. @@ -197,6 +147,11 @@ class InfoBubble // The window that this InfoBubble is parented to. views::Window* parent_; +#if defined(OS_WIN) + // The window used to render the padding, border and arrow. + scoped_ptr<BorderWidget> border_; +#endif + // Have we been closed? bool closed_; diff --git a/chrome/browser/views/location_bar_view.cc b/chrome/browser/views/location_bar_view.cc index a4e6da7..b9e36d5 100644 --- a/chrome/browser/views/location_bar_view.cc +++ b/chrome/browser/views/location_bar_view.cc @@ -8,7 +8,6 @@ #include <gtk/gtk.h> #endif -#include "app/drag_drop_types.h" #include "app/l10n_util.h" #include "app/resource_bundle.h" #include "app/theme_provider.h" @@ -17,6 +16,8 @@ #include "chrome/app/chrome_dll_resource.h" #include "chrome/browser/alternate_nav_url_fetcher.h" #include "chrome/browser/browser_list.h" +#include "chrome/browser/browser_window.h" +#include "chrome/browser/bubble_positioner.h" #include "chrome/browser/command_updater.h" #include "chrome/browser/content_setting_bubble_model.h" #include "chrome/browser/content_setting_image_model.h" @@ -25,15 +26,17 @@ #include "chrome/browser/profile.h" #include "chrome/browser/search_engines/template_url_model.h" #include "chrome/browser/view_ids.h" -#include "chrome/browser/views/browser_dialogs.h" -#include "chrome/browser/views/content_blocked_bubble_contents.h" +#include "chrome/browser/views/extensions/extension_popup.h" #include "chrome/browser/views/frame/browser_view.h" +#include "chrome/browser/views/content_blocked_bubble_contents.h" +#include "chrome/common/content_settings.h" #include "chrome/common/platform_util.h" +#include "chrome/common/pref_names.h" #include "gfx/canvas.h" #include "gfx/color_utils.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" -#include "views/drag_utils.h" +#include "net/base/net_util.h" #if defined(OS_WIN) #include "chrome/browser/views/first_run_bubble.h" @@ -44,31 +47,20 @@ using views::View; // static const int LocationBarView::kVertMargin = 2; -// Padding between items in the location bar. -static const int kViewPadding = 3; - -// Padding before the start of a bubble. -static const int kBubblePadding = kViewPadding - 1; - -// Padding between the location icon and the edit, if they're adjacent. -static const int kLocationIconEditPadding = kViewPadding - 1; +// Padding on the right and left of the entry field. +static const int kEntryPadding = 3; -static const int kEVBubbleBackgroundImages[] = { - IDR_OMNIBOX_EV_BUBBLE_BACKGROUND_L, - IDR_OMNIBOX_EV_BUBBLE_BACKGROUND_C, - IDR_OMNIBOX_EV_BUBBLE_BACKGROUND_R, -}; - -static const int kSelectedKeywordBackgroundImages[] = { - IDR_LOCATION_BAR_SELECTED_KEYWORD_BACKGROUND_L, - IDR_LOCATION_BAR_SELECTED_KEYWORD_BACKGROUND_C, - IDR_LOCATION_BAR_SELECTED_KEYWORD_BACKGROUND_R, -}; +// Padding between the entry and the leading/trailing views. +static const int kInnerPadding = 3; static const SkBitmap* kBackground = NULL; static const SkBitmap* kPopupBackground = NULL; +// The delay the mouse has to be hovering over the lock/warning icon before the +// info bubble is shown. +static const int kInfoBubbleHoverDelayMs = 500; + // The tab key image. static const SkBitmap* kTabButtonBitmap = NULL; @@ -140,23 +132,21 @@ LocationBarView::LocationBarView(Profile* profile, CommandUpdater* command_updater, ToolbarModel* model, Delegate* delegate, - bool popup_window_mode) + bool popup_window_mode, + const BubblePositioner* bubble_positioner) : profile_(profile), command_updater_(command_updater), model_(model), delegate_(delegate), disposition_(CURRENT_TAB), - ALLOW_THIS_IN_INITIALIZER_LIST(location_icon_view_(this)), - ALLOW_THIS_IN_INITIALIZER_LIST(ev_bubble_view_( - kEVBubbleBackgroundImages, IDR_OMNIBOX_HTTPS_VALID, - GetColor(ToolbarModel::EV_SECURE, SECURITY_TEXT), this)), location_entry_view_(NULL), - selected_keyword_view_(kSelectedKeywordBackgroundImages, - IDR_OMNIBOX_SEARCH, SK_ColorBLACK, profile), + selected_keyword_view_(profile), keyword_hint_view_(profile), - star_view_(command_updater), + type_to_search_view_(l10n_util::GetString(IDS_OMNIBOX_EMPTY_TEXT)), + security_image_view_(this, profile, model, bubble_positioner), popup_window_mode_(popup_window_mode), - ALLOW_THIS_IN_INITIALIZER_LIST(first_run_bubble_(this)) { + first_run_bubble_(this), + bubble_positioner_(bubble_positioner) { DCHECK(profile_); SetID(VIEW_ID_LOCATION_BAR); SetFocusable(true); @@ -180,45 +170,52 @@ void LocationBarView::Init() { font_ = font_.DeriveFont(3); } - AddChildView(&location_icon_view_); - location_icon_view_.SetVisible(true); - location_icon_view_.SetDragController(this); - location_icon_view_.set_parent_owned(false); - - AddChildView(&ev_bubble_view_); - ev_bubble_view_.SetVisible(false); - ev_bubble_view_.SetDragController(this); - ev_bubble_view_.set_parent_owned(false); - // URL edit field. // View container for URL edit field. #if defined(OS_WIN) + views::Widget* widget = GetWidget(); location_entry_.reset(new AutocompleteEditViewWin(font_, this, model_, this, - GetWidget()->GetNativeView(), profile_, command_updater_, - popup_window_mode_, this)); + widget->GetNativeView(), + profile_, command_updater_, + popup_window_mode_, + bubble_positioner_)); #else location_entry_.reset(new AutocompleteEditViewGtk(this, model_, profile_, - command_updater_, popup_window_mode_, this)); + command_updater_, + popup_window_mode_, + bubble_positioner_)); location_entry_->Init(); // Make all the children of the widget visible. NOTE: this won't display // anything, it just toggles the visible flag. - gtk_widget_show_all(location_entry_->GetNativeView()); + gtk_widget_show_all(location_entry_->widget()); // Hide the widget. NativeViewHostGtk will make it visible again as // necessary. - gtk_widget_hide(location_entry_->GetNativeView()); + gtk_widget_hide(location_entry_->widget()); #endif location_entry_view_ = new views::NativeViewHost; location_entry_view_->SetID(VIEW_ID_AUTOCOMPLETE); AddChildView(location_entry_view_); location_entry_view_->set_focus_view(this); - location_entry_view_->Attach(location_entry_->GetNativeView()); + location_entry_view_->Attach( +#if defined(OS_WIN) + location_entry_->m_hWnd +#else + location_entry_->widget() +#endif + ); // NOLINT AddChildView(&selected_keyword_view_); selected_keyword_view_.SetFont(font_); selected_keyword_view_.SetVisible(false); selected_keyword_view_.set_parent_owned(false); - SkColor dimmed_text = GetColor(ToolbarModel::NONE, DEEMPHASIZED_TEXT); + SkColor dimmed_text = GetColor(false, DEEMPHASIZED_TEXT); + + AddChildView(&type_to_search_view_); + type_to_search_view_.SetVisible(false); + type_to_search_view_.SetFont(font_); + type_to_search_view_.SetColor(dimmed_text); + type_to_search_view_.set_parent_owned(false); AddChildView(&keyword_hint_view_); keyword_hint_view_.SetVisible(false); @@ -226,19 +223,22 @@ void LocationBarView::Init() { keyword_hint_view_.SetColor(dimmed_text); keyword_hint_view_.set_parent_owned(false); + AddChildView(&security_image_view_); + security_image_view_.SetVisible(false); + security_image_view_.set_parent_owned(false); + for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) { - ContentSettingImageView* content_blocked_view = new ContentSettingImageView( - static_cast<ContentSettingsType>(i), this, profile_); + ContentSettingImageView* content_blocked_view = + new ContentSettingImageView(static_cast<ContentSettingsType>(i), this, + profile_, bubble_positioner_); content_setting_views_.push_back(content_blocked_view); AddChildView(content_blocked_view); content_blocked_view->SetVisible(false); } - if (!popup_window_mode_) { - AddChildView(&star_view_); - star_view_.SetVisible(true); - star_view_.set_parent_owned(false); - } + AddChildView(&info_label_); + info_label_.SetVisible(false); + info_label_.set_parent_owned(false); // Notify us when any ancestor is resized. In this case we want to tell the // AutocompleteEditView to close its popup. @@ -256,59 +256,63 @@ bool LocationBarView::IsInitialized() const { } // static -SkColor LocationBarView::GetColor(ToolbarModel::SecurityLevel security_level, - ColorKind kind) { - switch (kind) { +SkColor LocationBarView::GetColor(bool is_secure, ColorKind kind) { + enum SecurityState { + NOT_SECURE = 0, + SECURE, + NUM_STATES + }; + + static bool initialized = false; + static SkColor colors[NUM_STATES][NUM_KINDS]; + if (!initialized) { #if defined(OS_WIN) - case BACKGROUND: return color_utils::GetSysSkColor(COLOR_WINDOW); - case TEXT: return color_utils::GetSysSkColor(COLOR_WINDOWTEXT); - case SELECTED_TEXT: return color_utils::GetSysSkColor(COLOR_HIGHLIGHTTEXT); + colors[NOT_SECURE][BACKGROUND] = color_utils::GetSysSkColor(COLOR_WINDOW); + colors[NOT_SECURE][TEXT] = color_utils::GetSysSkColor(COLOR_WINDOWTEXT); + colors[NOT_SECURE][SELECTED_TEXT] = + color_utils::GetSysSkColor(COLOR_HIGHLIGHTTEXT); #else // TODO(beng): source from theme provider. - case BACKGROUND: return SK_ColorWHITE; - case TEXT: return SK_ColorBLACK; - case SELECTED_TEXT: return SK_ColorWHITE; + colors[NOT_SECURE][BACKGROUND] = SK_ColorWHITE; + colors[NOT_SECURE][TEXT] = SK_ColorBLACK; + colors[NOT_SECURE][SELECTED_TEXT] = SK_ColorWHITE; #endif - - case DEEMPHASIZED_TEXT: - return color_utils::AlphaBlend(GetColor(security_level, TEXT), - GetColor(security_level, BACKGROUND), 128); - - case SECURITY_TEXT: { - SkColor color; - switch (security_level) { - case ToolbarModel::EV_SECURE: - case ToolbarModel::SECURE: - color = SkColorSetRGB(7, 149, 0); - break; - - case ToolbarModel::SECURITY_WARNING: - return GetColor(security_level, DEEMPHASIZED_TEXT); - break; - - case ToolbarModel::SECURITY_ERROR: - color = SkColorSetRGB(162, 0, 0); - break; - - default: - NOTREACHED(); - return GetColor(security_level, TEXT); - } - return color_utils::GetReadableColor(color, GetColor(security_level, - BACKGROUND)); - } - - default: - NOTREACHED(); - return GetColor(security_level, TEXT); + colors[SECURE][BACKGROUND] = SkColorSetRGB(255, 245, 195); + colors[SECURE][TEXT] = SK_ColorBLACK; + colors[SECURE][SELECTED_TEXT] = 0; // Unused + colors[NOT_SECURE][DEEMPHASIZED_TEXT] = + color_utils::AlphaBlend(colors[NOT_SECURE][TEXT], + colors[NOT_SECURE][BACKGROUND], 128); + colors[SECURE][DEEMPHASIZED_TEXT] = + color_utils::AlphaBlend(colors[SECURE][TEXT], + colors[SECURE][BACKGROUND], 128); + colors[NOT_SECURE][SECURITY_TEXT] = color_utils::GetReadableColor( + SkColorSetRGB(200, 0, 0), colors[NOT_SECURE][BACKGROUND]); + colors[SECURE][SECURITY_TEXT] = SkColorSetRGB(0, 150, 20); + colors[NOT_SECURE][SECURITY_INFO_BUBBLE_TEXT] = + colors[NOT_SECURE][SECURITY_TEXT]; + colors[SECURE][SECURITY_INFO_BUBBLE_TEXT] = color_utils::GetReadableColor( + SkColorSetRGB(0, 153, 51), colors[NOT_SECURE][BACKGROUND]); + colors[NOT_SECURE][SCHEME_STRIKEOUT] = color_utils::GetReadableColor( + SkColorSetRGB(210, 0, 0), colors[NOT_SECURE][BACKGROUND]); + colors[SECURE][SCHEME_STRIKEOUT] = 0; // Unused + initialized = true; } + + return colors[is_secure ? SECURE : NOT_SECURE][kind]; } void LocationBarView::Update(const TabContents* tab_for_state_restoring) { + SetSecurityIcon(model_->GetIcon()); RefreshContentSettingViews(); RefreshPageActionViews(); + std::wstring info_text, info_tooltip; + ToolbarModel::InfoTextType info_text_type = + model_->GetInfoText(&info_text, &info_tooltip); + SetInfoText(info_text, info_text_type, info_tooltip); location_entry_->Update(tab_for_state_restoring); - OnChanged(); + Layout(); + SchedulePaint(); } void LocationBarView::UpdateContentSettingsIcons() { @@ -358,6 +362,7 @@ void LocationBarView::SetProfile(Profile* profile) { for (ContentSettingViews::const_iterator i(content_setting_views_.begin()); i != content_setting_views_.end(); ++i) (*i)->set_profile(profile); + security_image_view_.set_profile(profile); } } @@ -365,11 +370,8 @@ TabContents* LocationBarView::GetTabContents() const { return delegate_->GetTabContents(); } -void LocationBarView::SetPreviewEnabledPageAction(ExtensionAction* page_action, +void LocationBarView::SetPreviewEnabledPageAction(ExtensionAction *page_action, bool preview_enabled) { - if (popup_window_mode_) - return; - DCHECK(page_action); TabContents* contents = delegate_->GetTabContents(); @@ -398,156 +400,13 @@ views::View* LocationBarView::GetPageActionView( return NULL; } -void LocationBarView::SetStarToggled(bool on) { - star_view_.SetToggled(on); -} - -void LocationBarView::ShowStarBubble(const GURL& url, bool newly_bookmarked) { - gfx::Rect screen_bounds(star_view_.GetImageBounds()); - // Compensate for some built-in padding in the Star image. - screen_bounds.Inset(1, 1, 1, 2); - gfx::Point origin(screen_bounds.origin()); - views::View::ConvertPointToScreen(&star_view_, &origin); - screen_bounds.set_origin(origin); - browser::ShowBookmarkBubbleView(GetWindow(), screen_bounds, &star_view_, - profile_, url, newly_bookmarked); -} - gfx::Size LocationBarView::GetPreferredSize() { return gfx::Size(0, (popup_window_mode_ ? kPopupBackground : kBackground)->height()); } void LocationBarView::Layout() { - if (!location_entry_.get()) - return; - - int entry_width = width() - kViewPadding; - - // |location_icon_view_| is visible except when |ev_bubble_view_| or - // |selected_keyword_view_| are visible. - int location_icon_width = 0; - int ev_bubble_width = 0; - location_icon_view_.SetVisible(false); - ev_bubble_view_.SetVisible(false); - const std::wstring keyword(location_entry_->model()->keyword()); - const bool is_keyword_hint(location_entry_->model()->is_keyword_hint()); - const bool show_selected_keyword = !keyword.empty() && !is_keyword_hint; - if (show_selected_keyword) { - entry_width -= kViewPadding; // Assume the keyword might be hidden. - } else if (model_->GetSecurityLevel() == ToolbarModel::EV_SECURE) { - ev_bubble_view_.SetVisible(true); - ev_bubble_view_.SetLabel(model_->GetEVCertName()); - ev_bubble_width = ev_bubble_view_.GetPreferredSize().width(); - entry_width -= kBubblePadding + ev_bubble_width + kViewPadding; - } else { - location_icon_view_.SetVisible(true); - location_icon_width = location_icon_view_.GetPreferredSize().width(); - entry_width -= - kViewPadding + location_icon_width + kLocationIconEditPadding; - } - - entry_width -= star_view_.GetPreferredSize().width() + kViewPadding; - for (PageActionViews::const_iterator i(page_action_views_.begin()); - i != page_action_views_.end(); ++i) { - if ((*i)->IsVisible()) - entry_width -= (*i)->GetPreferredSize().width() + kViewPadding; - } - for (ContentSettingViews::const_iterator i(content_setting_views_.begin()); - i != content_setting_views_.end(); ++i) { - if ((*i)->IsVisible()) - entry_width -= (*i)->GetPreferredSize().width() + kViewPadding; - } - -#if defined(OS_WIN) - RECT formatting_rect; - location_entry_->GetRect(&formatting_rect); - RECT edit_bounds; - location_entry_->GetClientRect(&edit_bounds); - int max_edit_width = entry_width - formatting_rect.left - - (edit_bounds.right - formatting_rect.right); -#else - int max_edit_width = entry_width; -#endif - - if (max_edit_width < 0) - return; - const int available_width = AvailableWidth(max_edit_width); - - const bool show_keyword_hint = !keyword.empty() && is_keyword_hint; - selected_keyword_view_.SetVisible(show_selected_keyword); - keyword_hint_view_.SetVisible(show_keyword_hint); - if (show_selected_keyword) { - if (selected_keyword_view_.keyword() != keyword) - selected_keyword_view_.SetKeyword(keyword); - } else if (show_keyword_hint) { - if (keyword_hint_view_.keyword() != keyword) - keyword_hint_view_.SetKeyword(keyword); - } - - // TODO(sky): baseline layout. - int location_y = TopMargin(); - int location_height = std::max(height() - location_y - kVertMargin, 0); - - // Lay out items to the right of the edit field. - int offset = width() - kViewPadding; - int star_width = star_view_.GetPreferredSize().width(); - offset -= star_width; - star_view_.SetBounds(offset, location_y, star_width, location_height); - offset -= kViewPadding; - - for (PageActionViews::const_iterator i(page_action_views_.begin()); - i != page_action_views_.end(); ++i) { - if ((*i)->IsVisible()) { - int page_action_width = (*i)->GetPreferredSize().width(); - offset -= page_action_width; - (*i)->SetBounds(offset, location_y, page_action_width, location_height); - offset -= kViewPadding; - } - } - // We use a reverse_iterator here because we're laying out the views from - // right to left but in the vector they're ordered left to right. - for (ContentSettingViews::const_reverse_iterator - i(content_setting_views_.rbegin()); i != content_setting_views_.rend(); - ++i) { - if ((*i)->IsVisible()) { - int content_blocked_width = (*i)->GetPreferredSize().width(); - offset -= content_blocked_width; - (*i)->SetBounds(offset, location_y, content_blocked_width, - location_height); - offset -= kViewPadding; - } - } - - // Now lay out items to the left of the edit field. - if (location_icon_view_.IsVisible()) { - location_icon_view_.SetBounds(kViewPadding, location_y, location_icon_width, - location_height); - offset = location_icon_view_.bounds().right() + kLocationIconEditPadding; - } else if (ev_bubble_view_.IsVisible()) { - ev_bubble_view_.SetBounds(kBubblePadding, location_y, ev_bubble_width, - location_height); - offset = ev_bubble_view_.bounds().right() + kViewPadding; - } else { - offset = show_selected_keyword ? kBubblePadding : kViewPadding; - } - - // Now lay out the edit field and views that autocollapse to give it more - // room. - gfx::Rect location_bounds(offset, location_y, entry_width, location_height); - if (show_selected_keyword) { - LayoutView(true, &selected_keyword_view_, available_width, - &location_bounds); - if (!selected_keyword_view_.IsVisible()) { - location_bounds.set_x( - location_bounds.x() + kViewPadding - kBubblePadding); - } - } else if (show_keyword_hint) { - LayoutView(false, &keyword_hint_view_, available_width, - &location_bounds); - } - - location_entry_view_->SetBounds(location_bounds); + DoLayout(true); } void LocationBarView::Paint(gfx::Canvas* canvas) { @@ -560,9 +419,10 @@ void LocationBarView::Paint(gfx::Canvas* canvas) { canvas->TileImageInt(*background, 0, 0, 0, 0, width(), height()); int top_margin = TopMargin(); - canvas->FillRectInt(GetColor(ToolbarModel::NONE, BACKGROUND), 0, - top_margin, width(), - std::max(height() - top_margin - kVertMargin, 0)); + canvas->FillRectInt( + GetColor(model_->GetSchemeSecurityLevel() == ToolbarModel::SECURE, + BACKGROUND), + 0, top_margin, width(), std::max(height() - top_margin - kVertMargin, 0)); } void LocationBarView::VisibleBoundsInRootChanged() { @@ -649,11 +509,7 @@ void LocationBarView::OnAutocompleteAccept( } void LocationBarView::OnChanged() { - location_icon_view_.SetImage( - ResourceBundle::GetSharedInstance().GetBitmapNamed( - location_entry_->GetIcon())); - Layout(); - SchedulePaint(); + DoLayout(false); } void LocationBarView::OnInputInProgress(bool in_progress) { @@ -684,6 +540,117 @@ std::wstring LocationBarView::GetTitle() const { return UTF16ToWideHack(delegate_->GetTabContents()->GetTitle()); } +void LocationBarView::DoLayout(const bool force_layout) { + if (!location_entry_.get()) + return; + + int entry_width = width() - (kEntryPadding * 2); + + for (PageActionViews::const_iterator i(page_action_views_.begin()); + i != page_action_views_.end(); ++i) { + if ((*i)->IsVisible()) + entry_width -= (*i)->GetPreferredSize().width() + kInnerPadding; + } + for (ContentSettingViews::const_iterator i(content_setting_views_.begin()); + i != content_setting_views_.end(); ++i) { + if ((*i)->IsVisible()) + entry_width -= (*i)->GetPreferredSize().width() + kInnerPadding; + } + gfx::Size security_image_size; + if (security_image_view_.IsVisible()) { + security_image_size = security_image_view_.GetPreferredSize(); + entry_width -= security_image_size.width() + kInnerPadding; + } + gfx::Size info_label_size; + if (info_label_.IsVisible()) { + info_label_size = info_label_.GetPreferredSize(); + entry_width -= (info_label_size.width() + kInnerPadding); + } + +#if defined(OS_WIN) + RECT formatting_rect; + location_entry_->GetRect(&formatting_rect); + RECT edit_bounds; + location_entry_->GetClientRect(&edit_bounds); + int max_edit_width = entry_width - formatting_rect.left - + (edit_bounds.right - formatting_rect.right); +#else + int max_edit_width = entry_width; +#endif + + if (max_edit_width < 0) + return; + const int available_width = AvailableWidth(max_edit_width); + bool needs_layout = force_layout; + needs_layout |= AdjustHints(available_width); + + if (!needs_layout) + return; + + // TODO(sky): baseline layout. + int location_y = TopMargin(); + int location_height = std::max(height() - location_y - kVertMargin, 0); + + // First set the bounds for the label that appears to the right of the + // security icon. + int offset = width() - kEntryPadding; + if (info_label_.IsVisible()) { + offset -= info_label_size.width(); + info_label_.SetBounds(offset, location_y, + info_label_size.width(), location_height); + offset -= kInnerPadding; + } + if (security_image_view_.IsVisible()) { + offset -= security_image_size.width(); + security_image_view_.SetBounds(offset, location_y, + security_image_size.width(), + location_height); + offset -= kInnerPadding; + } + + for (PageActionViews::const_iterator i(page_action_views_.begin()); + i != page_action_views_.end(); ++i) { + if ((*i)->IsVisible()) { + int page_action_width = (*i)->GetPreferredSize().width(); + offset -= page_action_width; + (*i)->SetBounds(offset, location_y, page_action_width, location_height); + offset -= kInnerPadding; + } + } + // We use a reverse_iterator here because we're laying out the views from + // right to left but in the vector they're ordered left to right. + for (ContentSettingViews::const_reverse_iterator + i(content_setting_views_.rbegin()); i != content_setting_views_.rend(); + ++i) { + if ((*i)->IsVisible()) { + int content_blocked_width = (*i)->GetPreferredSize().width(); + offset -= content_blocked_width; + (*i)->SetBounds(offset, location_y, content_blocked_width, + location_height); + offset -= kInnerPadding; + } + } + gfx::Rect location_bounds(kEntryPadding, location_y, entry_width, + location_height); + if (selected_keyword_view_.IsVisible()) { + LayoutView(true, &selected_keyword_view_, available_width, + &location_bounds); + } else if (keyword_hint_view_.IsVisible()) { + LayoutView(false, &keyword_hint_view_, available_width, + &location_bounds); + } else if (type_to_search_view_.IsVisible()) { + LayoutView(false, &type_to_search_view_, available_width, + &location_bounds); + } + + location_entry_view_->SetBounds(location_bounds); + if (!force_layout) { + // If force_layout is false and we got this far it means one of the views + // was added/removed or changed in size. We need to paint ourselves. + SchedulePaint(); + } +} + int LocationBarView::TopMargin() const { return std::min(kVertMargin, height()); } @@ -702,7 +669,52 @@ int LocationBarView::AvailableWidth(int location_bar_width) { } bool LocationBarView::UsePref(int pref_width, int available_width) { - return (pref_width + kViewPadding <= available_width); + return (pref_width + kInnerPadding <= available_width); +} + +bool LocationBarView::NeedsResize(View* view, int available_width) { + gfx::Size size = view->GetPreferredSize(); + if (!UsePref(size.width(), available_width)) + size = view->GetMinimumSize(); + return (view->width() != size.width()); +} + +bool LocationBarView::AdjustHints(int available_width) { + const std::wstring keyword(location_entry_->model()->keyword()); + const bool is_keyword_hint(location_entry_->model()->is_keyword_hint()); + const bool show_selected_keyword = !keyword.empty() && !is_keyword_hint; + const bool show_keyword_hint = !keyword.empty() && is_keyword_hint; + bool show_search_hint(location_entry_->model()->show_search_hint()); + DCHECK(keyword.empty() || !show_search_hint); + + if (show_search_hint) { + // Only show type to search if all the text fits. + gfx::Size view_pref = type_to_search_view_.GetPreferredSize(); + show_search_hint = UsePref(view_pref.width(), available_width); + } + + // NOTE: This isn't just one big || statement as ToggleVisibility MUST be + // invoked for each view. + bool needs_layout = false; + needs_layout |= ToggleVisibility(show_selected_keyword, + &selected_keyword_view_); + needs_layout |= ToggleVisibility(show_keyword_hint, &keyword_hint_view_); + needs_layout |= ToggleVisibility(show_search_hint, &type_to_search_view_); + if (show_selected_keyword) { + if (selected_keyword_view_.keyword() != keyword) { + needs_layout = true; + selected_keyword_view_.SetKeyword(keyword); + } + needs_layout |= NeedsResize(&selected_keyword_view_, available_width); + } else if (show_keyword_hint) { + if (keyword_hint_view_.keyword() != keyword) { + needs_layout = true; + keyword_hint_view_.SetKeyword(keyword); + } + needs_layout |= NeedsResize(&keyword_hint_view_, available_width); + } + + return needs_layout; } void LocationBarView::LayoutView(bool leading, @@ -713,20 +725,40 @@ void LocationBarView::LayoutView(bool leading, gfx::Size view_size = view->GetPreferredSize(); if (!UsePref(view_size.width(), available_width)) view_size = view->GetMinimumSize(); - if (view_size.width() + kViewPadding >= bounds->width()) { + if (view_size.width() + kInnerPadding < bounds->width()) { + view->SetVisible(true); + if (leading) { + view->SetBounds(bounds->x(), bounds->y(), view_size.width(), + bounds->height()); + bounds->Offset(view_size.width() + kInnerPadding, 0); + } else { + view->SetBounds(bounds->right() - view_size.width(), bounds->y(), + view_size.width(), bounds->height()); + } + bounds->set_width(bounds->width() - view_size.width() - kInnerPadding); + } else { view->SetVisible(false); - return; } - if (leading) { - view->SetBounds(bounds->x(), bounds->y(), view_size.width(), - bounds->height()); - bounds->Offset(view_size.width() + kViewPadding, 0); - } else { - view->SetBounds(bounds->right() - view_size.width(), bounds->y(), - view_size.width(), bounds->height()); +} + +void LocationBarView::SetSecurityIcon(ToolbarModel::Icon icon) { + switch (icon) { + case ToolbarModel::LOCK_ICON: + security_image_view_.SetImageShown(SecurityImageView::LOCK); + security_image_view_.SetVisible(true); + break; + case ToolbarModel::WARNING_ICON: + security_image_view_.SetImageShown(SecurityImageView::WARNING); + security_image_view_.SetVisible(true); + break; + case ToolbarModel::NO_ICON: + security_image_view_.SetVisible(false); + break; + default: + NOTREACHED(); + security_image_view_.SetVisible(false); + break; } - bounds->set_width(bounds->width() - view_size.width() - kViewPadding); - view->SetVisible(true); } void LocationBarView::RefreshContentSettingViews() { @@ -746,9 +778,7 @@ void LocationBarView::DeletePageActionViews() { } void LocationBarView::RefreshPageActionViews() { - if (popup_window_mode_) - return; - + std::vector<ExtensionAction*> page_actions; ExtensionsService* service = profile_->GetExtensionsService(); if (!service) return; @@ -760,7 +790,6 @@ void LocationBarView::RefreshPageActionViews() { // Remember the previous visibility of the page actions so that we can // notify when this changes. - std::vector<ExtensionAction*> page_actions; for (size_t i = 0; i < service->extensions()->size(); ++i) { if (service->extensions()->at(i)->page_action()) page_actions.push_back(service->extensions()->at(i)->page_action()); @@ -775,7 +804,8 @@ void LocationBarView::RefreshPageActionViews() { for (size_t i = 0; i < page_actions.size(); ++i) { page_action_views_[i] = new PageActionWithBadgeView( - new PageActionImageView(this, profile_, page_actions[i])); + new PageActionImageView(this, profile_, + page_actions[i], bubble_positioner_)); page_action_views_[i]->SetVisible(false); AddChildView(page_action_views_[i]); } @@ -802,6 +832,25 @@ void LocationBarView::RefreshPageActionViews() { } } +void LocationBarView::SetInfoText(const std::wstring& text, + ToolbarModel::InfoTextType text_type, + const std::wstring& tooltip_text) { + info_label_.SetVisible(!text.empty()); + info_label_.SetText(text); + if (text_type == ToolbarModel::INFO_EV_TEXT) + info_label_.SetColor(GetColor(true, SECURITY_TEXT)); + info_label_.SetTooltipText(tooltip_text); +} + +bool LocationBarView::ToggleVisibility(bool new_vis, View* view) { + DCHECK(view); + if (view->IsVisible() != new_vis) { + view->SetVisible(new_vis); + return true; + } + return false; +} + #if defined(OS_WIN) void LocationBarView::OnMouseEvent(const views::MouseEvent& event, UINT msg) { UINT flags = 0; @@ -818,54 +867,10 @@ void LocationBarView::OnMouseEvent(const views::MouseEvent& event, UINT msg) { gfx::Point screen_point(event.location()); ConvertPointToScreen(this, &screen_point); - location_entry_->HandleExternalMsg(msg, flags, screen_point.ToPOINT()); -} -#endif - -void LocationBarView::ShowFirstRunBubbleInternal( - FirstRun::BubbleType bubble_type) { -#if defined(OS_WIN) // First run bubble doesn't make sense for Chrome OS. - // If the browser is no longer active, let's not show the info bubble, as this - // would make the browser the active window again. - if (!location_entry_view_ || !location_entry_view_->GetWidget()->IsActive()) - return; - // Point at the start of the edit control; adjust to look as good as possible. - const int kXOffset = 1; // Text looks like it actually starts 1 px in. - const int kYOffset = -4; // Point into the omnibox, not just at its edge. - gfx::Point origin(location_entry_view_->bounds().x() + kXOffset, - y() + height() + kYOffset); - // If the UI layout is RTL, the coordinate system is not transformed and - // therefore we need to adjust the X coordinate so that bubble appears on the - // right hand side of the location bar. - if (UILayoutIsRightToLeft()) - origin.set_x(width() - origin.x()); - views::View::ConvertPointToScreen(this, &origin); - FirstRunBubble::Show(profile_, GetWindow(), gfx::Rect(origin, gfx::Size()), - bubble_type); -#endif + location_entry_->HandleExternalMsg(msg, flags, screen_point.ToPOINT()); } - -bool LocationBarView::SkipDefaultKeyEventProcessing(const views::KeyEvent& e) { - if (keyword_hint_view_.IsVisible() && - views::FocusManager::IsTabTraversalKeyEvent(e)) { - // We want to receive tab key events when the hint is showing. - return true; - } - -#if defined(OS_WIN) - return location_entry_->SkipDefaultKeyEventProcessing(e); -#else - // TODO(jcampan): We need to refactor the code of - // AutocompleteEditViewWin::SkipDefaultKeyEventProcessing into this class so - // it can be shared between Windows and Linux. - // For now, we just override back-space as it is the accelerator for back - // navigation. - if (e.GetKeyCode() == base::VKEY_BACK) - return true; - return false; #endif -} bool LocationBarView::GetAccessibleRole(AccessibilityTypes::Role* role) { DCHECK(role); @@ -874,213 +879,76 @@ bool LocationBarView::GetAccessibleRole(AccessibilityTypes::Role* role) { return true; } +// SelectedKeywordView ------------------------------------------------------- -void LocationBarView::WriteDragData(views::View* sender, - const gfx::Point& press_pt, - OSExchangeData* data) { - DCHECK(GetDragOperations(sender, press_pt) != DragDropTypes::DRAG_NONE); - - TabContents* tab_contents = delegate_->GetTabContents(); - DCHECK(tab_contents); - drag_utils::SetURLAndDragImage(tab_contents->GetURL(), - UTF16ToWideHack(tab_contents->GetTitle()), - tab_contents->GetFavIcon(), data); -} - -int LocationBarView::GetDragOperations(views::View* sender, - const gfx::Point& p) { - DCHECK((sender == &location_icon_view_) || (sender == &ev_bubble_view_)); - TabContents* tab_contents = delegate_->GetTabContents(); - return (tab_contents && tab_contents->GetURL().is_valid() && - !location_entry()->IsEditingOrEmpty()) ? - (DragDropTypes::DRAG_COPY | DragDropTypes::DRAG_LINK) : - DragDropTypes::DRAG_NONE; -} - -bool LocationBarView::CanStartDrag(View* sender, - const gfx::Point& press_pt, - const gfx::Point& p) { - return true; -} - -// ClickHandler ---------------------------------------------------------------- - -LocationBarView::ClickHandler::ClickHandler(const views::View* owner, - const LocationBarView* location_bar) - : owner_(owner), - location_bar_(location_bar) { -} - -void LocationBarView::ClickHandler::OnMouseReleased( - const views::MouseEvent& event, - bool canceled) { - if (canceled || !owner_->HitTest(event.location())) - return; - - // Do not show page info if the user has been editing the location - // bar, or the location bar is at the NTP. - if (location_bar_->location_entry()->IsEditingOrEmpty()) - return; - - TabContents* tab = location_bar_->GetTabContents(); - NavigationEntry* nav_entry = tab->controller().GetActiveEntry(); - if (!nav_entry) { - NOTREACHED(); - return; - } - tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true); -} - -// LocationIconView ------------------------------------------------------------ - -LocationBarView::LocationIconView::LocationIconView( - const LocationBarView* location_bar) - : ALLOW_THIS_IN_INITIALIZER_LIST(click_handler_(this, location_bar)) { -} - -LocationBarView::LocationIconView::~LocationIconView() { -} - -bool LocationBarView::LocationIconView::OnMousePressed( - const views::MouseEvent& event) { - // We want to show the dialog on mouse release; that is the standard behavior - // for buttons. - return true; -} - -void LocationBarView::LocationIconView::OnMouseReleased( - const views::MouseEvent& event, - bool canceled) { - click_handler_.OnMouseReleased(event, canceled); -} - -// IconLabelBubbleView --------------------------------------------------------- - -// Amount to offset the image. -static const int kImageOffset = 1; - -// Amount to offset the label from the image. -static const int kLabelOffset = 3; - -// Amount of padding after the label. -static const int kLabelPadding = 4; - -LocationBarView::IconLabelBubbleView::IconLabelBubbleView( - const int background_images[], - int contained_image, - const SkColor& color) - : background_painter_(background_images) { - AddChildView(&image_); - image_.set_parent_owned(false); - image_.SetImage( - ResourceBundle::GetSharedInstance().GetBitmapNamed(contained_image)); - AddChildView(&label_); - label_.set_parent_owned(false); - label_.SetColor(color); -} - -LocationBarView::IconLabelBubbleView::~IconLabelBubbleView() { -} - -void LocationBarView::IconLabelBubbleView::SetFont(const gfx::Font& font) { - label_.SetFont(font); -} - -void LocationBarView::IconLabelBubbleView::SetLabel(const std::wstring& label) { - label_.SetText(label); -} - -void LocationBarView::IconLabelBubbleView::Paint(gfx::Canvas* canvas) { - int y_offset = (GetParent()->height() - height()) / 2; - canvas->TranslateInt(0, y_offset); - background_painter_.Paint(width(), height(), canvas); - canvas->TranslateInt(0, -y_offset); -} - -gfx::Size LocationBarView::IconLabelBubbleView::GetPreferredSize() { - gfx::Size size(GetNonLabelSize()); - size.Enlarge(label_.GetPreferredSize().width(), 0); - return size; -} - -void LocationBarView::IconLabelBubbleView::Layout() { - image_.SetBounds(kImageOffset, 0, image_.GetPreferredSize().width(), - height()); - gfx::Size label_size(label_.GetPreferredSize()); - label_.SetBounds(image_.x() + image_.width() + kLabelOffset, - (height() - label_size.height()) / 2, label_size.width(), - label_size.height()); -} - -gfx::Size LocationBarView::IconLabelBubbleView::GetNonLabelSize() { - return gfx::Size(kImageOffset + image_.GetPreferredSize().width() + - kLabelOffset + kLabelPadding, background_painter_.height()); -} - -// EVBubbleView ---------------------------------------------------------------- - -LocationBarView::EVBubbleView::EVBubbleView(const int background_images[], - int contained_image, - const SkColor& color, - const LocationBarView* location_bar) - : IconLabelBubbleView(background_images, contained_image, color), - ALLOW_THIS_IN_INITIALIZER_LIST(click_handler_(this, location_bar)) { -} - -LocationBarView::EVBubbleView::~EVBubbleView() { -} - -bool LocationBarView::EVBubbleView::OnMousePressed( - const views::MouseEvent& event) { - // We want to show the dialog on mouse release; that is the standard behavior - // for buttons. - return true; -} +// The background is drawn using HorizontalPainter. This is the +// left/center/right image names. +static const int kBorderImages[] = { + IDR_LOCATION_BAR_SELECTED_KEYWORD_BACKGROUND_L, + IDR_LOCATION_BAR_SELECTED_KEYWORD_BACKGROUND_C, + IDR_LOCATION_BAR_SELECTED_KEYWORD_BACKGROUND_R }; -void LocationBarView::EVBubbleView::OnMouseReleased( - const views::MouseEvent& event, - bool canceled) { - click_handler_.OnMouseReleased(event, canceled); -} +// Insets around the label. +static const int kTopInset = 0; +static const int kBottomInset = 0; +static const int kLeftInset = 4; +static const int kRightInset = 4; -// SelectedKeywordView --------------------------------------------------------- +// Offset from the top the background is drawn at. +static const int kBackgroundYOffset = 2; -LocationBarView::SelectedKeywordView::SelectedKeywordView( - const int background_images[], - int contained_image, - const SkColor& color, - Profile* profile) - : IconLabelBubbleView(background_images, contained_image, color), +LocationBarView::SelectedKeywordView::SelectedKeywordView(Profile* profile) + : background_painter_(kBorderImages), profile_(profile) { + AddChildView(&full_label_); + AddChildView(&partial_label_); + // Full_label and partial_label are deleted by us, make sure View doesn't + // delete them too. + full_label_.set_parent_owned(false); + partial_label_.set_parent_owned(false); full_label_.SetVisible(false); partial_label_.SetVisible(false); + full_label_.set_border( + views::Border::CreateEmptyBorder(kTopInset, kLeftInset, kBottomInset, + kRightInset)); + partial_label_.set_border( + views::Border::CreateEmptyBorder(kTopInset, kLeftInset, kBottomInset, + kRightInset)); + full_label_.SetColor(SK_ColorBLACK); + partial_label_.SetColor(SK_ColorBLACK); } LocationBarView::SelectedKeywordView::~SelectedKeywordView() { } void LocationBarView::SelectedKeywordView::SetFont(const gfx::Font& font) { - IconLabelBubbleView::SetFont(font); full_label_.SetFont(font); partial_label_.SetFont(font); } +void LocationBarView::SelectedKeywordView::Paint(gfx::Canvas* canvas) { + canvas->TranslateInt(0, kBackgroundYOffset); + background_painter_.Paint(width(), height() - kTopInset, canvas); + canvas->TranslateInt(0, -kBackgroundYOffset); +} + gfx::Size LocationBarView::SelectedKeywordView::GetPreferredSize() { - gfx::Size size(GetNonLabelSize()); - size.Enlarge(full_label_.GetPreferredSize().width(), 0); - return size; + return full_label_.GetPreferredSize(); } gfx::Size LocationBarView::SelectedKeywordView::GetMinimumSize() { - gfx::Size size(GetNonLabelSize()); - size.Enlarge(partial_label_.GetMinimumSize().width(), 0); - return size; + return partial_label_.GetMinimumSize(); } void LocationBarView::SelectedKeywordView::Layout() { - SetLabel((width() == GetPreferredSize().width()) ? - full_label_.GetText() : partial_label_.GetText()); - IconLabelBubbleView::Layout(); + gfx::Size pref = GetPreferredSize(); + bool at_pref = (width() == pref.width()); + if (at_pref) + full_label_.SetBounds(0, 0, width(), height()); + else + partial_label_.SetBounds(0, 0, width(), height()); + full_label_.SetVisible(at_pref); + partial_label_.SetVisible(!at_pref); } void LocationBarView::SelectedKeywordView::SetKeyword( @@ -1096,9 +964,12 @@ void LocationBarView::SelectedKeywordView::SetKeyword( full_label_.SetText(l10n_util::GetStringF(IDS_OMNIBOX_KEYWORD_TEXT, short_name)); const std::wstring min_string = CalculateMinString(short_name); - partial_label_.SetText(min_string.empty() ? - full_label_.GetText() : - l10n_util::GetStringF(IDS_OMNIBOX_KEYWORD_TEXT, min_string)); + if (!min_string.empty()) { + partial_label_.SetText( + l10n_util::GetStringF(IDS_OMNIBOX_KEYWORD_TEXT, min_string)); + } else { + partial_label_.SetText(full_label_.GetText()); + } } std::wstring LocationBarView::SelectedKeywordView::CalculateMinString( @@ -1225,18 +1096,250 @@ void LocationBarView::KeywordHintView::Layout() { } } +bool LocationBarView::SkipDefaultKeyEventProcessing(const views::KeyEvent& e) { + if (keyword_hint_view_.IsVisible() && + views::FocusManager::IsTabTraversalKeyEvent(e)) { + // We want to receive tab key events when the hint is showing. + return true; + } + +#if defined(OS_WIN) + return location_entry_->SkipDefaultKeyEventProcessing(e); +#else + // TODO(jcampan): We need to refactor the code of + // AutocompleteEditViewWin::SkipDefaultKeyEventProcessing into this class so + // it can be shared between Windows and Linux. + // For now, we just override back-space as it is the accelerator for back + // navigation. + if (e.GetKeyCode() == base::VKEY_BACK) + return true; + return false; +#endif +} + +// ShowInfoBubbleTask----------------------------------------------------------- + +class LocationBarView::ShowInfoBubbleTask : public Task { + public: + explicit ShowInfoBubbleTask( + LocationBarView::LocationBarImageView* image_view); + virtual void Run(); + void Cancel(); + + private: + LocationBarView::LocationBarImageView* image_view_; + bool cancelled_; + + DISALLOW_COPY_AND_ASSIGN(ShowInfoBubbleTask); +}; + +LocationBarView::ShowInfoBubbleTask::ShowInfoBubbleTask( + LocationBarView::LocationBarImageView* image_view) + : image_view_(image_view), + cancelled_(false) { +} + +void LocationBarView::ShowInfoBubbleTask::Run() { + if (cancelled_) + return; + + if (!image_view_->GetWidget()->IsActive()) { + // The browser is no longer active. Let's not show the info bubble, this + // would make the browser the active window again. Also makes sure we NULL + // show_info_bubble_task_ to prevent the SecurityImageView from keeping a + // dangling pointer. + image_view_->show_info_bubble_task_ = NULL; + return; + } + + image_view_->ShowInfoBubble(); +} + +void LocationBarView::ShowInfoBubbleTask::Cancel() { + cancelled_ = true; +} + +// ----------------------------------------------------------------------------- + +void LocationBarView::ShowFirstRunBubbleInternal( + FirstRun::BubbleType bubble_type) { + if (!location_entry_view_) + return; + if (!location_entry_view_->GetWidget()->IsActive()) { + // The browser is no longer active. Let's not show the info bubble, this + // would make the browser the active window again. + return; + } + + gfx::Point location; + + // If the UI layout is RTL, the coordinate system is not transformed and + // therefore we need to adjust the X coordinate so that bubble appears on the + // right hand side of the location bar. + if (UILayoutIsRightToLeft()) + location.Offset(width(), 0); + views::View::ConvertPointToScreen(this, &location); + + // We try to guess that 20 pixels offset is a good place for the first + // letter in the OmniBox. + gfx::Rect bounds(location.x(), location.y(), 20, height()); + + // Moving the bounds "backwards" so that it appears within the location bar + // if the UI layout is RTL. + if (UILayoutIsRightToLeft()) + bounds.set_x(location.x() - 20); + +#if defined(OS_WIN) + FirstRunBubble::Show(profile_, GetWindow(), bounds, bubble_type); +#else + // First run bubble doesn't make sense for Chrome OS. +#endif +} + +// LocationBarImageView--------------------------------------------------------- + +LocationBarView::LocationBarImageView::LocationBarImageView( + const BubblePositioner* bubble_positioner) + : info_bubble_(NULL), + show_info_bubble_task_(NULL), + bubble_positioner_(bubble_positioner) { +} + +LocationBarView::LocationBarImageView::~LocationBarImageView() { + if (show_info_bubble_task_) + show_info_bubble_task_->Cancel(); + + if (info_bubble_) + info_bubble_->Close(); +} + +void LocationBarView::LocationBarImageView::OnMouseMoved( + const views::MouseEvent& event) { + if (show_info_bubble_task_) { + show_info_bubble_task_->Cancel(); + show_info_bubble_task_ = NULL; + } + + if (info_bubble_) { + // If an info bubble is currently showing, nothing to do. + return; + } + + show_info_bubble_task_ = new ShowInfoBubbleTask(this); + MessageLoop::current()->PostDelayedTask(FROM_HERE, show_info_bubble_task_, + kInfoBubbleHoverDelayMs); +} + +void LocationBarView::LocationBarImageView::OnMouseExited( + const views::MouseEvent& event) { + if (show_info_bubble_task_) { + show_info_bubble_task_->Cancel(); + show_info_bubble_task_ = NULL; + } + + if (info_bubble_) + info_bubble_->Close(); +} + +void LocationBarView::LocationBarImageView::InfoBubbleClosing( + InfoBubble* info_bubble, bool closed_by_escape) { + info_bubble_ = NULL; +} + +void LocationBarView::LocationBarImageView::ShowInfoBubbleImpl( + const std::wstring& text, SkColor text_color) { + gfx::Rect bounds(bubble_positioner_->GetLocationStackBounds()); + gfx::Point location; + views::View::ConvertPointToScreen(this, &location); + bounds.set_x(location.x()); + bounds.set_width(width()); + + views::Label* label = new views::Label(text); + label->SetMultiLine(true); + label->SetColor(text_color); + label->SetFont(ResourceBundle::GetSharedInstance().GetFont( + ResourceBundle::BaseFont).DeriveFont(2)); + label->SetHorizontalAlignment(views::Label::ALIGN_LEFT); + label->SizeToFit(0); + DCHECK(info_bubble_ == NULL); + info_bubble_ = InfoBubble::Show(GetWindow(), bounds, label, this); + show_info_bubble_task_ = NULL; +} + +// SecurityImageView------------------------------------------------------------ + +// static +SkBitmap* LocationBarView::SecurityImageView::lock_icon_ = NULL; +SkBitmap* LocationBarView::SecurityImageView::warning_icon_ = NULL; + +LocationBarView::SecurityImageView::SecurityImageView( + const LocationBarView* parent, + Profile* profile, + ToolbarModel* model, + const BubblePositioner* bubble_positioner) + : LocationBarImageView(bubble_positioner), + parent_(parent), + profile_(profile), + model_(model) { + if (!lock_icon_) { + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + lock_icon_ = rb.GetBitmapNamed(IDR_LOCK); + warning_icon_ = rb.GetBitmapNamed(IDR_WARNING); + } + SetImageShown(LOCK); +} + +LocationBarView::SecurityImageView::~SecurityImageView() { +} + +void LocationBarView::SecurityImageView::SetImageShown(Image image) { + switch (image) { + case LOCK: + SetImage(lock_icon_); + break; + case WARNING: + SetImage(warning_icon_); + break; + default: + NOTREACHED(); + break; + } +} + +bool LocationBarView::SecurityImageView::OnMousePressed( + const views::MouseEvent& event) { + TabContents* tab = parent_->GetTabContents(); + NavigationEntry* nav_entry = tab->controller().GetActiveEntry(); + if (!nav_entry) { + NOTREACHED(); + return true; + } + tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true); + return true; +} + +void LocationBarView::SecurityImageView::ShowInfoBubble() { + std::wstring text; + model_->GetIconHoverText(&text); + ShowInfoBubbleImpl(text, GetColor( + model_->GetSecurityLevel() == ToolbarModel::SECURE, + SECURITY_INFO_BUBBLE_TEXT)); +} + // ContentSettingImageView------------------------------------------------------ LocationBarView::ContentSettingImageView::ContentSettingImageView( ContentSettingsType content_type, const LocationBarView* parent, - Profile* profile) + Profile* profile, + const BubblePositioner* bubble_positioner) : content_setting_image_model_( ContentSettingImageModel::CreateContentSettingImageModel( content_type)), parent_(parent), profile_(profile), - info_bubble_(NULL) { + info_bubble_(NULL), + bubble_positioner_(bubble_positioner) { } LocationBarView::ContentSettingImageView::~ContentSettingImageView() { @@ -1248,39 +1351,29 @@ void LocationBarView::ContentSettingImageView::UpdateFromTabContents( const TabContents* tab_contents) { int old_icon = content_setting_image_model_->get_icon(); content_setting_image_model_->UpdateFromTabContents(tab_contents); - if (!content_setting_image_model_->is_visible()) { + if (content_setting_image_model_->is_visible()) { + if (old_icon != content_setting_image_model_->get_icon()) { + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + SetImage(rb.GetBitmapNamed(content_setting_image_model_->get_icon())); + } + SetTooltipText(UTF8ToWide(content_setting_image_model_->get_tooltip())); + SetVisible(true); + } else { SetVisible(false); - return; - } - if (old_icon != content_setting_image_model_->get_icon()) { - SetImage(ResourceBundle::GetSharedInstance().GetBitmapNamed( - content_setting_image_model_->get_icon())); } - SetTooltipText(UTF8ToWide(content_setting_image_model_->get_tooltip())); - SetVisible(true); } bool LocationBarView::ContentSettingImageView::OnMousePressed( const views::MouseEvent& event) { - // We want to show the bubble on mouse release; that is the standard behavior - // for buttons. - return true; -} - -void LocationBarView::ContentSettingImageView::OnMouseReleased( - const views::MouseEvent& event, - bool canceled) { - if (canceled || !HitTest(event.location())) - return; + gfx::Rect bounds(bubble_positioner_->GetLocationStackBounds()); + gfx::Point location; + views::View::ConvertPointToScreen(this, &location); + bounds.set_x(location.x()); + bounds.set_width(width()); TabContents* tab_contents = parent_->GetTabContents(); if (!tab_contents) - return; - - gfx::Rect screen_bounds(GetImageBounds()); - gfx::Point origin(screen_bounds.origin()); - views::View::ConvertPointToScreen(this, &origin); - screen_bounds.set_origin(origin); + return true; ContentSettingBubbleContents* bubble_contents = new ContentSettingBubbleContents( ContentSettingBubbleModel::CreateContentSettingBubbleModel( @@ -1288,9 +1381,9 @@ void LocationBarView::ContentSettingImageView::OnMouseReleased( content_setting_image_model_->get_content_settings_type()), profile_, tab_contents); DCHECK(!info_bubble_); - info_bubble_ = - InfoBubble::Show(GetWindow(), screen_bounds, bubble_contents, this); + info_bubble_ = InfoBubble::Show(GetWindow(), bounds, bubble_contents, this); bubble_contents->set_info_bubble(info_bubble_); + return true; } void LocationBarView::ContentSettingImageView::VisibilityChanged( @@ -1315,8 +1408,10 @@ bool LocationBarView::ContentSettingImageView::CloseOnEscape() { LocationBarView::PageActionImageView::PageActionImageView( LocationBarView* owner, Profile* profile, - ExtensionAction* page_action) - : owner_(owner), + ExtensionAction* page_action, + const BubblePositioner* bubble_positioner) + : LocationBarImageView(bubble_positioner), + owner_(owner), profile_(profile), page_action_(page_action), ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)), @@ -1373,17 +1468,19 @@ void LocationBarView::PageActionImageView::ExecuteAction(int button, if (popup_showing) return; - gfx::Rect screen_bounds(GetImageBounds()); - gfx::Point origin(screen_bounds.origin()); - View::ConvertPointToScreen(this, &origin); - screen_bounds.set_origin(origin); + View* parent = GetParent(); + gfx::Point origin; + View::ConvertPointToScreen(parent, &origin); + gfx::Rect rect = parent->bounds(); + rect.set_x(origin.x()); + rect.set_y(origin.y()); popup_ = ExtensionPopup::Show( page_action_->GetPopupUrl(current_tab_id_), browser, browser->profile(), browser->window()->GetNativeHandle(), - screen_bounds, + rect, BubbleBorder::TOP_RIGHT, true, // Activate the popup window. inspect_with_devtools, @@ -1396,17 +1493,24 @@ void LocationBarView::PageActionImageView::ExecuteAction(int button, } } +void LocationBarView::PageActionImageView::OnMouseMoved( + const views::MouseEvent& event) { + // PageActionImageView uses normal tooltips rather than the info bubble, + // so just do nothing here rather than letting LocationBarImageView start + // its hover timer. +} + bool LocationBarView::PageActionImageView::OnMousePressed( const views::MouseEvent& event) { - // We want to show the bubble on mouse release; that is the standard behavior - // for buttons. (Also, triggering on mouse press causes bugs like - // http://crbug.com/33155.) + // We are interested in capturing mouse messages, but we want want to wait + // until mouse-up because we might show a context menu. Doing so on mouse-down + // causes weird bugs like http://crbug.com/33155. return true; } void LocationBarView::PageActionImageView::OnMouseReleased( const views::MouseEvent& event, bool canceled) { - if (canceled || !HitTest(event.location())) + if (canceled) return; int button = -1; @@ -1416,26 +1520,30 @@ void LocationBarView::PageActionImageView::OnMouseReleased( button = 2; } else if (event.IsRightMouseButton()) { // Get the top left point of this button in screen coordinates. - gfx::Point menu_origin; - ConvertPointToScreen(this, &menu_origin); + gfx::Point point = gfx::Point(0, 0); + ConvertPointToScreen(this, &point); // Make the menu appear below the button. - menu_origin.Offset(0, height()); + point.Offset(0, height()); Extension* extension = profile_->GetExtensionsService()->GetExtensionById( page_action()->extension_id(), false); Browser* browser = BrowserView::GetBrowserViewForNativeWindow( platform_util::GetTopLevel(GetWidget()->GetNativeView()))->browser(); - context_menu_contents_ = - new ExtensionContextMenuModel(extension, browser, this); + context_menu_contents_ = new ExtensionContextMenuModel( + extension, browser, this); context_menu_menu_.reset(new views::Menu2(context_menu_contents_.get())); - context_menu_menu_->RunContextMenuAt(menu_origin); + context_menu_menu_->RunContextMenuAt(point); return; } ExecuteAction(button, false); // inspect_with_devtools } +void LocationBarView::PageActionImageView::ShowInfoBubble() { + ShowInfoBubbleImpl(ASCIIToWide(tooltip_), GetColor(false, TEXT)); +} + void LocationBarView::PageActionImageView::OnImageLoaded( SkBitmap* image, ExtensionResource resource, int index) { // We loaded icons()->size() icons, plus one extra if the page action had @@ -1464,8 +1572,8 @@ void LocationBarView::PageActionImageView::UpdateVisibility( current_tab_id_ = ExtensionTabUtil::GetTabId(contents); current_url_ = url; - bool visible = - preview_enabled_ || page_action_->GetIsVisible(current_tab_id_); + bool visible = preview_enabled_ || + page_action_->GetIsVisible(current_tab_id_); if (visible) { // Set the tooltip. tooltip_ = page_action_->GetTitle(current_tab_id_); @@ -1521,54 +1629,6 @@ void LocationBarView::PageActionImageView::HidePopup() { popup_->Close(); } -// StarView--------------------------------------------------------------------- - -LocationBarView::StarView::StarView(CommandUpdater* command_updater) - : command_updater_(command_updater) { - SetID(VIEW_ID_STAR_BUTTON); - SetToggled(false); -} - -LocationBarView::StarView::~StarView() { -} - -void LocationBarView::StarView::SetToggled(bool on) { - SetTooltipText(l10n_util::GetString( - on ? IDS_TOOLTIP_STARRED : IDS_TOOLTIP_STAR)); - // Since StarView is an ImageView, the SetTooltipText changes the accessible - // name. To keep the accessible name unchanged, we need to set the accessible - // name right after we modify the tooltip text for this view. - SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_STAR)); - SetImage(ResourceBundle::GetSharedInstance().GetBitmapNamed( - on ? IDR_OMNIBOX_STAR_LIT : IDR_OMNIBOX_STAR)); -} - -bool LocationBarView::StarView::GetAccessibleRole( - AccessibilityTypes::Role* role) { - *role = AccessibilityTypes::ROLE_PUSHBUTTON; - return true; -} - -bool LocationBarView::StarView::OnMousePressed(const views::MouseEvent& event) { - // We want to show the bubble on mouse release; that is the standard behavior - // for buttons. - return true; -} - -void LocationBarView::StarView::OnMouseReleased(const views::MouseEvent& event, - bool canceled) { - if (!canceled && HitTest(event.location())) - command_updater_->ExecuteCommand(IDC_BOOKMARK_PAGE); -} - -void LocationBarView::StarView::InfoBubbleClosing(InfoBubble* info_bubble, - bool closed_by_escape) { -} - -bool LocationBarView::StarView::CloseOnEscape() { - return true; -} - //////////////////////////////////////////////////////////////////////////////// // LocationBarView, LocationBar implementation: diff --git a/chrome/browser/views/location_bar_view.h b/chrome/browser/views/location_bar_view.h index 956523b..faf2bfc 100644 --- a/chrome/browser/views/location_bar_view.h +++ b/chrome/browser/views/location_bar_view.h @@ -38,6 +38,7 @@ #endif class Browser; +class BubblePositioner; class CommandUpdater; class ContentSettingImageModel; class ExtensionAction; @@ -56,7 +57,6 @@ class Profile; class LocationBarView : public LocationBar, public LocationBarTesting, public views::View, - public views::DragController, public AutocompleteEditController { public: class Delegate { @@ -76,13 +76,17 @@ class LocationBarView : public LocationBar, SELECTED_TEXT, DEEMPHASIZED_TEXT, SECURITY_TEXT, + SECURITY_INFO_BUBBLE_TEXT, + SCHEME_STRIKEOUT, + NUM_KINDS }; LocationBarView(Profile* profile, CommandUpdater* command_updater, ToolbarModel* model, Delegate* delegate, - bool popup_window_mode); + bool popup_window_mode, + const BubblePositioner* bubble_positioner); virtual ~LocationBarView(); void Init(); @@ -93,8 +97,7 @@ class LocationBarView : public LocationBar, // Returns the appropriate color for the desired kind, based on the user's // system theme. - static SkColor GetColor(ToolbarModel::SecurityLevel security_level, - ColorKind kind); + static SkColor GetColor(bool is_secure, ColorKind kind); // Updates the location bar. We also reset the bar's permanent text and // security style, and, if |tab_for_state_restoring| is non-NULL, also restore @@ -118,12 +121,6 @@ class LocationBarView : public LocationBar, // Retrieves the PageAction View which is associated with |page_action|. views::View* GetPageActionView(ExtensionAction* page_action); - // Toggles the star on or off. - void SetStarToggled(bool on); - - // Shows the bookmark bubble. - void ShowStarBubble(const GURL& url, bool newly_bookmarked); - // Sizing functions virtual gfx::Size GetPreferredSize(); @@ -161,15 +158,6 @@ class LocationBarView : public LocationBar, virtual bool SkipDefaultKeyEventProcessing(const views::KeyEvent& e); virtual bool GetAccessibleRole(AccessibilityTypes::Role* role); - // Overridden from views::DragController: - virtual void WriteDragData(View* sender, - const gfx::Point& press_pt, - OSExchangeData* data); - virtual int GetDragOperations(View* sender, const gfx::Point& p); - virtual bool CanStartDrag(View* sender, - const gfx::Point& press_pt, - const gfx::Point& p); - // Overridden from LocationBar: virtual void ShowFirstRunBubble(FirstRun::BubbleType bubble_type); virtual std::wstring GetInputString() const; @@ -184,9 +172,6 @@ class LocationBarView : public LocationBar, virtual void InvalidatePageActions(); virtual void SaveStateToContents(TabContents* contents); virtual void Revert(); - virtual const AutocompleteEditView* location_entry() const { - return location_entry_.get(); - } virtual AutocompleteEditView* location_entry() { return location_entry_.get(); } @@ -205,100 +190,20 @@ class LocationBarView : public LocationBar, void Focus(); private: - // This helper class is kept as a member by classes that need to show the Page - // Info dialog on click, to encapsulate that logic in one place. - class ClickHandler { - public: - explicit ClickHandler(const views::View* owner, - const LocationBarView* location_bar); - - void OnMouseReleased(const views::MouseEvent& event, bool canceled); - - private: - const views::View* owner_; - const LocationBarView* location_bar_; - - DISALLOW_IMPLICIT_CONSTRUCTORS(ClickHandler); - }; - - // LocationIconView is used to display an icon to the left of the edit field. - // This shows the user's current action while editing, the page security - // status on https pages, or a globe for other URLs. - class LocationIconView : public views::ImageView { - public: - explicit LocationIconView(const LocationBarView* location_bar); - virtual ~LocationIconView(); - - // Overridden from view. - virtual bool OnMousePressed(const views::MouseEvent& event); - virtual void OnMouseReleased(const views::MouseEvent& event, bool canceled); - - private: - ClickHandler click_handler_; - - DISALLOW_IMPLICIT_CONSTRUCTORS(LocationIconView); - }; - - // View used to draw a bubble to the left of the address, containing an icon - // and a label. We use this as a base for the classes that handle the EV - // bubble and tab-to-search UI. - class IconLabelBubbleView : public views::View { + // View used when the user has selected a keyword. + // + // SelectedKeywordView maintains two labels. One label contains the + // complete description of the keyword, the second contains a truncated + // version of the description. The second is used if there is not enough room + // to display the complete description. + class SelectedKeywordView : public views::View { public: - IconLabelBubbleView(const int background_images[], - int contained_image, - const SkColor& color); - virtual ~IconLabelBubbleView(); + explicit SelectedKeywordView(Profile* profile); + virtual ~SelectedKeywordView(); void SetFont(const gfx::Font& font); - void SetLabel(const std::wstring& label); virtual void Paint(gfx::Canvas* canvas); - virtual gfx::Size GetPreferredSize(); - virtual void Layout(); - - protected: - gfx::Size GetNonLabelSize(); - - private: - // For painting the background. - views::HorizontalPainter background_painter_; - - // The contents of the bubble. - views::ImageView image_; - views::Label label_; - - DISALLOW_IMPLICIT_CONSTRUCTORS(IconLabelBubbleView); - }; - - // EVBubbleView displays the EV Bubble. - class EVBubbleView : public IconLabelBubbleView { - public: - EVBubbleView(const int background_images[], - int contained_image, - const SkColor& color, - const LocationBarView* location_bar); - virtual ~EVBubbleView(); - - // Overridden from view. - virtual bool OnMousePressed(const views::MouseEvent& event); - virtual void OnMouseReleased(const views::MouseEvent& event, bool canceled); - - private: - ClickHandler click_handler_; - - DISALLOW_IMPLICIT_CONSTRUCTORS(EVBubbleView); - }; - - // SelectedKeywordView displays the tab-to-search UI. - class SelectedKeywordView : public IconLabelBubbleView { - public: - SelectedKeywordView(const int background_images[], - int contained_image, - const SkColor& color, - Profile* profile); - virtual ~SelectedKeywordView(); - - void SetFont(const gfx::Font& font); virtual gfx::Size GetPreferredSize(); virtual gfx::Size GetMinimumSize(); @@ -319,16 +224,18 @@ class LocationBarView : public LocationBar, // deleted out from under us. std::wstring keyword_; - // These labels are never visible. They are used to size the view. One - // label contains the complete description of the keyword, the second - // contains a truncated version of the description, for if there is not - // enough room to display the complete description. + // For painting the background. + views::HorizontalPainter background_painter_; + + // Label containing the complete description. views::Label full_label_; + + // Label containing the partial description. views::Label partial_label_; Profile* profile_; - DISALLOW_IMPLICIT_CONSTRUCTORS(SelectedKeywordView); + DISALLOW_COPY_AND_ASSIGN(SelectedKeywordView); }; // KeywordHintView is used to display a hint to the user when the selected @@ -368,7 +275,96 @@ class LocationBarView : public LocationBar, Profile* profile_; - DISALLOW_IMPLICIT_CONSTRUCTORS(KeywordHintView); + DISALLOW_COPY_AND_ASSIGN(KeywordHintView); + }; + + class ShowInfoBubbleTask; + class ShowFirstRunBubbleTask; + + class LocationBarImageView : public views::ImageView, + public InfoBubbleDelegate { + public: + explicit LocationBarImageView(const BubblePositioner* bubble_positioner); + virtual ~LocationBarImageView(); + + // Overridden from view for the mouse hovering. + virtual void OnMouseMoved(const views::MouseEvent& event); + virtual void OnMouseExited(const views::MouseEvent& event); + virtual bool OnMousePressed(const views::MouseEvent& event) = 0; + + // InfoBubbleDelegate + void InfoBubbleClosing(InfoBubble* info_bubble, bool closed_by_escape); + bool CloseOnEscape() { return true; } + + virtual void ShowInfoBubble() = 0; + + protected: + void ShowInfoBubbleImpl(const std::wstring& text, SkColor text_color); + + private: + friend class ShowInfoBubbleTask; + + // The currently shown info bubble if any. + InfoBubble* info_bubble_; + + // A task used to display the info bubble when the mouse hovers on the + // image. + ShowInfoBubbleTask* show_info_bubble_task_; + + // A positioner used to give the info bubble the correct target bounds. The + // caller maintains ownership of this and must ensure it's kept alive. + const BubblePositioner* bubble_positioner_; + + DISALLOW_COPY_AND_ASSIGN(LocationBarImageView); + }; + + // SecurityImageView is used to display the lock or warning icon when the + // current URL's scheme is https. + // + // If a message has been set with SetInfoBubbleText, it displays an info + // bubble when the mouse hovers on the image. + class SecurityImageView : public LocationBarImageView { + public: + enum Image { + LOCK = 0, + WARNING + }; + + SecurityImageView(const LocationBarView* parent, + Profile* profile, + ToolbarModel* model_, + const BubblePositioner* bubble_positioner); + virtual ~SecurityImageView(); + + // Sets the image that should be displayed. + void SetImageShown(Image image); + + // Overridden from view for the mouse hovering. + virtual bool OnMousePressed(const views::MouseEvent& event); + + void set_profile(Profile* profile) { profile_ = profile; } + + virtual void ShowInfoBubble(); + + private: + // The lock icon shown when using HTTPS. + static SkBitmap* lock_icon_; + + // The warning icon shown when HTTPS is broken. + static SkBitmap* warning_icon_; + + // A task used to display the info bubble when the mouse hovers on the + // image. + ShowInfoBubbleTask* show_info_bubble_task_; + + // The owning LocationBarView. + const LocationBarView* parent_; + + Profile* profile_; + + ToolbarModel* model_; + + DISALLOW_COPY_AND_ASSIGN(SecurityImageView); }; class ContentSettingImageView : public views::ImageView, @@ -376,7 +372,8 @@ class LocationBarView : public LocationBar, public: ContentSettingImageView(ContentSettingsType content_type, const LocationBarView* parent, - Profile* profile); + Profile* profile, + const BubblePositioner* bubble_positioner); virtual ~ContentSettingImageView(); void set_profile(Profile* profile) { profile_ = profile; } @@ -385,7 +382,6 @@ class LocationBarView : public LocationBar, private: // views::ImageView overrides: virtual bool OnMousePressed(const views::MouseEvent& event); - virtual void OnMouseReleased(const views::MouseEvent& event, bool canceled); virtual void VisibilityChanged(View* starting_from, bool is_visible); // InfoBubbleDelegate overrides: @@ -404,20 +400,25 @@ class LocationBarView : public LocationBar, // The currently shown info bubble if any. InfoBubble* info_bubble_; + // A positioner used to give the info bubble the correct target bounds. The + // caller maintains ownership of this and must ensure it's kept alive. + const BubblePositioner* bubble_positioner_; + DISALLOW_IMPLICIT_CONSTRUCTORS(ContentSettingImageView); }; typedef std::vector<ContentSettingImageView*> ContentSettingViews; // PageActionImageView is used to display the icon for a given PageAction // and notify the extension when the icon is clicked. - class PageActionImageView : public views::ImageView, + class PageActionImageView : public LocationBarImageView, public ImageLoadingTracker::Observer, public ExtensionContextMenuModel::PopupDelegate, public ExtensionPopup::Observer { public: PageActionImageView(LocationBarView* owner, Profile* profile, - ExtensionAction* page_action); + ExtensionAction* page_action, + const BubblePositioner* bubble_positioner); virtual ~PageActionImageView(); ExtensionAction* page_action() { return page_action_; } @@ -429,9 +430,13 @@ class LocationBarView : public LocationBar, } // Overridden from view. + virtual void OnMouseMoved(const views::MouseEvent& event); virtual bool OnMousePressed(const views::MouseEvent& event); virtual void OnMouseReleased(const views::MouseEvent& event, bool canceled); + // Overridden from LocationBarImageView. + virtual void ShowInfoBubble(); + // Overridden from ImageLoadingTracker. virtual void OnImageLoaded( SkBitmap* image, ExtensionResource resource, int index); @@ -492,7 +497,7 @@ class LocationBarView : public LocationBar, // The current popup and the button it came from. NULL if no popup. ExtensionPopup* popup_; - DISALLOW_IMPLICIT_CONSTRUCTORS(PageActionImageView); + DISALLOW_COPY_AND_ASSIGN(PageActionImageView); }; friend class PageActionImageView; @@ -500,30 +505,11 @@ class LocationBarView : public LocationBar, friend class PageActionWithBadgeView; typedef std::vector<PageActionWithBadgeView*> PageActionViews; - class StarView : public views::ImageView, public InfoBubbleDelegate { - public: - explicit StarView(CommandUpdater* command_updater); - virtual ~StarView(); - - // Toggles the star on or off. - void SetToggled(bool on); - - private: - // views::ImageView overrides: - virtual bool GetAccessibleRole(AccessibilityTypes::Role* role); - virtual bool OnMousePressed(const views::MouseEvent& event); - virtual void OnMouseReleased(const views::MouseEvent& event, bool canceled); - - // InfoBubbleDelegate overrides: - virtual void InfoBubbleClosing(InfoBubble* info_bubble, - bool closed_by_escape); - virtual bool CloseOnEscape(); - - // The CommandUpdater for the Browser object that owns the location bar. - CommandUpdater* command_updater_; - - DISALLOW_IMPLICIT_CONSTRUCTORS(StarView); - }; + // Both Layout and OnChanged call into this. This updates the contents + // of the 3 views: selected_keyword, keyword_hint and type_search_view. If + // force_layout is true, or one of these views has changed in such a way as + // to necessitate a layout, layout occurs as well. + void DoLayout(bool force_layout); // Returns the height in pixels of the margin at the top of the bar. int TopMargin() const; @@ -539,12 +525,25 @@ class LocationBarView : public LocationBar, // minimum size of the view should be used. bool UsePref(int pref_width, int available_width); + // Returns true if the view needs to be resized. This determines whether the + // min or pref should be used, and returns true if the view is not at that + // size. + bool NeedsResize(View* view, int available_width); + + // Adjusts the keyword hint, selected keyword and type to search views + // based on the contents of the edit. Returns true if something changed that + // necessitates a layout. + bool AdjustHints(int available_width); + // If View fits in the specified region, it is made visible and the // bounds are adjusted appropriately. If the View does not fit, it is // made invisible. void LayoutView(bool leading, views::View* view, int available_width, gfx::Rect* bounds); + // Sets the security icon to display. Note that no repaint is done. + void SetSecurityIcon(ToolbarModel::Icon icon); + // Update the visibility state of the Content Blocked icons to reflect what is // actually blocked on the current page. void RefreshContentSettingViews(); @@ -556,8 +555,16 @@ class LocationBarView : public LocationBar, // PageActions. void RefreshPageActionViews(); - // Sets the visibility of view to new_vis. - void ToggleVisibility(bool new_vis, views::View* view); + // Sets the text that should be displayed in the info label and its associated + // tooltip text. Call with an empty string if the info label should be + // hidden. + void SetInfoText(const std::wstring& text, + ToolbarModel::InfoTextType text_type, + const std::wstring& tooltip_text); + + // Sets the visibility of view to new_vis. Returns whether the visibility + // changed. + bool ToggleVisibility(bool new_vis, views::View* view); #if defined(OS_WIN) // Helper for the Mouse event handlers that does all the real work. @@ -602,20 +609,13 @@ class LocationBarView : public LocationBar, // Font used by edit and some of the hints. gfx::Font font_; - // An icon to the left of the edit field. - LocationIconView location_icon_view_; - - // A bubble displayed for EV HTTPS sites. - EVBubbleView ev_bubble_view_; - // Location_entry view wrapper views::NativeViewHost* location_entry_view_; // The following views are used to provide hints and remind the user as to // what is going in the edit. They are all added a children of the // LocationBarView. At most one is visible at a time. Preference is - // given to the keyword_view_, then hint_view_. - // These autocollapse when the edit needs the room. + // given to the keyword_view_, then hint_view_, then type_to_search_view_. // Shown if the user has selected a keyword. SelectedKeywordView selected_keyword_view_; @@ -623,14 +623,20 @@ class LocationBarView : public LocationBar, // Shown if the selected url has a corresponding keyword. KeywordHintView keyword_hint_view_; + // Shown if the text is not a keyword or url. + views::Label type_to_search_view_; + + // The view that shows the lock/warning when in HTTPS mode. + SecurityImageView security_image_view_; + // The content setting views. ContentSettingViews content_setting_views_; // The page action icon views. PageActionViews page_action_views_; - // The star. - StarView star_view_; + // A label displayed after the lock icon to show some extra information. + views::Label info_label_; // When true, the location bar view is read only and also is has a slightly // different presentation (font size / color). This is used for popups. @@ -639,10 +645,13 @@ class LocationBarView : public LocationBar, // Used schedule a task for the first run info bubble. ScopedRunnableMethodFactory<LocationBarView> first_run_bubble_; + // The positioner that places the omnibox and info bubbles. + const BubblePositioner* bubble_positioner_; + // Storage of string needed for accessibility. std::wstring accessible_name_; - DISALLOW_IMPLICIT_CONSTRUCTORS(LocationBarView); + DISALLOW_COPY_AND_ASSIGN(LocationBarView); }; #endif // CHROME_BROWSER_VIEWS_LOCATION_BAR_VIEW_H_ diff --git a/chrome/browser/views/pinned_contents_info_bubble.cc b/chrome/browser/views/pinned_contents_info_bubble.cc deleted file mode 100644 index 8331db1..0000000 --- a/chrome/browser/views/pinned_contents_info_bubble.cc +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/views/pinned_contents_info_bubble.h" - -#include "chrome/browser/views/bubble_border.h" - -#if defined(OS_WIN) -// BorderWidget --------------------------------------------------------------- - -void PinnedContentsBorderContents::InitAndGetBounds( - const gfx::Rect& position_relative_to, - const gfx::Size& contents_size, - bool prefer_arrow_on_right, - gfx::Rect* contents_bounds, - gfx::Rect* window_bounds) { - bubble_border_ = new BubbleBorder; - - // Arrow offset is calculated from the middle of the |position_relative_to|. - int offset = position_relative_to.x() + (position_relative_to.width() / 2); - offset -= bubble_anchor_.x(); - - gfx::Insets insets; - bubble_border_->GetInsets(&insets); - offset += kLeftMargin + insets.left() + 1; - bubble_border_->set_arrow_offset(offset); - - BorderContents::InitAndGetBounds( - position_relative_to, contents_size, prefer_arrow_on_right, - contents_bounds, window_bounds); - - // Now move the y position to make sure the bubble contents overlap the view. - window_bounds->Offset(0, -(kTopMargin + 1)); -} - -gfx::Rect PinnedContentsBorderWidget::InitAndGetBounds( - HWND owner, - const gfx::Rect& position_relative_to, - const gfx::Size& contents_size, - bool prefer_arrow_on_right) { - border_contents_ = new PinnedContentsBorderContents(bubble_anchor_); - return BorderWidget::InitAndGetBounds( - owner, position_relative_to, contents_size, - prefer_arrow_on_right); -} -#endif - -// InfoBubble ----------------------------------------------------------------- - -// static -PinnedContentsInfoBubble* PinnedContentsInfoBubble::Show( - views::Window* parent, - const gfx::Rect& position_relative_to, - const gfx::Point& bubble_anchor, - views::View* contents, - InfoBubbleDelegate* delegate) { - PinnedContentsInfoBubble* window = - new PinnedContentsInfoBubble(bubble_anchor); - window->Init(parent, position_relative_to, contents, delegate); - return window; -} - -void PinnedContentsInfoBubble::Init(views::Window* parent, - const gfx::Rect& position_relative_to, - views::View* contents, - InfoBubbleDelegate* delegate) { -// TODO(finnur): This needs to be implemented for other platforms once we -// decide this is the way to go. -#if defined(OS_WIN) - border_.reset(new PinnedContentsBorderWidget(bubble_anchor_)); -#endif - InfoBubble::Init(parent, position_relative_to, contents, delegate); -} diff --git a/chrome/browser/views/pinned_contents_info_bubble.h b/chrome/browser/views/pinned_contents_info_bubble.h deleted file mode 100644 index 92477c0..0000000 --- a/chrome/browser/views/pinned_contents_info_bubble.h +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_VIEWS_PINNED_CONTENTS_INFO_BUBBLE_H_ -#define CHROME_BROWSER_VIEWS_PINNED_CONTENTS_INFO_BUBBLE_H_ - -#include "chrome/browser/views/info_bubble.h" - -// This is a specialization of BorderContents, used to draw a border around -// an InfoBubble that has its contents pinned to a specific location. See -// base class for details. -class PinnedContentsBorderContents : public BorderContents { - public: - explicit PinnedContentsBorderContents(const gfx::Point& bubble_anchor) - : bubble_anchor_(bubble_anchor) {} - - // BorderContents overrides: - virtual void InitAndGetBounds( - const gfx::Rect& position_relative_to, // In screen coordinates - const gfx::Size& contents_size, - bool prefer_arrow_on_right, - gfx::Rect* contents_bounds, // Returned in window coordinates - gfx::Rect* window_bounds); // Returned in screen coordinates - - private: - // The location of the pinned contents (in screen coordinates). - const gfx::Point bubble_anchor_; - - DISALLOW_COPY_AND_ASSIGN(PinnedContentsBorderContents); -}; - -#if defined(OS_WIN) -// The window that surrounds the info bubble. See base class for details. -class PinnedContentsBorderWidget : public BorderWidget { - public: - explicit PinnedContentsBorderWidget(const gfx::Point& bubble_anchor) - : bubble_anchor_(bubble_anchor) {} - virtual ~PinnedContentsBorderWidget() {} - - // BorderWidget overrides: - virtual gfx::Rect InitAndGetBounds(HWND owner, - const gfx::Rect& position_relative_to, - const gfx::Size& contents_size, - bool is_rtl); - - private: - // The location of the pinned contents (in screen coordinates). - const gfx::Point bubble_anchor_; - - DISALLOW_COPY_AND_ASSIGN(PinnedContentsBorderWidget); -}; -#endif - -// A specialization of the InfoBubble. Used to draw an InfoBubble which, in -// addition to having an arrow pointing to where the user clicked, also shifts -// the bubble horizontally to fix it to a specific location. See base class -// for details. -class PinnedContentsInfoBubble : public InfoBubble { - public: - // Shows the InfoBubble (see base class function for details). - // |bubble_anchor| specifies how far horizontally to shift the bubble in - // order to anchor its contents. Once the InfoBubble has been anchored its - // arrow may be pointing to a slightly different |y| location than specified - // in |position_relative_to|. - static PinnedContentsInfoBubble* Show(views::Window* parent, - const gfx::Rect& position_relative_to, - const gfx::Point& bubble_anchor_, - views::View* contents, - InfoBubbleDelegate* delegate); - - private: - explicit PinnedContentsInfoBubble(const gfx::Point& bubble_anchor) - : bubble_anchor_(bubble_anchor) {} - virtual ~PinnedContentsInfoBubble() {} - - // InfoBubble overrides: - virtual void Init(views::Window* parent, - const gfx::Rect& position_relative_to, - views::View* contents, - InfoBubbleDelegate* delegate); - - // The location of the pinned contents (in screen coordinates). - const gfx::Point bubble_anchor_; - - DISALLOW_COPY_AND_ASSIGN(PinnedContentsInfoBubble); -}; - -#endif // CHROME_BROWSER_VIEWS_PINNED_CONTENTS_INFO_BUBBLE_H_ diff --git a/chrome/browser/views/tabs/dragged_tab_controller.cc b/chrome/browser/views/tabs/dragged_tab_controller.cc index 3521a88..ce26ac7 100644 --- a/chrome/browser/views/tabs/dragged_tab_controller.cc +++ b/chrome/browser/views/tabs/dragged_tab_controller.cc @@ -316,7 +316,7 @@ DraggedTabController::DraggedTabController(Tab* source_tab, original_delegate_(NULL), source_tab_(source_tab), source_tabstrip_(source_tabstrip), - source_model_index_(source_tabstrip->GetModelIndexOfTab(source_tab)), + source_model_index_(source_tabstrip->GetIndexOfTab(source_tab)), attached_tabstrip_(source_tabstrip), old_focused_view_(NULL), in_destructor_(false), @@ -508,7 +508,7 @@ void DraggedTabController::InitWindowCreatePoint() { // first_tab based on source_tabstrip_, not attached_tabstrip_. Otherwise, // the window_create_point_ is not in the correct coordinate system. Please // refer to http://crbug.com/6223 comment #15 for detailed information. - Tab* first_tab = source_tabstrip_->GetTabAtTabDataIndex(0); + Tab* first_tab = source_tabstrip_->GetTabAt(0); views::View::ConvertPointToWidget(first_tab, &first_source_tab_point_); UpdateWindowCreatePoint(); } @@ -963,9 +963,8 @@ gfx::Point DraggedTabController::GetDraggedViewPoint( Tab* DraggedTabController::GetTabMatchingDraggedContents( TabStrip* tabstrip) const { - int model_index = tabstrip->model()->GetIndexOfTabContents(dragged_contents_); - return model_index == TabStripModel::kNoTab ? - NULL : tabstrip->GetTabAtModelIndex(model_index); + int index = tabstrip->model()->GetIndexOfTabContents(dragged_contents_); + return index == TabStripModel::kNoTab ? NULL : tabstrip->GetTabAt(index); } bool DraggedTabController::EndDragImpl(EndDragType type) { diff --git a/chrome/browser/views/tabs/tab_renderer.cc b/chrome/browser/views/tabs/tab_renderer.cc index f089393..b363cb5 100644 --- a/chrome/browser/views/tabs/tab_renderer.cc +++ b/chrome/browser/views/tabs/tab_renderer.cc @@ -6,7 +6,6 @@ #include <limits> -#include "app/animation_container.h" #include "app/l10n_util.h" #include "app/resource_bundle.h" #include "app/slide_animation.h" @@ -82,15 +81,9 @@ static int loading_animation_frame_count = 0; static int waiting_animation_frame_count = 0; static int waiting_to_loading_frame_count_ratio = 0; -// Used when |render_as_new_tab| is true. -static SkBitmap* new_tab_mask = NULL; -static SkBitmap* new_tab_shadow = NULL; - TabRenderer::TabImage TabRenderer::tab_alpha = {0}; TabRenderer::TabImage TabRenderer::tab_active = {0}; -TabRenderer::TabImage TabRenderer::tab_active_nano = {0}; TabRenderer::TabImage TabRenderer::tab_inactive = {0}; -TabRenderer::TabImage TabRenderer::tab_alpha_nano = {0}; // Max opacity for the mini-tab title change animation. const double kMiniTitleChangeThrobOpacity = 0.75; @@ -212,7 +205,7 @@ class TabCloseButton : public views::ImageButton { } private: - DISALLOW_COPY_AND_ASSIGN(TabCloseButton); + DISALLOW_EVIL_CONSTRUCTORS(TabCloseButton); }; } // namespace @@ -253,7 +246,7 @@ class TabRenderer::FavIconCrashAnimation : public Animation, private: TabRenderer* target_; - DISALLOW_COPY_AND_ASSIGN(FavIconCrashAnimation); + DISALLOW_EVIL_CONSTRUCTORS(FavIconCrashAnimation); }; //////////////////////////////////////////////////////////////////////////////// @@ -289,10 +282,6 @@ TabRenderer::~TabRenderer() { delete crash_animation_; } -void TabRenderer::SizeToNewTabButtonImages() { - SetBounds(x(), y(), new_tab_shadow->width(), new_tab_shadow->height()); -} - void TabRenderer::ViewHierarchyChanged(bool is_add, View* parent, View* child) { if (parent->GetThemeProvider()) SetThemeProvider(parent->GetThemeProvider()); @@ -418,11 +407,6 @@ void TabRenderer::StopMiniTabTitleAnimation() { mini_title_animation_->Stop(); } -void TabRenderer::SetAnimationContainer(AnimationContainer* container) { - container_ = container; - pulse_animation_->SetContainer(container); -} - void TabRenderer::PaintIcon(gfx::Canvas* canvas) { if (animation_state_ != ANIMATION_NONE) { PaintLoadingAnimation(canvas); @@ -518,15 +502,6 @@ void TabRenderer::OnMouseExited(const views::MouseEvent& e) { // TabRenderer, views::View overrides: void TabRenderer::Paint(gfx::Canvas* canvas) { - if (data_.render_as_new_tab) { - if (UILayoutIsRightToLeft()) { - canvas->TranslateInt(width(), 0); - canvas->ScaleInt(-1, 1); - } - PaintAsNewTab(canvas); - return; - } - // Don't paint if we're narrower than we can render correctly. (This should // only happen during animations). if (width() < GetMinimumUnselectedSize().width() && !mini()) @@ -740,47 +715,45 @@ void TabRenderer::PaintInactiveTabBackground(gfx::Canvas* canvas) { int bg_offset_y = GetThemeProvider()->HasCustomImage(tab_id) ? 0 : background_offset_.y(); - if (!data_.app) { - // Draw left edge. Don't draw over the toolbar, as we're not the foreground - // tab. - SkBitmap tab_l = SkBitmapOperations::CreateTiledBitmap( - *tab_bg, offset, bg_offset_y, tab_active.l_width, height()); - SkBitmap theme_l = - SkBitmapOperations::CreateMaskedBitmap(tab_l, *tab_alpha.image_l); - canvas->DrawBitmapInt(theme_l, - 0, 0, theme_l.width(), theme_l.height() - kToolbarOverlap, - 0, 0, theme_l.width(), theme_l.height() - kToolbarOverlap, - false); - - // Draw right edge. Again, don't draw over the toolbar. - SkBitmap tab_r = SkBitmapOperations::CreateTiledBitmap(*tab_bg, - offset + width() - tab_active.r_width, bg_offset_y, - tab_active.r_width, height()); - SkBitmap theme_r = - SkBitmapOperations::CreateMaskedBitmap(tab_r, *tab_alpha.image_r); - canvas->DrawBitmapInt(theme_r, - 0, 0, theme_r.width(), theme_r.height() - kToolbarOverlap, - width() - theme_r.width(), 0, theme_r.width(), - theme_r.height() - kToolbarOverlap, false); - - // Draw center. Instead of masking out the top portion we simply skip over - // it by incrementing by kDropShadowHeight, since it's a simple rectangle. - // And again, don't draw over the toolbar. - canvas->TileImageInt(*tab_bg, - offset + tab_active.l_width, bg_offset_y + kDropShadowHeight, - tab_active.l_width, kDropShadowHeight, - width() - tab_active.l_width - tab_active.r_width, - height() - kDropShadowHeight - kToolbarOverlap); - - // Now draw the highlights/shadows around the tab edge. - canvas->DrawBitmapInt(*tab_inactive.image_l, 0, 0); - canvas->TileImageInt(*tab_inactive.image_c, - tab_inactive.l_width, 0, - width() - tab_inactive.l_width - tab_inactive.r_width, - height()); - canvas->DrawBitmapInt(*tab_inactive.image_r, - width() - tab_inactive.r_width, 0); - } + // Draw left edge. Don't draw over the toolbar, as we're not the foreground + // tab. + SkBitmap tab_l = SkBitmapOperations::CreateTiledBitmap( + *tab_bg, offset, bg_offset_y, tab_active.l_width, height()); + SkBitmap theme_l = + SkBitmapOperations::CreateMaskedBitmap(tab_l, *tab_alpha.image_l); + canvas->DrawBitmapInt(theme_l, + 0, 0, theme_l.width(), theme_l.height() - kToolbarOverlap, + 0, 0, theme_l.width(), theme_l.height() - kToolbarOverlap, + false); + + // Draw right edge. Again, don't draw over the toolbar. + SkBitmap tab_r = SkBitmapOperations::CreateTiledBitmap(*tab_bg, + offset + width() - tab_active.r_width, bg_offset_y, + tab_active.r_width, height()); + SkBitmap theme_r = + SkBitmapOperations::CreateMaskedBitmap(tab_r, *tab_alpha.image_r); + canvas->DrawBitmapInt(theme_r, + 0, 0, theme_r.width(), theme_r.height() - kToolbarOverlap, + width() - theme_r.width(), 0, theme_r.width(), + theme_r.height() - kToolbarOverlap, false); + + // Draw center. Instead of masking out the top portion we simply skip over it + // by incrementing by kDropShadowHeight, since it's a simple rectangle. And + // again, don't draw over the toolbar. + canvas->TileImageInt(*tab_bg, + offset + tab_active.l_width, bg_offset_y + kDropShadowHeight, + tab_active.l_width, kDropShadowHeight, + width() - tab_active.l_width - tab_active.r_width, + height() - kDropShadowHeight - kToolbarOverlap); + + // Now draw the highlights/shadows around the tab edge. + canvas->DrawBitmapInt(*tab_inactive.image_l, 0, 0); + canvas->TileImageInt(*tab_inactive.image_c, + tab_inactive.l_width, 0, + width() - tab_inactive.l_width - tab_inactive.r_width, + height()); + canvas->DrawBitmapInt(*tab_inactive.image_r, + width() - tab_inactive.r_width, 0); } void TabRenderer::PaintActiveTabBackground(gfx::Canvas* canvas) { @@ -792,39 +765,33 @@ void TabRenderer::PaintActiveTabBackground(gfx::Canvas* canvas) { SkBitmap* tab_bg = GetThemeProvider()->GetBitmapNamed(IDR_THEME_TOOLBAR); - // App tabs are drawn slightly differently (as nano tabs). - TabImage* tab_image = data_.app ? &tab_active_nano : &tab_active; - TabImage* alpha = data_.app ? &tab_alpha_nano : &tab_alpha; - // Draw left edge. SkBitmap tab_l = SkBitmapOperations::CreateTiledBitmap( - *tab_bg, offset, 0, tab_image->l_width, height()); + *tab_bg, offset, 0, tab_active.l_width, height()); SkBitmap theme_l = - SkBitmapOperations::CreateMaskedBitmap(tab_l, *alpha->image_l); + SkBitmapOperations::CreateMaskedBitmap(tab_l, *tab_alpha.image_l); canvas->DrawBitmapInt(theme_l, 0, 0); // Draw right edge. SkBitmap tab_r = SkBitmapOperations::CreateTiledBitmap(*tab_bg, - offset + width() - tab_image->r_width, 0, tab_image->r_width, height()); + offset + width() - tab_active.r_width, 0, tab_active.r_width, height()); SkBitmap theme_r = - SkBitmapOperations::CreateMaskedBitmap(tab_r, *alpha->image_r); - canvas->DrawBitmapInt(theme_r, width() - tab_image->r_width, 0); + SkBitmapOperations::CreateMaskedBitmap(tab_r, *tab_alpha.image_r); + canvas->DrawBitmapInt(theme_r, width() - tab_active.r_width, 0); // Draw center. Instead of masking out the top portion we simply skip over it // by incrementing by kDropShadowHeight, since it's a simple rectangle. canvas->TileImageInt(*tab_bg, - offset + tab_image->l_width, - kDropShadowHeight + tab_image->y_offset, - tab_image->l_width, - kDropShadowHeight + tab_image->y_offset, - width() - tab_image->l_width - tab_image->r_width, - height() - kDropShadowHeight - tab_image->y_offset); + offset + tab_active.l_width, kDropShadowHeight, + tab_active.l_width, kDropShadowHeight, + width() - tab_active.l_width - tab_active.r_width, + height() - kDropShadowHeight); // Now draw the highlights/shadows around the tab edge. - canvas->DrawBitmapInt(*tab_image->image_l, 0, 0); - canvas->TileImageInt(*tab_image->image_c, tab_image->l_width, 0, - width() - tab_image->l_width - tab_image->r_width, height()); - canvas->DrawBitmapInt(*tab_image->image_r, width() - tab_image->r_width, 0); + canvas->DrawBitmapInt(*tab_active.image_l, 0, 0); + canvas->TileImageInt(*tab_active.image_c, tab_active.l_width, 0, + width() - tab_active.l_width - tab_active.r_width, height()); + canvas->DrawBitmapInt(*tab_active.image_r, width() - tab_active.r_width, 0); } void TabRenderer::PaintLoadingAnimation(gfx::Canvas* canvas) { @@ -852,47 +819,6 @@ void TabRenderer::PaintLoadingAnimation(gfx::Canvas* canvas) { false); } -void TabRenderer::PaintAsNewTab(gfx::Canvas* canvas) { - bool is_otr = data_.off_the_record; - - // The tab image needs to be lined up with the background image - // so that it feels partially transparent. These offsets represent the tab - // position within the frame background image. - int offset = GetX(views::View::APPLY_MIRRORING_TRANSFORMATION) + - background_offset_.x(); - - int tab_id; - if (GetWidget() && - GetWidget()->GetWindow()->GetNonClientView()->UseNativeFrame()) { - tab_id = IDR_THEME_TAB_BACKGROUND_V; - } else { - tab_id = is_otr ? IDR_THEME_TAB_BACKGROUND_INCOGNITO : - IDR_THEME_TAB_BACKGROUND; - } - - SkBitmap* tab_bg = GetThemeProvider()->GetBitmapNamed(tab_id); - - // If the theme is providing a custom background image, then its top edge - // should be at the top of the tab. Otherwise, we assume that the background - // image is a composited foreground + frame image. - int bg_offset_y = GetThemeProvider()->HasCustomImage(tab_id) ? - 0 : background_offset_.y(); - - SkBitmap image = SkBitmapOperations::CreateTiledBitmap( - *tab_bg, offset, bg_offset_y, new_tab_mask->width(), - new_tab_mask->height()); - image = SkBitmapOperations::CreateMaskedBitmap(image, *new_tab_mask); - canvas->DrawBitmapInt(image, - 0, 0, image.width(), image.height(), - 0, 0, image.width(), image.height(), - false); - - canvas->DrawBitmapInt(*new_tab_shadow, - 0, 0, new_tab_shadow->width(), new_tab_shadow->height(), - 0, 0, new_tab_shadow->width(), new_tab_shadow->height(), - false); -} - int TabRenderer::IconCapacity() const { if (height() < GetMinimumUnselectedSize().height()) return 0; @@ -918,9 +844,6 @@ bool TabRenderer::ShouldShowCloseBox() const { } double TabRenderer::GetThrobValue() { - if (data_.alpha != 1) - return data_.alpha; - if (pulse_animation_->IsAnimating()) return pulse_animation_->GetCurrentValue() * kHoverOpacity; @@ -969,38 +892,21 @@ void TabRenderer::LoadTabImages() { tab_alpha.image_l = rb.GetBitmapNamed(IDR_TAB_ALPHA_LEFT); tab_alpha.image_r = rb.GetBitmapNamed(IDR_TAB_ALPHA_RIGHT); - tab_alpha_nano.image_l = rb.GetBitmapNamed(IDR_TAB_ALPHA_NANO_LEFT); - tab_alpha_nano.image_r = rb.GetBitmapNamed(IDR_TAB_ALPHA_NANO_RIGHT); - tab_active.image_l = rb.GetBitmapNamed(IDR_TAB_ACTIVE_LEFT); tab_active.image_c = rb.GetBitmapNamed(IDR_TAB_ACTIVE_CENTER); tab_active.image_r = rb.GetBitmapNamed(IDR_TAB_ACTIVE_RIGHT); tab_active.l_width = tab_active.image_l->width(); tab_active.r_width = tab_active.image_r->width(); - // This is high much taller *visually* the regular tab is compared to the - // nano tabs. The images are the same height, this is really just the - // difference in whitespace above the tab image. - const int kMiniTabDiffHeight = 14; - - tab_active_nano.image_l = rb.GetBitmapNamed(IDR_TAB_ACTIVE_NANO_LEFT); - tab_active_nano.image_c = rb.GetBitmapNamed(IDR_TAB_ACTIVE_NANO_CENTER); - tab_active_nano.image_r = rb.GetBitmapNamed(IDR_TAB_ACTIVE_NANO_RIGHT); - tab_active_nano.l_width = tab_active_nano.image_l->width(); - tab_active_nano.r_width = tab_active_nano.image_r->width(); - tab_active_nano.y_offset = kMiniTabDiffHeight; - tab_inactive.image_l = rb.GetBitmapNamed(IDR_TAB_INACTIVE_LEFT); tab_inactive.image_c = rb.GetBitmapNamed(IDR_TAB_INACTIVE_CENTER); tab_inactive.image_r = rb.GetBitmapNamed(IDR_TAB_INACTIVE_RIGHT); + tab_inactive.l_width = tab_inactive.image_l->width(); tab_inactive.r_width = tab_inactive.image_r->width(); loading_animation_frames = rb.GetBitmapNamed(IDR_THROBBER); waiting_animation_frames = rb.GetBitmapNamed(IDR_THROBBER_WAITING); - - new_tab_mask = rb.GetBitmapNamed(IDR_TAB_ALPHA_NEW_TAB); - new_tab_shadow = rb.GetBitmapNamed(IDR_TAB_NEW_TAB_SHADOW); } void TabRenderer::SetBlocked(bool blocked) { diff --git a/chrome/browser/views/tabs/tab_renderer.h b/chrome/browser/views/tabs/tab_renderer.h index fc01a7a..2e309c6 100644 --- a/chrome/browser/views/tabs/tab_renderer.h +++ b/chrome/browser/views/tabs/tab_renderer.h @@ -1,19 +1,17 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H_ -#define CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H_ +#ifndef CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H__ +#define CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H__ #include "app/animation.h" -#include "base/ref_counted.h" #include "base/scoped_ptr.h" #include "base/string16.h" #include "gfx/point.h" #include "views/controls/button/image_button.h" #include "views/view.h" -class AnimationContainer; class SlideAnimation; class TabContents; class ThrobAnimation; @@ -39,11 +37,6 @@ class TabRenderer : public views::View, TabRenderer(); virtual ~TabRenderer(); - // Sizes the renderer to the size of the new tab images. This is used - // during the new tab animation. See TabStrip's description of AnimationType - // for details. - void SizeToNewTabButtonImages(); - // Overridden from views: void ViewHierarchyChanged(bool is_add, View* parent, View* child); ThemeProvider* GetThemeProvider(); @@ -62,26 +55,10 @@ class TabRenderer : public views::View, void set_mini(bool mini) { data_.mini = mini; } bool mini() const { return data_.mini; } - // Sets the mini-state of the tab. - void set_app(bool app) { data_.app = app; } - bool app() const { return data_.app; } - // Sets the phantom state of the tab. void set_phantom(bool phantom) { data_.phantom = phantom; } bool phantom() const { return data_.phantom; } - // Used during new tab animation to force the tab to render a new tab like - // animation. - void set_render_as_new_tab(bool value) { data_.render_as_new_tab = value; } - - // Sets the alpha value to render the tab at. This is used during the new - // tab animation. - void set_alpha(double value) { data_.alpha = value; } - - // Forces the tab to render unselected even though it is selected. - void set_render_unselected(bool value) { data_.render_unselected = value; } - bool render_unselected() const { return data_.render_unselected; } - // Are we in the process of animating a mini tab state change on this tab? void set_animating_mini_change(bool value); @@ -116,9 +93,6 @@ class TabRenderer : public views::View, theme_provider_ = provider; } - // Sets the container all animations run from. - void SetAnimationContainer(AnimationContainer* container); - // Paints the icon. Most of the time you'll want to invoke Paint directly, but // in certain situations this invoked outside of Paint. void PaintIcon(gfx::Canvas* canvas); @@ -184,7 +158,6 @@ class TabRenderer : public views::View, void PaintInactiveTabBackground(gfx::Canvas* canvas); void PaintActiveTabBackground(gfx::Canvas* canvas); void PaintLoadingAnimation(gfx::Canvas* canvas); - void PaintAsNewTab(gfx::Canvas* canvas); // Returns the number of favicon-size elements that can fit in the tab's // current size. @@ -238,11 +211,7 @@ class TabRenderer : public views::View, mini(false), blocked(false), animating_mini_change(false), - phantom(false), - app(false), - render_as_new_tab(false), - render_unselected(false), - alpha(1) { + phantom(false) { } SkBitmap favicon; @@ -255,10 +224,6 @@ class TabRenderer : public views::View, bool blocked; bool animating_mini_change; bool phantom; - bool app; - bool render_as_new_tab; - bool render_unselected; - double alpha; }; TabData data_; @@ -268,13 +233,10 @@ class TabRenderer : public views::View, SkBitmap* image_r; int l_width; int r_width; - int y_offset; }; static TabImage tab_active; - static TabImage tab_active_nano; static TabImage tab_inactive; static TabImage tab_alpha; - static TabImage tab_alpha_nano; // Whether we're showing the icon. It is cached so that we can detect when it // changes and layout appropriately. @@ -298,12 +260,10 @@ class TabRenderer : public views::View, ThemeProvider* theme_provider_; - scoped_refptr<AnimationContainer> container_; - static void InitClass(); static bool initialized_; - DISALLOW_COPY_AND_ASSIGN(TabRenderer); + DISALLOW_EVIL_CONSTRUCTORS(TabRenderer); }; -#endif // CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H_ +#endif // CHROME_BROWSER_VIEWS_TABS_TAB_RENDERER_H__ diff --git a/chrome/browser/views/tabs/tab_strip.cc b/chrome/browser/views/tabs/tab_strip.cc index a28ff52b..1a9edb3 100644 --- a/chrome/browser/views/tabs/tab_strip.cc +++ b/chrome/browser/views/tabs/tab_strip.cc @@ -4,14 +4,12 @@ #include "chrome/browser/views/tabs/tab_strip.h" -#include "app/animation_container.h" #include "app/drag_drop_types.h" #include "app/l10n_util.h" #include "app/os_exchange_data.h" #include "app/resource_bundle.h" #include "app/slide_animation.h" #include "base/command_line.h" -#include "base/compiler_specific.h" #include "base/stl_util-inl.h" #include "chrome/browser/browser.h" #include "chrome/browser/browser_theme_provider.h" @@ -27,7 +25,6 @@ #include "chrome/browser/views/tabs/tab.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" -#include "chrome/common/url_constants.h" #include "gfx/canvas.h" #include "gfx/path.h" #include "gfx/size.h" @@ -57,21 +54,10 @@ using views::DropTargetEvent; -// Duration of the first step in a new tab animation. -static const int kNewTabDurationMs = 50; - -// Duration of the last step in the new tab animation. -static const int kNewTab3DurationMs = 100; - -// Amount in pixels newly inserted tabs go past target bounds before animating -// to final position. This is used for ANIMATION_NEW_TAB_2. -static const int kNewTabOvershoot = 9; - -// Amount in pixels the newly inserted tab is clipped against the previous -// tab while animating. This is used to make sure the user doesn't see the -// newly inserted tab behind other tabs and so that its shadow isn't visible -// until the user can actually see the tab. -static const int kNetTabSelectedOffset = -13; +static const int kDefaultAnimationDurationMs = 200; +static const int kResizeLayoutAnimationDurationMs = 200; +static const int kReorderAnimationDurationMs = 200; +static const int kMiniTabAnimationDurationMs = 200; static const int kNewTabButtonHOffset = -5; static const int kNewTabButtonVOffset = 5; @@ -95,27 +81,6 @@ static inline int Round(double x) { return static_cast<int>(floor(x + 0.5)); } -namespace { - -// Animation delegate used during new tab animation step 2 to vary the alpha of -// the tab. -class NewTabAlphaDelegate - : public views::BoundsAnimator::OwnedAnimationDelegate { - public: - explicit NewTabAlphaDelegate(Tab* tab) : tab_(tab) { - } - - virtual void AnimationProgressed(const Animation* animation) { - if (tab_->render_unselected()) - tab_->set_alpha(animation->GetCurrentValue()); - } - - private: - Tab* tab_; - - DISALLOW_COPY_AND_ASSIGN(NewTabAlphaDelegate); -}; - /////////////////////////////////////////////////////////////////////////////// // NewTabButton // @@ -159,44 +124,292 @@ class NewTabButton : public views::ImageButton { DISALLOW_COPY_AND_ASSIGN(NewTabButton); }; -} // namespace - -// AnimationDelegate used when removing a tab. Does the necessary cleanup when -// done. -class TabStrip::RemoveTabDelegate - : public views::BoundsAnimator::OwnedAnimationDelegate { +/////////////////////////////////////////////////////////////////////////////// +// +// TabAnimation +// +// A base class for all TabStrip animations. +// +class TabStrip::TabAnimation : public AnimationDelegate { public: - RemoveTabDelegate(TabStrip* tab_strip, Tab* tab) - : tabstrip_(tab_strip), - tab_(tab) { + friend class TabStrip; + + // Possible types of animation. + enum Type { + INSERT, + REMOVE, + MOVE, + RESIZE, + MINI, + MINI_MOVE + }; + + TabAnimation(TabStrip* tabstrip, Type type) + : tabstrip_(tabstrip), + animation_(this), + start_selected_width_(0), + start_unselected_width_(0), + end_selected_width_(0), + end_unselected_width_(0), + layout_on_completion_(false), + type_(type) { + } + virtual ~TabAnimation() {} + + Type type() const { return type_; } + + void Start() { + animation_.SetSlideDuration(GetDuration()); + animation_.SetTweenType(SlideAnimation::EASE_OUT); + if (!animation_.IsShowing()) { + animation_.Reset(); + animation_.Show(); + } + } + + void Stop() { + animation_.Stop(); + } + + void set_layout_on_completion(bool layout_on_completion) { + layout_on_completion_ = layout_on_completion; + } + + // Retrieves the width for the Tab at the specified index if an animation is + // active. + static double GetCurrentTabWidth(TabStrip* tabstrip, + TabStrip::TabAnimation* animation, + int index) { + Tab* tab = tabstrip->GetTabAt(index); + double tab_width; + if (tab->mini()) { + tab_width = Tab::GetMiniWidth(); + } else { + double unselected, selected; + tabstrip->GetCurrentTabWidths(&unselected, &selected); + tab_width = tab->IsSelected() ? selected : unselected; + } + if (animation) { + double specified_tab_width = animation->GetWidthForTab(index); + if (specified_tab_width != -1) + tab_width = specified_tab_width; + } + return tab_width; + } + + // Overridden from AnimationDelegate: + virtual void AnimationProgressed(const Animation* animation) { + tabstrip_->AnimationLayout(end_unselected_width_); } virtual void AnimationEnded(const Animation* animation) { - CompleteRemove(); + tabstrip_->FinishAnimation(this, layout_on_completion_); + // This object is destroyed now, so we can't do anything else after this. } virtual void AnimationCanceled(const Animation* animation) { - // We can be canceled for two interesting reasons: - // . The tab we reference was dragged back into the tab strip. In this case - // we don't want to remove the tab (closing is false). - // . The drag was completed before the animation completed - // (DestroyDraggedSourceTab). In this case we need to remove the tab - // (closing is true). - if (tab_->closing()) - CompleteRemove(); + AnimationEnded(animation); + } + + // Returns the gap before the tab at the specified index. Subclass if during + // an animation you need to insert a gap before a tab. + virtual double GetGapWidth(int index) { + return 0; + } + + protected: + // Returns the duration of the animation. + virtual int GetDuration() const { + return kDefaultAnimationDurationMs; + } + + // Subclasses override to return the width of the Tab at the specified index + // at the current animation frame. -1 indicates the default width should be + // used for the Tab. + virtual double GetWidthForTab(int index) const { + return -1; // Use default. + } + + // Figure out the desired start and end widths for the specified pre- and + // post- animation tab counts. + void GenerateStartAndEndWidths(int start_tab_count, int end_tab_count, + int start_mini_count, + int end_mini_count) { + tabstrip_->GetDesiredTabWidths(start_tab_count, start_mini_count, + &start_unselected_width_, + &start_selected_width_); + double standard_tab_width = + static_cast<double>(TabRenderer::GetStandardSize().width()); + if (start_tab_count < end_tab_count && + start_unselected_width_ < standard_tab_width) { + double minimum_tab_width = + static_cast<double>(TabRenderer::GetMinimumUnselectedSize().width()); + start_unselected_width_ -= minimum_tab_width / start_tab_count; + } + tabstrip_->GenerateIdealBounds(); + tabstrip_->GetDesiredTabWidths(end_tab_count, end_mini_count, + &end_unselected_width_, + &end_selected_width_); } + TabStrip* tabstrip_; + SlideAnimation animation_; + + double start_selected_width_; + double start_unselected_width_; + double end_selected_width_; + double end_unselected_width_; + private: - void CompleteRemove() { - if (!tab_->closing()) { - // The tab was added back yet we weren't canceled. This shouldn't happen. - NOTREACHED(); - return; + // True if a complete re-layout is required upon completion of the animation. + // Subclasses set this if they don't perform a complete layout + // themselves and canceling the animation may leave the strip in an + // inconsistent state. + bool layout_on_completion_; + + const Type type_; + + DISALLOW_COPY_AND_ASSIGN(TabAnimation); +}; + +/////////////////////////////////////////////////////////////////////////////// + +// Handles insertion of a Tab at |index|. +class TabStrip::InsertTabAnimation : public TabStrip::TabAnimation { + public: + explicit InsertTabAnimation(TabStrip* tabstrip, int index) + : TabAnimation(tabstrip, INSERT), + index_(index) { + int tab_count = tabstrip->GetTabCount(); + int end_mini_count = tabstrip->GetMiniTabCount(); + int start_mini_count = end_mini_count; + if (index < end_mini_count) + start_mini_count--; + GenerateStartAndEndWidths(tab_count - 1, tab_count, start_mini_count, + end_mini_count); + } + virtual ~InsertTabAnimation() {} + + protected: + // Overridden from TabStrip::TabAnimation: + virtual double GetWidthForTab(int index) const { + if (index == index_) { + bool is_selected = tabstrip_->model()->selected_index() == index; + double start_width, target_width; + if (index < tabstrip_->GetMiniTabCount()) { + start_width = Tab::GetMinimumSelectedSize().width(); + target_width = Tab::GetMiniWidth(); + } else { + target_width = + is_selected ? end_unselected_width_ : end_selected_width_; + start_width = + is_selected ? Tab::GetMinimumSelectedSize().width() : + Tab::GetMinimumUnselectedSize().width(); + } + double delta = target_width - start_width; + if (delta > 0) + return start_width + (delta * animation_.GetCurrentValue()); + return start_width; + } + + if (tabstrip_->GetTabAt(index)->mini()) + return Tab::GetMiniWidth(); + + if (tabstrip_->GetTabAt(index)->IsSelected()) { + double delta = end_selected_width_ - start_selected_width_; + return start_selected_width_ + (delta * animation_.GetCurrentValue()); + } + + double delta = end_unselected_width_ - start_unselected_width_; + return start_unselected_width_ + (delta * animation_.GetCurrentValue()); + } + + private: + int index_; + + DISALLOW_COPY_AND_ASSIGN(InsertTabAnimation); +}; + +/////////////////////////////////////////////////////////////////////////////// + +// Handles removal of a Tab from |index| +class TabStrip::RemoveTabAnimation : public TabStrip::TabAnimation { + public: + RemoveTabAnimation(TabStrip* tabstrip, int index, TabContents* contents) + : TabAnimation(tabstrip, REMOVE), + index_(index) { + int tab_count = tabstrip->GetTabCount(); + int start_mini_count = tabstrip->GetMiniTabCount(); + int end_mini_count = start_mini_count; + if (index < start_mini_count) + end_mini_count--; + GenerateStartAndEndWidths(tab_count, tab_count - 1, start_mini_count, + end_mini_count); + // If the last non-mini-tab is being removed we force a layout on + // completion. This is necessary as the value returned by GetTabHOffset + // changes once the tab is actually removed (which happens at the end of + // the animation), and unless we layout GetTabHOffset won't be called after + // the removal. + // We do the same when the last mini-tab is being removed for the same + // reason. + set_layout_on_completion(start_mini_count > 0 && + (end_mini_count == 0 || + (start_mini_count == end_mini_count && + tab_count == start_mini_count + 1))); + } + + // Returns the index of the tab being removed. + int index() const { return index_; } + + virtual ~RemoveTabAnimation() { + } + + protected: + // Overridden from TabStrip::TabAnimation: + virtual double GetWidthForTab(int index) const { + Tab* tab = tabstrip_->GetTabAt(index); + if (index == index_) { + // The tab(s) being removed are gradually shrunken depending on the state + // of the animation. + // Removed animated Tabs are never selected. + if (tab->mini()) { + return animation_.CurrentValueBetween(Tab::GetMiniWidth(), + -kTabHOffset); + } + + double start_width = start_unselected_width_; + // Make sure target_width is at least abs(kTabHOffset), otherwise if + // less than kTabHOffset during layout tabs get negatively offset. + double target_width = + std::max(abs(kTabHOffset), + Tab::GetMinimumUnselectedSize().width() + kTabHOffset); + return animation_.CurrentValueBetween(start_width, target_width); + } + + if (tab->mini()) + return Tab::GetMiniWidth(); + + if (tabstrip_->available_width_for_tabs_ != -1 && + index_ != tabstrip_->GetTabCount() - 1) { + return TabStrip::TabAnimation::GetWidthForTab(index); + } + // All other tabs are sized according to the start/end widths specified at + // the start of the animation. + if (tab->IsSelected()) { + double delta = end_selected_width_ - start_selected_width_; + return start_selected_width_ + (delta * animation_.GetCurrentValue()); } - tabstrip_->RemoveTab(tab_); + double delta = end_unselected_width_ - start_unselected_width_; + return start_unselected_width_ + (delta * animation_.GetCurrentValue()); + } + + virtual void AnimationEnded(const Animation* animation) { + tabstrip_->RemoveTabAt(index_); HighlightCloseButton(); + TabStrip::TabAnimation::AnimationEnded(animation); } + private: // When the animation completes, we send the Container a message to simulate // a mouse moved event at the current mouse position. This tickles the Tab // the mouse is currently over to show the "hot" state of the close button. @@ -226,10 +439,293 @@ class TabStrip::RemoveTabDelegate #endif } - TabStrip* tabstrip_; + int index_; + + DISALLOW_COPY_AND_ASSIGN(RemoveTabAnimation); +}; + +/////////////////////////////////////////////////////////////////////////////// + +// Handles the movement of a Tab from one position to another. +class TabStrip::MoveTabAnimation : public TabStrip::TabAnimation { + public: + MoveTabAnimation(TabStrip* tabstrip, int tab_a_index, int tab_b_index) + : TabAnimation(tabstrip, MOVE), + start_tab_a_bounds_(tabstrip_->GetIdealBounds(tab_b_index)), + start_tab_b_bounds_(tabstrip_->GetIdealBounds(tab_a_index)) { + tab_a_ = tabstrip_->GetTabAt(tab_a_index); + tab_b_ = tabstrip_->GetTabAt(tab_b_index); + + // Since we don't do a full TabStrip re-layout, we need to force a full + // layout upon completion since we're not guaranteed to be in a good state + // if for example the animation is canceled. + set_layout_on_completion(true); + } + virtual ~MoveTabAnimation() {} + + // Overridden from AnimationDelegate: + virtual void AnimationProgressed(const Animation* animation) { + // Position Tab A + double distance = start_tab_b_bounds_.x() - start_tab_a_bounds_.x(); + double delta = distance * animation_.GetCurrentValue(); + double new_x = start_tab_a_bounds_.x() + delta; + tab_a_->SetBounds(Round(new_x), tab_a_->y(), tab_a_->width(), + tab_a_->height()); + + // Position Tab B + distance = start_tab_a_bounds_.x() - start_tab_b_bounds_.x(); + delta = distance * animation_.GetCurrentValue(); + new_x = start_tab_b_bounds_.x() + delta; + tab_b_->SetBounds(Round(new_x), tab_b_->y(), tab_b_->width(), + tab_b_->height()); + + tabstrip_->SchedulePaint(); + } + + protected: + // Overridden from TabStrip::TabAnimation: + virtual int GetDuration() const { return kReorderAnimationDurationMs; } + + private: + // The two tabs being exchanged. + Tab* tab_a_; + Tab* tab_b_; + + // ...and their bounds. + gfx::Rect start_tab_a_bounds_; + gfx::Rect start_tab_b_bounds_; + + DISALLOW_COPY_AND_ASSIGN(MoveTabAnimation); +}; + +/////////////////////////////////////////////////////////////////////////////// + +// Handles the animated resize layout of the entire TabStrip from one width +// to another. +class TabStrip::ResizeLayoutAnimation : public TabStrip::TabAnimation { + public: + explicit ResizeLayoutAnimation(TabStrip* tabstrip) + : TabAnimation(tabstrip, RESIZE) { + int tab_count = tabstrip->GetTabCount(); + int mini_tab_count = tabstrip->GetMiniTabCount(); + GenerateStartAndEndWidths(tab_count, tab_count, mini_tab_count, + mini_tab_count); + InitStartState(); + } + virtual ~ResizeLayoutAnimation() { + } + + // Overridden from AnimationDelegate: + virtual void AnimationEnded(const Animation* animation) { + tabstrip_->needs_resize_layout_ = false; + TabStrip::TabAnimation::AnimationEnded(animation); + } + + protected: + // Overridden from TabStrip::TabAnimation: + virtual int GetDuration() const { + return kResizeLayoutAnimationDurationMs; + } + + virtual double GetWidthForTab(int index) const { + Tab* tab = tabstrip_->GetTabAt(index); + if (tab->mini()) + return Tab::GetMiniWidth(); + + if (tab->IsSelected()) { + return animation_.CurrentValueBetween(start_selected_width_, + end_selected_width_); + } + + return animation_.CurrentValueBetween(start_unselected_width_, + end_unselected_width_); + } + + private: + // We need to start from the current widths of the Tabs as they were last + // laid out, _not_ the last known good state, which is what'll be done if we + // don't measure the Tab sizes here and just go with the default TabAnimation + // behavior... + void InitStartState() { + for (int i = 0; i < tabstrip_->GetTabCount(); ++i) { + Tab* current_tab = tabstrip_->GetTabAt(i); + if (!current_tab->mini()) { + if (current_tab->IsSelected()) { + start_selected_width_ = current_tab->width(); + } else { + start_unselected_width_ = current_tab->width(); + } + } + } + } + + DISALLOW_COPY_AND_ASSIGN(ResizeLayoutAnimation); +}; + +// Handles a tabs mini-state changing while the tab does not change position +// in the model. +class TabStrip::MiniTabAnimation : public TabStrip::TabAnimation { + public: + explicit MiniTabAnimation(TabStrip* tabstrip, int index) + : TabAnimation(tabstrip, MINI), + index_(index) { + int tab_count = tabstrip->GetTabCount(); + int start_mini_count = tabstrip->GetMiniTabCount(); + int end_mini_count = start_mini_count; + if (tabstrip->GetTabAt(index)->mini()) + start_mini_count--; + else + start_mini_count++; + tabstrip_->GetTabAt(index)->set_animating_mini_change(true); + GenerateStartAndEndWidths(tab_count, tab_count, start_mini_count, + end_mini_count); + } + + protected: + // Overridden from TabStrip::TabAnimation: + virtual int GetDuration() const { + return kMiniTabAnimationDurationMs; + } + + virtual double GetWidthForTab(int index) const { + Tab* tab = tabstrip_->GetTabAt(index); + + if (index == index_) { + if (tab->mini()) { + return animation_.CurrentValueBetween( + start_selected_width_, + static_cast<double>(Tab::GetMiniWidth())); + } else { + return animation_.CurrentValueBetween( + static_cast<double>(Tab::GetMiniWidth()), + end_selected_width_); + } + } else if (tab->mini()) { + return Tab::GetMiniWidth(); + } + + if (tab->IsSelected()) { + return animation_.CurrentValueBetween(start_selected_width_, + end_selected_width_); + } + + return animation_.CurrentValueBetween(start_unselected_width_, + end_unselected_width_); + } + + private: + // Index of the tab whose mini state changed. + int index_; + + DISALLOW_COPY_AND_ASSIGN(MiniTabAnimation); +}; + +//////////////////////////////////////////////////////////////////////////////// + +// Handles the animation when a tabs mini state changes and the tab moves as a +// result. +class TabStrip::MiniMoveAnimation : public TabStrip::TabAnimation { + public: + explicit MiniMoveAnimation(TabStrip* tabstrip, + int from_index, + int to_index, + const gfx::Rect& start_bounds) + : TabAnimation(tabstrip, MINI_MOVE), + tab_(tabstrip->GetTabAt(to_index)), + start_bounds_(start_bounds), + from_index_(from_index), + to_index_(to_index) { + int tab_count = tabstrip->GetTabCount(); + int start_mini_count = tabstrip->GetMiniTabCount(); + int end_mini_count = start_mini_count; + if (tabstrip->GetTabAt(to_index)->mini()) + start_mini_count--; + else + start_mini_count++; + GenerateStartAndEndWidths(tab_count, tab_count, start_mini_count, + end_mini_count); + target_bounds_ = tabstrip->GetIdealBounds(to_index); + tab_->set_animating_mini_change(true); + } + + // Overridden from AnimationDelegate: + virtual void AnimationProgressed(const Animation* animation) { + // Do the normal layout. + TabAnimation::AnimationProgressed(animation); + + // Then special case the position of the tab being moved. + int x = animation_.CurrentValueBetween(start_bounds_.x(), + target_bounds_.x()); + int width = animation_.CurrentValueBetween(start_bounds_.width(), + target_bounds_.width()); + gfx::Rect tab_bounds(x, start_bounds_.y(), width, + start_bounds_.height()); + tab_->SetBounds(tab_bounds); + } + + virtual void AnimationEnded(const Animation* animation) { + tabstrip_->needs_resize_layout_ = false; + TabStrip::TabAnimation::AnimationEnded(animation); + } + + virtual double GetGapWidth(int index) { + if (to_index_ < from_index_) { + // The tab was mini. + if (index == to_index_) { + double current_size = + animation_.CurrentValueBetween(0, target_bounds_.width()); + if (current_size < -kTabHOffset) + return -(current_size + kTabHOffset); + } else if (index == from_index_ + 1) { + return animation_.CurrentValueBetween(start_bounds_.width(), 0); + } + } else { + // The tab was made a normal tab. + if (index == from_index_) { + return animation_.CurrentValueBetween(Tab::GetMiniWidth() + + kTabHOffset, 0); + } + } + return 0; + } + + protected: + // Overridden from TabStrip::TabAnimation: + virtual int GetDuration() const { return kReorderAnimationDurationMs; } + + virtual double GetWidthForTab(int index) const { + Tab* tab = tabstrip_->GetTabAt(index); + + if (index == to_index_) + return animation_.CurrentValueBetween(0, target_bounds_.width()); + + if (tab->mini()) + return Tab::GetMiniWidth(); + + if (tab->IsSelected()) { + return animation_.CurrentValueBetween(start_selected_width_, + end_selected_width_); + } + + return animation_.CurrentValueBetween(start_unselected_width_, + end_unselected_width_); + } + + private: + // The tab being moved. Tab* tab_; - DISALLOW_COPY_AND_ASSIGN(RemoveTabDelegate); + // Initial bounds of tab_. + gfx::Rect start_bounds_; + + // Target bounds. + gfx::Rect target_bounds_; + + // Start and end indices of the tab. + int from_index_; + int to_index_; + + DISALLOW_COPY_AND_ASSIGN(MiniMoveAnimation); }; /////////////////////////////////////////////////////////////////////////////// @@ -245,14 +741,13 @@ TabStrip::TabStrip(TabStripModel* model) needs_resize_layout_(false), current_unselected_width_(Tab::GetStandardSize().width()), current_selected_width_(Tab::GetStandardSize().width()), - available_width_for_tabs_(-1), - animation_container_(new AnimationContainer()), - ALLOW_THIS_IN_INITIALIZER_LIST(bounds_animator_(this)), - animation_type_(ANIMATION_DEFAULT) { + available_width_for_tabs_(-1) { Init(); } TabStrip::~TabStrip() { + active_animation_.reset(NULL); + // TODO(beng): (1031854) Restore this line once XPFrame/VistaFrame are dead. // model_->RemoveObserver(this); @@ -280,34 +775,36 @@ void TabStrip::DestroyDragController() { void TabStrip::DestroyDraggedSourceTab(Tab* tab) { // We could be running an animation that references this Tab. - StopAnimating(true); - + if (active_animation_.get()) + active_animation_->Stop(); // Make sure we leave the tab_data_ vector in a consistent state, otherwise // we'll be pointing to tabs that have been deleted and removed from the // child view list. - int tab_data_index = TabDataIndexOfTab(tab); - if (tab_data_index != -1) { - if (!model_->closing_all()) - NOTREACHED() << "Leaving in an inconsistent state!"; - tab_data_.erase(tab_data_.begin() + tab_data_index); + std::vector<TabData>::iterator it = tab_data_.begin(); + for (; it != tab_data_.end(); ++it) { + if (it->tab == tab) { + if (!model_->closing_all()) + NOTREACHED() << "Leaving in an inconsistent state!"; + tab_data_.erase(it); + break; + } } - + tab->GetParent()->RemoveChildView(tab); delete tab; - // Force a layout here, because if we've just quickly drag detached a Tab, // the stopping of the active animation above may have left the TabStrip in a // bad (visual) state. Layout(); } -gfx::Rect TabStrip::GetIdealBounds(int tab_data_index) { - DCHECK_GE(tab_data_index, 0); - DCHECK_LT(tab_data_index, GetTabCount()); - return tab_data_[tab_data_index].ideal_bounds; +gfx::Rect TabStrip::GetIdealBounds(int index) { + DCHECK_GE(index, 0); + DCHECK_LT(index, GetTabCount()); + return tab_data_.at(index).ideal_bounds; } Tab* TabStrip::GetSelectedTab() const { - return GetTabAtModelIndex(model()->selected_index()); + return GetTabAtAdjustForAnimation(model()->selected_index()); } void TabStrip::InitTabStripButtons() { @@ -339,7 +836,7 @@ int TabStrip::GetPreferredHeight() { void TabStrip::SetBackgroundOffset(const gfx::Point& offset) { int tab_count = GetTabCount(); for (int i = 0; i < tab_count; ++i) - GetTabAtTabDataIndex(i)->SetBackgroundOffset(offset); + GetTabAt(i)->SetBackgroundOffset(offset); } bool TabStrip::IsPositionInWindowCaption(const gfx::Point& point) { @@ -374,10 +871,12 @@ bool TabStrip::IsDragSessionActive() const { } void TabStrip::UpdateLoadingAnimations() { - for (int i = 0, model_index = 0; i < GetTabCount(); ++i) { - Tab* current_tab = GetTabAtTabDataIndex(i); - if (!current_tab->closing()) { - TabContents* contents = model_->GetTabContentsAt(model_index); + for (int i = 0, index = 0; i < GetTabCount(); ++i, ++index) { + Tab* current_tab = GetTabAt(i); + if (current_tab->closing()) { + --index; + } else { + TabContents* contents = model_->GetTabContentsAt(index); if (!contents || !contents->is_loading()) { current_tab->ValidateLoadingAnimation(Tab::ANIMATION_NONE); } else if (contents->waiting_for_response()) { @@ -385,13 +884,12 @@ void TabStrip::UpdateLoadingAnimations() { } else { current_tab->ValidateLoadingAnimation(Tab::ANIMATION_LOADING); } - model_index++; } } } bool TabStrip::IsAnimating() const { - return bounds_animator_.IsAnimating() || new_tab_timer_.IsRunning(); + return active_animation_.get() != NULL; } TabStrip* TabStrip::AsTabStrip() { @@ -403,7 +901,6 @@ TabStrip* TabStrip::AsTabStrip() { void TabStrip::PaintChildren(gfx::Canvas* canvas) { // Tabs are painted in reverse order, so they stack to the left. - int tab_count = GetTabCount(); // Phantom tabs appear behind all other tabs and are rendered first. To make // them slightly transparent we render them to a different layer. @@ -413,8 +910,8 @@ void TabStrip::PaintChildren(gfx::Canvas* canvas) { canvas->saveLayerAlpha(&bounds, kPhantomTabAlpha, SkCanvas::kARGB_ClipLayer_SaveFlag); canvas->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode); - for (int i = tab_count - 1; i >= 0; --i) { - Tab* tab = GetTabAtTabDataIndex(i); + for (int i = GetTabCount() - 1; i >= 0; --i) { + Tab* tab = GetTabAt(i); if (tab->phantom()) tab->ProcessPaint(canvas); } @@ -423,8 +920,8 @@ void TabStrip::PaintChildren(gfx::Canvas* canvas) { canvas->saveLayerAlpha(&bounds, kPhantomTabIconAlpha, SkCanvas::kARGB_ClipLayer_SaveFlag); canvas->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode); - for (int i = tab_count - 1; i >= 0; --i) { - Tab* tab = GetTabAtTabDataIndex(i); + for (int i = GetTabCount() - 1; i >= 0; --i) { + Tab* tab = GetTabAt(i); if (tab->phantom()) { canvas->save(); canvas->ClipRectInt(tab->MirroredX(), tab->y(), tab->width(), @@ -439,27 +936,14 @@ void TabStrip::PaintChildren(gfx::Canvas* canvas) { Tab* selected_tab = NULL; - for (int i = tab_count - 1; i >= 0; --i) { - Tab* tab = GetTabAtTabDataIndex(i); + for (int i = GetTabCount() - 1; i >= 0; --i) { + Tab* tab = GetTabAt(i); // We must ask the _Tab's_ model, not ourselves, because in some situations // the model will be different to this object, e.g. when a Tab is being // removed after its TabContents has been destroyed. if (!tab->phantom()) { if (!tab->IsSelected()) { - if (tab->render_unselected() && model_->count() > 1) { - // See comment above kNetTabAnimationSelectedOffset as to why we do - // this. - Tab* last_tab = GetTabAtModelIndex(model_->count() - 2); - canvas->save(); - int clip_x = last_tab->bounds().right() + kNetTabSelectedOffset; - int clip_width = width() - clip_x; - clip_x = MirroredXWithWidthInsideView(clip_x, clip_width); - canvas->ClipRectInt(clip_x, 0, clip_width, height()); - tab->ProcessPaint(canvas); - canvas->restore(); - } else { - tab->ProcessPaint(canvas); - } + tab->ProcessPaint(canvas); } else { selected_tab = tab; } @@ -478,30 +962,23 @@ void TabStrip::PaintChildren(gfx::Canvas* canvas) { paint); } - if (animation_type_ == ANIMATION_NEW_TAB_3) - newtab_button_->ProcessPaint(canvas); - // Paint the selected tab last, so it overlaps all the others. if (selected_tab) selected_tab->ProcessPaint(canvas); // Paint the New Tab button. - if (animation_type_ != ANIMATION_NEW_TAB_1 && - animation_type_ != ANIMATION_NEW_TAB_2 && - animation_type_ != ANIMATION_NEW_TAB_3) { - newtab_button_->ProcessPaint(canvas); - } + newtab_button_->ProcessPaint(canvas); } // Overridden to support automation. See automation_proxy_uitest.cc. views::View* TabStrip::GetViewByID(int view_id) const { if (GetTabCount() > 0) { if (view_id == VIEW_ID_TAB_LAST) { - return GetTabAtTabDataIndex(GetTabCount() - 1); + return GetTabAt(GetTabCount() - 1); } else if ((view_id >= VIEW_ID_TAB_0) && (view_id < VIEW_ID_TAB_LAST)) { int index = view_id - VIEW_ID_TAB_0; if (index >= 0 && index < GetTabCount()) { - return GetTabAtTabDataIndex(index); + return GetTabAt(index); } else { return NULL; } @@ -514,15 +991,22 @@ views::View* TabStrip::GetViewByID(int view_id) const { void TabStrip::Layout() { // Called from: // - window resize - StopAnimating(false); - + // - animation completion + if (active_animation_.get()) + active_animation_->Stop(); GenerateIdealBounds(); + int tab_count = GetTabCount(); + int tab_right = 0; - for (int i = 0, tab_count = GetTabCount(); i < tab_count; ++i) - tab_data_[i].tab->SetBounds(tab_data_[i].ideal_bounds); - - newtab_button_->SetBounds(newtab_button_bounds_); - + for (int i = 0; i < tab_count; ++i) { + const gfx::Rect& bounds = tab_data_.at(i).ideal_bounds; + Tab* tab = GetTabAt(i); + tab->set_animating_mini_change(false); + tab->SetBounds(bounds.x(), bounds.y(), bounds.width(), bounds.height()); + tab_right = bounds.right(); + tab_right += GetTabHOffset(i + 1); + } + LayoutNewTabButton(static_cast<double>(tab_right), current_unselected_width_); SchedulePaint(); } @@ -531,9 +1015,6 @@ gfx::Size TabStrip::GetPreferredSize() { } void TabStrip::OnDragEntered(const DropTargetEvent& event) { - // Force animations to stop, otherwise it makes the index calculation tricky. - StopAnimating(true); - UpdateDropIndex(event); } @@ -604,10 +1085,10 @@ views::View* TabStrip::GetViewForPoint(const gfx::Point& point) { // left-adjacent Tab, so we look ahead for it as we walk. int tab_count = GetTabCount(); for (int i = 0; i < tab_count; ++i) { - Tab* next_tab = i < (tab_count - 1) ? GetTabAtTabDataIndex(i + 1) : NULL; + Tab* next_tab = i < (tab_count - 1) ? GetTabAt(i + 1) : NULL; if (next_tab && next_tab->IsSelected() && IsPointInTab(next_tab, point)) return next_tab; - Tab* tab = GetTabAtTabDataIndex(i); + Tab* tab = GetTabAt(i); if (IsPointInTab(tab, point)) return tab; } @@ -636,15 +1117,16 @@ void TabStrip::ViewHierarchyChanged(bool is_add, // TabStrip, TabStripModelObserver implementation: void TabStrip::TabInsertedAt(TabContents* contents, - int model_index, + int index, bool foreground) { DCHECK(contents); - DCHECK(model_index == TabStripModel::kNoTab || - model_->ContainsIndex(model_index)); + DCHECK(index == TabStripModel::kNoTab || model_->ContainsIndex(index)); // This tab may be attached to another browser window, we should notify // renderer. contents->render_view_host()->UpdateBrowserWindowId( contents->controller().window_id().id()); + if (active_animation_.get()) + active_animation_->Stop(); bool contains_tab = false; Tab* tab = NULL; @@ -663,23 +1145,10 @@ void TabStrip::TabInsertedAt(TabContents* contents, } // See if we're already in the list. We don't want to add ourselves twice. - int tab_data_index = TabDataIndexOfTab(tab); - - if (tab_data_index != -1) { - contains_tab = true; - - // Make sure we stop animating the view. This is necessary otherwise when - // the animation is done it'll try to remove the tab. - bounds_animator_.StopAnimatingView(tab); - - // We have the tab, but it might not be at the right index. Reset the data - // to ensure it's at the right index. - TabData tab_data = tab_data_[tab_data_index]; - DCHECK(tab_data.tab == tab); - tab_data_.erase(tab_data_.begin() + tab_data_index); - tab_data_.insert( - tab_data_.begin() + ModelIndexToTabDataIndex(model_index), - tab_data); + std::vector<TabData>::const_iterator iter = tab_data_.begin(); + for (; iter != tab_data_.end() && !contains_tab; ++iter) { + if (iter->tab == tab) + contains_tab = true; } } @@ -690,43 +1159,40 @@ void TabStrip::TabInsertedAt(TabContents* contents, // Only insert if we're not already in the list. if (!contains_tab) { TabData d = { tab, gfx::Rect() }; - tab_data_.insert(tab_data_.begin() + - ModelIndexToTabDataIndex(model_index), d); - tab->UpdateData(contents, model_->IsPhantomTab(model_index), false); + tab_data_.insert(tab_data_.begin() + index, d); + tab->UpdateData(contents, model_->IsPhantomTab(index), false); } - tab->set_mini(model_->IsMiniTab(model_index)); - tab->set_app(model_->IsAppTab(model_index)); - tab->SetBlocked(model_->IsTabBlocked(model_index)); + tab->set_mini(model_->IsMiniTab(index)); + tab->SetBlocked(model_->IsTabBlocked(index)); // We only add the tab to the child list if it's not already - an invisible // tab maintained by the DraggedTabController will already be parented. - if (!tab->GetParent()) { + if (!tab->GetParent()) AddChildView(tab); - tab->SetAnimationContainer(animation_container_.get()); - } // Don't animate the first tab, it looks weird, and don't animate anything // if the containing window isn't visible yet. if (GetTabCount() > 1 && GetWindow() && GetWindow()->IsVisible()) { - if (!IsDragSessionActive() && - ShouldStartIntertTabAnimationAtEnd(model_index, foreground)) { - StartInsertTabAnimationAtEnd(); - } else { - StartInsertTabAnimation(model_index); - } + StartInsertTabAnimation(index); } else { Layout(); } } -void TabStrip::TabDetachedAt(TabContents* contents, int model_index) { - StartRemoveTabAnimation(model_index); +void TabStrip::TabDetachedAt(TabContents* contents, int index) { + GenerateIdealBounds(); + StartRemoveTabAnimation(index, contents); + // Have to do this _after_ calling StartRemoveTabAnimation, so that any + // previous remove is completed fully and index is valid in sync with the + // model index. + GetTabAt(index)->set_closing(true); } void TabStrip::TabSelectedAt(TabContents* old_contents, TabContents* new_contents, - int model_index, + int index, bool user_gesture) { + DCHECK(index >= 0 && index < GetTabCount()); // We have "tiny tabs" if the tabs are so tiny that the unselected ones are // a different size to the selected ones. bool tiny_tabs = current_unselected_width_ != current_selected_width_; @@ -736,133 +1202,117 @@ void TabStrip::TabSelectedAt(TabContents* old_contents, SchedulePaint(); } - int old_model_index = model_->GetIndexOfTabContents(old_contents); - if (old_model_index >= 0) { - GetTabAtTabDataIndex(ModelIndexToTabDataIndex(old_model_index))-> - StopMiniTabTitleAnimation(); - } + int old_index = model_->GetIndexOfTabContents(old_contents); + if (old_index >= 0) + GetTabAt(old_index)->StopMiniTabTitleAnimation(); } -void TabStrip::TabMoved(TabContents* contents, - int from_model_index, - int to_model_index) { - StartMoveTabAnimation(from_model_index, to_model_index); +void TabStrip::TabMoved(TabContents* contents, int from_index, int to_index) { + gfx::Rect start_bounds = GetIdealBounds(from_index); + Tab* tab = GetTabAt(from_index); + tab_data_.erase(tab_data_.begin() + from_index); + TabData data = {tab, gfx::Rect()}; + tab->set_mini(model_->IsMiniTab(to_index)); + tab->SetBlocked(model_->IsTabBlocked(to_index)); + tab_data_.insert(tab_data_.begin() + to_index, data); + if (tab->phantom() != model_->IsPhantomTab(to_index)) + tab->set_phantom(!tab->phantom()); + GenerateIdealBounds(); + StartMoveTabAnimation(from_index, to_index); } -void TabStrip::TabChangedAt(TabContents* contents, - int model_index, +void TabStrip::TabChangedAt(TabContents* contents, int index, TabChangeType change_type) { // Index is in terms of the model. Need to make sure we adjust that index in // case we have an animation going. - Tab* tab = GetTabAtModelIndex(model_index); + Tab* tab = GetTabAtAdjustForAnimation(index); if (change_type == TITLE_NOT_LOADING) { if (tab->mini() && !tab->IsSelected()) tab->StartMiniTabTitleAnimation(); // We'll receive another notification of the change asynchronously. return; } - tab->UpdateData(contents, model_->IsPhantomTab(model_index), + tab->UpdateData(contents, model_->IsPhantomTab(index), change_type == LOADING_ONLY); tab->UpdateFromModel(); } void TabStrip::TabReplacedAt(TabContents* old_contents, TabContents* new_contents, - int model_index) { - TabChangedAt(new_contents, model_index, ALL); + int index) { + TabChangedAt(new_contents, index, ALL); } -void TabStrip::TabMiniStateChanged(TabContents* contents, int model_index) { - GetTabAtModelIndex(model_index)->set_mini( - model_->IsMiniTab(model_index)); +void TabStrip::TabMiniStateChanged(TabContents* contents, int index) { + GetTabAt(index)->set_mini(model_->IsMiniTab(index)); // Don't animate if the window isn't visible yet. The window won't be visible // when dragging a mini-tab to a new window. if (GetWindow() && GetWindow()->IsVisible()) - StartMiniTabAnimation(); + StartMiniTabAnimation(index); else Layout(); } -void TabStrip::TabBlockedStateChanged(TabContents* contents, int model_index) { - GetTabAtModelIndex(model_index)->SetBlocked( - model_->IsTabBlocked(model_index)); +void TabStrip::TabBlockedStateChanged(TabContents* contents, int index) { + GetTabAt(index)->SetBlocked(model_->IsTabBlocked(index)); } /////////////////////////////////////////////////////////////////////////////// // TabStrip, Tab::Delegate implementation: bool TabStrip::IsTabSelected(const Tab* tab) const { - if (tab->closing() || tab->render_unselected()) + if (tab->closing()) return false; - return GetModelIndexOfTab(tab) == model_->selected_index(); + return GetIndexOfTab(tab) == model_->selected_index(); } bool TabStrip::IsTabPinned(const Tab* tab) const { if (tab->closing()) return false; - return model_->IsTabPinned(GetModelIndexOfTab(tab)); + return model_->IsTabPinned(GetIndexOfTab(tab)); } void TabStrip::SelectTab(Tab* tab) { - int model_index = GetModelIndexOfTab(tab); - if (model_->ContainsIndex(model_index)) - model_->SelectTabContentsAt(model_index, true); + int index = GetIndexOfTab(tab); + if (model_->ContainsIndex(index)) + model_->SelectTabContentsAt(index, true); } void TabStrip::CloseTab(Tab* tab) { - int model_index = GetModelIndexOfTab(tab); - if (model_->ContainsIndex(model_index)) { - TabContents* contents = model_->GetTabContentsAt(model_index); + int tab_index = GetIndexOfTab(tab); + if (model_->ContainsIndex(tab_index)) { + TabContents* contents = model_->GetTabContentsAt(tab_index); if (contents) UserMetrics::RecordAction(UserMetricsAction("CloseTab_Mouse"), contents->profile()); - if (model_index + 1 != model_->count() && model_->count() > 1) { - Tab* last_tab = GetTabAtModelIndex(model_->count() - 2); - // Limit the width available to the TabStrip for laying out Tabs, so that - // Tabs are not resized until a later time (when the mouse pointer leaves - // the TabStrip). - available_width_for_tabs_ = GetAvailableWidthForTabs(last_tab); - needs_resize_layout_ = true; - AddMessageLoopObserver(); - } else if (model_->count() > 1) { - Tab* last_tab = GetTabAtModelIndex(model_->count() - 1); - // Limit the width available to the TabStrip for laying out Tabs, so that - // Tabs are not resized until a later time (when the mouse pointer leaves - // the TabStrip). - available_width_for_tabs_ = GetAvailableWidthForTabs(last_tab); - needs_resize_layout_ = true; - AddMessageLoopObserver(); - } + Tab* last_tab = GetTabAt(GetTabCount() - 1); + // Limit the width available to the TabStrip for laying out Tabs, so that + // Tabs are not resized until a later time (when the mouse pointer leaves + // the TabStrip). + available_width_for_tabs_ = GetAvailableWidthForTabs(last_tab); + needs_resize_layout_ = true; + AddMessageLoopObserver(); // Note that the next call might not close the tab (because of unload // hanlders or if the delegate veto the close). - model_->CloseTabContentsAt(model_index); + model_->CloseTabContentsAt(tab_index); } } bool TabStrip::IsCommandEnabledForTab( TabStripModel::ContextMenuCommand command_id, const Tab* tab) const { - int model_index = GetModelIndexOfTab(tab); - if (model_->ContainsIndex(model_index)) - return model_->IsContextMenuCommandEnabled(model_index, command_id); + int index = GetIndexOfTab(tab); + if (model_->ContainsIndex(index)) + return model_->IsContextMenuCommandEnabled(index, command_id); return false; } void TabStrip::ExecuteCommandForTab( TabStripModel::ContextMenuCommand command_id, Tab* tab) { - int model_index = GetModelIndexOfTab(tab); - if (model_->ContainsIndex(model_index)) - model_->ExecuteContextMenuCommand(model_index, command_id); -} - -void TabStrip::OnBoundsAnimatorDone(views::BoundsAnimator* animator) { - AnimationType last_type = animation_type_; - - ResetAnimationState(false); - - if (last_type == ANIMATION_NEW_TAB_2) - NewTabAnimation2Done(); + int index = GetIndexOfTab(tab); + if (model_->ContainsIndex(index)) + model_->ExecuteContextMenuCommand(index, command_id); } void TabStrip::StartHighlightTabsForCommand( @@ -870,13 +1320,13 @@ void TabStrip::StartHighlightTabsForCommand( if (command_id == TabStripModel::CommandCloseTabsOpenedBy || command_id == TabStripModel::CommandCloseOtherTabs || command_id == TabStripModel::CommandCloseTabsToRight) { - int model_index = GetModelIndexOfTab(tab); - if (model_->ContainsIndex(model_index)) { + int index = GetIndexOfTab(tab); + if (model_->ContainsIndex(index)) { std::vector<int> indices = - model_->GetIndicesClosedByCommand(model_index, command_id); + model_->GetIndicesClosedByCommand(index, command_id); for (std::vector<int>::const_iterator i = indices.begin(); i != indices.end(); ++i) { - GetTabAtModelIndex(*i)->StartPulse(); + GetTabAtAdjustForAnimation(*i)->StartPulse(); } } } @@ -894,7 +1344,7 @@ void TabStrip::StopHighlightTabsForCommand( void TabStrip::StopAllHighlighting() { for (int i = 0; i < GetTabCount(); ++i) - GetTabAtTabDataIndex(i)->StopPulse(); + GetTabAt(i)->StopPulse(); } void TabStrip::MaybeStartDrag(Tab* tab, const views::MouseEvent& event) { @@ -904,8 +1354,8 @@ void TabStrip::MaybeStartDrag(Tab* tab, const views::MouseEvent& event) { // the user is dragging. if (IsAnimating() || tab->closing() || !HasAvailableDragActions()) return; - int model_index = GetModelIndexOfTab(tab); - if (!model_->ContainsIndex(model_index)) { + int index = GetIndexOfTab(tab); + if (!model_->ContainsIndex(index)) { CHECK(false); return; } @@ -1013,18 +1463,15 @@ void TabStrip::DidProcessEvent(GdkEvent* event) { void TabStrip::Init() { SetID(VIEW_ID_TAB_STRIP); model_->AddObserver(this); - newtab_button_bounds_.SetRect(0, 0, kNewTabButtonWidth, kNewTabButtonHeight); - if (browser_defaults::kSizeTabButtonToTopOfTabStrip) { - newtab_button_bounds_.set_height( - kNewTabButtonHeight + kNewTabButtonVOffset); - } + newtab_button_size_.SetSize(kNewTabButtonWidth, kNewTabButtonHeight); + if (browser_defaults::kSizeTabButtonToTopOfTabStrip) + newtab_button_size_.set_height(kNewTabButtonHeight + kNewTabButtonVOffset); if (drop_indicator_width == 0) { // Direction doesn't matter, both images are the same size. SkBitmap* drop_image = GetDropArrowImage(true); drop_indicator_width = drop_image->width(); drop_indicator_height = drop_image->height(); } - bounds_animator_.set_observer(this); } void TabStrip::LoadNewTabButtonImage() { @@ -1054,14 +1501,20 @@ void TabStrip::LoadNewTabButtonImage() { delete tp; } -Tab* TabStrip::GetTabAtTabDataIndex(int tab_data_index) const { - DCHECK_GE(tab_data_index, 0); - DCHECK_LT(tab_data_index, GetTabCount()); - return tab_data_[tab_data_index].tab; +Tab* TabStrip::GetTabAt(int index) const { + DCHECK_GE(index, 0); + DCHECK_LT(index, GetTabCount()); + return tab_data_.at(index).tab; } -Tab* TabStrip::GetTabAtModelIndex(int model_index) const { - return GetTabAtTabDataIndex(ModelIndexToTabDataIndex(model_index)); +Tab* TabStrip::GetTabAtAdjustForAnimation(int index) const { + if (active_animation_.get() && + active_animation_->type() == TabAnimation::REMOVE && + index >= + static_cast<RemoveTabAnimation*>(active_animation_.get())->index()) { + index++; + } + return GetTabAt(index); } int TabStrip::GetTabCount() const { @@ -1094,7 +1547,7 @@ void TabStrip::GetDesiredTabWidths(int tab_count, int available_width; if (available_width_for_tabs_ < 0) { available_width = width(); - available_width -= (kNewTabButtonHOffset + newtab_button_bounds_.width()); + available_width -= (kNewTabButtonHOffset + newtab_button_size_.width()); } else { // Interesting corner case: if |available_width_for_tabs_| > the result // of the calculation in the conditional arm above, the strip is in @@ -1154,6 +1607,14 @@ void TabStrip::GetDesiredTabWidths(int tab_count, } } +int TabStrip::GetTabHOffset(int tab_index) { + if (tab_index < GetTabCount() && GetTabAt(tab_index - 1)->mini() && + !GetTabAt(tab_index)->mini()) { + return mini_to_non_mini_gap_ + kTabHOffset; + } + return kTabHOffset; +} + void TabStrip::ResizeLayoutTabs() { // We've been called back after the TabStrip has been emptied out (probably // just prior to the window being destroyed). We need to do nothing here or @@ -1174,7 +1635,7 @@ void TabStrip::ResizeLayoutTabs() { // mini-tabs have the same width), so there is nothing to do. return; } - Tab* first_tab = GetTabAtTabDataIndex(mini_tab_count); + Tab* first_tab = GetTabAt(mini_tab_count); double unselected, selected; GetDesiredTabWidths(GetTabCount(), mini_tab_count, &unselected, &selected); int w = Round(first_tab->IsSelected() ? selected : selected); @@ -1196,7 +1657,7 @@ bool TabStrip::IsCursorInTabStripZone() const { DWORD pos = GetMessagePos(); gfx::Point cursor_point(pos); #elif defined(OS_LINUX) - // TODO(sky): make sure this is right with multiple monitors. + // TODO: make sure this is right with multiple monitors. GdkScreen* screen = gdk_screen_get_default(); GdkDisplay* display = gdk_screen_get_display(screen); gint x, y; @@ -1227,13 +1688,14 @@ gfx::Rect TabStrip::GetDropBounds(int drop_index, DCHECK(drop_index != -1); int center_x; if (drop_index < GetTabCount()) { - Tab* tab = GetTabAtTabDataIndex(drop_index); + Tab* tab = GetTabAt(drop_index); + // TODO(sky): update these for mini-tabs. if (drop_before) center_x = tab->x() - (kTabHOffset / 2); else center_x = tab->x() + (tab->width() / 2); } else { - Tab* last_tab = GetTabAtTabDataIndex(drop_index - 1); + Tab* last_tab = GetTabAt(drop_index - 1); center_x = last_tab->x() + last_tab->width() + (kTabHOffset / 2); } @@ -1269,7 +1731,7 @@ void TabStrip::UpdateDropIndex(const DropTargetEvent& event) { const int x = MirroredXCoordinateInsideView(event.x()); // We don't allow replacing the urls of mini-tabs. for (int i = GetMiniTabCount(); i < GetTabCount(); ++i) { - Tab* tab = GetTabAtTabDataIndex(i); + Tab* tab = GetTabAt(i); const int tab_max_x = tab->x() + tab->width(); const int hot_width = tab->width() / 3; if (x < tab_max_x) { @@ -1287,26 +1749,25 @@ void TabStrip::UpdateDropIndex(const DropTargetEvent& event) { SetDropIndex(GetTabCount(), true); } -void TabStrip::SetDropIndex(int tab_data_index, bool drop_before) { - if (tab_data_index == -1) { +void TabStrip::SetDropIndex(int index, bool drop_before) { + if (index == -1) { if (drop_info_.get()) drop_info_.reset(NULL); return; } - if (drop_info_.get() && drop_info_->drop_index == tab_data_index && + if (drop_info_.get() && drop_info_->drop_index == index && drop_info_->drop_before == drop_before) { return; } bool is_beneath; - gfx::Rect drop_bounds = GetDropBounds(tab_data_index, drop_before, - &is_beneath); + gfx::Rect drop_bounds = GetDropBounds(index, drop_before, &is_beneath); if (!drop_info_.get()) { - drop_info_.reset(new DropInfo(tab_data_index, drop_before, !is_beneath)); + drop_info_.reset(new DropInfo(index, drop_before, !is_beneath)); } else { - drop_info_->drop_index = tab_data_index; + drop_info_->drop_index = index; drop_info_->drop_before = drop_before; if (is_beneath == drop_info_->point_down) { drop_info_->point_down = !is_beneath; @@ -1383,19 +1844,8 @@ TabStrip::DropInfo::~DropInfo() { // - Tab reorder void TabStrip::GenerateIdealBounds() { int tab_count = GetTabCount(); - int non_closing_tab_count = 0; - int mini_tab_count = 0; - for (int i = 0; i < tab_count; ++i) { - if (!tab_data_[i].tab->closing()) { - ++non_closing_tab_count; - if (tab_data_[i].tab->mini()) - mini_tab_count++; - } - } - double unselected, selected; - GetDesiredTabWidths(non_closing_tab_count, mini_tab_count, &unselected, - &selected); + GetDesiredTabWidths(tab_count, GetMiniTabCount(), &unselected, &selected); current_unselected_width_ = unselected; current_selected_width_ = selected; @@ -1404,259 +1854,139 @@ void TabStrip::GenerateIdealBounds() { // selected state or the number of tabs in the strip! int tab_height = Tab::GetStandardSize().height(); double tab_x = 0; - bool last_was_mini = false; for (int i = 0; i < tab_count; ++i) { - if (!tab_data_[i].tab->closing()) { - Tab* tab = GetTabAtTabDataIndex(i); - double tab_width = unselected; - if (tab->mini()) { - tab_width = Tab::GetMiniWidth(); - } else { - if (last_was_mini) { - // Give a bigger gap between mini and non-mini tabs. - tab_x += mini_to_non_mini_gap_; - } - if (tab->IsSelected()) - tab_width = selected; - } - double end_of_tab = tab_x + tab_width; - int rounded_tab_x = Round(tab_x); - tab_data_[i].ideal_bounds = - gfx::Rect(rounded_tab_x, 0, Round(end_of_tab) - rounded_tab_x, + Tab* tab = GetTabAt(i); + double tab_width = unselected; + if (tab->mini()) + tab_width = Tab::GetMiniWidth(); + else if (tab->IsSelected()) + tab_width = selected; + double end_of_tab = tab_x + tab_width; + int rounded_tab_x = Round(tab_x); + gfx::Rect state(rounded_tab_x, 0, Round(end_of_tab) - rounded_tab_x, tab_height); - tab_x = end_of_tab + kTabHOffset; - last_was_mini = tab->mini(); - } + tab_data_.at(i).ideal_bounds = state; + tab_x = end_of_tab + GetTabHOffset(i + 1); } +} - // Update bounds of new tab button. - int new_tab_x; - int new_tab_y = browser_defaults::kSizeTabButtonToTopOfTabStrip ? +void TabStrip::LayoutNewTabButton(double last_tab_right, + double unselected_width) { + int delta = abs(Round(unselected_width) - Tab::GetStandardSize().width()); + int v_offset = browser_defaults::kSizeTabButtonToTopOfTabStrip ? 0 : kNewTabButtonVOffset; - if (abs(Round(unselected) - Tab::GetStandardSize().width()) > 1 && - available_width_for_tabs_ == -1) { + if (delta > 1 && !needs_resize_layout_) { // We're shrinking tabs, so we need to anchor the New Tab button to the // right edge of the TabStrip's bounds, rather than the right edge of the // right-most Tab, otherwise it'll bounce when animating. - new_tab_x = width() - newtab_button_bounds_.width(); + newtab_button_->SetBounds(width() - newtab_button_size_.width(), + v_offset, + newtab_button_size_.width(), + newtab_button_size_.height()); } else { - new_tab_x = Round(tab_x - kTabHOffset) + kNewTabButtonHOffset; - } - newtab_button_bounds_.set_origin(gfx::Point(new_tab_x, new_tab_y)); -} - -void TabStrip::NewTabAnimation1Done() { - int tab_data_index = static_cast<int>(tab_data_.size() - 1); - Tab* tab = GetTabAtTabDataIndex(tab_data_index); - - gfx::Rect old_tab_bounds = tab->bounds(); - - GenerateIdealBounds(); - - gfx::Rect& end_bounds = tab_data_[tab_data_index].ideal_bounds; - end_bounds.Offset(kNewTabOvershoot, 0); - - int x = old_tab_bounds.right() - end_bounds.width(); - int w = end_bounds.width(); - if (x < 0) { - w += x; - x = 0; - } - tab->SetBounds(x, old_tab_bounds.y(), w, end_bounds.height()); - - AnimateToIdealBounds(); - - animation_type_ = ANIMATION_NEW_TAB_2; - tab->set_render_as_new_tab(false); - tab->set_render_unselected(true); - tab->set_alpha(0); - - // BoundsAnimator takes ownership of NewTabAlphaDelegate. - bounds_animator_.SetAnimationDelegate(tab, new NewTabAlphaDelegate(tab), - true); -} - -void TabStrip::NewTabAnimation2Done() { - animation_type_ = ANIMATION_NEW_TAB_3; - - GenerateIdealBounds(); - - AnimateToIdealBounds(); - - SlideAnimation* animation = new SlideAnimation(NULL); - animation->SetSlideDuration(kNewTab3DurationMs); - animation->SetTweenType(SlideAnimation::EASE_IN_OUT); - - // BoundsAnimator takes ownership of animation. - bounds_animator_.SetAnimationForView(tab_data_.back().tab, animation); -} - -void TabStrip::AnimateToIdealBounds() { - for (size_t i = 0; i < tab_data_.size(); ++i) { - if (!tab_data_[i].tab->closing()) { - bounds_animator_.AnimateViewTo(tab_data_[i].tab, - tab_data_[i].ideal_bounds, - false); - } - } - - if (animation_type_ != ANIMATION_NEW_TAB_3) { - bounds_animator_.AnimateViewTo(newtab_button_, - newtab_button_bounds_, - false); + newtab_button_->SetBounds( + Round(last_tab_right - kTabHOffset) + kNewTabButtonHOffset, + v_offset, newtab_button_size_.width(), newtab_button_size_.height()); } } -bool TabStrip::ShouldStartIntertTabAnimationAtEnd(int model_index, - bool foreground) { - return foreground && (model_index + 1 == model_->count()) && - (model_->GetTabContentsAt(model_index)->GetURL() == - GURL(chrome::kChromeUINewTabURL)); +// Called from: +// - animation tick +void TabStrip::AnimationLayout(double unselected_width) { + int tab_height = Tab::GetStandardSize().height(); + double tab_x = 0; + for (int i = 0; i < GetTabCount(); ++i) { + TabAnimation* animation = active_animation_.get(); + if (animation) + tab_x += animation->GetGapWidth(i); + double tab_width = TabAnimation::GetCurrentTabWidth(this, animation, i); + double end_of_tab = tab_x + tab_width; + int rounded_tab_x = Round(tab_x); + Tab* tab = GetTabAt(i); + tab->SetBounds(rounded_tab_x, 0, Round(end_of_tab) - rounded_tab_x, + tab_height); + tab_x = end_of_tab + GetTabHOffset(i + 1); + } + LayoutNewTabButton(tab_x, unselected_width); + SchedulePaint(); } void TabStrip::StartResizeLayoutAnimation() { - ResetAnimationState(true); - GenerateIdealBounds(); - AnimateToIdealBounds(); + if (active_animation_.get()) + active_animation_->Stop(); + active_animation_.reset(new ResizeLayoutAnimation(this)); + active_animation_->Start(); } -void TabStrip::StartInsertTabAnimationAtEnd() { - ResetAnimationState(true); - +void TabStrip::StartInsertTabAnimation(int index) { // The TabStrip can now use its entire width to lay out Tabs. available_width_for_tabs_ = -1; - - animation_type_ = ANIMATION_NEW_TAB_1; - - GenerateIdealBounds(); - - int tab_data_index = ModelIndexToTabDataIndex(model_->count() - 1); - Tab* tab = tab_data_[tab_data_index].tab; - tab->SizeToNewTabButtonImages(); - tab->SetBounds(newtab_button_->x() + - (newtab_button_->width() - tab->width()) / 2, - tab_data_[tab_data_index].ideal_bounds.y(), - tab->width(), tab->height()); - tab->set_render_as_new_tab(true); - - new_tab_timer_.Start(base::TimeDelta::FromMilliseconds(kNewTabDurationMs), - this, &TabStrip::NewTabAnimation1Done); + if (active_animation_.get()) + active_animation_->Stop(); + active_animation_.reset(new InsertTabAnimation(this, index)); + active_animation_->Start(); } -void TabStrip::StartInsertTabAnimation(int model_index) { - ResetAnimationState(true); - - // The TabStrip can now use its entire width to lay out Tabs. - available_width_for_tabs_ = -1; - - GenerateIdealBounds(); - - int tab_data_index = ModelIndexToTabDataIndex(model_index); - Tab* tab = tab_data_[tab_data_index].tab; - if (model_index == 0) { - tab->SetBounds(0, tab_data_[tab_data_index].ideal_bounds.y(), 0, - tab_data_[tab_data_index].ideal_bounds.height()); - } else { - Tab* last_tab = tab_data_[tab_data_index - 1].tab; - tab->SetBounds(last_tab->bounds().right() + kTabHOffset, - tab_data_[tab_data_index].ideal_bounds.y(), 0, - tab_data_[tab_data_index].ideal_bounds.height()); +void TabStrip::StartRemoveTabAnimation(int index, TabContents* contents) { + if (active_animation_.get()) { + // Some animations (e.g. MoveTabAnimation) cause there to be a Layout when + // they're completed (which includes canceled). Since |tab_data_| is now + // inconsistent with TabStripModel, doing this Layout will crash now, so + // we ask the MoveTabAnimation to skip its Layout (the state will be + // corrected by the RemoveTabAnimation we're about to initiate). + active_animation_->set_layout_on_completion(false); + active_animation_->Stop(); } - - AnimateToIdealBounds(); + active_animation_.reset(new RemoveTabAnimation(this, index, contents)); + active_animation_->Start(); } -void TabStrip::StartRemoveTabAnimation(int model_index) { - ResetAnimationState(true); - - // Mark the tab as closing. - int tab_data_index = ModelIndexToTabDataIndex(model_index); - Tab* tab = tab_data_[tab_data_index].tab; - tab->set_closing(true); - - // Start an animation for the tabs. - GenerateIdealBounds(); - AnimateToIdealBounds(); - - // Animate the tab being closed to 0x0. - gfx::Rect tab_bounds = tab->bounds(); - tab_bounds.set_width(0); - bounds_animator_.AnimateViewTo(tab, tab_bounds, false); - - // Register delegate to do cleanup when done, BoundsAnimator takes - // ownership of RemoveTabDelegate. - bounds_animator_.SetAnimationDelegate(tab, new RemoveTabDelegate(this, tab), - true); +void TabStrip::StartMoveTabAnimation(int from_index, int to_index) { + if (active_animation_.get()) + active_animation_->Stop(); + active_animation_.reset(new MoveTabAnimation(this, from_index, to_index)); + active_animation_->Start(); } -void TabStrip::StartMoveTabAnimation(int from_model_index, - int to_model_index) { - ResetAnimationState(true); - - int from_tab_data_index = ModelIndexToTabDataIndex(from_model_index); - - Tab* tab = tab_data_[from_tab_data_index].tab; - tab_data_.erase(tab_data_.begin() + from_tab_data_index); - - TabData data = {tab, gfx::Rect()}; - tab->set_mini(model_->IsMiniTab(to_model_index)); - //tab->set_app(model_->IsAppTab(to_model_index)); - tab->SetBlocked(model_->IsTabBlocked(to_model_index)); - - int to_tab_data_index = ModelIndexToTabDataIndex(to_model_index); - - tab_data_.insert(tab_data_.begin() + to_tab_data_index, data); - if (tab->phantom() != model_->IsPhantomTab(to_model_index)) - tab->set_phantom(!tab->phantom()); - - GenerateIdealBounds(); - AnimateToIdealBounds(); +void TabStrip::StartMiniTabAnimation(int index) { + if (active_animation_.get()) + active_animation_->Stop(); + active_animation_.reset(new MiniTabAnimation(this, index)); + active_animation_->Start(); } -void TabStrip::StartMiniTabAnimation() { - ResetAnimationState(true); - - GenerateIdealBounds(); - AnimateToIdealBounds(); +void TabStrip::StartMiniMoveTabAnimation(int from_index, + int to_index, + const gfx::Rect& start_bounds) { + if (active_animation_.get()) + active_animation_->Stop(); + active_animation_.reset( + new MiniMoveAnimation(this, from_index, to_index, start_bounds)); + active_animation_->Start(); } -void TabStrip::StopAnimating(bool layout) { - if (!IsAnimating()) - return; - - new_tab_timer_.Stop(); +void TabStrip::FinishAnimation(TabStrip::TabAnimation* animation, + bool layout) { + active_animation_.reset(NULL); - if (bounds_animator_.IsAnimating()) { - // Cancelling the animation triggers OnBoundsAnimatorDone, which invokes - // ResetAnimationState. - bounds_animator_.Cancel(); - } else { - ResetAnimationState(false); - } - - DCHECK(!IsAnimating()); + // Reset the animation state of each tab. + for (int i = 0, count = GetTabCount(); i < count; ++i) + GetTabAt(i)->set_animating_mini_change(false); if (layout) Layout(); } -void TabStrip::ResetAnimationState(bool stop_new_tab_timer) { - if (animation_type_ == ANIMATION_NEW_TAB_2) - newtab_button_->SchedulePaint(); - - if (stop_new_tab_timer) - new_tab_timer_.Stop(); - - animation_type_ = ANIMATION_DEFAULT; - - // Reset the animation state of each tab. - for (int i = 0, count = GetTabCount(); i < count; ++i) { - Tab* tab = GetTabAtTabDataIndex(i); - tab->set_animating_mini_change(false); - tab->set_render_as_new_tab(false); - tab->set_render_unselected(false); - tab->set_alpha(1); +int TabStrip::GetIndexOfTab(const Tab* tab) const { + for (int i = 0, index = 0; i < GetTabCount(); ++i, ++index) { + Tab* current_tab = GetTabAt(i); + if (current_tab->closing()) { + --index; + } else if (current_tab == tab) { + return index; + } } + return -1; } int TabStrip::GetMiniTabCount() const { @@ -1681,21 +2011,22 @@ bool TabStrip::IsPointInTab(Tab* tab, return tab->HitTest(point_in_tab_coords); } -void TabStrip::RemoveTab(Tab* tab) { - int tab_data_index = TabDataIndexOfTab(tab); - - DCHECK(tab_data_index != -1); +void TabStrip::RemoveTabAt(int index) { + Tab* removed = tab_data_.at(index).tab; // Remove the Tab from the TabStrip's list... - tab_data_.erase(tab_data_.begin() + tab_data_index); + tab_data_.erase(tab_data_.begin() + index); // If the TabContents being detached was removed as a result of a drag // gesture from its corresponding Tab, we don't want to remove the Tab from // the child list, because if we do so it'll stop receiving events and the // drag will stall. So we only remove if a drag isn't active, or the Tab // was for some other TabContents. - if (!IsDragSessionActive() || !drag_controller_->IsDragSourceTab(tab)) - delete tab; + if (!IsDragSessionActive() || !drag_controller_->IsDragSourceTab(removed)) { + removed->GetParent()->RemoveChildView(removed); + delete removed; + } + GenerateIdealBounds(); } void TabStrip::HandleGlobalMouseMoveEvent() { @@ -1718,40 +2049,8 @@ void TabStrip::HandleGlobalMouseMoveEvent() { bool TabStrip::HasPhantomTabs() const { for (int i = 0; i < GetTabCount(); ++i) { - if (GetTabAtTabDataIndex(i)->phantom()) + if (GetTabAt(i)->phantom()) return true; } return false; } - -int TabStrip::GetModelIndexOfTab(const Tab* tab) const { - for (int i = 0, model_index = 0; i < GetTabCount(); ++i) { - Tab* current_tab = GetTabAtTabDataIndex(i); - if (!current_tab->closing()) { - if (current_tab == tab) - return model_index; - model_index++; - } - } - return -1; -} - -int TabStrip::ModelIndexToTabDataIndex(int model_index) const { - int current_model_index = 0; - for (size_t i = 0; i < tab_data_.size(); ++i) { - if (!tab_data_[i].tab->closing()) { - if (current_model_index == model_index) - return i; - current_model_index++; - } - } - return tab_data_.size(); -} - -int TabStrip::TabDataIndexOfTab(Tab* tab) const { - for (size_t i = 0; i < tab_data_.size(); ++i) { - if (tab_data_[i].tab == tab) - return i; - } - return -1; -} diff --git a/chrome/browser/views/tabs/tab_strip.h b/chrome/browser/views/tabs/tab_strip.h index e1cbfda..af6cc34 100644 --- a/chrome/browser/views/tabs/tab_strip.h +++ b/chrome/browser/views/tabs/tab_strip.h @@ -5,16 +5,11 @@ #ifndef CHROME_BROWSER_VIEWS_TABS_TAB_STRIP_H_ #define CHROME_BROWSER_VIEWS_TABS_TAB_STRIP_H_ -#include "app/animation_container.h" #include "base/message_loop.h" -#include "base/ref_counted.h" -#include "base/timer.h" #include "chrome/browser/tabs/tab_strip_model.h" #include "chrome/browser/views/tabs/base_tab_strip.h" #include "chrome/browser/views/tabs/tab.h" #include "gfx/point.h" -#include "gfx/rect.h" -#include "views/animation/bounds_animator.h" #include "views/controls/button/image_button.h" class DraggedTabController; @@ -47,8 +42,7 @@ class TabStrip : public BaseTabStrip, public TabStripModelObserver, public Tab::TabDelegate, public views::ButtonListener, - public MessageLoopForUI::Observer, - public views::BoundsAnimatorObserver { + public MessageLoopForUI::Observer { public: explicit TabStrip(TabStripModel* model); virtual ~TabStrip(); @@ -68,7 +62,7 @@ class TabStrip : public BaseTabStrip, void DestroyDraggedSourceTab(Tab* tab); // Retrieves the ideal bounds for the Tab at the specified index. - gfx::Rect GetIdealBounds(int tab_data_index); + gfx::Rect GetIdealBounds(int index); // Returns the currently selected tab. Tab* GetSelectedTab() const; @@ -109,9 +103,6 @@ class TabStrip : public BaseTabStrip, virtual views::View* GetViewForPoint(const gfx::Point& point); virtual void ThemeChanged(); - // BoundsAnimator::Observer overrides: - virtual void OnBoundsAnimatorDone(views::BoundsAnimator* animator); - protected: // Creates a new tab. virtual Tab* CreateTab(); @@ -123,24 +114,21 @@ class TabStrip : public BaseTabStrip, // TabStripModelObserver implementation: virtual void TabInsertedAt(TabContents* contents, - int model_index, + int index, bool foreground); - virtual void TabDetachedAt(TabContents* contents, int model_index); + virtual void TabDetachedAt(TabContents* contents, int index); virtual void TabSelectedAt(TabContents* old_contents, TabContents* contents, - int model_index, + int index, bool user_gesture); - virtual void TabMoved(TabContents* contents, - int from_model_index, - int to_model_index); - virtual void TabChangedAt(TabContents* contents, - int model_index, + virtual void TabMoved(TabContents* contents, int from_index, int to_index); + virtual void TabChangedAt(TabContents* contents, int index, TabChangeType change_type); virtual void TabReplacedAt(TabContents* old_contents, TabContents* new_contents, - int model_index); - virtual void TabMiniStateChanged(TabContents* contents, int model_index); - virtual void TabBlockedStateChanged(TabContents* contents, int model_index); + int index); + virtual void TabMiniStateChanged(TabContents* contents, int index); + virtual void TabBlockedStateChanged(TabContents* contents, int index); // Tab::Delegate implementation: virtual bool IsTabSelected(const Tab* tab) const; @@ -177,70 +165,22 @@ class TabStrip : public BaseTabStrip, static const int mini_to_non_mini_gap_; private: - class RemoveTabDelegate; + class InsertTabAnimation; + class MiniMoveAnimation; + class MiniTabAnimation; + class MoveTabAnimation; + class RemoveTabAnimation; + class ResizeLayoutAnimation; + class TabAnimation; friend class DraggedTabController; - - // AnimationType used for tracking animations that require additional - // state beyond just animating the bounds of a view. - // - // Currently the only animation special cased is that of inserting the new tab - // page at the end of the tab strip. Here's the steps that take place when - // this happens. - // . The newly inserted tab is set to render for the new tab animation - // |set_render_as_new_tab|. The timer new_tab_timer_ is used to determine - // when to turn this off. This is represented by state ANIMATION_NEW_TAB_1. - // . The new tab is rendered in the background with an ever increasing alpha - // value and the tab goes slightly past the new tab button. The new tab - // button is not visible during this animation. This is represented by the - // state ANIMATION_NEW_TAB_2. - // . The new tab is animated to its final position and the new tab button is - // rendered beneath the selected tab. This is represented by the state - // ANIMATION_NEW_TAB_3. - enum AnimationType { - ANIMATION_DEFAULT, - - ANIMATION_NEW_TAB_1, - ANIMATION_NEW_TAB_2, - ANIMATION_NEW_TAB_3 - }; - - // Used during a drop session of a url. Tracks the position of the drop as - // well as a window used to highlight where the drop occurs. - struct DropInfo { - DropInfo(int index, bool drop_before, bool paint_down); - ~DropInfo(); - - // Index of the tab to drop on. If drop_before is true, the drop should - // occur between the tab at drop_index - 1 and drop_index. - // WARNING: if drop_before is true it is possible this will == tab_count, - // which indicates the drop should create a new tab at the end of the tabs. - int drop_index; - bool drop_before; - - // Direction the arrow should point in. If true, the arrow is displayed - // above the tab and points down. If false, the arrow is displayed beneath - // the tab and points up. - bool point_down; - - // Renders the drop indicator. - // TODO(beng): should be views::Widget. -#if defined(OS_WIN) - views::WidgetWin* arrow_window; -#else - views::WidgetGtk* arrow_window; -#endif - views::ImageView* arrow_view; - - private: - DISALLOW_COPY_AND_ASSIGN(DropInfo); - }; - - // The Tabs we contain, and their last generated "good" bounds. - struct TabData { - Tab* tab; - gfx::Rect ideal_bounds; - }; + friend class InsertTabAnimation; + friend class MiniMoveAnimation; + friend class MiniTabAnimation; + friend class MoveTabAnimation; + friend class RemoveTabAnimation; + friend class ResizeLayoutAnimation; + friend class TabAnimation; TabStrip(); void Init(); @@ -248,9 +188,9 @@ class TabStrip : public BaseTabStrip, // Set the images for the new tab button. void LoadNewTabButtonImage(); - // Retrieves the Tab at the specified index. Remember, the specified index - // is in terms of tab_data, *not* the model. - Tab* GetTabAtTabDataIndex(int tab_data_index) const; + // Retrieves the Tab at the specified index. Take care in using this, you may + // need to use GetTabAtAdjustForAnimation. + Tab* GetTabAt(int index) const; // Returns the tab at the specified index. If a remove animation is on going // and the index is >= the index of the tab being removed, the index is @@ -258,13 +198,10 @@ class TabStrip : public BaseTabStrip, // do not line up with the indices of the view. This method adjusts the index // accordingly. // - // Use this instead of GetTabAtTabDataIndex if the index comes from the model. - Tab* GetTabAtModelIndex(int model_index) const; + // Use this instead of GetTabAt if the index comes from the model. + Tab* GetTabAtAdjustForAnimation(int index) const; // Gets the number of Tabs in the collection. - // WARNING: this is the number of tabs displayed by the tabstrip, which if - // an animation is ongoing is not necessarily the same as the number of tabs - // in the model. int GetTabCount() const; // Returns the number of mini-tabs. @@ -287,6 +224,9 @@ class TabStrip : public BaseTabStrip, double* unselected_width, double* selected_width) const; + // Returns the horizontal offset before the tab at |tab_index|. + int GetTabHOffset(int tab_index); + // Perform an animated resize-relayout of the TabStrip immediately. void ResizeLayoutTabs(); @@ -310,7 +250,7 @@ class TabStrip : public BaseTabStrip, void UpdateDropIndex(const views::DropTargetEvent& event); // Sets the location of the drop, repainting as necessary. - void SetDropIndex(int tab_data_index, bool drop_before); + void SetDropIndex(int index, bool drop_before); // Returns the drop effect for dropping a URL on the tab strip. This does // not query the data in anyway, it only looks at the source operations. @@ -328,38 +268,32 @@ class TabStrip : public BaseTabStrip, // stable representations of Tab positions. void GenerateIdealBounds(); - // Both of these are invoked when a part of the new tab animation completes. - // They configure state for the next step in the animation and start it. - void NewTabAnimation1Done(); - void NewTabAnimation2Done(); - - // Animates all the views to their ideal bounds. - // NOTE: this does *not* invoke GenerateIdealBounds, it uses the bounds - // currently set in ideal_bounds. - void AnimateToIdealBounds(); + // Lays out the New Tab button, assuming the right edge of the last Tab on + // the TabStrip at |last_tab_right|. + void LayoutNewTabButton(double last_tab_right, double unselected_width); - // Returns true if a new tab inserted at specified index should start the - // new tab animation. See description above AnimationType for details on - // this animation. - bool ShouldStartIntertTabAnimationAtEnd(int model_index, bool foreground); + // A generic Layout method for various classes of TabStrip animations, + // including Insert, Remove and Resize Layout cases/ + void AnimationLayout(double unselected_width); // Starts various types of TabStrip animations. void StartResizeLayoutAnimation(); - void StartInsertTabAnimationAtEnd(); - void StartInsertTabAnimation(int model_index); - void StartRemoveTabAnimation(int model_index); - void StartMoveTabAnimation(int from_model_index, - int to_model_index); - void StartMiniTabAnimation(); - - // Stops any ongoing animations. If |layout| is true and an animation is - // ongoing this does a layout. - void StopAnimating(bool layout); - - // Resets all state related to animations. This is invoked when an animation - // completes, prior to starting an animation or when we cancel an animation. - // If |stop_new_tab_timer| is true, |new_tab_timer_| is stopped. - void ResetAnimationState(bool stop_new_tab_timer); + void StartInsertTabAnimation(int index); + void StartRemoveTabAnimation(int index, TabContents* contents); + void StartMoveTabAnimation(int from_index, int to_index); + void StartMiniTabAnimation(int index); + void StartMiniMoveTabAnimation(int from_index, + int to_index, + const gfx::Rect& start_bounds); + + // Notifies the TabStrip that the specified TabAnimation has completed. + // Optionally a full Layout will be performed, specified by |layout|. + void FinishAnimation(TabAnimation* animation, bool layout); + + // Finds the index of the TabContents corresponding to |tab| in our + // associated TabStripModel, or -1 if there is none (e.g. the specified |tab| + // is being animated closed). + int GetIndexOfTab(const Tab* tab) const; // Calculates the available width for tabs, assuming a Tab is to be closed. int GetAvailableWidthForTabs(Tab* last_tab) const; @@ -368,9 +302,9 @@ class TabStrip : public BaseTabStrip, // hit-test region of the specified Tab. bool IsPointInTab(Tab* tab, const gfx::Point& point_in_tabstrip_coords); - // Cleans up the Tab from the TabStrip. This is called from the tab animation - // code and is not a general-purpose method. - void RemoveTab(Tab* tab); + // Cleans up the Tab from the TabStrip at the specified |index|. This is + // called from the tab animation code and is not a general-purpose method. + void RemoveTabAt(int index); // Called from the message loop observer when a mouse movement has occurred // anywhere over our containing window. @@ -379,19 +313,6 @@ class TabStrip : public BaseTabStrip, // Returns true if any of the tabs are phantom. bool HasPhantomTabs() const; - // Returns the index of the specified tab in the model coordiate system, or - // -1 if tab is closing or not in |tab_data_|. - int GetModelIndexOfTab(const Tab* tab) const; - - // Returns the index into |tab_data_| corresponding to the index from the - // TabStripModel, or |tab_data_.size()| if there is no tab representing - // |model_index|. - int ModelIndexToTabDataIndex(int model_index) const; - - // Returns the index into |tab_data_| corresponding to the specified tab, or - // -1 if the tab isn't in |tab_data_|. - int TabDataIndexOfTab(Tab* tab) const; - // -- Member Variables ------------------------------------------------------ // Our model. @@ -410,9 +331,7 @@ class TabStrip : public BaseTabStrip, // The "New Tab" button. views::ImageButton* newtab_button_; - - // Ideal bounds of the new tab button. - gfx::Rect newtab_button_bounds_; + gfx::Size newtab_button_size_; // The current widths of various types of tabs. We save these so that, as // users close tabs while we're holding them at the same size, we can lay out @@ -440,6 +359,37 @@ class TabStrip : public BaseTabStrip, static const int kNewTabButtonWidth = 28; static const int kNewTabButtonHeight = 18; + // Used during a drop session of a url. Tracks the position of the drop as + // well as a window used to highlight where the drop occurs. + struct DropInfo { + DropInfo(int index, bool drop_before, bool paint_down); + ~DropInfo(); + + // Index of the tab to drop on. If drop_before is true, the drop should + // occur between the tab at drop_index - 1 and drop_index. + // WARNING: if drop_before is true it is possible this will == tab_count, + // which indicates the drop should create a new tab at the end of the tabs. + int drop_index; + bool drop_before; + + // Direction the arrow should point in. If true, the arrow is displayed + // above the tab and points down. If false, the arrow is displayed beneath + // the tab and points up. + bool point_down; + + // Renders the drop indicator. + // TODO(beng): should be views::Widget. +#if defined(OS_WIN) + views::WidgetWin* arrow_window; +#else + views::WidgetGtk* arrow_window; +#endif + views::ImageView* arrow_view; + + private: + DISALLOW_COPY_AND_ASSIGN(DropInfo); + }; + // Valid for the lifetime of a drag over us. scoped_ptr<DropInfo> drop_info_; @@ -447,19 +397,15 @@ class TabStrip : public BaseTabStrip, // the drag session. scoped_ptr<DraggedTabController> drag_controller_; + // The Tabs we contain, and their last generated "good" bounds. + struct TabData { + Tab* tab; + gfx::Rect ideal_bounds; + }; std::vector<TabData> tab_data_; - // To ensure all tabs pulse at the same time they share the same animation - // container. This is that animation container. - scoped_refptr<AnimationContainer> animation_container_; - - views::BoundsAnimator bounds_animator_; - - // Used for stage 1 of new tab animation. - base::OneShotTimer<TabStrip> new_tab_timer_; - - // Set for special animations. - AnimationType animation_type_; + // The currently running animation. + scoped_ptr<TabAnimation> active_animation_; DISALLOW_COPY_AND_ASSIGN(TabStrip); }; diff --git a/chrome/browser/views/toolbar_star_toggle.cc b/chrome/browser/views/toolbar_star_toggle.cc new file mode 100644 index 0000000..710d6fa --- /dev/null +++ b/chrome/browser/views/toolbar_star_toggle.cc @@ -0,0 +1,133 @@ +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/views/toolbar_star_toggle.h" + +#include "app/l10n_util.h" +#include "app/resource_bundle.h" +#include "chrome/app/chrome_dll_resource.h" +#include "chrome/browser/bookmarks/bookmark_model.h" +#include "chrome/browser/browser.h" +#include "chrome/browser/browser_theme_provider.h" +#include "chrome/browser/bubble_positioner.h" +#include "chrome/browser/profile.h" +#include "chrome/browser/views/browser_dialogs.h" +#include "chrome/browser/view_ids.h" +#include "googleurl/src/gurl.h" +#include "grit/generated_resources.h" +#include "grit/theme_resources.h" + +using base::TimeTicks; + +// The amount of time (in milliseconds) between when the bubble closes and when +// pressing on the button again does something. Yes, this is a hackish. I tried +// many different options, all to no avail: +// . Keying off mouse activation: this didn't work as there is no way to know +// which window receives the activation. Additionally once the mouse +// activation occurs we have no way to tie the next mouse event to the mouse +// activation. +// . Watching all events as we dispatch them in the MessageLoop. Mouse +// activation isn't an observable event though. +// Ideally we could use mouse capture for this, but we can't use mouse capture +// with the bubble because it has other native windows. +static const int64 kDisallowClickMS = 40; + +ToolbarStarToggle::ToolbarStarToggle(views::ButtonListener* listener) + : ToggleImageButton(listener), + profile_(NULL), + host_view_(NULL), + bubble_positioner_(NULL), + ignore_click_(false) { +} + +void ToolbarStarToggle::Init() { + set_tag(IDC_BOOKMARK_PAGE); + SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_STAR)); + SetToggledTooltipText(l10n_util::GetString(IDS_TOOLTIP_STARRED)); + SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_STAR)); + SetID(VIEW_ID_STAR_BUTTON); +} + +void ToolbarStarToggle::LoadImages() { + ThemeProvider* tp = profile_->GetThemeProvider(); + + // Load images. + SkColor color = tp->GetColor(BrowserThemeProvider::COLOR_BUTTON_BACKGROUND); + SkBitmap* background = tp->GetBitmapNamed(IDR_THEME_BUTTON_BACKGROUND); + + SetImage(views::CustomButton::BS_NORMAL, tp->GetBitmapNamed(IDR_STAR)); + SetImage(views::CustomButton::BS_HOT, tp->GetBitmapNamed(IDR_STAR_H)); + SetImage(views::CustomButton::BS_PUSHED, tp->GetBitmapNamed(IDR_STAR_P)); + SetImage(views::CustomButton::BS_DISABLED, tp->GetBitmapNamed(IDR_STAR_D)); + SetToggledImage(views::CustomButton::BS_NORMAL, + tp->GetBitmapNamed(IDR_STARRED)); + SetToggledImage(views::CustomButton::BS_HOT, + tp->GetBitmapNamed(IDR_STARRED_H)); + SetToggledImage(views::CustomButton::BS_PUSHED, + tp->GetBitmapNamed(IDR_STARRED_P)); + SetBackground(color, background, tp->GetBitmapNamed(IDR_STAR_MASK)); +} + +void ToolbarStarToggle::ShowStarBubble(const GURL& url, bool newly_bookmarked) { + gfx::Rect bounds(bubble_positioner_->GetLocationStackBounds()); + gfx::Point star_location; + views::View::ConvertPointToScreen(this, &star_location); + // The visual center of the star is not centered within the bounds. The star + // has a single central pixel; there are 13 pixels on the "inside" side of it + // (toward the location bar) and 16 on the "outside". This means we need to + // shift the bounds one pixel toward the location bar in order to place the + // star's outside edge at the horizontal center. However, even this isn't + // good enough in RTL mode, because the InfoBubble's arrow's central pixel is + // drawn with its left edge on the target rect center-line in both LTR and RTL + // modes. So in RTL mode, we need to shift the bounds one more pixel left, in + // order to place the star's central pixel on the right side of the bounds' + // center-line, so that the arrow's center will line up. + // + // TODO(pkasting): If the InfoBubble used mirroring transformations maybe this + // could become symmetric (-1 : 1). + bounds.set_x(star_location.x() + (UILayoutIsRightToLeft() ? -2 : 1)); + bounds.set_width(width()); + browser::ShowBookmarkBubbleView(host_view_->GetWindow(), bounds, this, + profile_, url, newly_bookmarked); +} + +bool ToolbarStarToggle::OnMousePressed(const views::MouseEvent& e) { + ignore_click_ = ((TimeTicks::Now() - bubble_closed_time_).InMilliseconds() < + kDisallowClickMS); + return ToggleImageButton::OnMousePressed(e); +} + +void ToolbarStarToggle::OnMouseReleased(const views::MouseEvent& e, + bool canceled) { + ToggleImageButton::OnMouseReleased(e, canceled); + ignore_click_ = false; +} + +void ToolbarStarToggle::OnDragDone() { + ToggleImageButton::OnDragDone(); + ignore_click_ = false; +} + +void ToolbarStarToggle::NotifyClick(const views::Event& event) { + if (!ignore_click_ && !browser::IsBookmarkBubbleViewShowing()) + ToggleImageButton::NotifyClick(event); +} + +SkBitmap ToolbarStarToggle::GetImageToPaint() { + if (browser::IsBookmarkBubbleViewShowing()) { + ResourceBundle &rb = ResourceBundle::GetSharedInstance(); + return *rb.GetBitmapNamed(IDR_STARRED_P); + } + return ImageButton::GetImageToPaint(); +} + +void ToolbarStarToggle::InfoBubbleClosing(InfoBubble* info_bubble, + bool closed_by_escape) { + SchedulePaint(); + bubble_closed_time_ = TimeTicks::Now(); +} + +bool ToolbarStarToggle::CloseOnEscape() { + return true; +} diff --git a/chrome/browser/views/toolbar_star_toggle.h b/chrome/browser/views/toolbar_star_toggle.h new file mode 100644 index 0000000..4966655 --- /dev/null +++ b/chrome/browser/views/toolbar_star_toggle.h @@ -0,0 +1,85 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_VIEWS_TOOLBAR_STAR_TOGGLE_H_ +#define CHROME_BROWSER_VIEWS_TOOLBAR_STAR_TOGGLE_H_ + +#include "base/time.h" +#include "chrome/browser/views/info_bubble.h" +#include "views/controls/button/image_button.h" + +class BubblePositioner; +class GURL; +class Profile; + +namespace views { +class ButtonListener; +class View; +} // namespace views + +// ToolbarStarToggle is used for the star button on the toolbar, allowing the +// user to star the current page. ToolbarStarToggle manages showing the +// InfoBubble and rendering the appropriate state while the bubble is visible. + +class ToolbarStarToggle : public views::ToggleImageButton, + public InfoBubbleDelegate { + public: + explicit ToolbarStarToggle(views::ButtonListener* listener); + + void set_profile(Profile* profile) { profile_ = profile; } + void set_host_view(views::View* host_view) { host_view_ = host_view; } + void set_bubble_positioner(BubblePositioner* bubble_positioner) { + bubble_positioner_ = bubble_positioner; + } + + // Sets up all labels for the button. + void Init(); + + // Sets up all images for the button. + void LoadImages(); + + // If the bubble isn't showing, shows it. + void ShowStarBubble(const GURL& url, bool newly_bookmarked); + + // Overridden to update ignore_click_ based on whether the mouse was clicked + // quickly after the bubble was hidden. + virtual bool OnMousePressed(const views::MouseEvent& e); + + // Overridden to set ignore_click_ to false. + virtual void OnMouseReleased(const views::MouseEvent& e, bool canceled); + virtual void OnDragDone(); + + protected: + // Only invokes super if ignore_click_ is true and the bubble isn't showing. + virtual void NotifyClick(const views::Event& event); + + // Overridden to so that we appear pressed while the bubble is showing. + virtual SkBitmap GetImageToPaint(); + + private: + // InfoBubbleDelegate. + virtual void InfoBubbleClosing(InfoBubble* info_bubble, + bool closed_by_escape); + virtual bool CloseOnEscape(); + + // Profile with bookmarks info. + Profile* profile_; + + // View that hosts us. + views::View* host_view_; + + // Positioner for bookmark bubble. + BubblePositioner* bubble_positioner_; + + // Time the bubble last closed. + base::TimeTicks bubble_closed_time_; + + // If true NotifyClick does nothing. This is set in OnMousePressed based on + // the amount of time between when the bubble clicked and now. + bool ignore_click_; + + DISALLOW_COPY_AND_ASSIGN(ToolbarStarToggle); +}; + +#endif // CHROME_BROWSER_VIEWS_TOOLBAR_STAR_TOGGLE_H_ diff --git a/chrome/browser/views/toolbar_view.cc b/chrome/browser/views/toolbar_view.cc index e69ff0f..52854e67 100644 --- a/chrome/browser/views/toolbar_view.cc +++ b/chrome/browser/views/toolbar_view.cc @@ -4,20 +4,42 @@ #include "chrome/browser/views/toolbar_view.h" +#include <algorithm> +#include <string> + +#include "app/drag_drop_types.h" #include "app/l10n_util.h" +#include "app/os_exchange_data.h" #include "app/resource_bundle.h" #include "base/command_line.h" +#include "base/keyboard_codes.h" +#include "base/logging.h" +#include "base/path_service.h" #include "chrome/app/chrome_dll_resource.h" +#include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/browser.h" +#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_theme_provider.h" #include "chrome/browser/browser_window.h" +#include "chrome/browser/character_encoding.h" +#include "chrome/browser/defaults.h" +#include "chrome/browser/encoding_menu_controller.h" +#include "chrome/browser/metrics/user_metrics.h" #include "chrome/browser/pref_service.h" #include "chrome/browser/profile.h" -#include "chrome/browser/view_ids.h" +#include "chrome/browser/sync/profile_sync_service.h" +#include "chrome/browser/sync/sync_ui_util.h" +#include "chrome/browser/tab_contents/navigation_controller.h" +#include "chrome/browser/tab_contents/navigation_entry.h" #include "chrome/browser/views/bookmark_menu_button.h" #include "chrome/browser/views/browser_actions_container.h" #include "chrome/browser/views/event_utils.h" #include "chrome/browser/views/frame/browser_view.h" +#include "chrome/browser/views/go_button.h" +#include "chrome/browser/views/location_bar_view.h" +#include "chrome/browser/views/toolbar_star_toggle.h" +#include "chrome/browser/view_ids.h" +#include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/notification_service.h" #include "chrome/common/pref_names.h" @@ -25,7 +47,12 @@ #include "grit/chromium_strings.h" #include "grit/generated_resources.h" #include "grit/theme_resources.h" +#include "net/base/net_util.h" +#include "views/background.h" #include "views/controls/button/button_dropdown.h" +#include "views/controls/label.h" +#include "views/controls/menu/menu_2.h" +#include "views/drag_utils.h" #include "views/focus/view_storage.h" #include "views/widget/tooltip_manager.h" #include "views/window/non_client_view.h" @@ -55,8 +82,9 @@ ToolbarView::ToolbarView(Browser* browser) : model_(browser->toolbar_model()), back_(NULL), forward_(NULL), - home_(NULL), reload_(NULL), + home_(NULL), + star_(NULL), location_bar_(NULL), go_(NULL), browser_actions_(NULL), @@ -72,8 +100,9 @@ ToolbarView::ToolbarView(Browser* browser) SetID(VIEW_ID_TOOLBAR); browser_->command_updater()->AddCommandObserver(IDC_BACK, this); browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this); - browser_->command_updater()->AddCommandObserver(IDC_HOME, this); browser_->command_updater()->AddCommandObserver(IDC_RELOAD, this); + browser_->command_updater()->AddCommandObserver(IDC_HOME, this); + browser_->command_updater()->AddCommandObserver(IDC_BOOKMARK_PAGE, this); if (browser->type() == Browser::TYPE_NORMAL) display_mode_ = DISPLAYMODE_NORMAL; else @@ -267,11 +296,14 @@ void ToolbarView::EnabledStateChangedForCommand(int id, bool enabled) { case IDC_FORWARD: button = forward_; break; + case IDC_RELOAD: + button = reload_; + break; case IDC_HOME: button = home_; break; - case IDC_RELOAD: - button = reload_; + case IDC_BOOKMARK_PAGE: + button = star_; break; } if (button) @@ -281,8 +313,8 @@ void ToolbarView::EnabledStateChangedForCommand(int id, bool enabled) { //////////////////////////////////////////////////////////////////////////////// // ToolbarView, views::Button::ButtonListener implementation: -void ToolbarView::ButtonPressed(views::Button* sender, - const views::Event& event) { +void ToolbarView::ButtonPressed( + views::Button* sender, const views::Event& event) { int id = sender->tag(); switch (id) { case IDC_BACK: @@ -305,6 +337,30 @@ void ToolbarView::ButtonPressed(views::Button* sender, } //////////////////////////////////////////////////////////////////////////////// +// ToolbarView, BubblePositioner implementation: + +gfx::Rect ToolbarView::GetLocationStackBounds() const { + // The number of pixels from the left or right edges of the location stack to + // "just inside the visible borders". When the omnibox bubble contents are + // aligned with this, the visible borders tacked on to the outsides will line + // up with the visible borders on the location stack. + const int kLocationStackEdgeWidth = 2; + + gfx::Point origin; + views::View::ConvertPointToScreen(star_, &origin); + gfx::Rect stack_bounds(origin.x(), origin.y(), + star_->width() + location_bar_->width() + go_->width(), + location_bar_->height()); + if (UILayoutIsRightToLeft()) { + stack_bounds.set_x( + stack_bounds.x() - location_bar_->width() - go_->width()); + } + // Inset the bounds to just inside the visible edges (see comment above). + stack_bounds.Inset(kLocationStackEdgeWidth, 0); + return stack_bounds; +} + +//////////////////////////////////////////////////////////////////////////////// // ToolbarView, NotificationObserver implementation: void ToolbarView::Observe(NotificationType type, @@ -400,12 +456,11 @@ gfx::Size ToolbarView::GetPreferredSize() { if (IsDisplayModeNormal()) { int min_width = kControlIndent + back_->GetPreferredSize().width() + forward_->GetPreferredSize().width() + kControlHorizOffset + - (show_home_button_.GetValue() ? - (home_->GetPreferredSize().width() + kControlHorizOffset) : 0) + - reload_->GetPreferredSize().width() + - browser_actions_->GetPreferredSize().width() + - go_->GetPreferredSize().width() + + reload_->GetPreferredSize().width() + (show_home_button_.GetValue() ? + (home_->GetPreferredSize().width() + kControlHorizOffset) : 0) + + star_->GetPreferredSize().width() + go_->GetPreferredSize().width() + kMenuButtonOffset + + browser_actions_->GetPreferredSize().width() + (bookmark_menu_ ? bookmark_menu_->GetPreferredSize().width() : 0) + page_menu_->GetPreferredSize().width() + app_menu_->GetPreferredSize().width() + kPaddingRight; @@ -460,18 +515,21 @@ void ToolbarView::Layout() { forward_->SetBounds(back_->x() + back_->width(), child_y, forward_->GetPreferredSize().width(), child_height); + reload_->SetBounds(forward_->x() + forward_->width() + kControlHorizOffset, + child_y, reload_->GetPreferredSize().width(), + child_height); + if (show_home_button_.GetValue()) { home_->SetVisible(true); - home_->SetBounds(forward_->x() + forward_->width() + kControlHorizOffset, + home_->SetBounds(reload_->x() + reload_->width() + kControlHorizOffset, child_y, home_->GetPreferredSize().width(), child_height); } else { home_->SetVisible(false); - home_->SetBounds(forward_->x() + forward_->width(), child_y, 0, - child_height); + home_->SetBounds(reload_->x() + reload_->width(), child_y, 0, child_height); } - reload_->SetBounds(home_->x() + home_->width() + kControlHorizOffset, child_y, - reload_->GetPreferredSize().width(), child_height); + star_->SetBounds(home_->x() + home_->width() + kControlHorizOffset, + child_y, star_->GetPreferredSize().width(), child_height); int go_button_width = go_->GetPreferredSize().width(); int browser_actions_width = browser_actions_->GetPreferredSize().width(); @@ -479,7 +537,7 @@ void ToolbarView::Layout() { int app_menu_width = app_menu_->GetPreferredSize().width(); int bookmark_menu_width = bookmark_menu_ ? bookmark_menu_->GetPreferredSize().width() : 0; - int location_x = reload_->x() + reload_->width(); + int location_x = star_->x() + star_->width(); int available_width = width() - kPaddingRight - bookmark_menu_width - app_menu_width - page_menu_width - browser_actions_width - kMenuButtonOffset - go_button_width - location_x; @@ -546,6 +604,51 @@ void ToolbarView::ThemeChanged() { } //////////////////////////////////////////////////////////////////////////////// +// ToolbarView, views::DragController implementation: + +void ToolbarView::WriteDragData(views::View* sender, + const gfx::Point& press_pt, + OSExchangeData* data) { + DCHECK(GetDragOperations(sender, press_pt) != DragDropTypes::DRAG_NONE); + + UserMetrics::RecordAction(UserMetricsAction("Toolbar_DragStar"), profile_); + + // If there is a bookmark for the URL, add the bookmark drag data for it. We + // do this to ensure the bookmark is moved, rather than creating an new + // bookmark. + TabContents* tab = browser_->GetSelectedTabContents(); + if (tab) { + if (profile_ && profile_->GetBookmarkModel()) { + const BookmarkNode* node = profile_->GetBookmarkModel()-> + GetMostRecentlyAddedNodeForURL(tab->GetURL()); + if (node) { + BookmarkDragData bookmark_data(node); + bookmark_data.Write(profile_, data); + } + } + + drag_utils::SetURLAndDragImage(tab->GetURL(), + UTF16ToWideHack(tab->GetTitle()), + tab->GetFavIcon(), + data); + } +} + +int ToolbarView::GetDragOperations(views::View* sender, const gfx::Point& p) { + DCHECK(sender == star_); + TabContents* tab = browser_->GetSelectedTabContents(); + if (!tab || !tab->ShouldDisplayURL() || !tab->GetURL().is_valid()) { + return DragDropTypes::DRAG_NONE; + } + if (profile_ && profile_->GetBookmarkModel() && + profile_->GetBookmarkModel()->IsBookmarked(tab->GetURL())) { + return DragDropTypes::DRAG_MOVE | DragDropTypes::DRAG_COPY | + DragDropTypes::DRAG_LINK; + } + return DragDropTypes::DRAG_COPY | DragDropTypes::DRAG_LINK; +} + +//////////////////////////////////////////////////////////////////////////////// // ToolbarView, private: int ToolbarView::PopupTopSpacing() const { @@ -572,6 +675,12 @@ void ToolbarView::CreateLeftSideControls() { forward_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_FORWARD)); forward_->SetID(VIEW_ID_FORWARD_BUTTON); + reload_ = new views::ImageButton(this); + reload_->set_tag(IDC_RELOAD); + reload_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_RELOAD)); + reload_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_RELOAD)); + reload_->SetID(VIEW_ID_RELOAD_BUTTON); + home_ = new views::ImageButton(this); home_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN | views::Event::EF_MIDDLE_BUTTON_DOWN); @@ -584,19 +693,22 @@ void ToolbarView::CreateLeftSideControls() { AddChildView(back_); AddChildView(forward_); + AddChildView(reload_); AddChildView(home_); } void ToolbarView::CreateCenterStack(Profile *profile) { - reload_ = new views::ImageButton(this); - reload_->set_tag(IDC_RELOAD); - reload_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_RELOAD)); - reload_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_RELOAD)); - reload_->SetID(VIEW_ID_RELOAD_BUTTON); + star_ = new ToolbarStarToggle(this); + star_->SetDragController(this); + star_->set_profile(profile); + star_->set_host_view(this); + star_->set_bubble_positioner(this); + star_->Init(); location_bar_ = new LocationBarView(profile, browser_->command_updater(), model_, this, - display_mode_ == DISPLAYMODE_LOCATION); + display_mode_ == DISPLAYMODE_LOCATION, + this); // The Go button. go_ = new GoButton(location_bar_, browser_); @@ -605,7 +717,7 @@ void ToolbarView::CreateCenterStack(Profile *profile) { LoadCenterStackImages(); - AddChildView(reload_); + AddChildView(star_); location_bar_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_LOCATION)); AddChildView(location_bar_); location_bar_->Init(); @@ -667,6 +779,15 @@ void ToolbarView::LoadLeftSideControlsImages() { forward_->SetBackground(color, background, tp->GetBitmapNamed(IDR_FORWARD_MASK)); + reload_->SetImage(views::CustomButton::BS_NORMAL, + tp->GetBitmapNamed(IDR_RELOAD)); + reload_->SetImage(views::CustomButton::BS_HOT, + tp->GetBitmapNamed(IDR_RELOAD_H)); + reload_->SetImage(views::CustomButton::BS_PUSHED, + tp->GetBitmapNamed(IDR_RELOAD_P)); + reload_->SetBackground(color, background, + tp->GetBitmapNamed(IDR_BUTTON_MASK)); + home_->SetImage(views::CustomButton::BS_NORMAL, tp->GetBitmapNamed(IDR_HOME)); home_->SetImage(views::CustomButton::BS_HOT, tp->GetBitmapNamed(IDR_HOME_H)); home_->SetImage(views::CustomButton::BS_PUSHED, @@ -676,20 +797,13 @@ void ToolbarView::LoadLeftSideControlsImages() { } void ToolbarView::LoadCenterStackImages() { + star_->LoadImages(); + ThemeProvider* tp = GetThemeProvider(); SkColor color = tp->GetColor(BrowserThemeProvider::COLOR_BUTTON_BACKGROUND); SkBitmap* background = tp->GetBitmapNamed(IDR_THEME_BUTTON_BACKGROUND); - reload_->SetImage(views::CustomButton::BS_NORMAL, - tp->GetBitmapNamed(IDR_RELOAD)); - reload_->SetImage(views::CustomButton::BS_HOT, - tp->GetBitmapNamed(IDR_RELOAD_H)); - reload_->SetImage(views::CustomButton::BS_PUSHED, - tp->GetBitmapNamed(IDR_RELOAD_P)); - reload_->SetBackground(color, background, - tp->GetBitmapNamed(IDR_RELOAD_MASK)); - go_->SetImage(views::CustomButton::BS_NORMAL, tp->GetBitmapNamed(IDR_GO)); go_->SetImage(views::CustomButton::BS_HOT, tp->GetBitmapNamed(IDR_GO_H)); go_->SetImage(views::CustomButton::BS_PUSHED, tp->GetBitmapNamed(IDR_GO_P)); diff --git a/chrome/browser/views/toolbar_view.h b/chrome/browser/views/toolbar_view.h index 6e45799..62faebf 100644 --- a/chrome/browser/views/toolbar_view.h +++ b/chrome/browser/views/toolbar_view.h @@ -11,6 +11,7 @@ #include "base/scoped_ptr.h" #include "chrome/browser/app_menu_model.h" #include "chrome/browser/back_forward_menu_model.h" +#include "chrome/browser/bubble_positioner.h" #include "chrome/browser/command_updater.h" #include "chrome/browser/page_menu_model.h" #include "chrome/browser/pref_member.h" @@ -26,6 +27,7 @@ class BrowserActionsContainer; class Browser; class Profile; +class ToolbarStarToggle; namespace views { class Menu2; @@ -34,12 +36,14 @@ class Menu2; // The Browser Window's toolbar. class ToolbarView : public AccessibleToolbarView, public views::ViewMenuDelegate, + public views::DragController, public views::FocusChangeListener, public menus::SimpleMenuModel::Delegate, public LocationBarView::Delegate, public NotificationObserver, public CommandUpdater::CommandObserver, - public views::ButtonListener { + public views::ButtonListener, + public BubblePositioner { public: explicit ToolbarView(Browser* browser); virtual ~ToolbarView(); @@ -82,6 +86,7 @@ class ToolbarView : public AccessibleToolbarView, // Accessors... Browser* browser() const { return browser_; } BrowserActionsContainer* browser_actions() const { return browser_actions_; } + ToolbarStarToggle* star_button() const { return star_; } GoButton* go_button() const { return go_; } LocationBarView* location_bar() const { return location_bar_; } views::MenuButton* page_menu() const { return page_menu_; } @@ -110,6 +115,9 @@ class ToolbarView : public AccessibleToolbarView, // Overridden from views::BaseButton::ButtonListener: virtual void ButtonPressed(views::Button* sender, const views::Event& event); + // BubblePositioner: + virtual gfx::Rect GetLocationStackBounds() const; + // Overridden from NotificationObserver: virtual void Observe(NotificationType type, const NotificationSource& source, @@ -130,6 +138,17 @@ class ToolbarView : public AccessibleToolbarView, virtual void ThemeChanged(); private: + // Overridden from views::DragController: + virtual void WriteDragData(View* sender, + const gfx::Point& press_pt, + OSExchangeData* data); + virtual int GetDragOperations(View* sender, const gfx::Point& p); + virtual bool CanStartDrag(View* sender, + const gfx::Point& press_pt, + const gfx::Point& p) { + return true; + } + // Returns the number of pixels above the location bar in non-normal display. int PopupTopSpacing() const; @@ -179,8 +198,9 @@ class ToolbarView : public AccessibleToolbarView, // Controls views::ImageButton* back_; views::ImageButton* forward_; - views::ImageButton* home_; views::ImageButton* reload_; + views::ImageButton* home_; + ToolbarStarToggle* star_; LocationBarView* location_bar_; GoButton* go_; BrowserActionsContainer* browser_actions_; diff --git a/chrome/browser/views/url_picker.cc b/chrome/browser/views/url_picker.cc index 3d275d4..5f82832 100644 --- a/chrome/browser/views/url_picker.cc +++ b/chrome/browser/views/url_picker.cc @@ -221,10 +221,10 @@ void UrlPicker::OnSelectionChanged() { if (selection >= 0 && selection < url_table_model_->RowCount()) { std::wstring languages = profile_->GetPrefs()->GetString(prefs::kAcceptLanguages); - // Because the url_field_ is user-editable, we don't strip anything. + // Because the url_field_ is user-editable, we set the URL with + // username:password and escaped path and query. std::wstring formatted = net::FormatUrl(url_table_model_->GetURL(selection), - languages, net::kFormatUrlOmitNothing, UnescapeRule::NONE, NULL, NULL, - NULL); + languages, false, UnescapeRule::NONE, NULL, NULL, NULL); url_field_->SetText(formatted); GetDialogClientView()->UpdateDialogButtons(); } diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index dfad823..43d9aac 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -82,8 +82,6 @@ 'browser/autocomplete/autocomplete.h', 'browser/autocomplete/autocomplete_accessibility.cc', 'browser/autocomplete/autocomplete_accessibility.h', - 'browser/autocomplete/autocomplete_classifier.cc', - 'browser/autocomplete/autocomplete_classifier.h', 'browser/autocomplete/autocomplete_edit.cc', 'browser/autocomplete/autocomplete_edit.h', 'browser/autocomplete/autocomplete_edit_view.h', @@ -296,6 +294,7 @@ 'browser/browsing_data_remover.h', 'browser/browsing_instance.cc', 'browser/browsing_instance.h', + 'browser/bubble_positioner.h', 'browser/bug_report_util.cc', 'browser/bug_report_util.h', 'browser/cancelable_request.cc', @@ -1386,6 +1385,8 @@ 'browser/gtk/task_manager_gtk.h', 'browser/gtk/theme_install_bubble_view_gtk.cc', 'browser/gtk/theme_install_bubble_view_gtk.h', + 'browser/gtk/toolbar_star_toggle_gtk.cc', + 'browser/gtk/toolbar_star_toggle_gtk.h', 'browser/gtk/translate_infobars.cc', 'browser/gtk/translate_infobars.h', 'browser/gtk/view_id_util.cc', @@ -1909,6 +1910,8 @@ 'browser/safe_browsing/safe_browsing_util.h', 'browser/scoped_pref_update.cc', 'browser/scoped_pref_update.h', + 'browser/search_versus_navigate_classifier.cc', + 'browser/search_versus_navigate_classifier.h', 'browser/search_engines/edit_search_engine_controller.cc', 'browser/search_engines/edit_search_engine_controller.h', 'browser/search_engines/keyword_editor_controller.cc', @@ -2379,8 +2382,6 @@ 'browser/views/options/plugin_filter_page_view.cc', 'browser/views/options/plugin_filter_page_view.h', 'browser/views/page_info_window_view.cc', - 'browser/views/pinned_contents_info_bubble.cc', - 'browser/views/pinned_contents_info_bubble.h', 'browser/views/repost_form_warning_view.cc', 'browser/views/repost_form_warning_view.h', 'browser/views/restart_message_box.cc', @@ -2448,6 +2449,8 @@ 'browser/views/theme_helpers.h', 'browser/views/theme_install_bubble_view.cc', 'browser/views/theme_install_bubble_view.h', + 'browser/views/toolbar_star_toggle.cc', + 'browser/views/toolbar_star_toggle.h', 'browser/views/toolbar_view.cc', 'browser/views/toolbar_view.h', 'browser/views/uninstall_view.cc', @@ -2902,6 +2905,8 @@ ['include', '^browser/views/html_dialog_view.h'], ['include', '^browser/views/theme_install_bubble_view.cc'], ['include', '^browser/views/theme_install_bubble_view.h'], + ['include', '^browser/views/toolbar_star_toggle.h'], + ['include', '^browser/views/toolbar_star_toggle.cc'], ['include', '^browser/views/frame/browser_bubble_host.cc'], ['include', '^browser/views/frame/browser_bubble_host.h'], ['include', '^browser/views/frame/browser_view_layout.cc'], @@ -2942,8 +2947,6 @@ #['include', '^browser/views/panels/panel_scroller_container.h'], #['include', '^browser/views/panels/panel_scroller_header.cc'], #['include', '^browser/views/panels/panel_scroller_header.h'], - ['include', '^browser/views/pinned_contents_info_bubble.cc'], - ['include', '^browser/views/pinned_contents_info_bubble.h'], ['include', '^browser/views/restart_message_box.cc'], ['include', '^browser/views/restart_message_box.h'], ['include', '^browser/views/sad_tab_view.cc'], diff --git a/chrome/chrome_dll.gypi b/chrome/chrome_dll.gypi index b1771ec..889c685 100644 --- a/chrome/chrome_dll.gypi +++ b/chrome/chrome_dll.gypi @@ -253,15 +253,6 @@ 'app/theme/newtab.pdf', 'app/theme/newtab_h.pdf', 'app/theme/newtab_p.pdf', - 'app/theme/omnibox_history.pdf', - 'app/theme/omnibox_http.pdf', - 'app/theme/omnibox_https_invalid.pdf', - 'app/theme/omnibox_https_valid.pdf', - 'app/theme/omnibox_https_warning.pdf', - 'app/theme/omnibox_more.pdf', - 'app/theme/omnibox_search.pdf', - 'app/theme/omnibox_star.pdf', - 'app/theme/omnibox_star_lit.pdf', 'app/theme/otr_icon.pdf', 'app/theme/reload_Template.pdf', 'app/theme/stop_Template.pdf', diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index aa90b8c..5f34f37 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -20,7 +20,6 @@ ], # TODO(jcampan): move these vars to views.gyp. 'views_unit_tests_sources': [ - '../views/animation/bounds_animator_unittest.cc', '../views/view_unittest.cc', '../views/focus/focus_manager_unittest.cc', '../views/controls/label_unittest.cc', diff --git a/chrome/test/data/profiles/complex_theme/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/Cached Theme.pak b/chrome/test/data/profiles/complex_theme/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/Cached Theme.pak Binary files differindex c3124f7..7ca26da 100644 --- a/chrome/test/data/profiles/complex_theme/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/Cached Theme.pak +++ b/chrome/test/data/profiles/complex_theme/Default/Extensions/mblmlcbknbnfebdfjnolmcapmdofhmme/1.1/Cached Theme.pak diff --git a/chrome/test/test_location_bar.h b/chrome/test/test_location_bar.h index 4c19d8d..7d4a114 100644 --- a/chrome/test/test_location_bar.h +++ b/chrome/test/test_location_bar.h @@ -43,9 +43,6 @@ class TestLocationBar : public LocationBar { virtual void InvalidatePageActions() {} virtual void SaveStateToContents(TabContents* contents) {} virtual void Revert() {} - virtual const AutocompleteEditView* location_entry() const { - return NULL; - } virtual AutocompleteEditView* location_entry() { return NULL; } diff --git a/chrome/test/testing_profile.cc b/chrome/test/testing_profile.cc index c6f2a87..d4fcc36 100644 --- a/chrome/test/testing_profile.cc +++ b/chrome/test/testing_profile.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -239,10 +239,6 @@ void TestingProfile::CreateBookmarkModel(bool delete_file) { bookmark_bar_model_->Load(); } -void TestingProfile::CreateAutocompleteClassifier() { - autocomplete_classifier_.reset(new AutocompleteClassifier(this)); -} - void TestingProfile::CreateWebDataService(bool delete_file) { if (web_data_service_.get()) web_data_service_->Shutdown(); diff --git a/chrome/test/testing_profile.h b/chrome/test/testing_profile.h index b4e97d5..f3c37f0 100644 --- a/chrome/test/testing_profile.h +++ b/chrome/test/testing_profile.h @@ -8,7 +8,6 @@ #include "base/base_paths.h" #include "base/file_util.h" #include "base/path_service.h" -#include "chrome/browser/autocomplete/autocomplete_classifier.h" #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/browser_prefs.h" #include "chrome/browser/browser_theme_provider.h" @@ -59,16 +58,14 @@ class TestingProfile : public Profile { // BlockUntilBookmarkModelLoaded. void CreateBookmarkModel(bool delete_file); - // Creates an AutocompleteClassifier. If not invoked the - // AutocompleteClassifier is NULL. - void CreateAutocompleteClassifier(); - // Creates the webdata service. If |delete_file| is true, the webdata file is // deleted first, then the WebDataService is created. As TestingProfile // deletes the directory containing the files used by WebDataService, this // only matters if you're recreating the WebDataService. void CreateWebDataService(bool delete_file); + // Destroys + // Blocks until the BookmarkModel finishes loaded. This is NOT invoked from // CreateBookmarkModel. void BlockUntilBookmarkModelLoaded(); @@ -130,8 +127,8 @@ class TestingProfile : public Profile { return NULL; return GetRequestContext()->GetCookieStore()->GetCookieMonster(); } - virtual AutocompleteClassifier* GetAutocompleteClassifier() { - return autocomplete_classifier_.get(); + virtual SearchVersusNavigateClassifier* GetSearchVersusNavigateClassifier() { + return NULL; } virtual WebDataService* GetWebDataService(ServiceAccessType access) { return web_data_service_.get(); @@ -288,10 +285,6 @@ class TestingProfile : public Profile { // The ProfileSyncService. Created by CreateProfileSyncService. scoped_ptr<ProfileSyncService> profile_sync_service_; - // The AutocompleteClassifier. Only created if CreateAutocompleteClassifier - // is invoked. - scoped_ptr<AutocompleteClassifier> autocomplete_classifier_; - // The WebDataService. Only created if CreateWebDataService is invoked. scoped_refptr<WebDataService> web_data_service_; diff --git a/gfx/gtk_util.cc b/gfx/gtk_util.cc index bbed191..1f5b370 100644 --- a/gfx/gtk_util.cc +++ b/gfx/gtk_util.cc @@ -25,7 +25,6 @@ void FreePixels(guchar* pixels, gpointer data) { namespace gfx { const GdkColor kGdkWhite = GDK_COLOR_RGB(0xff, 0xff, 0xff); -const GdkColor kGdkGray = GDK_COLOR_RGB(0x7f, 0x7f, 0x7f); const GdkColor kGdkBlack = GDK_COLOR_RGB(0x00, 0x00, 0x00); const GdkColor kGdkGreen = GDK_COLOR_RGB(0x00, 0xff, 0x00); diff --git a/gfx/gtk_util.h b/gfx/gtk_util.h index 5af37df..cc1fa8a 100644 --- a/gfx/gtk_util.h +++ b/gfx/gtk_util.h @@ -31,7 +31,6 @@ namespace gfx { class Rect; extern const GdkColor kGdkWhite; -extern const GdkColor kGdkGray; extern const GdkColor kGdkBlack; extern const GdkColor kGdkGreen; diff --git a/net/base/net_util.cc b/net/base/net_util.cc index b251ee1..a66d27a 100644 --- a/net/base/net_util.cc +++ b/net/base/net_util.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -707,30 +707,10 @@ bool IDNToUnicodeOneComponent(const char16* comp, return false; } -// If |component| is valid, its begin is incremented by |delta|. -void AdjustComponent(int delta, url_parse::Component* component) { - if (!component->is_valid()) - return; - - DCHECK(delta >= 0 || component->begin >= -delta); - component->begin += delta; -} - -// Adjusts all the components of |parsed| by |delta|, except for the scheme. -void AdjustComponents(int delta, url_parse::Parsed* parsed) { - AdjustComponent(delta, &(parsed->username)); - AdjustComponent(delta, &(parsed->password)); - AdjustComponent(delta, &(parsed->host)); - AdjustComponent(delta, &(parsed->port)); - AdjustComponent(delta, &(parsed->path)); - AdjustComponent(delta, &(parsed->query)); - AdjustComponent(delta, &(parsed->ref)); -} - // Helper for FormatUrl(). std::wstring FormatViewSourceUrl(const GURL& url, const std::wstring& languages, - net::FormatUrlTypes format_types, + bool omit_username_password, UnescapeRule::Type unescape_rules, url_parse::Parsed* new_parsed, size_t* prefix_end, @@ -745,7 +725,8 @@ std::wstring FormatViewSourceUrl(const GURL& url, size_t* temp_offset_ptr = (*offset_for_adjustment < kViewSourceLengthPlus1) ? NULL : &temp_offset; std::wstring result = net::FormatUrl(real_url, languages, - format_types, unescape_rules, new_parsed, prefix_end, temp_offset_ptr); + omit_username_password, unescape_rules, new_parsed, prefix_end, + temp_offset_ptr); result.insert(0, kWideViewSource); // Adjust position values. @@ -756,7 +737,20 @@ std::wstring FormatViewSourceUrl(const GURL& url, new_parsed->scheme.begin = 0; new_parsed->scheme.len = kViewSourceLengthPlus1 - 1; } - AdjustComponents(kViewSourceLengthPlus1, new_parsed); + if (new_parsed->username.is_nonempty()) + new_parsed->username.begin += kViewSourceLengthPlus1; + if (new_parsed->password.is_nonempty()) + new_parsed->password.begin += kViewSourceLengthPlus1; + if (new_parsed->host.is_nonempty()) + new_parsed->host.begin += kViewSourceLengthPlus1; + if (new_parsed->port.is_nonempty()) + new_parsed->port.begin += kViewSourceLengthPlus1; + if (new_parsed->path.is_nonempty()) + new_parsed->path.begin += kViewSourceLengthPlus1; + if (new_parsed->query.is_nonempty()) + new_parsed->query.begin += kViewSourceLengthPlus1; + if (new_parsed->ref.is_nonempty()) + new_parsed->ref.begin += kViewSourceLengthPlus1; if (prefix_end) *prefix_end += kViewSourceLengthPlus1; if (temp_offset_ptr) { @@ -770,12 +764,6 @@ std::wstring FormatViewSourceUrl(const GURL& url, namespace net { -const FormatUrlType kFormatUrlOmitNothing = 0; -const FormatUrlType kFormatUrlOmitUsernamePassword = 1 << 0; -const FormatUrlType kFormatUrlOmitHTTP = 1 << 1; -const FormatUrlType kFormatUrlOmitAll = kFormatUrlOmitUsernamePassword | - kFormatUrlOmitHTTP; - std::set<int> explicitly_allowed_ports; // Appends the substring |in_component| inside of the URL |spec| to |output|, @@ -1384,7 +1372,7 @@ void AppendFormattedComponent(const std::string& spec, std::wstring FormatUrl(const GURL& url, const std::wstring& languages, - FormatUrlTypes format_types, + bool omit_username_password, UnescapeRule::Type unescape_rules, url_parse::Parsed* new_parsed, size_t* prefix_end, @@ -1392,8 +1380,6 @@ std::wstring FormatUrl(const GURL& url, url_parse::Parsed parsed_temp; if (!new_parsed) new_parsed = &parsed_temp; - else - *new_parsed = url_parse::Parsed(); size_t offset_temp = std::wstring::npos; if (!offset_for_adjustment) offset_for_adjustment = &offset_temp; @@ -1415,7 +1401,7 @@ std::wstring FormatUrl(const GURL& url, // Rejects view-source:view-source:... to avoid deep recursive call. if (url.SchemeIs(kViewSource) && !StartsWithASCII(url.possibly_invalid_spec(), kViewSourceTwice, false)) { - return FormatViewSourceUrl(url, languages, format_types, + return FormatViewSourceUrl(url, languages, omit_username_password, unescape_rules, new_parsed, prefix_end, offset_for_adjustment); } @@ -1432,26 +1418,9 @@ std::wstring FormatUrl(const GURL& url, spec.begin() + parsed.CountCharactersBefore(url_parse::Parsed::USERNAME, true), std::back_inserter(url_string)); - - const wchar_t* const kHTTP = L"http://"; - const char* const kFTP = "ftp."; - const size_t kHTTPSize = std::wstring(kHTTP).size(); - // The omnibox treats ftp.foo.com as ftp://foo.com. This means that if we - // trimmed http off a string that starts with http://ftp and the user tried to - // reload the page the user would end up with a scheme of ftp://. For example, - // 'http://ftp.foo.com' -> 'ftp.foo.com' -> 'ftp://foo.com'. For this reason - // don't strip http off url's whose scheme is http and the host starts with - // 'ftp.'. - bool omit_http = - ((format_types & kFormatUrlOmitHTTP) != 0 && - url_string == kHTTP && (!parsed.host.is_valid() || - (parsed.host.is_nonempty() && - spec.compare(parsed.host.begin, - std::string(kFTP).size(), kFTP)))); - new_parsed->scheme = parsed.scheme; - if ((format_types & kFormatUrlOmitUsernamePassword) != 0) { + if (omit_username_password) { // Remove the username and password fields. We don't want to display those // to the user since they can be used for attacks, // e.g. "http://google.com:search@evil.ru/" @@ -1551,26 +1520,6 @@ std::wstring FormatUrl(const GURL& url, } } - // If we need to strip out http do it after the fact. This way we don't need - // to worry about how offset_for_adjustment is interpreted. - if (omit_http && !url_string.compare(0, kHTTPSize, kHTTP)) { - url_string = url_string.substr(kHTTPSize); - if (*offset_for_adjustment != std::wstring::npos) { - if (*offset_for_adjustment < kHTTPSize) - *offset_for_adjustment = std::wstring::npos; - else - *offset_for_adjustment -= kHTTPSize; - } - if (prefix_end) - *prefix_end -= kHTTPSize; - - // Adjust new_parsed. - DCHECK(new_parsed->scheme.is_valid()); - int delta = -(new_parsed->scheme.len + 3); // +3 for ://. - new_parsed->scheme.reset(); - AdjustComponents(delta, new_parsed); - } - return url_string; } diff --git a/net/base/net_util.h b/net/base/net_util.h index 53314bf..f614eb6 100644 --- a/net/base/net_util.h +++ b/net/base/net_util.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -36,22 +36,6 @@ struct Parsed; namespace net { -// Used by FormatUrl to specify handling of certain parts of the url. -typedef uint32 FormatUrlType; -typedef uint32 FormatUrlTypes; - -// Nothing is ommitted. -extern const FormatUrlType kFormatUrlOmitNothing; - -// If set, any username and password are removed. -extern const FormatUrlType kFormatUrlOmitUsernamePassword; - -// If the scheme is 'http://', it's removed. -extern const FormatUrlType kFormatUrlOmitHTTP; - -// Convenience for omitting all unecessary types. -extern const FormatUrlType kFormatUrlOmitAll; - // Holds a list of ports that should be accepted despite bans. extern std::set<int> explicitly_allowed_ports; @@ -261,12 +245,13 @@ void AppendFormattedHost(const GURL& url, size_t* offset_for_adjustment); // Creates a string representation of |url|. The IDN host name may be in Unicode -// if |languages| accepts the Unicode representation. |format_type| is a bitmask -// of FormatUrlTypes, see it for details. |unescape_rules| defines how to clean -// the URL for human readability. You will generally want |UnescapeRule::SPACES| -// for display to the user if you can handle spaces, or |UnescapeRule::NORMAL| -// if not. If the path part and the query part seem to be encoded in %-encoded -// UTF-8, decodes %-encoding and UTF-8. +// if |languages| accepts the Unicode representation. If +// |omit_username_password| is true, any username and password are removed. +// |unescape_rules| defines how to clean the URL for human readability. +// You will generally want |UnescapeRule::SPACES| for display to the user if you +// can handle spaces, or |UnescapeRule::NORMAL| if not. If the path part and the +// query part seem to be encoded in %-encoded UTF-8, decodes %-encoding and +// UTF-8. // // The last three parameters may be NULL. // |new_parsed| will be set to the parsing parameters of the resultant URL. @@ -282,17 +267,18 @@ void AppendFormattedHost(const GURL& url, // std::wstring::npos. std::wstring FormatUrl(const GURL& url, const std::wstring& languages, - FormatUrlTypes format_types, + bool omit_username_password, UnescapeRule::Type unescape_rules, url_parse::Parsed* new_parsed, size_t* prefix_end, size_t* offset_for_adjustment); -// This is a convenience for FormatUrl with -// format_types=kFormatUrlOmitUsernamePassword and unescape=SPACES. +// Creates a string representation of |url| for display to the user. +// This is a shorthand of the above function with omit_username_password=true, +// unescape=SPACES, new_parsed=NULL, and prefix_end=NULL. inline std::wstring FormatUrl(const GURL& url, const std::wstring& languages) { - return FormatUrl(url, languages, kFormatUrlOmitUsernamePassword, - UnescapeRule::SPACES, NULL, NULL, NULL); + return FormatUrl(url, languages, true, UnescapeRule::SPACES, NULL, NULL, + NULL); } // Strip the portions of |url| that aren't core to the network request. diff --git a/net/base/net_util_unittest.cc b/net/base/net_util_unittest.cc index 30ab0b99..833375c 100644 --- a/net/base/net_util_unittest.cc +++ b/net/base/net_util_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -364,7 +364,7 @@ struct UrlTestData { const char* description; const char* input; const std::wstring languages; - net::FormatUrlTypes format_types; + bool omit; UnescapeRule::Type escape_rules; const std::wstring output; size_t prefix_len; @@ -1267,78 +1267,74 @@ TEST(NetUtilTest, GetHostName) { } TEST(NetUtilTest, FormatUrl) { - net::FormatUrlTypes default_format_type = net::kFormatUrlOmitUsernamePassword; const UrlTestData tests[] = { - {"Empty URL", "", L"", default_format_type, UnescapeRule::NORMAL, L"", 0}, + {"Empty URL", "", L"", true, UnescapeRule::NORMAL, L"", 0}, {"Simple URL", - "http://www.google.com/", L"", default_format_type, UnescapeRule::NORMAL, + "http://www.google.com/", L"", true, UnescapeRule::NORMAL, L"http://www.google.com/", 7}, {"With a port number and a reference", - "http://www.google.com:8080/#\xE3\x82\xB0", L"", default_format_type, + "http://www.google.com:8080/#\xE3\x82\xB0", L"", true, UnescapeRule::NORMAL, L"http://www.google.com:8080/#\x30B0", 7}, // -------- IDN tests -------- {"Japanese IDN with ja", - "http://xn--l8jvb1ey91xtjb.jp", L"ja", default_format_type, - UnescapeRule::NORMAL, L"http://\x671d\x65e5\x3042\x3055\x3072.jp/", 7}, + "http://xn--l8jvb1ey91xtjb.jp", L"ja", true, UnescapeRule::NORMAL, + L"http://\x671d\x65e5\x3042\x3055\x3072.jp/", 7}, {"Japanese IDN with en", - "http://xn--l8jvb1ey91xtjb.jp", L"en", default_format_type, - UnescapeRule::NORMAL, L"http://xn--l8jvb1ey91xtjb.jp/", 7}, + "http://xn--l8jvb1ey91xtjb.jp", L"en", true, UnescapeRule::NORMAL, + L"http://xn--l8jvb1ey91xtjb.jp/", 7}, {"Japanese IDN without any languages", - "http://xn--l8jvb1ey91xtjb.jp", L"", default_format_type, - UnescapeRule::NORMAL, + "http://xn--l8jvb1ey91xtjb.jp", L"", true, UnescapeRule::NORMAL, // Single script is safe for empty languages. L"http://\x671d\x65e5\x3042\x3055\x3072.jp/", 7}, {"mailto: with Japanese IDN", - "mailto:foo@xn--l8jvb1ey91xtjb.jp", L"ja", default_format_type, - UnescapeRule::NORMAL, + "mailto:foo@xn--l8jvb1ey91xtjb.jp", L"ja", true, UnescapeRule::NORMAL, // GURL doesn't assume an email address's domain part as a host name. L"mailto:foo@xn--l8jvb1ey91xtjb.jp", 7}, {"file: with Japanese IDN", - "file://xn--l8jvb1ey91xtjb.jp/config.sys", L"ja", default_format_type, + "file://xn--l8jvb1ey91xtjb.jp/config.sys", L"ja", true, UnescapeRule::NORMAL, L"file://\x671d\x65e5\x3042\x3055\x3072.jp/config.sys", 7}, {"ftp: with Japanese IDN", - "ftp://xn--l8jvb1ey91xtjb.jp/config.sys", L"ja", default_format_type, + "ftp://xn--l8jvb1ey91xtjb.jp/config.sys", L"ja", true, UnescapeRule::NORMAL, L"ftp://\x671d\x65e5\x3042\x3055\x3072.jp/config.sys", 6}, // -------- omit_username_password flag tests -------- {"With username and password, omit_username_password=false", - "http://user:passwd@example.com/foo", L"", - net::kFormatUrlOmitNothing, UnescapeRule::NORMAL, + "http://user:passwd@example.com/foo", L"", false, UnescapeRule::NORMAL, L"http://user:passwd@example.com/foo", 19}, {"With username and password, omit_username_password=true", - "http://user:passwd@example.com/foo", L"", default_format_type, - UnescapeRule::NORMAL, L"http://example.com/foo", 7}, + "http://user:passwd@example.com/foo", L"", true, UnescapeRule::NORMAL, + L"http://example.com/foo", 7}, {"With username and no password", - "http://user@example.com/foo", L"", default_format_type, - UnescapeRule::NORMAL, L"http://example.com/foo", 7}, + "http://user@example.com/foo", L"", true, UnescapeRule::NORMAL, + L"http://example.com/foo", 7}, {"Just '@' without username and password", - "http://@example.com/foo", L"", default_format_type, UnescapeRule::NORMAL, + "http://@example.com/foo", L"", true, UnescapeRule::NORMAL, L"http://example.com/foo", 7}, // GURL doesn't think local-part of an email address is username for URL. {"mailto:, omit_username_password=true", - "mailto:foo@example.com", L"", default_format_type, UnescapeRule::NORMAL, + "mailto:foo@example.com", L"", true, UnescapeRule::NORMAL, L"mailto:foo@example.com", 7}, // -------- unescape flag tests -------- {"Do not unescape", "http://%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB.jp/" "%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB" - "?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB", L"en", default_format_type, + "?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB", L"en", true, UnescapeRule::NONE, // GURL parses %-encoded hostnames into Punycode. L"http://xn--qcka1pmc.jp/%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB" @@ -1347,59 +1343,38 @@ TEST(NetUtilTest, FormatUrl) { {"Unescape normally", "http://%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB.jp/" "%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB" - "?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB", L"en", default_format_type, + "?q=%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB", L"en", true, UnescapeRule::NORMAL, L"http://xn--qcka1pmc.jp/\x30B0\x30FC\x30B0\x30EB" L"?q=\x30B0\x30FC\x30B0\x30EB", 7}, {"Unescape normally including unescape spaces", - "http://www.google.com/search?q=Hello%20World", L"en", default_format_type, - UnescapeRule::SPACES, L"http://www.google.com/search?q=Hello World", 7}, + "http://www.google.com/search?q=Hello%20World", L"en", true, + UnescapeRule::SPACES, + L"http://www.google.com/search?q=Hello World", 7}, /* {"unescape=true with some special characters", - "http://user%3A:%40passwd@example.com/foo%3Fbar?q=b%26z", L"", - net::kFormatUrlOmitNothing, UnescapeRule::NORMAL, + "http://user%3A:%40passwd@example.com/foo%3Fbar?q=b%26z", L"", false, true, L"http://user%3A:%40passwd@example.com/foo%3Fbar?q=b%26z", 25}, */ // Disabled: the resultant URL becomes "...user%253A:%2540passwd...". // -------- view-source: -------- {"view-source", - "view-source:http://xn--qcka1pmc.jp/", L"ja", default_format_type, - UnescapeRule::NORMAL, L"view-source:http://\x30B0\x30FC\x30B0\x30EB.jp/", - 12 + 7}, + "view-source:http://xn--qcka1pmc.jp/", L"ja", true, UnescapeRule::NORMAL, + L"view-source:http://\x30B0\x30FC\x30B0\x30EB.jp/", 12 + 7}, {"view-source of view-source", - "view-source:view-source:http://xn--qcka1pmc.jp/", L"ja", - default_format_type, UnescapeRule::NORMAL, + "view-source:view-source:http://xn--qcka1pmc.jp/", L"ja", true, + UnescapeRule::NORMAL, L"view-source:view-source:http://xn--qcka1pmc.jp/", 12}, - - // -------- omit http: -------- - {"omit http with user name", - "http://user@example.com/foo", L"", net::kFormatUrlOmitAll, - UnescapeRule::NORMAL, L"example.com/foo", 0}, - - {"omit http", - "http://www.google.com/", L"en", net::kFormatUrlOmitHTTP, - UnescapeRule::NORMAL, L"www.google.com/", - 0}, - - {"omit http with https", - "https://www.google.com/", L"en", net::kFormatUrlOmitHTTP, - UnescapeRule::NORMAL, L"https://www.google.com/", - 8}, - - {"omit http starts with ftp.", - "http://ftp.google.com/", L"en", net::kFormatUrlOmitHTTP, - UnescapeRule::NORMAL, L"http://ftp.google.com/", - 7}, }; for (size_t i = 0; i < arraysize(tests); ++i) { size_t prefix_len; std::wstring formatted = net::FormatUrl( - GURL(tests[i].input), tests[i].languages, tests[i].format_types, + GURL(tests[i].input), tests[i].languages, tests[i].omit, tests[i].escape_rules, NULL, &prefix_len, NULL); EXPECT_EQ(tests[i].output, formatted) << tests[i].description; EXPECT_EQ(tests[i].prefix_len, prefix_len) << tests[i].description; @@ -1412,8 +1387,7 @@ TEST(NetUtilTest, FormatUrlParsed) { std::wstring formatted = net::FormatUrl( GURL("http://\xE3\x82\xB0:\xE3\x83\xBC@xn--qcka1pmc.jp:8080/" "%E3%82%B0/?q=%E3%82%B0#\xE3\x82\xB0"), - L"ja", net::kFormatUrlOmitNothing, UnescapeRule::NONE, &parsed, NULL, - NULL); + L"ja", false, UnescapeRule::NONE, &parsed, NULL, NULL); EXPECT_EQ(L"http://%E3%82%B0:%E3%83%BC@\x30B0\x30FC\x30B0\x30EB.jp:8080" L"/%E3%82%B0/?q=%E3%82%B0#\x30B0", formatted); EXPECT_EQ(L"%E3%82%B0", @@ -1433,8 +1407,7 @@ TEST(NetUtilTest, FormatUrlParsed) { formatted = net::FormatUrl( GURL("http://\xE3\x82\xB0:\xE3\x83\xBC@xn--qcka1pmc.jp:8080/" "%E3%82%B0/?q=%E3%82%B0#\xE3\x82\xB0"), - L"ja", net::kFormatUrlOmitNothing, UnescapeRule::NORMAL, &parsed, NULL, - NULL); + L"ja", false, UnescapeRule::NORMAL, &parsed, NULL, NULL); EXPECT_EQ(L"http://\x30B0:\x30FC@\x30B0\x30FC\x30B0\x30EB.jp:8080" L"/\x30B0/?q=\x30B0#\x30B0", formatted); EXPECT_EQ(L"\x30B0", @@ -1453,8 +1426,7 @@ TEST(NetUtilTest, FormatUrlParsed) { formatted = net::FormatUrl( GURL("http://\xE3\x82\xB0:\xE3\x83\xBC@xn--qcka1pmc.jp:8080/" "%E3%82%B0/?q=%E3%82%B0#\xE3\x82\xB0"), - L"ja", net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, - &parsed, NULL, NULL); + L"ja", true, UnescapeRule::NORMAL, &parsed, NULL, NULL); EXPECT_EQ(L"http://\x30B0\x30FC\x30B0\x30EB.jp:8080" L"/\x30B0/?q=\x30B0#\x30B0", formatted); EXPECT_FALSE(parsed.username.is_valid()); @@ -1470,8 +1442,7 @@ TEST(NetUtilTest, FormatUrlParsed) { // View-source case. formatted = net::FormatUrl( GURL("view-source:http://user:passwd@host:81/path?query#ref"), - L"", net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, &parsed, - NULL, NULL); + L"", true, UnescapeRule::NORMAL, &parsed, NULL, NULL); EXPECT_EQ(L"view-source:http://host:81/path?query#ref", formatted); EXPECT_EQ(L"view-source:http", formatted.substr(parsed.scheme.begin, parsed.scheme.len)); @@ -1482,50 +1453,6 @@ TEST(NetUtilTest, FormatUrlParsed) { EXPECT_EQ(L"/path", formatted.substr(parsed.path.begin, parsed.path.len)); EXPECT_EQ(L"query", formatted.substr(parsed.query.begin, parsed.query.len)); EXPECT_EQ(L"ref", formatted.substr(parsed.ref.begin, parsed.ref.len)); - - // omit http case. - formatted = net::FormatUrl( - GURL("http://host:8000/a?b=c#d"), - L"", net::kFormatUrlOmitHTTP, UnescapeRule::NORMAL, &parsed, NULL, NULL); - EXPECT_EQ(L"host:8000/a?b=c#d", formatted); - EXPECT_FALSE(parsed.scheme.is_valid()); - EXPECT_FALSE(parsed.username.is_valid()); - EXPECT_FALSE(parsed.password.is_valid()); - EXPECT_EQ(L"host", formatted.substr(parsed.host.begin, parsed.host.len)); - EXPECT_EQ(L"8000", formatted.substr(parsed.port.begin, parsed.port.len)); - EXPECT_EQ(L"/a", formatted.substr(parsed.path.begin, parsed.path.len)); - EXPECT_EQ(L"b=c", formatted.substr(parsed.query.begin, parsed.query.len)); - EXPECT_EQ(L"d", formatted.substr(parsed.ref.begin, parsed.ref.len)); - - // omit http starts with ftp case. - formatted = net::FormatUrl( - GURL("http://ftp.host:8000/a?b=c#d"), - L"", net::kFormatUrlOmitHTTP, UnescapeRule::NORMAL, &parsed, NULL, NULL); - EXPECT_EQ(L"http://ftp.host:8000/a?b=c#d", formatted); - EXPECT_TRUE(parsed.scheme.is_valid()); - EXPECT_FALSE(parsed.username.is_valid()); - EXPECT_FALSE(parsed.password.is_valid()); - EXPECT_EQ(L"http", formatted.substr(parsed.scheme.begin, parsed.scheme.len)); - EXPECT_EQ(L"ftp.host", formatted.substr(parsed.host.begin, parsed.host.len)); - EXPECT_EQ(L"8000", formatted.substr(parsed.port.begin, parsed.port.len)); - EXPECT_EQ(L"/a", formatted.substr(parsed.path.begin, parsed.path.len)); - EXPECT_EQ(L"b=c", formatted.substr(parsed.query.begin, parsed.query.len)); - EXPECT_EQ(L"d", formatted.substr(parsed.ref.begin, parsed.ref.len)); - - // omit http starts with 'f' case. - formatted = net::FormatUrl( - GURL("http://f/"), - L"", net::kFormatUrlOmitHTTP, UnescapeRule::NORMAL, &parsed, NULL, NULL); - EXPECT_EQ(L"f/", formatted); - EXPECT_FALSE(parsed.scheme.is_valid()); - EXPECT_FALSE(parsed.username.is_valid()); - EXPECT_FALSE(parsed.password.is_valid()); - EXPECT_FALSE(parsed.port.is_valid()); - EXPECT_TRUE(parsed.path.is_valid()); - EXPECT_FALSE(parsed.query.is_valid()); - EXPECT_FALSE(parsed.ref.is_valid()); - EXPECT_EQ(L"f", formatted.substr(parsed.host.begin, parsed.host.len)); - EXPECT_EQ(L"/", formatted.substr(parsed.path.begin, parsed.path.len)); } TEST(NetUtilTest, FormatUrlAdjustOffset) { @@ -1545,9 +1472,8 @@ TEST(NetUtilTest, FormatUrlAdjustOffset) { }; for (size_t i = 0; i < ARRAYSIZE_UNSAFE(basic_cases); ++i) { size_t offset = basic_cases[i].input_offset; - net::FormatUrl(GURL("http://www.google.com/foo/"), L"en", - net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, - NULL, NULL, &offset); + net::FormatUrl(GURL("http://www.google.com/foo/"), L"en", true, + UnescapeRule::NORMAL, NULL, NULL, &offset); EXPECT_EQ(basic_cases[i].output_offset, offset); } @@ -1569,9 +1495,8 @@ TEST(NetUtilTest, FormatUrlAdjustOffset) { }; for (size_t i = 0; i < ARRAYSIZE_UNSAFE(omit_auth_cases); ++i) { size_t offset = omit_auth_cases[i].input_offset; - net::FormatUrl(GURL(omit_auth_cases[i].input_url), L"en", - net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, - NULL, NULL, &offset); + net::FormatUrl(GURL(omit_auth_cases[i].input_url), L"en", true, + UnescapeRule::NORMAL, NULL, NULL, &offset); EXPECT_EQ(omit_auth_cases[i].output_offset, offset); } @@ -1589,9 +1514,8 @@ TEST(NetUtilTest, FormatUrlAdjustOffset) { }; for (size_t i = 0; i < ARRAYSIZE_UNSAFE(view_source_cases); ++i) { size_t offset = view_source_cases[i].input_offset; - net::FormatUrl(GURL("view-source:http://foo@www.google.com/"), L"en", - net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, - NULL, NULL, &offset); + net::FormatUrl(GURL("view-source:http://foo@www.google.com/"), L"en", true, + UnescapeRule::NORMAL, NULL, NULL, &offset); EXPECT_EQ(view_source_cases[i].output_offset, offset); } @@ -1605,9 +1529,8 @@ TEST(NetUtilTest, FormatUrlAdjustOffset) { for (size_t i = 0; i < ARRAYSIZE_UNSAFE(idn_hostname_cases); ++i) { size_t offset = idn_hostname_cases[i].input_offset; // "http://\x671d\x65e5\x3042\x3055\x3072.jp/foo/" - net::FormatUrl(GURL("http://xn--l8jvb1ey91xtjb.jp/foo/"), L"ja", - net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, - NULL, NULL, &offset); + net::FormatUrl(GURL("http://xn--l8jvb1ey91xtjb.jp/foo/"), L"ja", true, + UnescapeRule::NORMAL, NULL, NULL, &offset); EXPECT_EQ(idn_hostname_cases[i].output_offset, offset); } @@ -1628,8 +1551,7 @@ TEST(NetUtilTest, FormatUrlAdjustOffset) { // "http://www.google.com/foo bar/\x30B0\x30FC\x30B0\x30EB" net::FormatUrl(GURL( "http://www.google.com/foo%20bar/%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB"), - L"en", net::kFormatUrlOmitUsernamePassword, UnescapeRule::SPACES, NULL, - NULL, &offset); + L"en", true, UnescapeRule::SPACES, NULL, NULL, &offset); EXPECT_EQ(unescape_cases[i].output_offset, offset); } @@ -1646,48 +1568,9 @@ TEST(NetUtilTest, FormatUrlAdjustOffset) { // "http://www.google.com/foo.html#\x30B0\x30B0z" net::FormatUrl(GURL( "http://www.google.com/foo.html#\xE3\x82\xB0\xE3\x82\xB0z"), L"en", - net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, NULL, NULL, - &offset); + true, UnescapeRule::NORMAL, NULL, NULL, &offset); EXPECT_EQ(ref_cases[i].output_offset, offset); } - - const AdjustOffsetCase omit_http_cases[] = { - {0, std::wstring::npos}, - {3, std::wstring::npos}, - {7, 0}, - {8, 1}, - }; - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(omit_http_cases); ++i) { - size_t offset = omit_http_cases[i].input_offset; - net::FormatUrl(GURL("http://www.google.com"), L"en", - net::kFormatUrlOmitHTTP, UnescapeRule::NORMAL, NULL, NULL, &offset); - EXPECT_EQ(omit_http_cases[i].output_offset, offset); - } - - const AdjustOffsetCase omit_http_start_with_ftp[] = { - {0, 0}, - {3, 3}, - {8, 8}, - }; - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(omit_http_start_with_ftp); ++i) { - size_t offset = omit_http_start_with_ftp[i].input_offset; - net::FormatUrl(GURL("http://ftp.google.com"), L"en", - net::kFormatUrlOmitHTTP, UnescapeRule::NORMAL, NULL, NULL, &offset); - EXPECT_EQ(omit_http_start_with_ftp[i].output_offset, offset); - } - - const AdjustOffsetCase omit_all_cases[] = { - {12, 0}, - {13, 1}, - {0, std::wstring::npos}, - {3, std::wstring::npos}, - }; - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(omit_all_cases); ++i) { - size_t offset = omit_all_cases[i].input_offset; - net::FormatUrl(GURL("http://user@foo.com/"), L"en", net::kFormatUrlOmitAll, - UnescapeRule::NORMAL, NULL, NULL, &offset); - EXPECT_EQ(omit_all_cases[i].output_offset, offset); - } } TEST(NetUtilTest, SimplifyUrlForRequest) { diff --git a/tools/valgrind/memcheck/suppressions.txt b/tools/valgrind/memcheck/suppressions.txt index c318cc2..2c9930c 100755 --- a/tools/valgrind/memcheck/suppressions.txt +++ b/tools/valgrind/memcheck/suppressions.txt @@ -2506,6 +2506,15 @@ fun:_ZN11ProfileImpl14InitExtensionsEv } { + bug_40475 + Memcheck:Leak + fun:_Znw* + fun:_ZN8TabStrip20NewTabAnimation1DoneEv + ... + fun:ChromeMain + fun:main +} +{ bug_40499 Memcheck:Leak fun:_Znw* diff --git a/views/animation/bounds_animator.cc b/views/animation/bounds_animator.cc index aee3675..e723504 100644 --- a/views/animation/bounds_animator.cc +++ b/views/animation/bounds_animator.cc @@ -28,7 +28,7 @@ BoundsAnimator::~BoundsAnimator() { // Delete all the animations, but don't remove any child views. We assume the // view owns us and is going to be deleted anyway. for (ViewToDataMap::iterator i = data_.begin(); i != data_.end(); ++i) - CleanupData(false, &(i->second), i->first); + CleanupData(&(i->second)); } void BoundsAnimator::AnimateViewTo(View* view, @@ -36,21 +36,21 @@ void BoundsAnimator::AnimateViewTo(View* view, bool delete_when_done) { DCHECK_EQ(view->GetParent(), parent_); - Data existing_data; - - if (data_.count(view) > 0) { - // Don't immediatly delete the animation, that might trigger a callback from - // the animationcontainer. - existing_data = data_[view]; - - RemoveFromMaps(view); + scoped_ptr<Animation> current_animation; + + if (data_.find(view) != data_.end()) { + // Currently animating this view, blow away the current animation and + // we'll create another animation below. + // We delay deleting the view until the end so that we don't prematurely + // send out notification that we're done. + current_animation.reset(ResetAnimationForView(view)); + } else if (target == view->bounds()) { + // View is already at the target location, delete it if necessary. + if (delete_when_done) + delete view; + return; } - // NOTE: we don't check if the view is already at the target location. Doing - // so leads to odd cases where no animations may be present after invoking - // AnimateViewTo. AnimationProgressed does nothing when the bounds of the - // view don't change. - Data& data = data_[view]; data.start_bounds = view->bounds(); data.target_bounds = target; @@ -60,8 +60,6 @@ void BoundsAnimator::AnimateViewTo(View* view, animation_to_view_[data.animation] = view; data.animation->Show(); - - CleanupData(true, &existing_data, NULL); } void BoundsAnimator::SetAnimationForView(View* view, @@ -128,25 +126,22 @@ SlideAnimation* BoundsAnimator::CreateAnimation() { return animation; } -void BoundsAnimator::RemoveFromMaps(View* view) { +void BoundsAnimator::RemoveFromMapsAndDelete(View* view) { DCHECK(data_.count(view) > 0); - animation_to_view_.erase(data_[view].animation); + Data& data = data_[view]; + animation_to_view_.erase(data.animation); + if (data.delete_when_done) + delete view; data_.erase(view); } -void BoundsAnimator::CleanupData(bool send_cancel, Data* data, View* view) { - if (send_cancel && data->delegate) - data->delegate->AnimationCanceled(data->animation); - +void BoundsAnimator::CleanupData(Data* data) { if (data->delete_delegate_when_done) { delete static_cast<OwnedAnimationDelegate*>(data->delegate); data->delegate = NULL; } - if (data->delete_when_done) - delete view; - delete data->animation; data->animation = NULL; } @@ -195,12 +190,12 @@ void BoundsAnimator::AnimationEnded(const Animation* animation) { // Make a copy of the data as Remove empties out the maps. Data data = data_[view]; - RemoveFromMaps(view); + RemoveFromMapsAndDelete(view); if (delegate) delegate->AnimationEnded(animation); - CleanupData(false, &data, view); + CleanupData(&data); } void BoundsAnimator::AnimationCanceled(const Animation* animation) { @@ -210,20 +205,17 @@ void BoundsAnimator::AnimationCanceled(const Animation* animation) { // Make a copy of the data as Remove empties out the maps. Data data = data_[view]; - RemoveFromMaps(view); + RemoveFromMapsAndDelete(view); if (delegate) delegate->AnimationCanceled(animation); - CleanupData(false, &data, view); + CleanupData(&data); } void BoundsAnimator::AnimationContainerProgressed( AnimationContainer* container) { if (!repaint_bounds_.IsEmpty()) { - // Adjust for rtl. - repaint_bounds_.set_x(parent_->MirroredXWithWidthInsideView( - repaint_bounds_.x(), repaint_bounds_.width())); parent_->SchedulePaint(repaint_bounds_, false); repaint_bounds_.SetRect(0, 0, 0, 0); } diff --git a/views/animation/bounds_animator.h b/views/animation/bounds_animator.h index 606c05f..ab2fde9 100644 --- a/views/animation/bounds_animator.h +++ b/views/animation/bounds_animator.h @@ -50,9 +50,7 @@ class BoundsAnimator : public AnimationDelegate, // Starts animating |view| from its current bounds to |target|. If // |delete_when_done| is true the view is deleted when the animation // completes. If there is already an animation running for the view it's - // stopped and a new one started. If an AnimationDelegate has been set for - // |view| it is removed (after being notified that the animation was - // canceled). + // stopped and a new one started. void AnimateViewTo(View* view, const gfx::Rect& target, bool delete_when_done); @@ -66,7 +64,7 @@ class BoundsAnimator : public AnimationDelegate, const SlideAnimation* GetAnimationForView(View* view); // Stops animating the specified view. If the view was scheduled for deletion - // it is deleted. This does nothing if |view| is not currently animating. + // it is deleted. void StopAnimatingView(View* view); // Sets the delegate for the animation created for the specified view. If @@ -90,10 +88,6 @@ class BoundsAnimator : public AnimationDelegate, observer_ = observer; } - protected: - // Creates the animation to use for animating views. - virtual SlideAnimation* CreateAnimation(); - private: // Tracks data about the view being animated. struct Data { @@ -126,13 +120,15 @@ class BoundsAnimator : public AnimationDelegate, typedef std::map<const Animation*, View*> AnimationToViewMap; - // Removes references to |view| and its animation. This does NOT delete the - // animation or delegate. - void RemoveFromMaps(View* view); + // Creates the animation to use for animating views. + SlideAnimation* CreateAnimation(); + + // Removes references to |view| and its animation as well as deleting |view| + // (if necessary). This does NOT delete the animation or delegate. + void RemoveFromMapsAndDelete(View* view); - // Does the necessary cleanup for |data|. If |send_cancel| is true and a - // delegate has been installed on |data| AnimationCanceled is invoked on it. - void CleanupData(bool send_cancel, Data* data, View* view); + // Does the necessary cleanup for |data|. + void CleanupData(Data* data); // Used when changing the animation for a view. This resets the maps for // the animation used by view and returns the current animation. Ownership diff --git a/views/animation/bounds_animator_unittest.cc b/views/animation/bounds_animator_unittest.cc deleted file mode 100644 index 74ea5f2..0000000 --- a/views/animation/bounds_animator_unittest.cc +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "app/slide_animation.h" -#include "app/test_animation_delegate.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "views/animation/bounds_animator.h" -#include "views/view.h" - -using views::BoundsAnimator; - -namespace { - -class TestBoundsAnimator : public BoundsAnimator { - public: - explicit TestBoundsAnimator(views::View* view) : BoundsAnimator(view) { - } - - protected: - SlideAnimation* CreateAnimation() { - SlideAnimation* animation = BoundsAnimator::CreateAnimation(); - animation->SetSlideDuration(10); - return animation; - } - - private: - DISALLOW_COPY_AND_ASSIGN(TestBoundsAnimator); -}; - -class OwnedDelegate : public BoundsAnimator::OwnedAnimationDelegate { - public: - OwnedDelegate() { - deleted_ = false; - canceled_ = false; - } - - ~OwnedDelegate() { - deleted_ = true; - } - - static bool get_and_clear_deleted() { - bool value = deleted_; - deleted_ = false; - return value; - } - - static bool get_and_clear_canceled() { - bool value = canceled_; - canceled_ = false; - return value; - } - - // AnimationDelegate: - virtual void AnimationCanceled(const Animation* animation) { - canceled_ = true; - } - - private: - static bool deleted_; - static bool canceled_; - - DISALLOW_COPY_AND_ASSIGN(OwnedDelegate); -}; - -// static -bool OwnedDelegate::deleted_ = false; - -// static -bool OwnedDelegate::canceled_ = false; - -class TestView : public views::View { - public: - TestView() {} - virtual void SchedulePaint(const gfx::Rect& r, bool urgent) { - if (dirty_rect_.IsEmpty()) - dirty_rect_ = r; - else - dirty_rect_ = dirty_rect_.Union(r); - } - - const gfx::Rect& dirty_rect() const { return dirty_rect_; } - - private: - gfx::Rect dirty_rect_; - - DISALLOW_COPY_AND_ASSIGN(TestView); -}; - -} // namespace - -class BoundsAnimatorTest : public testing::Test { - public: - BoundsAnimatorTest() : child_(new TestView()), animator_(&parent_) { - parent_.AddChildView(child_); - } - - TestView* parent() { return &parent_; } - TestView* child() { return child_; } - TestBoundsAnimator* animator() { return &animator_; } - - private: - MessageLoopForUI message_loop_; - TestView parent_; - TestView* child_; // Owned by |parent_|. - TestBoundsAnimator animator_; - - DISALLOW_COPY_AND_ASSIGN(BoundsAnimatorTest); -}; - -// Checks animate view to. -TEST_F(BoundsAnimatorTest, AnimateViewTo) { - TestAnimationDelegate delegate; - gfx::Rect initial_bounds(0, 0, 10, 10); - child()->SetBounds(initial_bounds); - gfx::Rect target_bounds(10, 10, 20, 20); - animator()->AnimateViewTo(child(), target_bounds, false); - animator()->SetAnimationDelegate(child(), &delegate, false); - - // The animator should be animating now. - EXPECT_TRUE(animator()->IsAnimating()); - - // Run the message loop; the delegate exits the loop when the animation is - // done. - MessageLoop::current()->Run(); - - // Make sure the bounds match of the view that was animated match. - EXPECT_EQ(target_bounds, child()->bounds()); - - // The parent should have been told to repaint as the animation progressed. - // The resulting rect is the union of the original and target bounds. - EXPECT_EQ(target_bounds.Union(initial_bounds), parent()->dirty_rect()); -} - -// Make sure an AnimationDelegate is deleted when canceled. -TEST_F(BoundsAnimatorTest, DeleteDelegateOnCancel) { - animator()->AnimateViewTo(child(), gfx::Rect(0, 0, 10, 10), false); - animator()->SetAnimationDelegate(child(), new OwnedDelegate(), true); - - animator()->Cancel(); - - // The animator should no longer be animating. - EXPECT_FALSE(animator()->IsAnimating()); - - // The cancel should both cancel the delegate and delete it. - EXPECT_TRUE(OwnedDelegate::get_and_clear_canceled()); - EXPECT_TRUE(OwnedDelegate::get_and_clear_deleted()); -} - -// Make sure an AnimationDelegate is deleted when another animation is -// scheduled. -TEST_F(BoundsAnimatorTest, DeleteDelegateOnNewAnimate) { - animator()->AnimateViewTo(child(), gfx::Rect(0, 0, 10, 10), false); - animator()->SetAnimationDelegate(child(), new OwnedDelegate(), true); - - animator()->AnimateViewTo(child(), gfx::Rect(0, 0, 10, 10), false); - - // Starting a new animation should both cancel the delegate and delete it. - EXPECT_TRUE(OwnedDelegate::get_and_clear_deleted()); - EXPECT_TRUE(OwnedDelegate::get_and_clear_canceled()); -} - -// Makes sure StopAnimating works. -TEST_F(BoundsAnimatorTest, StopAnimating) { - scoped_ptr<OwnedDelegate> delegate(new OwnedDelegate()); - - animator()->AnimateViewTo(child(), gfx::Rect(0, 0, 10, 10), false); - animator()->SetAnimationDelegate(child(), new OwnedDelegate(), true); - - animator()->StopAnimatingView(child()); - - // Shouldn't be animating now. - EXPECT_FALSE(animator()->IsAnimating()); - - // Stopping should both cancel the delegate and delete it. - EXPECT_TRUE(OwnedDelegate::get_and_clear_deleted()); - EXPECT_TRUE(OwnedDelegate::get_and_clear_canceled()); -} diff --git a/views/controls/image_view.cc b/views/controls/image_view.cc index 9728332..d35585e 100644 --- a/views/controls/image_view.cc +++ b/views/controls/image_view.cc @@ -49,12 +49,6 @@ bool ImageView::GetImageSize(gfx::Size* image_size) { return image_size_set_; } -gfx::Rect ImageView::GetImageBounds() const { - gfx::Size image_size(image_size_set_ ? - image_size_ : gfx::Size(image_.width(), image_.height())); - return gfx::Rect(ComputeImageOrigin(image_size), image_size); -} - void ImageView::ResetImageSize() { image_size_set_ = false; } @@ -71,52 +65,74 @@ gfx::Size ImageView::GetPreferredSize() { image_.height() + insets.height()); } -gfx::Point ImageView::ComputeImageOrigin(const gfx::Size& image_size) const { - gfx::Insets insets = GetInsets(); - - int x; +void ImageView::ComputeImageOrigin(int image_width, int image_height, + int *x, int *y) { // In order to properly handle alignment of images in RTL locales, we need // to flip the meaning of trailing and leading. For example, if the // horizontal alignment is set to trailing, then we'll use left alignment for // the image instead of right alignment if the UI layout is RTL. Alignment actual_horiz_alignment = horiz_alignment_; - if (UILayoutIsRightToLeft() && (horiz_alignment_ != CENTER)) - actual_horiz_alignment = (horiz_alignment_ == LEADING) ? TRAILING : LEADING; + if (UILayoutIsRightToLeft()) { + if (horiz_alignment_ == TRAILING) + actual_horiz_alignment = LEADING; + if (horiz_alignment_ == LEADING) + actual_horiz_alignment = TRAILING; + } + + gfx::Insets insets = GetInsets(); + switch (actual_horiz_alignment) { - case LEADING: x = insets.left(); break; - case TRAILING: x = width() - insets.right() - image_size.width(); break; - case CENTER: x = (width() - image_size.width()) / 2; break; - default: NOTREACHED(); x = 0; break; + case LEADING: + *x = insets.left(); + break; + case TRAILING: + *x = width() - insets.right() - image_width; + break; + case CENTER: + *x = (width() - image_width) / 2; + break; + default: + NOTREACHED(); } - int y; switch (vert_alignment_) { - case LEADING: y = insets.top(); break; - case TRAILING: y = height() - insets.bottom() - image_size.height(); break; - case CENTER: y = (height() - image_size.height()) / 2; break; - default: NOTREACHED(); y = 0; break; + case LEADING: + *y = insets.top(); + break; + case TRAILING: + *y = height() - insets.bottom() - image_height; + break; + case CENTER: + *y = (height() - image_height) / 2; + break; + default: + NOTREACHED(); } - - return gfx::Point(x, y); } void ImageView::Paint(gfx::Canvas* canvas) { View::Paint(canvas); + int image_width = image_.width(); + int image_height = image_.height(); - gfx::Rect image_bounds(GetImageBounds()); - if (image_bounds.IsEmpty()) + if (image_width == 0 || image_height == 0) return; - if (image_bounds.size() != gfx::Size(image_.width(), image_.height())) { + int x, y; + if (image_size_set_ && + (image_size_.width() != image_width || + image_size_.width() != image_height)) { // Resize case image_.buildMipMap(false); + ComputeImageOrigin(image_size_.width(), image_size_.height(), &x, &y); SkPaint paint; paint.setFilterBitmap(true); - canvas->DrawBitmapInt(image_, 0, 0, image_.width(), image_.height(), - image_bounds.x(), image_bounds.y(), image_bounds.width(), - image_bounds.height(), true, paint); + canvas->DrawBitmapInt(image_, 0, 0, image_width, image_height, + x, y, image_size_.width(), image_size_.height(), + true, paint); } else { - canvas->DrawBitmapInt(image_, image_bounds.x(), image_bounds.y()); + ComputeImageOrigin(image_width, image_height, &x, &y); + canvas->DrawBitmapInt(image_, x, y); } } diff --git a/views/controls/image_view.h b/views/controls/image_view.h index 45eeecd..46cbb00 100644 --- a/views/controls/image_view.h +++ b/views/controls/image_view.h @@ -55,9 +55,6 @@ class ImageView : public View { // size. bool GetImageSize(gfx::Size* image_size); - // Returns the actual bounds of the visible image inside the view. - gfx::Rect GetImageBounds() const; - // Reset the image size to the current image dimensions. void ResetImageSize(); @@ -73,16 +70,19 @@ class ImageView : public View { void SetTooltipText(const std::wstring& tooltip); std::wstring GetTooltipText(); + // Return whether the image should be centered inside the view. // Overriden from View virtual gfx::Size GetPreferredSize(); virtual void Paint(gfx::Canvas* canvas); virtual bool GetAccessibleRole(AccessibilityTypes::Role* role); + + // Overriden from View. virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip); private: // Compute the image origin given the desired size and the receiver alignment // properties. - gfx::Point ComputeImageOrigin(const gfx::Size& image_size) const; + void ComputeImageOrigin(int image_width, int image_height, int *x, int *y); // Whether the image size is set. bool image_size_set_; diff --git a/views/views.gyp b/views/views.gyp index 950fb86..d092722 100644 --- a/views/views.gyp +++ b/views/views.gyp @@ -301,8 +301,6 @@ 'window/window_resources.h', 'window/window_gtk.cc', 'window/window_gtk.h', - 'window/window_shape.cc', - 'window/window_shape.h', 'window/window_win.cc', 'window/window_win.h', ], diff --git a/views/window/custom_frame_view.cc b/views/window/custom_frame_view.cc index e67a5c2..5f62219 100644 --- a/views/window/custom_frame_view.cc +++ b/views/window/custom_frame_view.cc @@ -17,7 +17,6 @@ #include "grit/app_resources.h" #include "grit/app_strings.h" #include "views/window/client_view.h" -#include "views/window/window_shape.h" #if defined(OS_LINUX) #include "views/window/hit_test.h" #endif @@ -188,10 +187,27 @@ int CustomFrameView::NonClientHitTest(const gfx::Point& point) { void CustomFrameView::GetWindowMask(const gfx::Size& size, gfx::Path* window_mask) { DCHECK(window_mask); + if (frame_->IsMaximized()) return; - views::GetDefaultWindowMask(size, window_mask); + // Redefine the window visible region for the new size. + window_mask->moveTo(0, 3); + window_mask->lineTo(1, 2); + window_mask->lineTo(1, 1); + window_mask->lineTo(2, 1); + window_mask->lineTo(3, 0); + + window_mask->lineTo(SkIntToScalar(size.width() - 3), 0); + window_mask->lineTo(SkIntToScalar(size.width() - 2), 1); + window_mask->lineTo(SkIntToScalar(size.width() - 1), 1); + window_mask->lineTo(SkIntToScalar(size.width() - 1), 2); + window_mask->lineTo(SkIntToScalar(size.width()), 3); + + window_mask->lineTo(SkIntToScalar(size.width()), + SkIntToScalar(size.height())); + window_mask->lineTo(0, SkIntToScalar(size.height())); + window_mask->close(); } void CustomFrameView::EnableClose(bool enable) { diff --git a/views/window/window_shape.cc b/views/window/window_shape.cc deleted file mode 100644 index dd234bf..0000000 --- a/views/window/window_shape.cc +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "views/window/window_shape.h" - -#include "gfx/path.h" -#include "gfx/size.h" - -namespace views { - -void GetDefaultWindowMask(const gfx::Size &size, gfx::Path *window_mask) { - // Redefine the window visible region for the new size. - window_mask->moveTo(0, 3); - window_mask->lineTo(1, 2); - window_mask->lineTo(1, 1); - window_mask->lineTo(2, 1); - window_mask->lineTo(3, 0); - - window_mask->lineTo(SkIntToScalar(size.width() - 3), 0); - window_mask->lineTo(SkIntToScalar(size.width() - 2), 1); - window_mask->lineTo(SkIntToScalar(size.width() - 1), 1); - window_mask->lineTo(SkIntToScalar(size.width() - 1), 2); - window_mask->lineTo(SkIntToScalar(size.width()), 3); - - window_mask->lineTo(SkIntToScalar(size.width()), - SkIntToScalar(size.height() - 3)); - window_mask->lineTo(SkIntToScalar(size.width() - 1), - SkIntToScalar(size.height() - 3)); - window_mask->lineTo(SkIntToScalar(size.width() - 1), - SkIntToScalar(size.height() - 1)); - window_mask->lineTo(SkIntToScalar(size.width() - 3), - SkIntToScalar(size.height() - 2)); - window_mask->lineTo(SkIntToScalar(size.width() - 3), - SkIntToScalar(size.height())); - - window_mask->lineTo(3, SkIntToScalar(size.height())); - window_mask->lineTo(2, SkIntToScalar(size.height() - 2)); - window_mask->lineTo(1, SkIntToScalar(size.height() - 1)); - window_mask->lineTo(1, SkIntToScalar(size.height() - 3)); - window_mask->lineTo(0, SkIntToScalar(size.height() - 3)); - - window_mask->close(); -} - -} // namespace views diff --git a/views/window/window_shape.h b/views/window/window_shape.h deleted file mode 100644 index 5b47415..0000000 --- a/views/window/window_shape.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef VIEWS_WINDOW_WINDOW_SHAPE_H_ -#define VIEWS_WINDOW_WINDOW_SHAPE_H_ - -namespace gfx { -class Size; -class Path; -} - -namespace views { - -// Sets the window mask to a style that most likely matches -// app/resources/window_* -void GetDefaultWindowMask(const gfx::Size& size, gfx::Path* window_mask); - -} // namespace views - -#endif // #ifndef VIEWS_WINDOW_WINDOW_SHAPE_H_ |