diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/mail/test/browser/message-window | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
20 files changed, 1771 insertions, 0 deletions
diff --git a/comm/mail/test/browser/message-window/browser.ini b/comm/mail/test/browser/message-window/browser.ini new file mode 100644 index 0000000000..a4cd1cf740 --- /dev/null +++ b/comm/mail/test/browser/message-window/browser.ini @@ -0,0 +1,18 @@ +[DEFAULT] +prefs = + mail.provider.suppress_dialog_on_startup=true + mail.spotlight.firstRunDone=true + mail.winsearch.firstRunDone=true + mailnews.start_page.override_url=about:blank + mailnews.start_page.url=about:blank + datareporting.policy.dataSubmissionPolicyBypassNotification=true +subsuite = thunderbird +support-files = data/** + +[browser_autohideMenubar.js] +skip-if = os == "mac" # mac used native menubar +[browser_commands.js] +[browser_emlSubject.js] +[browser_vcardActions.js] +tags = addrbook vcard +[browser_viewPlaintext.js] diff --git a/comm/mail/test/browser/message-window/browser_autohideMenubar.js b/comm/mail/test/browser/message-window/browser_autohideMenubar.js new file mode 100644 index 0000000000..4d7c07d479 --- /dev/null +++ b/comm/mail/test/browser/message-window/browser_autohideMenubar.js @@ -0,0 +1,121 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Test that the menubar can be set to "autohide". + */ + +"use strict"; + +var utils = ChromeUtils.import("resource://testing-common/mozmill/utils.jsm"); +var { + be_in_folder, + close_message_window, + create_folder, + inboxFolder, + make_message_sets_in_folders, + mc, + open_selected_message_in_new_window, + select_click_row, + toggle_main_menu, +} = ChromeUtils.import( + "resource://testing-common/mozmill/FolderDisplayHelpers.jsm" +); + +var menuFolder; +var menuState; + +add_setup(async function () { + menuFolder = await create_folder("menuFolder"); + await make_message_sets_in_folders([menuFolder], [{ count: 1 }]); + + // Make the menubar not autohide by default. + menuState = toggle_main_menu(true); +}); + +/** + * Set the autohide attribute of the menubar. That is, make the menubar not + * shown by default - but pressing Alt will toggle it open/closed. + * + * @param controller the mozmill controller for the window + * @param elem the element to click on (usually the menubar) + * @param hide true to hide, false otherwise + */ +async function set_autohide_menubar(controller, elem, hide) { + let contextMenu = controller.window.document.getElementById( + "toolbar-context-menu" + ); + let popupshown = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown", + controller.window + ); + EventUtils.synthesizeMouseAtCenter( + elem, + { type: "contextmenu" }, + controller.window + ); + await popupshown; + let menuitem = controller.window.document.querySelector( + `menuitem[toolbarid="${elem.id}"]` + ); + if (menuitem.getAttribute("checked") == hide + "") { + EventUtils.synthesizeMouseAtCenter(menuitem, {}, controller.window); + await new Promise(resolve => controller.window.setTimeout(resolve, 50)); + } +} + +/** + * Ensure that the autohide attribute of the menubar can be set properly. + * + * @param controller the mozmill controller for the window + * @param menubar the menubar to test + */ +async function help_test_autohide(controller, menubar) { + function hiddenChecker(aHidden) { + // The hidden attribute isn't what is set, so it's useless here -- use + // information from the box model instead. + return () => { + return (menubar.getBoundingClientRect().height != 0) != aHidden; + }; + } + await TestUtils.waitForCondition( + () => Services.focus.activeWindow == controller.window + ); + await set_autohide_menubar(controller, menubar, true); + utils.waitFor(hiddenChecker(true), "Menubar should be hidden"); + + menubar.focus(); + EventUtils.synthesizeKey("VK_ALT", {}, controller.window); + utils.waitFor( + hiddenChecker(false), + "Menubar should be shown after pressing ALT!" + ); + + info("Menubar showing or not should toggle for ALT."); + await set_autohide_menubar(controller, menubar, false); + utils.waitFor(hiddenChecker(false), "Menubar should be shown"); + Assert.ok("help_test_autohide success"); +} + +add_task(async function test_autohidden_menubar_3pane() { + let menubar = mc.window.document.getElementById("toolbar-menubar"); + await help_test_autohide(mc, menubar); +}); + +add_task(async function test_autohidden_menubar_message_window() { + await be_in_folder(menuFolder); + select_click_row(0); + let msgc = await open_selected_message_in_new_window(); + let menubar = msgc.window.document.getElementById("toolbar-menubar"); + + await help_test_autohide(msgc, menubar); + close_message_window(msgc); +}); + +registerCleanupFunction(async function () { + toggle_main_menu(menuState); + await be_in_folder(inboxFolder); + menuFolder.deleteSelf(null); +}); diff --git a/comm/mail/test/browser/message-window/browser_commands.js b/comm/mail/test/browser/message-window/browser_commands.js new file mode 100644 index 0000000000..32ff6d5bdc --- /dev/null +++ b/comm/mail/test/browser/message-window/browser_commands.js @@ -0,0 +1,103 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +var { MailServices } = ChromeUtils.import( + "resource:///modules/MailServices.jsm" +); + +var { + be_in_folder, + create_folder, + get_about_message, + make_message_sets_in_folders, + mc, + open_message_from_file, + press_delete, + select_click_row, +} = ChromeUtils.import( + "resource://testing-common/mozmill/FolderDisplayHelpers.jsm" +); +var { click_menus_in_sequence, close_window } = ChromeUtils.import( + "resource://testing-common/mozmill/WindowHelpers.jsm" +); + +var folder1, folder2; + +add_setup(async function () { + folder1 = await create_folder("CopyFromFolder"); + folder2 = await create_folder("CopyToFolder"); + await make_message_sets_in_folders([folder1], [{ count: 1 }]); +}); + +add_task(async function test_copy_eml_message() { + // First, copy an email to a folder and delete it immediately just so it shows + // up in the recent folders list. This simplifies navigation of the copy + // context menu. + await be_in_folder(folder1); + let message = select_click_row(0); + MailServices.copy.copyMessages( + folder1, + [message], + folder2, + true, + null, + mc.window.msgWindow, + true + ); + await be_in_folder(folder2); + select_click_row(0); + press_delete(mc); + + // Now, open a .eml file and copy it to our folder. + let file = new FileUtils.File(getTestFilePath("data/evil.eml")); + let msgc = await open_message_from_file(file); + let aboutMessage = get_about_message(msgc.window); + + // First check the properties are correct when opening the .eml from file. + let emlMessage = aboutMessage.gMessage; + Assert.equal(emlMessage.mime2DecodedSubject, "An email"); + Assert.equal(emlMessage.mime2DecodedAuthor, "from@example.com"); + Assert.equal( + emlMessage.date, + new Date("Mon, 10 Jan 2011 12:00:00 -0500").getTime() * 1000 + ); + Assert.equal( + emlMessage.messageId, + "11111111-bdfd-ca83-6479-3427940164a8@invalid" + ); + + let documentChild = msgc.window.content.document.documentElement; + EventUtils.synthesizeMouseAtCenter( + documentChild, + { type: "contextmenu", button: 2 }, + documentChild.ownerGlobal + ); + await click_menus_in_sequence( + aboutMessage.document.getElementById("mailContext"), + [ + { id: "mailContext-copyMenu" }, + { label: "Recent" }, + { label: "CopyToFolder" }, + ] + ); + close_window(msgc); + + // Make sure the copy worked. Make sure the first header is the one used, + // in case the message (incorrectly) has multiple when max-number is 1 + // according to RFC 5322. + let copiedMessage = select_click_row(0); + Assert.equal(copiedMessage.mime2DecodedSubject, "An email"); + Assert.equal(copiedMessage.mime2DecodedAuthor, "from@example.com"); + Assert.equal( + copiedMessage.date, + new Date("Mon, 10 Jan 2011 12:00:00 -0500").getTime() * 1000 + ); + Assert.equal(copiedMessage.numReferences, 2); + Assert.equal( + copiedMessage.messageId, + "11111111-bdfd-ca83-6479-3427940164a8@invalid" + ); +}); diff --git a/comm/mail/test/browser/message-window/browser_emlSubject.js b/comm/mail/test/browser/message-window/browser_emlSubject.js new file mode 100644 index 0000000000..f8fc12c4de --- /dev/null +++ b/comm/mail/test/browser/message-window/browser_emlSubject.js @@ -0,0 +1,48 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Tests that opening an .eml file with empty subject works. + */ + +"use strict"; + +var { open_message_from_file } = ChromeUtils.import( + "resource://testing-common/mozmill/FolderDisplayHelpers.jsm" +); +var { close_window } = ChromeUtils.import( + "resource://testing-common/mozmill/WindowHelpers.jsm" +); + +async function check_eml_window_title(subject, eml) { + let file = new FileUtils.File(getTestFilePath(`data/${eml}`)); + let msgc = await open_message_from_file(file); + + let brandBundle = Services.strings.createBundle( + "chrome://branding/locale/brand.properties" + ); + let productName = brandBundle.GetStringFromName("brandFullName"); + let expectedTitle = subject; + if (expectedTitle && AppConstants.platform != "macosx") { + expectedTitle += " - "; + } + + if (!expectedTitle || AppConstants.platform != "macosx") { + expectedTitle += productName; + } + + await TestUtils.waitForCondition( + () => msgc.window.document.title == expectedTitle + ); + Assert.equal(msgc.window.document.title, expectedTitle); + close_window(msgc); +} + +add_task(async function test_eml_empty_subject() { + await check_eml_window_title("", "./emptySubject.eml"); +}); + +add_task(async function test_eml_normal_subject() { + await check_eml_window_title("An email", "./evil.eml"); +}); diff --git a/comm/mail/test/browser/message-window/browser_vcardActions.js b/comm/mail/test/browser/message-window/browser_vcardActions.js new file mode 100644 index 0000000000..8be0246c3e --- /dev/null +++ b/comm/mail/test/browser/message-window/browser_vcardActions.js @@ -0,0 +1,101 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Tests for attached vcards. + */ + +"use strict"; + +var { get_cards_in_all_address_books_for_email } = ChromeUtils.import( + "resource://testing-common/mozmill/AddressBookHelpers.jsm" +); +var { close_window, plan_for_modal_dialog, wait_for_modal_dialog } = + ChromeUtils.import("resource://testing-common/mozmill/WindowHelpers.jsm"); + +async function openMessageFromFile(file) { + let fileURL = Services.io + .newFileURI(file) + .mutate() + .setQuery("type=application/x-message-display") + .finalize(); + + let winPromise = BrowserTestUtils.domWindowOpenedAndLoaded(); + window.openDialog( + "chrome://messenger/content/messageWindow.xhtml", + "_blank", + "all,chrome,dialog=no,status,toolbar", + fileURL + ); + let win = await winPromise; + await BrowserTestUtils.waitForEvent(win, "MsgLoaded"); + if (win.content.document.readyState != "complete") { + await BrowserTestUtils.waitForEvent(win.content, "load", true); + } + await TestUtils.waitForCondition(() => Services.focus.activeWindow == win); + return win; +} + +/** + * Bug 1374779 + * Check if clicking attached vCard image opens the Address Book and adds a contact. + */ +add_task(async function test_check_vcard_icon() { + // Force full screen to avoid UI issues before the AB gets fully responsive. + window.fullScreen = true; + + let newcards = get_cards_in_all_address_books_for_email( + "meister@example.com" + ); + Assert.equal(newcards.length, 0, "card does not exist at the start"); + + let tabPromise = BrowserTestUtils.waitForEvent(window, "TabOpen"); + + let file = new FileUtils.File(getTestFilePath("data/test-vcard-icon.eml")); + let messageWindow = await openMessageFromFile(file); + + // Click icon on the vcard block. + let vcard = messageWindow.content.document.querySelector(".moz-vcard-badge"); + EventUtils.synthesizeMouseAtCenter(vcard, {}, vcard.ownerGlobal); + await tabPromise; + await TestUtils.waitForCondition( + () => Services.focus.activeWindow == window, + "the main window was focused" + ); + + let tabmail = document.getElementById("tabmail"); + Assert.equal( + tabmail.currentTabInfo.mode.name, + "addressBookTab", + "the Address Book tab opened" + ); + + let abWindow = tabmail.currentTabInfo.browser.contentWindow; + let saveEditButton = await TestUtils.waitForCondition( + () => abWindow.document.getElementById("saveEditButton"), + "Address Book page properly loaded" + ); + await TestUtils.waitForCondition( + () => BrowserTestUtils.is_visible(saveEditButton), + "entered edit mode" + ); + saveEditButton.scrollIntoView(); + EventUtils.synthesizeMouseAtCenter(saveEditButton, {}, abWindow); + + // Check new card was created from the vcard. + newcards = get_cards_in_all_address_books_for_email("meister@example.com"); + Assert.equal(newcards.length, 1, "exactly one card created"); + Assert.equal(newcards[0].displayName, "Meister", "display name saved"); + Assert.ok( + newcards[0].photoURL.startsWith( + "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/" + ), + "PHOTO correctly saved" + ); + + tabmail.closeTab(tabmail.currentTabInfo); + // Reset the window size. + window.fullScreen = false; + await BrowserTestUtils.closeWindow(messageWindow); +}); diff --git a/comm/mail/test/browser/message-window/browser_viewPlaintext.js b/comm/mail/test/browser/message-window/browser_viewPlaintext.js new file mode 100644 index 0000000000..a9af4caecd --- /dev/null +++ b/comm/mail/test/browser/message-window/browser_viewPlaintext.js @@ -0,0 +1,138 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Tests that the plain text part of multipart/alternative messages can be correctly viewed. + */ + +"use strict"; + +var { open_message_from_file } = ChromeUtils.import( + "resource://testing-common/mozmill/FolderDisplayHelpers.jsm" +); +var { close_window } = ChromeUtils.import( + "resource://testing-common/mozmill/WindowHelpers.jsm" +); + +/** + * Retrieve the textual content of the message and compare it. + * + * @param aWindow Message window. + * @param aExpected Expected content. + * @param aDontWantToSee Content of other MIME parts we don't want to see. + */ +function check_content(aWindow, aExpected, aDontWantToSee) { + let messageContent = aWindow.content.document.documentElement.textContent; + + if (aExpected != aDontWantToSee) { + Assert.ok( + messageContent.includes(aExpected), + "Didn't find expected content" + ); + Assert.ok( + !messageContent.includes(aDontWantToSee), + "Found content that shouldn't be there" + ); + } else { + let ind = messageContent.indexOf(aExpected); + Assert.ok(ind >= 0, "Didn't find expected content"); + if (ind >= 0) { + Assert.ok( + !messageContent.substr(ind + aExpected.length).includes(aExpected), + "Found content a second time" + ); + } + } +} + +/** + * Load a message from a file and display it as plain text and HTML. Check that the + * correct MIME part is displayed. + * + * @param aFilePath Path to the file containing the message to load and display. + * @param aExpectedPlainText Expected content when viewed as plain text. + * @param aExpectedHTML Expected content when viewed as HTML. + */ +async function checkSingleMessage( + aFilePath, + aExpectedPlainText, + aExpectedHTML +) { + let file = new FileUtils.File(getTestFilePath(`data/${aFilePath}`)); + + // Load and display as plain text. + Services.prefs.setBoolPref("mailnews.display.prefer_plaintext", true); + Services.prefs.setIntPref("mailnews.display.html_as", 1); + let msgc = await open_message_from_file(file); + check_content(msgc.window, aExpectedPlainText, aExpectedHTML); + close_window(msgc); + + // Load and display as HTML. + Services.prefs.setBoolPref("mailnews.display.prefer_plaintext", false); + Services.prefs.setIntPref("mailnews.display.html_as", 0); + msgc = await open_message_from_file(file); + check_content(msgc.window, aExpectedHTML, aExpectedPlainText); + close_window(msgc); +} + +/** + * Tests that messages with various MIME parts are shown correctly when displayed + * as plain text or HTML. + */ +add_task(async function test_view() { + // First the straight forward tests: + // 1) multipart/alternative + // 2) multipart/alternative with embedded multipart/related + // 3) multipart/alternative with embedded multipart/related embedded in multipart/mixed + await checkSingleMessage("./test-alt.eml", "Plain Text", "HTML Body"); + await checkSingleMessage("./test-alt-rel.eml", "Plain Text", "HTML Body"); + await checkSingleMessage( + "./test-alt-rel-with-attach.eml", + "Plain Text", + "HTML Body" + ); + + // 4) HTML part missing + // 5) Plain part missing + await checkSingleMessage( + "./test-alt-HTML-missing.eml", + "Plain Text", + "Plain Text" + ); + await checkSingleMessage( + "./test-alt-plain-missing.eml", + "HTML Body", + "HTML Body" + ); + + // 6) plain and HTML parts reversed in order + await checkSingleMessage( + "./test-alt-plain-HTML-reversed.eml", + "Plain Text", + "HTML Body" + ); + + // 7) 3 alt. parts with 2 plain and 1 HTML part + await checkSingleMessage("./test-triple-alt.eml", "Plain Text", "HTML Body"); + + // 8) 3 alt. parts with 2 plain and 1 multipart/related + await checkSingleMessage( + "./test-alt-rel-text.eml", + "Plain Text", + "HTML Body" + ); + + // Now some cases that don't work yet. + // 9) multipart/related with embedded multipart/alternative + await checkSingleMessage("./test-rel-alt.eml", "HTML Body", "HTML Body"); + + // Bug 1367156: Rogue message which has an image as the last part. + await checkSingleMessage("./test-alt-rogue.eml", "Plain Text", "HTML Body"); + await checkSingleMessage("./test-alt-rogue2.eml", "Plain Text", "HTML Body"); +}); + +registerCleanupFunction(function () { + Services.prefs.clearUserPref("mailnews.display.prefer_plaintext"); + Services.prefs.clearUserPref("mailnews.display.html_as"); +}); diff --git a/comm/mail/test/browser/message-window/data/emptySubject.eml b/comm/mail/test/browser/message-window/data/emptySubject.eml new file mode 100644 index 0000000000..f099e06c86 --- /dev/null +++ b/comm/mail/test/browser/message-window/data/emptySubject.eml @@ -0,0 +1,8 @@ +Date: Mon, 10 Jan 2011 12:00:00 -0500 +From: user@example.com +To: user@example.com +Subject: +Content-Type: text/plain + +Hello there + diff --git a/comm/mail/test/browser/message-window/data/evil.eml b/comm/mail/test/browser/message-window/data/evil.eml new file mode 100644 index 0000000000..8b1d386518 --- /dev/null +++ b/comm/mail/test/browser/message-window/data/evil.eml @@ -0,0 +1,16 @@ +Date: Mon, 10 Jan 2011 12:00:00 -0500
+From: from@example.com
+From: evil@example.com
+Sender: send1@example.com
+Sender: send2@example.com
+To: to@example.com
+Date: Tue, 12 Jan 2011 12:00:00 -0500
+Subject: An email
+Subject: Dup subject
+Message-ID: <11111111-bdfd-ca83-6479-3427940164a8@invalid>
+Message-ID: <22222222-bdfd-ca83-6479-3427940164a8@invalid>
+References: <aaaaaaaa-3d7b-22d2-f859-4c1e6a2164d6@invalid> <bbbbbbb-3d7b-22d2-f859-4c1e6a2164d6@invalid>
+References: <ccccccc-3d7b-22d2-f859-4c1e6a2164d6@invalid>
+Content-Type: text/plain
+
+Hello there
diff --git a/comm/mail/test/browser/message-window/data/test-alt-HTML-missing.eml b/comm/mail/test/browser/message-window/data/test-alt-HTML-missing.eml new file mode 100644 index 0000000000..87a814a27d --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-alt-HTML-missing.eml @@ -0,0 +1,17 @@ +From: test <test@example.com>
+Subject: test multipart, HTML missing
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+--------------alternative
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-plain-HTML-reversed.eml b/comm/mail/test/browser/message-window/data/test-alt-plain-HTML-reversed.eml new file mode 100644 index 0000000000..9287e3ec34 --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-alt-plain-HTML-reversed.eml @@ -0,0 +1,31 @@ +From: test <test@example.com>
+Subject: test multipart, plain and HTML reversed
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+
+--------------alternative
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+--------------alternative
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-plain-missing.eml b/comm/mail/test/browser/message-window/data/test-alt-plain-missing.eml new file mode 100644 index 0000000000..76bfd50f7c --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-alt-plain-missing.eml @@ -0,0 +1,24 @@ +From: test <test@example.com>
+Subject: test multipart, plain part missing
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+--------------alternative
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-rel-text.eml b/comm/mail/test/browser/message-window/data/test-alt-rel-text.eml new file mode 100644 index 0000000000..058bd9f73f --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-alt-rel-text.eml @@ -0,0 +1,50 @@ +From: test <test@example.com> +Subject: test multipart, alternative first, with image +To: test2 <test2@example.com> +Date: Sat, 27 Feb 2016 17:11:45 +0100 +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="------------alternative" + +This is a multi-part message in MIME format. +--------------alternative +Content-Type: text/plain; charset=UTF-8; format=flowed +Content-Transfer-Encoding: 8bit + +Plain Text + +--------------alternative +Content-Type: multipart/related; + boundary="------------related" + + +--------------related +Content-Type: text/html; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +<html> + <head> + <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> + </head> + <body bgcolor="#FFFFFF" text="#000000"> + HTML Body<br> + <img src="cid:part1" alt=""><br> + </body> +</html> + +--------------related +Content-Type: image/png +Content-Transfer-Encoding: base64 +Content-ID: <part1> + +iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA +lCEwN+YGfiYAAAAASUVORK5CYII= +--------------related-- + +--------------alternative +Content-Type: text; charset=UTF-8; +Content-Transfer-Encoding: 8bit + +Unspecified text type (not text/plain) + +--------------alternative-- diff --git a/comm/mail/test/browser/message-window/data/test-alt-rel-with-attach.eml b/comm/mail/test/browser/message-window/data/test-alt-rel-with-attach.eml new file mode 100644 index 0000000000..f3c6572358 --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-alt-rel-with-attach.eml @@ -0,0 +1,66 @@ +From: test <test@example.com>
+Subject: test multipart, alternative first, with image and image attachment
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="------------mixed"
+
+This is a multi-part message in MIME format.
+--------------mixed
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+
+--------------alternative
+Content-Type: text/plain; charset=windows-1252; format=flowed
+Content-Transfer-Encoding: 7bit
+
+Plain Text
+
+--------------alternative
+Content-Type: multipart/related;
+ boundary="------------related"
+
+
+--------------related
+Content-Type: text/html; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+
+<html>
+ <head>
+
+ <meta http-equiv="content-type" content="text/html; charset=windows-1252">
+ </head>
+ <body text="#000000" bgcolor="#FFFFFF">
+ HTML Body<br>
+ <img src="cid:part1.DE278D8E.600E563A@jorgk.com" alt="">
+ </body>
+</html>
+
+--------------related
+Content-Type: image/png;
+ name="llpfblmjefjfhhce.png"
+Content-Transfer-Encoding: base64
+Content-ID: <part1.DE278D8E.600E563A@jorgk.com>
+Content-Disposition: inline;
+ filename="llpfblmjefjfhhce.png"
+
+iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAEUlEQVQImWOwCKjBihiGlgQA
+VT9BAeZezQ0AAAAASUVORK5CYII=
+--------------related--
+
+--------------alternative--
+
+--------------mixed
+Content-Type: image/png;
+ name="attach.png"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment;
+ filename="attach.png"
+
+iVBORw0KGgoAAAANSUhEUgAAAAkAAAALCAIAAAAiOzBMAAAAAXNSR0IArs4c6QAAAARnQU1B
+AACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAASdEVYdFNvZnR3YXJlAEdyZWVuc2hv
+dF5VCAUAAAAtSURBVChTY3Dx6wYiZ/9OTMTg7A+UIEsOXQiOaCkX0I6JiJBzDMCCcMsFdAIA
+xwttYrvggeAAAAAASUVORK5CYII=
+--------------mixed--
diff --git a/comm/mail/test/browser/message-window/data/test-alt-rel.eml b/comm/mail/test/browser/message-window/data/test-alt-rel.eml new file mode 100644 index 0000000000..ae7121ff23 --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-alt-rel.eml @@ -0,0 +1,45 @@ +From: test <test@example.com>
+Subject: test multipart, alternative first, with image
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+--------------alternative
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative
+Content-Type: multipart/related;
+ boundary="------------related"
+
+
+--------------related
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ <img src="cid:part1" alt=""><br>
+ </body>
+</html>
+
+--------------related
+Content-Type: image/png
+Content-Transfer-Encoding: base64
+Content-ID: <part1>
+
+iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA
+lCEwN+YGfiYAAAAASUVORK5CYII=
+--------------related--
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-rogue.eml b/comm/mail/test/browser/message-window/data/test-alt-rogue.eml new file mode 100644 index 0000000000..0b5f31b4ad --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-alt-rogue.eml @@ -0,0 +1,42 @@ +From: test <test@example.com>
+Subject: test multipart, rogue message, last part image
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary=--FIRSTboundary
+
+----FIRSTboundary
+Content-Type: multipart/alternative;
+ boundary="--SECONDboundary"
+
+----SECONDboundary
+Content-Type: text/plain; charset=utf-8
+
+Plain Text
+
+----SECONDboundary
+Content-Type: text/html; charset=utf-8
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+----SECONDboundary--
+
+----FIRSTboundary
+Content-Transfer-Encoding: base64
+Content-Disposition: inline;
+ filename=blue.png
+Content-Type: image/png;
+
+iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA
+lCEwN+YGfiYAAAAASUVORK5CYII=
+
+----FIRSTboundary--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt-rogue2.eml b/comm/mail/test/browser/message-window/data/test-alt-rogue2.eml new file mode 100644 index 0000000000..f774d8fcbd --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-alt-rogue2.eml @@ -0,0 +1,36 @@ +From: test <test@example.com>
+Subject: test multipart, rogue message, last part image
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary=--FIRSTboundary
+
+----FIRSTboundary
+Content-Type: text/plain; charset=utf-8
+
+Plain Text
+
+----FIRSTboundary
+Content-Type: text/html; charset=utf-8
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+----FIRSTboundary
+Content-Transfer-Encoding: base64
+Content-Disposition: inline;
+ filename=blue.png
+Content-Type: image/png;
+
+iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA
+lCEwN+YGfiYAAAAASUVORK5CYII=
+
+----FIRSTboundary--
+
diff --git a/comm/mail/test/browser/message-window/data/test-alt.eml b/comm/mail/test/browser/message-window/data/test-alt.eml new file mode 100644 index 0000000000..5a952b4051 --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-alt.eml @@ -0,0 +1,30 @@ +From: test <test@example.com>
+Subject: test multipart, correct plain and HTML
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+
+This is a multi-part message in MIME format.
+--------------alternative
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ </body>
+</html>
+
+--------------alternative--
+
diff --git a/comm/mail/test/browser/message-window/data/test-rel-alt.eml b/comm/mail/test/browser/message-window/data/test-rel-alt.eml new file mode 100644 index 0000000000..5e965f3d8b --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-rel-alt.eml @@ -0,0 +1,41 @@ +From: test <test@example.com>
+Subject: test multipart, related first, with image
+To: test2 <test2@example.com>
+Date: Sat, 27 Feb 2016 17:11:45 +0100
+MIME-Version: 1.0
+Content-Type: multipart/related;
+ boundary="------------related"
+
+--------------related
+Content-Type: multipart/alternative;
+ boundary="------------alternative"
+Content-Type: text/plain; charset=UTF-8; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Plain Text
+
+--------------alternative
+Content-Type: text/html; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+<html>
+ <head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ </head>
+ <body bgcolor="#FFFFFF" text="#000000">
+ HTML Body<br>
+ <img src="cid:part1" alt=""><br>
+ </body>
+</html>
+
+--------------alternative
+
+--------------related
+Content-Type: image/png
+Content-Transfer-Encoding: base64
+Content-ID: <part1>
+
+iVBORw0KGgoAAAANSUhEUgAAAAYAAAALCAIAAADTMGvBAAAAEUlEQVQImWPgsi5DQwxDWggA
+lCEwN+YGfiYAAAAASUVORK5CYII=
+
+--------------related--
diff --git a/comm/mail/test/browser/message-window/data/test-triple-alt.eml b/comm/mail/test/browser/message-window/data/test-triple-alt.eml new file mode 100644 index 0000000000..8232d27ad0 --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-triple-alt.eml @@ -0,0 +1,36 @@ +From: "Test tester" <test_mail@example.com> +To: "Robert Recipient" <robert@example.com> +Subject: Alternative with 3 parts +Date: Wed, 26 Sep 2001 09:16:49 -0400 +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="------------alternative" + +This is a multi-part message in MIME format. + +--------------alternative +Content-Type: text/plain; charset="iso-8859-1" +Content-Transfer-Encoding: 7bit + +Plain Text + +--------------alternative +Content-Type: text/html; charset="iso-8859-1" +Content-Transfer-Encoding: quoted-printable + +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML><HEAD></HEAD> +<BODY> + +HTML Body<p> + +</BODY> +</HTML> + +--------------alternative +Content-Type: text; charset="iso-8859-1" +Content-Transfer-Encoding: 8bit + +Unspecified text type (not text/plain) + +--------------alternative-- diff --git a/comm/mail/test/browser/message-window/data/test-vcard-icon.eml b/comm/mail/test/browser/message-window/data/test-vcard-icon.eml new file mode 100644 index 0000000000..cc925b7c45 --- /dev/null +++ b/comm/mail/test/browser/message-window/data/test-vcard-icon.eml @@ -0,0 +1,800 @@ +From - Tue Jun 20 20:58:09 2017 +X-Account-Key: account1 +X-UIDL: UID111111-1111111111 +X-Mozilla-Status: 0001 +X-Mozilla-Status2: 00000000 +X-Mozilla-Keys: +Delivery-date: Tue, 20 Jun 2017 20:46:01 +0200 +MIME-Version: 1.0 +Message-ID: <vcard@link.invalid> +From: <meister@mail.example.com> +To: Hugo <hugo@example.com> +Subject: Click on inline vCard and hang +Content-Type: multipart/mixed; + boundary=sgnirk-111111111111111 +Date: Tue, 20 Jun 2017 20:45:48 +0200 + +--sgnirk-111111111111111 +Content-Type: text/html; charset=UTF-8 + +<html><head></head> +<body> +<div style="font-family: Verdana;font-size: 12.0px;"> +<div> +<div> +<div>Hallo Hugo</div> + +<div>Set attachments to inline display and click on the addbook: link in the vCard.</div> + +</div></div></body></html> +--sgnirk-111111111111111 +Content-Type: text/vcard; charset=UTF-8; name="meister.vcf" +Content-Disposition: attachment; filename="meister.vcf" +Content-Transfer-Encoding: base64 + +QkVHSU46VkNBUkQNClZFUlNJT046My4wDQpQUk9ESUQ6LS8vU2FicmUvL1NhYnJlIFZPYmpl +Y3QgNC41LjMvL0VODQpVSUQ6NDM3YzU0MjAtZDQ1MC0xMDNkLThhN2UtZjk0MmE0NmIzZGY3 +DQpGTjtYLU5DLVNDT1BFPXYyLWZlZGVyYXRlZDpNZWlzdGVyDQpFTUFJTDtYLU5DLVNDT1BF +PXYyLWZlZGVyYXRlZDptZWlzdGVyQGV4YW1wbGUuY29tDQpQSE9UTztFTkNPRElORz1iO1RZ +UEU9SlBFRztYLU5DLVNDT1BFPXYyLWZlZGVyYXRlZDovOWovNEFBUVNrWkpSZ0FCQVFFQVlB +QmcNCiBBQUQvL2dBN1ExSkZRVlJQVWpvZ1oyUXRhbkJsWnlCMk1TNHdJQ2gxYzJsdVp5QkpT +a2NnU2xCRlJ5QjJOaklwTENCeGRXRnNhWA0KIFI1SUQwZ09EQUsvOXNBUXdBR0JBVUdCUVFH +QmdVR0J3Y0dDQW9RQ2dvSkNRb1VEZzhNRUJjVUdCZ1hGQllXR2gwbEh4b2JJeHdXDQogRmlB +c0lDTW1KeWtxS1JrZkxUQXRLREFsS0Nrby85c0FRd0VIQndjS0NBb1RDZ29US0JvV0dpZ29L +Q2dvS0Nnb0tDZ29LQ2dvS0MNCiBnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dv +S0Nnb0tDZ29LQ2dvLzhJQUVRZ0NBQUlBQXdFaUFBSVJBUU1SQWYvRQ0KIEFCd0FBUUFCQlFF +QkFBQUFBQUFBQUFBQUFBQUJBZ1FGQmdjRENQL0VBQmtCQVFBREFRRUFBQUFBQUFBQUFBQUFB +QUFCQXdRQ0JmDQogL2FBQXdEQVFBQ0VBTVFBQUFCNllUM0FrQUVrSkVKRUptRk16QkNVb1RC +Q1JTbUVJbEtBUkV3VXhWVE1JbUpJa1FZRk9jMWZSTFANCiBxL09ZbVBYcXp3NjU2MzFXYVd1 +NjFMcERrZERycjBjMTJseHNNd2N6RXhNb2tpRWlJbUVSRXBBWE5VVFYzSk1BQ1FUQVNnVEFC +Qw0KIFJFU0lURW9Fb2lTSWlZbEVURW9pcUNsS1lwaXJRRSt1aVQ3WGJrVEZtaDFma2xOR1Bm +ZE84S3V1L0gyTEx3bnFMUElkVG95YXZ2DQogOE9NY2lTSkVBUk1BVEVKZ3V5YXUweE1FZ2tn +UnFDZHd3L0xjUjNiditDd2szWGU5clc2czhmU29tOHltdnVlTi93QnM0bDQ4VmQNCiAvY2kz +MnZQbjRxaU9hVXhLSXFpVVJWQlNuSFN3SE9KOWJ0b1c2UUFBQUVTTXQwL2pLakYyMXJHejha +a3dtQUFBRVRDQkpjekUxOQ0KIHBJU2lSaU5lNXpObVZ4ZnBPbmFGbGdBQUFBRHg5a2M1ZnB2 +R3FLTTNlV3FiWFZsaE1TaUtvUkhKZDc1TDFkN2pUdkNaQUFBQUFBDQogOGQ3MHJ4cno5eG5V +ZHRwd1NpWkFBQUVpNG1tYStxa1RFUnpYejFQdlJIcWF0Z1RJSkFBQUFBQUE4dWlhQjQxWis5 +TmEyWFBpaE4NCiBpY3Z4RnRkYWQ0V1hBQUFBQUFBQWVmYU9NN3BSaDN0RTg1Z0VTSWlZSlJK +Y1RFMTlUenpMOHY2dG4xTlc4SmtBQUFBQUFBQUJSWA0KIGk2NnZUTlloa3diRmRhbjR6MWtw +TnZvaE1nQWdFZ0FBQUFNbGpWZFBiQlY1d0FDSkVTRnhZM3ZJcSs4TlhFNi9SRHJzQUFBQUFB +DQoganhpUGVNdnNWV2ZRZlBzV1RycjRYNjk3aHo4LytQUWRCcnJEbUUrVjlmb3JHbllBaXgy +aW1yRE5qeG5NNDk0ZXRzMUR2c0FBQUINCiBiM0Z0eFgzU1lxcDh5QVJJQ1NKRFZlYitseTEy +ZFc0YVQzWmNDN1FBQUFBQXBuTDExZUhVY3Q2NU1VUlZFY1VqcFRGVk11ZGFGMA0KIGptdktx +aXE5dTB4VWFOZ1NBaTV0L092anNsZXFiVjVYRnRwMjlKY1k5ZXFjNjJyQjUrbXEwRWhJQmJY +TnR4VjNTcW11anpZRWtTDQogQkpDUnlmcS9wcjlmWE5mRHg5dFhvaDNZQUFBQUloUjNMbW5W +OG5ueVJYVk1Ja2lZbEZOWGthMXlYSmVOK3FSZnJBQThxTG5wbU8NCiBqbUZXMjZmWjFsT284 +WTdOazRrd3RQZWFpcUlqUWRTNmZnZFBHcnJlNDMzaDEwQkhoY1czRmZkSzdhNm84MkVpRWlB +QWV2TytpYw0KIHE1N3dFbXYwZ21RQUFBRk5YbHp6MGpkdGIyVEY1c2tJbUVBaVlhZHVQSjU3 +MXowTm5wQklFZ1JlMmR2VlgybTJzY3g1ZkhKdWo1DQogRHg2aTQxclpiU0pvdnRSekU4WTdK +YlQ2MjU5UjVmMzdCV2RjaFRHdmFIZmEzdUtlZWVzNWpUTjF6ZWJDWW5sRXdBUUQwNUQxN2oN +CiAwV1k0YS9TQUFBQUFqejlmUG5ucm13NnB0V0x6WmdRUWtJSEYrMGNiNnN4bzJlaUFBQWlV +UnMrOTh3NmY1ZElWZExPOHcvWEZydg0KIFNxL0hDUkVWSllmajNkOGQxMXhaNzIrdmRNUzc3 +emZWdUQ5dXkrZmRJUlVJbEtrU2lTcmtYWE9XUlpnaHI5SUFBQUFCVFVpTjkzDQogcmwvVDhm +bXloSEV3SkFjMTZUaXBuajArSHZyOUVPdXdBQVBYcjNGZXorZFJVTTNWdGM0ZmJiczFHcDNu +Qis2ZnB5dkc1S1VnUk0NCiBSRmx5SHRQbjExd2V2S1lYVnU5TnIxYnhjOTFZdktVNElFa0Vo +QjZjNzZIcTNNODVlZnBxOU1KNkFBQUFBeVBZK0NkNHllZDZJag0KIG1xcFRNek1RSmhKei9S +KzdjeDZ1MXQ1K21uY0V5QWVYckVXM1crVmI3aXEyZ1k1c3NwNFl1eWpiTFM4bTdOVE1rZ0lq +SHd2OVNvDQogeTFkM2xwRzk0anFkRHhmZHNicTQ1VDJURTVlSzZ4UElJaE1GZHY3dVhCN3E2 +dGRIcEIzYUFBQUFCNGRhNVh0OUdUb2swelhrbEMNCiBGVUFJS29tWW5uT2xkNzFicTNtYUdq +YkpSMTFSVFJhMVZaVE40VHhkZHBXTjk1bksydVJpOG5QaDNUbWZYVmZQcmpZc2I0WGNkWQ0K +IDMweUxpd1lQbnZPYTVuOWN1cDNNYXNoTUpSTUlDU0FrUkhQTlY2bHlidlo3b20vWUFBQUFB +dnJHMzRwN3hOcmM1L1BxUkpLSkltDQogS29KZ21ZSWkwNWgxcUo2NE5ucjNiK05WMWg4UFlV +TmNyM0RCYXU3WHFuTEw2bmpwYWl2UGFBQUFNUk1aZnhqM05IekdSeEhmR3kNCiBYK21ibHF4 +eU91WUJFVlJLRXdFU1J4ZnRQUFZtcW9uUjZRVElBQUFEejlFYzlFMnptSFRzdm0xSWx5QlVU +QWlVa1NJbURUOHhlYQ0KIExUYm5iZk42N1ZmbUx6SDRoTzFEanNBQUFCUldtTkx2Tm90K3Vk +Y3ZNdlpPckxZdGR1cnF0a1F2eHlCQklRUUppY1prMFR3djN5DQogRmhkNlFkMmdBQUFBVmRz +NFIyVE5neWswekZGVTBWUXFRaEtJVFVoS1VTUEQzUTBpbmVaNG5TZlhjTkk0czJZWjlZQUE4 +ajF0c0oNCiBqZTlXZDhNVEU2Y3Q2NFNTL3g3TjljZWUxUk9qeFpRN3p5UVRFd0FpbVlTbWFa +VHFYUHUxY1duVFVMOXdBQUFBRWJ4cEdjcXk5Uw0KIG1tYXNVMVV5bVVJU2dUTk1rb2xJRW9t +RFROejFQbnJOcUs4bTBJa0JyV3k2MTFmcmVFdTlOczUzbllPYjlSbTNMZXViWCtaYmUxDQog +VWRVUkV4UEpCRlNCTUFCQWtBNTUwVEhSMXlTYmU0djlNT3V3QUFBRXhiY1ZkMW13djZQT21x +aXBFeElBQWxFd2xFcEJNNFBPWXoNCiBsWlgrRnpXUGNFZEFNRm5mQ2U5RDFYb2RuMTZPazlE +OE1qYm0yMkRSNGNFSUNTSkZLcUNCTUVDWVNRQURsT0w2SnpYdmQ3QzNVQQ0KIEFBQTgvU0k1 +Nk50R2g3M244dFhSVkVTQklFb1JNSlNoQ3FCTTR2SjZ6ek1aanc5OGU4SWtBQnJXeTYzWlh1 +VVZVNjhaQ2VSQVNsDQogQUVoRk5Rb21ZQ3FKVXpJZ0ZQRisxODVpeldVVHA5SUVnQUFCRWJG +MHZsZlZNL214VkJYV0lFa2lJU2hNQVJLQ3JUZHExV20zWXgNCiBsMmdBQVRyR3pZRHZqYnFi +YTUyWVlFeENSRWtwZ0FnQWlvVXhWRXlpWVFCR0h6STRaN2wzcEIzYUFBQUVNbjFya3ZXcy9t +SW1GZA0KIFZWRmNFa1NCQW1BQ05UNW0zMlhVOXV5NndydUFBQWVYcVJxR3g0WFpOV0s5blI5 +MHQ0OUJNSmlaUklCQ0V3U2lTa1NFa0VwaVlJDQogNWRnOTAwcnZiSXUxQUFBSW1JWnZxWE91 +alovTEJ3bUVQUlJWRXpBQUlqVW9tK2VOdlJkcytxN0JTNTltRXpkT3NJa0FBREM1L3kNCiB3 +TnVmeDhzejdkUjU1blhMV3l2YjFOVmxRU0pnQUFwRWdFb2dFdGI1ajEzajNXcTRrdjJnQUFQ +UDA4T2VPajdaYTNWSGxrQ1VTVA0KIE1DcWFKaFY0dEw0N2JMN1RrMkJ6M3JHOFlyRjNacS9m +WnRDYzdLb3JwMWdBQU5iMlMzbm5NNlBsZlMvSmZXdmhrYU5lcWJwWmFyDQogb3o3M052NzNV +VENaaUFBVXdTbEFxaEJNd01aeHpySEt1dFhzTDlvQkhoenpjRHJwbU1CMXluSmw0bHhqaElp +UUFUR3V3eG0wV2QNCiAvaTNCeFlBMXpZOWI2NDMyMzlQVFJqNS9zL2xqYWRHWEZkNEFDWWsx +cmZOSDJ5L0pwdXkzdW54M3NsTlNtL1VkejhkVDBaOTZlZg0KIHBmbkppWUFvRW9rQUJKcHVo +N0JnTE5vVzZoQmJldHJmMTFLR2VML29kTlZQbm9tSmdnaVlSTVNnVHB1Wm96MzVNWmRnQURG +WmF6DQogbUw3TGEzc3VuREdpYjVieE9KOU5ZMmVqWUhQUUFGR055dUR0bzNUVzlsbXpQcUdW +MS9OMDZ2WHo5SEZtcWJ4aDhUcHk3ZkV4ZlENCiBCUUpKZ0FLYXRTaWVmcVBTL3dCSU83Rmw2 +K1ZWTnpUY2RCaXZYZWxTNHlTazVoTUVSSWdURUExUFpOYTJYSHNDbThBQlI2VVRHUA0KIDJ2 +VWR2MDRVU1JyWGh0V2g4VzdJb3JvMUthaWNma05Sei9BRnpmNEhONHZ1cmNKaWJNL2pvZlFj +UkhWTEJaMmpZeEdYRmhuTkwyDQogdlhodVJaeFFKUUJNU1U4ZDIvUkowZWcwYjNqRy9WWjlM +Mi9lWXF4VWVzSjVrSmtoRWdoTUNKaENKUzFEWnRhMlhGdUNxMEFFYWwNCiBzODZKM3h0ZTM2 +bHRsK1NRTGE1ZzU3dE41cGxkMnpzSGUxMzMybjVERzlWM1crZU41Wm5rZFFpWU5Jek9ZMGF1 +N1poVHBwMWphYw0KIFozWHNEWDlnMllxRXVvaUtoVGpyM2tEdXk5STg3ZDNyT3g5QjRvd214 +ekhPWkZSRVJJUklBa0NKRVJNQWlZMUxaZGV6MlBaV0tiDQogd0FGajdhMzF4ZDdMcXVRc3B5 +M3BpUEpHMSsyaGVzODd4SGw3ZDEyTmpuVVRiWEVwQUFBTkkzZkFSUHF4K1F6N1FpZFczUEhZ +ZlQNCiBrMnNYMG9rYUpoT3JFNlB0MXpLSUVrVENCQ0pDUUFKSklJRVNJVENNWlk3QnA5Tisw +REpzQUExYmFOWXMrNjgvaU1qbTRuVjhwbA0KIElUUG5hMWN6Z3Q4eE90M1orZ1RSWDNURTJ1 +b1RHOGVYSzhMTHJHTTVlN2pwZHh6bnpoMHJGWEdXbzBXT1gxcUs3ZG1heFU2MlhXDQogTmtp +SXlDVy9EQ1lBRUV4RXdTUVFJbUpSTVRNd0pSSW1KSUJCSkFHbzdkNGN6NDE2enMyTGVIUFFH +cjdOcnRIZkd6NG5XTTBpMW4NCiBiRWRZRE0rMFJNMnZscFhWZWRzZGJ1dFdPMjlZMWEvbklZ +bUhxOGlkTVJ0bXI3ZDVIVlBVT1piRDVtbmNOUHozaFRvekk1NkJONg0KIGw2SG5RbUJFd1FK +aUFSRlZJRXdCS0pKUk1USUFJU0lTSWlxRFVjL2Rham4wYlNNMm9CVFVtTlgyakNXRThiUnJm +bnNjdE53dHo0DQogWDVyZkg1cnkwVTRMWXZEM21OZHh1ejY5dGVDbXJkRStsMW04TXJ1M3A4 +OWRWV1ZsejF2RzNZak1ZOTRjOWdmLy9FQURFUUFBRUUNCiBBQVFHQVFJR0FnTUJBQUFBQUFN +QkFnUUZBQVlSTUJBU0V4UWdRQ0V4TWhVaUl6TTFVQ1EwRmlVMlFmL2FBQWdCQVFBQkJRTCtt +Yw0KIDVHcEx1NHdGUGN6VEs4MHArSWtjOHVSWFJHdzQvOXpaMllZTFpjeVROVmpHdDRRb3hM +QThPTU9LSEV1NGlSbExtRWk0ZmEyTHNKDQogYTJUY0J2NURNUTdlTEsvczdlNDVGYXo4M0FR +bnk1QVVqVjBhWG1BYmNTWk1tWGhvMnQ4WG9oRnBBMll2N0c5czExRzFHcHhHcFINCiBFY3h6 +MVJFVHlpeGl6endhOEVOdnN5cktKRndmTWpNRnU3QXVIUzV6OEwxVnh5dXcxeDJZWlBzQjRI +ZnpXTEh6SEdjb0pRVHB1WA0KIDlqMndtTjAzRitsTFlzZzRFVmhtZXN2MG4zc2VPc3F5bXkx +UVRkZGhVUmNJeFdMRXVaY1hFRzJpeTlxZkpiRGpLNTV5N3FvaTRqDQoga1BEZlYydzVucTJG +Z0NFT2RaU3A2c1lqTjV3MFhFQzNrUWxoVEF6QitkN0w3eVo2RDJhNHByWHFyNlZ2ZE5CaFVj +UW5valVrY3QNCiBUYnNtZVYzTDdTQ0pORytpOXV1S0d4N2tlK3Z3bDFjS1JXTTVmVWMzNW9y +WHVFOEw2VDNWajZhRWRHUEhLMHdkNjh0Vk01akVZbg0KIHF2YXVLT3c3Mk53bW5TTEdCcnkr +bTVOVXl2STFEdTVoczFUREdvMVBXY3FOUUp5c08rem5QeEh1Wm9uWGRvMmJEK25xMGhPbmI3 +DQogbDlZOW9GamRQWWV2VmZ4RW1wL1ZDdkpQMjVzcGtPTzhqNVIvVFVqRXdwbTRRaXV4K291 +RDlWckdwb25HT254NnIvM2R1N21kOU0NCiA5SHFhckdxSjBsQVpiSGdWUEJHaklvQjhjMnI4 +OGZsNnRUbGI0RjZpWWgxS1NndW9TWU5WelJZYzV3MVJkZHduM3QrM1p6Rk83ZQ0KIE9Odksx +ejJ0d2lvdTg1ZVZLK3VQWXJCclkwTnZsbTc3dUNJcE1JaU5UeXI1U3daU0tqa3dZQXpObDBt +bUg4d1NiUlB2Yjl1eklrDQogTE1sUW9jbWU2VEJnMVVVYWZPN1MxNjJCbU5SalBQTlE5WXly +cGhqT2JaZTNuYmw2VDFvZkdYRkZLSE9yVFFzTWNqazJDZmUzN2QNCiBtbXFuVE1EWXdJNThs +Wjg3ZDVISExFQXlNRFl6Q2NRcTRRL05GZTl5azVWUmRVeFNrNk5wNEttcVc5V2pFRVZDSjVs +KzhhNnMyVQ0KIFJFUy9QMjlZSnZLemR5dURyVHRoNm8xczJTNndtZWNZeElSbzVBVDQwdWpZ +dUN0TEhmemNoa1hWTU5zQjk3d3UxMHEzVlRaRmVqDQogbFkveU45SXE4MGJhemEvZWQ5dVV4 +NlYyeG1hVjBJQTI4ck5pcms5bk54SWpqa0R0YTBrUEZhL3FRTVhnT2VOQk4xNG4weFBWOWcN +CiBHUFZQNmMya2puQVJoWXh2RS83Vk8vbnJOck1xODFudWsvYnk0bWxSc1psSjFMUFpPM21I +VXlPNWc0VkVjZ0JOQXpFcE9hTFNuWQ0KIEdzRkZKTlViR2pid3M0QTU0SkFTUWplQy9US3Bl +YUZ0WHE2M202WDdLRDVxZGkzL0FKM2F5d1RUeGxQYXlOUjFxdFo0MkVJVTBNDQogcU9XQWZ3 +eTZmb1dPMWQvd0E3dXY4QXN5d3V0UHNYVE9TNzJxTi9UdGZCamU5bko1ellncGdKMFF0Y2I2 +OFh1VWI0eFduQnMzaWENCiBYZTZ2MHlrL1dGc1pyRHlrMm9UdW5hY1pEK2tDcEYwb0pTTkVN +V1lZUkRJdXFlTWdBNUlyS3VMV3Zhdk1tRitVeTFMNmI5bk1qZQ0KIFd6M3NxUDVaT3hZeGts +eEdJNWp0bHk4cFdyek40VzM4ZVA3TXhDSWFyWUo3bjE3SERoZVJHdGUyeWc4a3RwRWR3Y3Jt +UHJwYlprDQogYll6WXo4MjlUUDZWeHM1aXJsWERIY3liQi8yNjkvUEI0VFdkU05YbDZzSERZ +NG12OGxYUkR5WHpYQ0V3QTROVXlmRWt3SmNSVU0NCiB4Y1YwN3NKUTN0SXp6ektIcTFiRjVt +YnIzOUVqVjFUWVhGMVZMSGV4eU9UeDEwZGg2YXR5NlhucitNQi9hU2ZPVEtGR1k3cnoxWQ0K +IHhyR2tUVm1YVi82N0JvTVl1RzFVSnVHTlJqZk9RUHJCQjhKdW1UbUhSSDY5YnM2ZkZ4VEtq +bVAxWHdJbXJSUDVreGw4M1JtOFRoDQogYWRnenlvbUIyVVYrR2xHN0d1SHk0NDhQdEE0Y2Fi +SndDSXdidU5GK2svY3N4ZEMxM3NxRjAzTFNuRE1RNHpSQ0p3YzVFVHJKam4NCiBScHNQVlJ2 +aHlHeVkvZzRJMzRXQkhYSDRkR3cySUJ1R3RhM3duVGxpRlk5cEdML2pYdTVtb09qdDZwTDBM +ZmNsUnh5UjJOUWFIaA0KIENJNUtlQWt4ekdOWTJaV1I1VFZhNEJjVjh4MWVZSldHWnRtRzBv +eHVmVXliZ1hWaHdqcEppYmR5RHVLNEM2ajNTTHlMR0oxWSs3DQogbVN0R0xFSWFCaVRMSXBY +UWtzaXhXakRjeHkxRTBlRnI1MklFYXpobFlxcTNZc1phd3hoSzB3OFRZN1pNZWlLcG9OVzd0 +WisycWENCiBwTEYyMWp1dlRWdVdqZFN1M2N5cC9pQlZIQm1CUmtHaWMxMWFHSU1Nam1UbTIz +b2ptdmlTSzhnN3FQZzF3TlVwNHI0d0xjUzhrUQ0KIDdaRWZielFEbGR2WlpMeVRkMldCc21P +Q1FTcWUxelNNL0MrUTgyV09HQ29FVXBOMTRSUFZnaGp3V1l4aXVtcnBTUjNnQnQyVWZ1DQog +b1lWL0x1eGlkdlBUZU1KaDJPbytrdllXbUdVYkd0cEhLc0haSWRqTU9uTngzcnNkNjdDVHNI +bE9Kd2d4bEk3ZHR3ZHJaN3NoTlINCiBWaCt2QjlHdi9Sc3ZONzBZaHBibjQvOEF2Z256aU5D +VnlvaUltN21XUDFZVEY1bTdpcHJqS3BlYUg2TmduUXVmT3cvZW1Ta2pKKw0KIEt1MWl6Mm5J +SmlsSWxjM0RhOFNZWUpqUFFJMUNESUx0cGU3bDBuVHN2UnpFbkxGYjh0OHAvNzl5M1Zpb3VL +NWY4QU1oZjdYcDVuDQogajhwTjBCT2hZZWpkczU2dUEvcVEvS3hiOHloZFVid3VURU1DcEto +ZjdYcHo0NlNvZ2RVVGNQOEFESUwrcEM5Q3kvMEtiK004ak0NCiBRakNSaU13djduU0xpR0Fx +SDlTOEIyMWp1RVRWbVhDZFNyOUMwWFN1cUU1YTdZSithLzliTUVidUlBbmN6TnpLai9BTkww +TXd2NQ0KIGE0RE9RT3d2eG1MMW5JaXRPSHRadTVsaDNMTTlDeFh1YmJac0Y2Vmw2K2FBY3BO +ekx5Lzl2dnlDdEFDb1k1eWJOMnpXRkZKMVkzDQogclc0TzRyd3JxemJvZjVuaW01UElzK2Ex +RWEzWkt6cUNyYklVUU1heWl5SGVzY2ZienR1aS9tZDRraVJQUERhdFZKMi9pTGR6YTgNCiBF +dGdiSjBHU3g3WHQ5VE1ndW5ZN2VYVzgxdHUzTXdjZUhsNGdIUUpzVWNzRUU1QW0ycmNDbmhW +MGxKY095RzF0MHNVOEYwR3dITA0KIDlUTmJOWXUzbFZtcGR0eW8xRHp5eVh3NEE0N3BzSmVy +VnptelEyc0ZKb2E2V3BrMnFkZTFuWmdDcElVWXFIQk9nc2s0aldCQUVSDQogZFU5SE1ET2Fx +Riszc3ZYUm1XaGRPdTJpa2FJZk1hM2NJVEFzNFRtdWh5UlBRb3JpRzdXSEpiS0JzMnFLRXJW +YVVVSFdGTnhJQU0NCiA0eG1MVlBZNUNOOUMxVG1yZ2Z0YkwwVjdvb3VoRzJTa2FJYUkrMk1t +bW5FakVJeWhlbzF4TUd0Wk5hcU9ic1NCb1lHWHpLc2E3aQ0KIE9NR0JKU1ZIdzlxUGJvU29L +QXJEQzM3UC9Rai9BTFd6UUE3aXcycERuV2N4alVZenhLdmJYbURpWVlVTno0VXJaMTdPN3hN +YitHDQogVDlkZURrUnlQUWxTVUJXSEZ2WHJ1V3FEKzM0TDhZRTVYdDRFVmNWY1JJY1BadVpU +Z2hneG14SS9sZS9FUWE2anhid3U3alZzbnUNCiBBN0YyTlh3b2hra1JwUUdTUVZ4SGdMd1ZO +VS9QVVNCdmFSbTdta25KQWI4SjRTSGFNRzNsYmh6a2FtWG9ITXUxRC96TEx6dFdjOQ0KIGRV +azZ0Znd0QkxCbHNjajIrYjJvOW1XbnFzSEZ4QzdnVmZLN29IQjdXdmJIZTZxbGJ1WlM5U2I0 +dC9VTGh5bzFLaXRkTWUxTkUyDQogYmMzUWdWb2VoQzg1U2F4c3VyclVjQ2phVVVCWFE1T3hU +ZmxzK0ZvRllVb1QwSXpoS0F5U0Nza3ZqbTIzdVJyU2s3aVo0R2ZxckcNCiA4clh2UnVLcW5k +SVZFUnFiVjJ2UEkrbXcvNVpscitNNDNNTlpBSUVwSmNmaTVlVnNTWUdWeHF2NXZnUnFQWUht +clp2R3hpZHlHcA0KIG05MExhekhLNk1NYmVWbkVwT1JvazVFamhQTGRXMDRvdTdJL05tRFlk +OXVXUDQ3aXVKNDFycHJISTV2R3poS05ZVWhKVVo3a2EzDQogTHJWZUxqWlJHekkxWEljUm5H +eEU2T2FNWmtnT3c1VWFrK1FzMmR4ZTdUQ1ZNOTc0VkN4dUJzWU5tNi93RDlINXFjOWNmbVI0 +OHMNCiBmeDNnWVRUQ0M5OVpJNHI5S0g5SlpEM1daUWphSWZGY1hRVmpHRzlDTTRPUkhKRWN0 +Yk8yTXh6dW1OamVWdkI3L21ucU9pdm9FLw0KIDhBUStaUnRLTnhDVTU4dGZ4ZmpLakRsQzZj +eXN3S3pqUHdzeU9pUHRCcTZGVHlpdWpSeHh4ZUpCdElPc1ZZOGpqWVJVbHg2ZVdzDQogaVA1 +V0V0a09QelBNWENycGlPTTB4OVpWQ2hwNk5qK25iN0V5TXlVQ2pPa1hEN0NJekg0cEJ3bGhE +ZGhoR1A4QUEwU09iQ1ZVTFUNCiBZbUNUWXZtOUEvaE9SWVV4amtlM3dLUm9oejVickNWcWlZ +WXJpdWgwUkNLQUl3TTlLK2JveGk4elBJNVdBRTBzMmRodE9GWE1ybw0KIGpjTERpcGpzSWIx +ZlZDVEFyQ1JEZXh5UFp1WGpPcFYxN3VlRHhPTkRDcFRLTi9oZmdteW5obzVyc1I4dkJhb0FD +anQ5U3lGMW9ODQogU1hxd1BLMC9XbW9taVRKd0l1T3JZUzhOcWxmaUpBQkZkaDdHa1kxeEtj +b2lOS3p4ZVJnMEphd2g0ZG1DR21QK1F4c0N2b0w4TGYNCiB3ZGJLN2lGZzFieHJDOExacWdm +N3NEL0dzL0s3UlJvMmRMbjRpVndnY1Ywd1NXQWVJOGtVbEhOUnpZejNWTXBQbmdZd3d0azVn +Qw0KIDNCYk93UGg2YTQ2MGR1RWxod01veVlNTFhGV1lNdU80QW5ZbFZyVVNQYkI3WkxkcnNm +aXFNdzF5UGE5aUViN3Q0eFFxMXlQYjQzDQogdjVtdFJHdHhMbmdqWVF0aktYOEpjYkFxaUdQ +QXhzRW1KUUd5QVFMUmtKa203a0h3NFNsZXF0RzAweFZ3dXJsNHhuSzhBaXJEbE0NCiBjajJZ +cUJETEkvb1RqYVlWTVJ6VytOMngzVFc2aTZXRXVjOEZiV2pBM3dseXd4V1NMT1RKd3dUVVhC +U0lOaFN1S3ZneGlrZXh2Sw0KIHh5Y3pjdkhWUjJKdTNoMUllakMvb3JZYXg1STNvUWZpaUlt +TDM1NE9jaldtcytaUW5sU1FkL05WNkMxZllPVk1RSEwxY1dDcjF2DQogQWJIRWRIQ2dXOElS +T2phdlg4U25mMFpXSVVkYzlZa255dG96cEVaTEUvSzJISWx1RUpnVzVnamRBcmROTUVHMGpS +aVlQaEpBaGsNCiBJSjQ4YTQrdUJSOWNNY0lhZFllT3VMSGNDeEtLSjQ2aEdKWCtQLy9FQUNV +UkFBRUVBUU1FQXdFQkFBQUFBQUFBQUFFQUFnTVJJQg0KIEFoTVFRU01FRVRNbEZBSXYvYUFB +Z0JBd0VCUHdIK0licGtEanluUnNZTjBUZkNEU1Y4UlJhUi9TQmFpaXJkZWs5am5sTmdBUWFB +DQogclVzdnBIeUNFbERwMThUVjhUVVlBblFJc0l4cFF4MW5KQ2J0RVY0bVJseWJFRzVsb0tr +Zy9FUVJyQ3l6ZmhraXZkRVY0STR1NUENCiBWNHBZL2FxdElXOW84VTdLM3pqajdrRzlvOGNq +NkNKdE1GbER4VGovT1RSM0dreHZhUEFYZ0l6b3psZk9VNTVkcEEzZlV5VXZrLw0KIFVIQTha +Uy9YS09tYmxNbDdqbkkvdFRuWGdOMUhEK29iYXVhaHVpRUhFYzR5L1hJa2xSdDdSbHdwVFp4 +aGo5bkR1S0QvQU5RVnJsDQogWDJwcmc3V1g2NU41QXpkd2p6Z3dXVUJRd2VQYTVDRGQwUXUr +Z2krMHg5Rk1lSGFPNFI1eGkrMmJ1TVl2dGszUjVvSTZzY1dwa2cNCiBjcVVyYU9NZjJ6S2Rz +Y0JzVXc5d3g5NlRZdGQybE1rVXpMRm80Tk5HMDNqT1lVY1lwTzFBMk5RVTduU1Z1RkprZjZw +ZHVFMmNnSg0KIHp1N0dJMjNQcUJreVR0VEhoeUpSZFJUeGU2QnRIZEdKZkVVSVVJd0Z3cFJZ +ejZkM3JPWVczTnJpRTE1Y3RrMTFCWG1RbkNqV1VaDQogcHk1eUlzSjRvNXhPclM2eXBkdjRt +eGx5NmlJczNPUUtoZFl6bkcvZzdpb2p2aFY4S1BwcjNjaDB6QWowN0U2U09FS2VZeW04K24N +CiBkUno2Z2VGdk9IVC9kZFZMSXgxQlF6dWRFU25kVkorcHppNzdlQnBvcGpyYmVVb3R2aENi +ckc3dGNDdTlqK1U0c1l3aHFQaTZkLw0KIHJJL1ZPNThBNVRjSlRzcjhjVHUxMlhwU2Zid1Jp +empJTEhsaU5qS1g3ZUNMakVwNG8rVHB6azg3NUFFcjR0azEzYWdieG1DWTBPDQogQ2ZIWGk2 +Zm5GNW9JNHRiM0pyQTNTVnRicU45WXZGaE5ORmNoU1Ivbmg2Zm5XMWE2aCtJRnBqYUdzZ3Nh +UnZ4bEZGUlA4QVdra2YNCiB2d2RPTkNtN215cFpBMGJKeHZHRnQ0SGpRR2sxMTRUTGhNZGFP +NmtaV1FDamIyalI3aytZRFlJdXZLRWJZRkhTTjFhMnBqbzExSQ0KIEd3aUxUMjFqQkhadlNT +YXVFWEh3UThZRTBqcXlSZHdUbm9tOVluK3RKRzJFUldyRzJnV3hoUG52aEUzNFlUdGdUYStG +ZkNpd2pTDQogOFJ5aHBLelVHa1RmamhkUnd2ZGJsVUJwSXo4MXRXclFqdmRBMXN1NU9GK2Ni +Rk1OalgydTYrRjJxazk0cE9jclY2d1A5TDJxL2gNCiBpZjYxcFhSWEtlU0ZkNjBxMFpzVTNY +LzhRQUpSRUFBZ0VEQlFBREFRRUJBUUFBQUFBQUFRSUFBeEVnRUJJaE1ERUVFMEVpUUZGaA0K +IC85b0FDQUVDQVFFL0FmOEFHRUpoWGJyYWVkMTliOUtyb1FURnB5Mmp0ZnRXbVRCU0Urc1Q2 +eFBxRU5LRUVaSXViSmJyVkMwVkFNDQogeXQ0MU8yQ0MvU3k5S0plQVc2blRXbU9weGJOVXZB +TGRidGFFeGVUQjFWUE12VEZGaDBGZ0lhMCswbWJ6R2ErbEZkV3I3ZllQa3ENCiBZR0RaVlBN +bC9rUlh2bTdiWXhKeFNuUE5haWJoQ0xHQmlKVHIvd0RZT2NIOHpRV0dYa3FHNXhwcFBOWHFN +aGlWd2ZaWEZqclNxbA0KIFlHM2F2NWtQWVBNbTh4SHNHRlZMaWNnd3R1OWdtM21BV2l2YUsx +OUd5SHViZVlwN2xXSDlhS01GWXJFZThNYmc0ajNNdys0cnlNDQogZmtEK3RFeEJ0RXFBeDF2 +ait3WnNPY1VhMEhPb00rVU5FT0xOS1UzbkpEblVIT1N0YUJydzhld3VMOFNzbTVidyt5OER6 +ZlBzaGINCiBTbHdjMFA1blVIR1k0bFdvVEFEN0VyV0ZqS3RqNWw1QkZOeGtPSitaSG9xTGVm +K1MyZDVlVXNqRVBHYmpubzJ5b09NYlMwdEZTOA0KIFZiWm9iSE9wMHRnSUxTM00yaVc2Vk44 +bTVIU1lkUkxSUWV1bWNqNTAva09DZTlnNE9mNzBWRGJGUGUxRHhsKzVreHpmSlc0Z1BYDQog +VHkvY2lRSWFrdGVIakZEQ2JSS2wrcFBjV05oa3pXak51MFF4aGlEYVd1SjVFcWRLZTYzMGM0 +azJqdGM2cWRIR0tHOFpkS2RUODYNCiBLZW81NWp0bFZiQWFrV3dwNk1zdktiNW9MRFJqekMx +dk02dnVBMVlRNkVSTkdGNGVJRGFJMThVRnpvenkzUlY5d0hPRExOc1ZZQg0KIGJWaG9qV2dO +OWZaY0xHcVg2cXc1d0UzemZBM1FkS2I5OVVjZEN0cGFiVFByTVpiUXZhRVhsb0Ridkl2Q0xI +QzAzUzhWVEFrcFVpDQogNXNKUytJcWV6YXMrVmJkeEtxL3N2eEwvQU9HcXVIdWlLREVzclJ6 +dU0rTFdWT0REOGhCK3l0OHpkL0t5L3dEMlB5SWRmLy9FQUUNCiBVUUFBRUNBZ1lHQndVR0Jn +RURCUUFBQUFFQ0F3QVJCQkloTURGUkVDQWlNa0ZoRXlNelFFSlNjUlJpZ2FHeFEzS0NrY0hS +QlNRMA0KIFVGUHdraFZqazRPaXN1SHgvOW9BQ0FFQkFBWS9BdjdOTlJBR2NTUjFxOGt4MVlT +MG41eDFsSldZcTBkUzdNVndHa21mRW5uL0FIDQogcmEybk9DWTZ4WlEzNVJGZzBkRzNZMk41 +VUJ0a1M1NXh5aVNsMWxaSmpxS1BabVRGamlVL0NPMVFmd3gxeklXTXhBQVhVWGtyKzUNCiBs +aWlTVTV4VmxCV3MxbG5FNlUwZHJFNG1BM1hDQW5uQkZFVDBpc3lMSTY5ZFZQbFRoRmcxYXFF +bGF2ZGdCeVFaeVhiL0FIRTBXaQ0KIG5iOFNod2pubnFLVXk1VkppYnppM1B2R0xKYTNSTmJL +UnZLaVRTTGZNY2U5ZGM4a2Vsc1NvektsY3poRm5SdGZkamJwU28ybmx4DQogMnE0MkgxaUxL +UlAxanJHMjFwaVQ2Vk5jNG0wNmxWNzBMVnJ5L2tJdHRVY1RlcWJmVEpLanZ4V2FVRkRsM2lx +MTF6bVNZdGNMS00NCiBrR0puYU9adWJRREUybHFiVm1reWlUdlhvK2NTU3VxdnlxdWxPcjRj +TTRVKzlhczMxc1ZxTXNqTlBDS2l0aDd5azQ5MW02cTNnaw0KIGNZSW4wYlBsRVdYMlI1UlVl +NjFuNWlLektwOHNyam9VSHFtOGVaN2pOSmtyZ1k5bnBVZzV3T2ZjeXpSWkxkekJzRUZ4OVZk +WjRuDQogdVhTMFpSUXI2eDBic20zOHA0Nnl6NDFiS1l0eE5wN2xaWW9XZ3gwTDNiSStmY0xZ +TkdvUjVLWEhQdWdVa3lVTFFZNkNrbVR5ZU8NCiBlcjBZN05yNjkwUSszdkpOdk9FdUozVGZt +alVSV3g0bGd4SWQyQ2traFl3TVNYMnlkNGFWdXE4SWlzcTFTdTZTaGRIWHZObXowdg0KIHZa +S01yYU8rckx2RXpoSFNNS3FSdFVnL2tJbXRmU3B5SUVNdHRUU1ZHYXU3SkgrUVN2ZWpidGZY +aHlncVZhczJrOTQ5MGFpamwzDQogYWpyNTNpblhNQkNxUS92SDVkMHRWSEdMRzFHTEdseGEy +cE04OVVuTTkyWisrTHpva2RpMGZ6UGNnbEFLMTVKaVpIUXA1NHgvTVANCiBMWDZSMkNGYzFD +TmhwSTlCcG9nKzkrbXBKUHhNU0dHcmpaeWdPSXBjL2hoR3pTdmxGZ0RpWWs4MnBzOHhldGZm +RUM2NkZvOWE3Wg0KIEhPTFRGbDlNeE1kV3g1czQ2cHNWdk1kZWgvai9BRTA1Sml6WEIreFdi +UkFPZWlUaUVxSE9DcWhxcSs2WTZOOU5WZDIxOThRTHBkDQogSmN3NFJKb1ZXL09ZcnVwNlow +NEJjS1ZJSnJHZFVjTDdwSExLT2svbkFTa1NTTEFMaHB6eUg2eGJHM2h3dVpSMGF0OXN5MUty +cVoNCiB3VkltNHg5SXN1V3Z2aUJkQjE3Wm93NFp3RW9TRXBFS2QrelRZa1h5R0VieXpDV214 +Skl1VnBkMmlzU1NPY0FyL0xYSWFRVlN4aQ0KIFRnS2ZXTE5GWGc2TldSd2hWSW91ekxlVEhP +NGIrOElUNlhVaERoR0t0a1FCeHZuWHpnMktvOWJrazRDQzZyc3h1aTQ2Um0xUGlTDQogZU1C +VlZLa25FWlFWVVZSUXJ5OElxVWhGVTU1d3k0bmdxSmpBNkZVWllLRmVFbnhhWCtZaGxiZXk4 +RVFXbmJGalhCNXd5YzBpN28NCiB6UEJSbmZsei9JcTU2TkoybkRLQUxrQW5xbkxORlI1SVVQ +cEZadmJaLytNTUs5d2FPbVIyck8yRERUbVkwR2owTk5hMjFmaGdDbA0KIFVoYXBlRkJxaUpJ +RlJ6Z3ZqSFEwa1ZWL1hXTVVia2dENVhiWThvdmpESHgrdHloc2ZacHUyMW5ld09nZzJpS2lN +SjZIaHdLREcyDQogWlZTUVB6aXZTWm9aOExlZnJBU2dTQTAxVjJLOEtzbzZLa0NXU3M5WlRY +RkNydHdaSkgwdmxReDZYTksrSDBGMjh4a2EycTZWR1ENCiBxbUE3U2JlS0VINjYxUjRlaXVJ +am9uL3dxejFWdG5kZCt2OEFwdTN2dWo2WHl2U0dmVS9XNWVKOFlGM1Yvd0FnMVpmWU1HM21y +Lw0KIFJjRnAwZi9VVkhRUzBkMWVvMjhuZVFad2h4Sm1GQzZjT2FSZnVJOGlybG1rajdodTZP +djRhaTFaUTNQZVdLNnZXQ3R4VlZJeEpqDQogbzVxRXpLWmdFYXhROGtLU2M0bUp1VWZ6WlJN +YVZVTnc4MFhTRmVZWDlJYXoycmxiU3VNS2Fjc1dneU4wMHJKVUE1alM1OFByQ2MNCiBvY1Mx +YWNvQ1VwTll3MGxlOEU2NVNzQWlGLzlPQldrV3JHVVpIUWwxdmZSQ1hFNCtJWkc1b3p1Umxm +dC84QWNGVzY5cllHMG5mQQ0KIDR4TVhKT1VVYys0UHBwY1RESzgwRFJYRFNLL21sYnJ6TUZx +aTdMUGlkejlJcW9FZ0lXOHBSUzhwZGlvMm15NDM1a2lMVCtjVENxDQogeks5NFRnTFFacE53 +cytUYWdHK2JlR0tEQUl3dVpIakJwRkZIVm5lUmxGbXRWT2d3bEoza21Xb3VqdVdOck5adjhB +YjZYRTNGU2kNCiBidlZVZmdqaXFLcUJJUW9RT1JNV3gxaktURmpDZnpNQktSSUM0VzJjRkNV +RktzUWI0dzBlSXNOMmFSUVJieGJFVlZDcXNZZzZ2TQ0KIFJ6R2h4azRPV2pVcXE5UVJ3NXhW +Y1QwN1F3V01ZdGREWnljMlRHeXRKK09qYnBEU2ZWWWlUU1hIVDdpWmo4NDJRbWpJL014WE5a +DQogeDN6cnRPcFNxTWNVcm45TDExUEJlMEw5K2o1R3RlVms5Vzk1aEhSMHBNajVzOU5zYnFq +RlljY2RDWFc5OUJuQ1hFWWNkWGFRay8NCiBDTncvOEFNeHVyL3dESXI5NHNiSHh0alpBR28z +WGJQUW5GZVVCYUROSnRoQ3ZDK21SOWIxbWtBWWJKdjJqNFYyRzlMYnlheVRCWA0KIFI1dXNa +Y1JCUDFqcDN4MVEzUm5Fa3BBR1VHYUFGK1lZd3BoNnhRK2VqTmhXTUJiYWdvRzhVaFlta3dH +MTdWRVVkaytXT2tSYXRCDQogQzB5aHQxUGlUZVBJNHluQ2I1RG5rVUREYm5tU0RmSmZZMkt4 +a3BNTklIQkloYmY4UEc2TnB3NENCU20zd29ud0VZeFhVT2pmVFkNCiBZMkZJV21KRmljQ29u +WU9LVEFtSkhqY3BYVUtrenQ1UUZvTXdkQzIxY1JaQmJjeGJOUXcvUTE3cE5kdjB2SlErMGND +YXd2akNVbg0KIGVRWlh6YStDRmcvT0VFWUZNNGZTeWtDWW5aRGRYaFlZY2RRTnRlTVNtSjVY +aFNvVEJzTTRMbEIyMlR2Tm1KUGhUU3NsQXhWb2FWDQogUEw5SVVYZTBXYXhoRkphN1ZnMXZo +Q0hVbkc4YXBJKzZxL2ZZNExGYStXMDVnb1I3TlRleDhEa1RCQlNxQzVSM2xOcEptVVFWdW4N +CiAwR2NLcHRJTnJtNk1oZlRXMGcrcVkyRUlUNkppUXRQS0xVQ1VLcm14U3BwR1Y0NDF4SXM5 +WWtjUlpmTU84QWJiOG9kU0ZKeWdxbw0KIE5JVzBjdUVmMWlmV1VMY3BLeSs5Vk5waEtWWW9O +VDhycTFVYktTWXNSRzdGcUlra1ZSb3JyM0JmS2x1T0NzTDQ4b2FkNGtkeXByDQogQjRxcnAr +TTdpYWpJUkp1d1p4UFZrTFlyUFdES0pEQys2VkkyMnJZQnZsdG5GQys1VVYzL0tDZy9LNEhw +QXNuT054TW9DU20yRW8NCiB3bkcrcUxTcFhyR3drZHdLVGdSS0htRDRWYlBwZkxiL0FNZzdr +Mjl4YmNCZ0hsci9BQWhPaHYxaEhkRzZVa2U2cStvN3ZPWGNxUg0KIHlRVERTdVd1bGNTNHhJ +b01JTWpJUTMzUnhzOFJaNndVbkZObDdXOHBoaFdhQjlPNDBqN2hoajAvWFhJTVdiUWdJSU5a +WGhqczEvDQogbENWRkpDUjNYcEJ1T2k5UHBEYzhVMmR4cEp5UVlaRnpSazhBZ242OTNVVWpi +UmFJQnZhUWp5cS9mdUtrakZ6WWhDY2hjc2U4M0wNCiA2OTNJT0JoNWs0VG1uMHZhUWpPM3VO +SFlHRFcycjVYVkJlNFRxOTRZcEE5RlhxaDduY0Z1ck1na1E3U25kOTh6SEljTHF1TjVzaA0K +IFEvT0dsK1pJUGQza2NaVEhyRnVJdlB3SHVBb2pYWXQydUg5UHBBQ2NCaGRMUWZFSlFxajBn +bXUyb2dXYzRxb2Myc2ozZDluSXp2DQogUHdYNm1LQ2VqYVFaTGUvYURScVJ1T0dhWGNKM2lI +Q09yZkZYME1iYUFGOEZqRVFhSFQ3YXVEbktLeUNGSnpIZFczQmdzVzNpMVoNCiBJbGZMVFg2 +MVFra0NFSmEzMDc0NHpndHVmQTVRYUZTKzBUdUs4d3UxVk8wVHRKOVliZXp4aGxTMDFrUEpx +L1NLOUFWTnZpMG8vUw0KIENtMUR5ZDVCN28wc2NGM2xLWHpBK3Q0U29nQVp3V3Y0ZUxCdk9u +QVJYVVM0OGNWcWoybWg3RklIL3VpM1pkVFlwRVdiTHlMVUt5DQogTUZwNFZhUWl4U2J0K2ht +eEt1c1IvdndqcFcrMFpOY1FoeE9CZ0xCcVBEQlk0UUdQNGlLcXVEdkJVQWpEdVQyWXQrY0o5 +THBSZ0sNCiBPS3pPN0szREpJeE1jV3FIODFRRXRwQUEwcHB6R0FzY0dZaERpTjFRbUk5c290 +ajdlUHZDRXVJNDRqSTNURk1SaTJaSzlEL3dEcw0KIEE0cFVKd3VncjNUdHQrbitqUVVPcHJD +S2o1TGxESjJWY1VRRklNd2U0dmpsQXVrTkozbG1VTnRqd3BBdWl0WmtrY1lydVRUUkVuDQog +WVQ1b3N3MUZKT0JoK2hyK3lWczh4bzlvYkg4czZlczkwNXdDbkEzSzJ6NGhLRlVkZSt3YXY3 +UWw1cnQyYlJ6aEsvRjRoa2RCU28NCiBUQmlzMEN1aUhlVDVZRGpTcHBOdmNIdlNCZGRNZHhx +ejF1K2hRZjVWcmZQbWdKU0pKR0d0Um5lRHc2UDZhRk51Q2FWQ1VHZ3ZtWQ0KIE5yU3M3cHRZ +M0tSc24xMGRNbittZU8yTWpFeG9rb1RFZEt6TlZFSjIwZVdBNDJacE4rK2VYNnduMDFpVHBD +RVdyVndoTFkzc1RkDQogQnBtMTl5d0NFdEo0Y2M5ZExveGJXRlFrOHRFaFk0amFRWTI3SFVX +TEhPNUtrN3plMkliY0dDaEMybmQxVUdoVW5mVHVIekRUSTQNCiBSWFJNME5lSThzQmFETkp2 +Z2p6cWxBMVpjVEFHaVpqMnQ4ZmNCdTNxVWV6UnNJNVhENDl3d3l2TWFVMDFyczFtVG8vWDZ3 +Rkp3Tg0KIHdVbkF3cHBXTFM2dWdPTldVaHUxSmkyeHhOaWhrZEpTc1RTZUVCbFpKb3Joa2cr +VythWkdDUk02MCtBMFRNQjk4U1pUZ000QUdIDQogQzZlSTNpS28rTU5JNVR1SFI3c01jcC9Y +U3B0WTJWQ1JoZEJld0ZyWnpGelQyK2RiU0thd05nOXNQMStzQmFUTUhTcHR6QXg3RFMNCiBq +YU96VjVoZUZSd0FoNTgrSTZ0Uk1Tak04SUQxTW1HL0NpQUVnQVpDN29UUEJTNW40U3VWUVB2 +SFVDMnJIMjdVbUF2eGVJWkhVSw0KIGpnSVBSS3RHSTAwMCs2TkpTc1RTY1JIc3JoNmhkclov +VFUyZGwxTnFWWlFVdWJMeUxGaTc2Sk8rN3NpQU5UbkZaZU1WYU1na2VZDQogeFhjNngzTzla +SGxibmNtUHhuVkZLYkhVT25yQmx6Z0tUZ2RUMnVoMk9wdEl6aExxZU1GU2pKUEV3OVNsaVNu +VnpIcHFGczcyS1QNCiBsQ21YckgyZGxYNzZpYWRSOFU5b014Q1hXek5LcmtrNFF0ejdORmlk +VENhamdJQ3VqeHo0UUYwdFpjT1hDS3JhUWxJeXZ2L1JINg0KIDNIOHlTN1IxSGY4QUxGWkJt +a2ljZmlPcXB0d1RTb1NNZXpVZzlRZXpjUDAxYVN6UFpRcWNHaTBic2dldGM0ZWtKUWdTU05W +dW5zDQogakR0UU9JaEtrNEVhU0NMREhRTC9wbmR3NUhMNjNQc3pSNnh6SGtJQTAxVWlhandF +ZFBTclh1QTh2Y1U4MnYzdUNoWW1EQmJWYlINCiBGN3A4c0pPWkoxaTI4SnBNU2thVFJoeDRp +TFZsQnlVREUrbFRLS3RIU3Q1WHVpRnFwSytpYmNNMUlHTUJEU2FxZFpTRjJwVUpHSA0KIHFF +dndXbzlOUW9PT0lPVVZYYkgyN0ZEWExpL2dNNFUrN2F0V2pHS2xHUWVhK0Fpc3FTM3VLaU81 +VU56elRUY3FhY0ZoNDVRcWcwDQogZ2hDMFdwSndJamFwVEkvR0kvcTJmK1lpeWxzZitRUnNM +U3IwT3AxckxhL1ZNNG43TTEvd0VTYlFsQTVDNW8xTVRpbFZVK21xaW0NCiBON2gyWFAzZ0tT +YkNOVlMxbVNSRmY3Rk82TkZWaEJXcmxGZW1xcWp5Q0FocEFTTzVzUC93Q0p3ZlVRRlo2NWNj +TWtpSnNTWVo0RQ0KIDRtSzc2bE9yekpsRmpQemkxdEVka240R0owZGJqU3hrWUNQNGlLN1or +MlQrc0JTRE1HOWZITDlZWVZtZ0hVVTJyQWlVT1VKN2ZhDQogdzVwMVV0TUk2bmpiakVuRkpi +SEsyQWFRNHAweFZaYlNnY2gzVjVIdW1VTms3dzJUOE5laVVkVzRvelA1UklZUkphcHI4aWNZ +NnANCiB2MmRCNHF4aitacFRybnhsQkxTYmM5QlNzVFNZbUt5NkVyaDVJQzIxQlNUeEd0TnhT +VWptWlJiU1dqNkxCaXpwRmVpSTdOMy9BSQ0KIG1KRlpRZmVFbzMxSDBURHFHbEtya1dUVEtH +VXRyU3Fxa0N3NnJWT2EzbXp0RE1kK3BORzRIYlQvdngxMnFVakZvMnhWb2JmUnA0DQogclZG +WlhXTzhWcTFOdHdDQ1dWMWdJa29URUJwUm5SSERzbnltTE5FM0ZoSWlyUmtxZVY4bzJWcFpH +U1JPS3o3cWwrcGl5Mk1KUnMNCiBtQXRBSFNKd2dLRGFBc2J3cXhhMmo4b0x0RDZwNFdpUnNN +QTBoVlYwV0ZNZFZSMzFmQWZ2SFhVZDVIT3o5NENrOFlLVmlZT0k3OA0KIHpURVl0bVN2U0Fw +T0IxcU8xd1d1MkFCWUJva1ZWbDhFQzB4MWJZWWJ6VmpIODFTblhJN0lMKzlFbTBoSTVhRk5y +d01MbzFOVWF6DQogUmtrNDFoQkZGYjZKSG1WakZaOVNuVis5RnNnSWsxWnppYWpQVFpqQ1Nj +WUQ2TncyTDlJQ2tteFdpbFBGQUpyeUIvc1NtMUN4VmsNCiBMb2p2YU0yZkRXYWVSOWtxWmdW +UTRvNUFRVklUMERlRnVKaExydTIrUk1sWERWclBMbEVtQjBMZVp4aXNyYlZtZEZZeGJobHFo +SQ0KIGdBUVFlTUxveWphM2g2UTZ2alZzOVlicmI2dG8vMk51bk4rSFpjSEtBdE5xVHJHVVVV +Zjl6Uk5SQUhPQ21oTktlVjV1QWhUeTZVDQogMVIwcE1pSllmT0NscDZ1anp5bEZkMVJXdk13 +bE9DWXE4SmFBT0dySk1jK0owdEtuSkt4VkpoS1VmMDdKbVQ1ai9aRklWZ29TaHkNCiBoTzRE +YWI5UDhBVHI5WDJpRFdUQUFvYmhkK1U0cjA5eVNPRFNJazJrSkhLQThuc1ZxMmh6aXpSSlFu +R3dOSHZSdEQ0NkxJbTRvQQ0KIFJKSkViNGpmRWI0aXhkb3dsREZRQVRTSjYzLy94QUFxRUFF +QUFnQUVCQWNCQVFFQkFRQUFBQUFCQUJFaE1VRlJFREJoY1NDQmthDQogR3h3ZkRSUU9IeFVQ +L2FBQWdCQVFBQlB5SC9BR3NlUlJNdFRRUnM2TjdIcktRd3lRZnRIWDFDVytOVmtSZVR1MXJ1 +NDZUUGg3Zi8NCiBBRXlVSlc1ZWZuTE52RCtkNExoSGViN1RQcjcyejljSFNEekxySEF4d0Va +TUxPbFpkbFN5eDNwRnNDMnIvSXhpSGFuOGlGYTRXdg0KIHFZOHhnWWE5cHQxeTVkU3Y4QTRy +V3ZuTHBwN0VwWWNXbTgvWEdidEJzRXBVcTFjUzd5elRLdUgwbHYreWRadk51K0J4SUMwdHBs +DQogTGdWOEVGWFNuamYrbjEveWp4R3daWFpNRllyTlo4ZjJjUnNXbE01WWtkVmhsRUhUeE1s +emUzS010NFl2UC9Tb0dNQXhEWUs5b1oNCiBVT21IOUlIUkRjZjFabmg4aitSWnI4NS82c3oy +TzVIY1U3QWg3ZmlEZnpCWFV3czlvSEZQWEgwbmZoWEt4R0I0ZHpQMlpXWFdFMQ0KIFk0OHNX +cXpxWnErVUZydlVPTk9xbngvbVFXVURySHg3YVlYM25RYldqNXBWd0N2WHF5cXlLOEp4eTJP +cE9zOUI4SlZXRFdLL1BHDQogNFNDVFVwbmZrTXhiOU5xdHRFSmZZbk9Cb1dTa1d6dHhRZ0Vt +SGJtbmp6RnQ1aDZJb0ZvNXJCc0htNTg3RzZkeFF4WU5IUmd3Ky8NCiBJOGhya2EvRHZESXJB +eS93V0JodUJwRUw4bStjeDFsY3M4T1p0RkxMemtVeVk2eTRmNEhFeHg3d0NFN05IUkRpZ1lY +OVU4Umk1Rg0KIEY3NGZjV3pGam0vd0RpcmlzZ0lseGg2dUozbW5ncnhuZ1lpcURXWVFndjJW +SHZBTjU2blYveUs1QzQzbEpVV0MweStOeExhOEt2DQogTmo4VFgvSFlIaU9oR2ZzZkhqNCs4 +MllqMjRuckUvelhNV1VjNEZ4V0hkaTlaVUpTZFZtT3NzVEtMVi95QTZ5WTJ2Z05zSEtzNEUN +CiA3eDdCZVVOcFdqenY4QXpxVWk3NWxZbXNaMGVsZjFCWWR2UGdtQkVKZEtzcUJTcXIvTG9R +T3ZJWDZtdk1HOUFVUnhPL3pIU0x0cg0KIFYvMEpScmVzQ2lqS2FkZUcyQXZ6L3dBM2xoOW5t +TlhzQm11MGZDOGcyZjQxck5JcGdUUjI3RStFcUdzdklsVFU0Umd6Q3ZML0FGDQogSEhUbjRZ +WmNxd0ZYTEY2UnJES1laZmk0WkZaZjRVS0MwTHVBVHJrL1ZCMHUrWCt3S1hEY00wcTRhUm5T +cXA4REpXRUJId3k1WXUNCiB1R2dsTGFobS9YLzdnTmxOUng5TG5kT2tRQUlpYm5NL2MzbnQr +VXZYQU5EWDdsRWVaM21RUnREYlFuTjI2d1ZXZ2w1cU5XZlpCQg0KIHVHSSs4ckRqWEhNY0Jh +RmNLanVGN3U4TUJvOFNZZEpabHdtY0hXR1RJV2NFajFzeDlZNjd1MVBMT0ppQzlHR09YSy9Z +M250K1UxDQogdFpMNkg1bGpldmsrVWFaSDQ2M3kwaWljS01nZE9iZFp0RytrcFc1TnYvVkta +ZzdEeHNZc3dVZlIvSUdMSkZxNE5DR0JnVjA1QksNCiB0VEI2eEZYY002enYzNDVmc3BSdU14 +MUdaZ1ZidkZyWGM1UDVHOFBwOHBFNnpEOTVUTGlPQmhIRmVadFAxODUwbjY0S0xJK05qQQ0K +IHN0dlpIeXNqVXUzVFo0ODdiNlRIejlFSzUzUEtWdDhTZmYxNFFZQlJTTVZvV0xSWnRBNlRM +eDVuYjVwWXR4eXFrMGRKYWF2THJIDQogK2M4cFMrL1lEK2NsVjZDMlpvNm0wZVB0bkxaZVFJ +cGFESDFiVHJUWkZ6WmVXTWVNUXg2UWp4Z3M0VUF6b096ajVCZmVZVi9VNlANCiBSZ1dEY2V2 +anc2SUw3d3hjbCszQ3BqeUxkd1Y3Zit6VG1xazlHYU5LUG9wRGtOWnF4ck1NNzlwMEpPUm5o +K1k5UU5ZMEdEZUo2Ug0KIHNrZE1leUhyWkwxVnpGcTNGNzBYdzBhd0NZNFl2eENONjNsaEZB +cmdFWlI1UzZYRVV3QmFMMGNZaXJtT1o1b2pxdVRzOFFzenY3DQogeXlHcitRNUZjZjI3bHpz +SFpaUnEzZTdrM2N3eE8vNW5iTGsyTzVpU3dGMTgzZ1JkbUNTbXRYTmJjTGJxaGZTQ01OZ2hW +eFFrR2YNCiBGUFArRUVpS2dPTHk4U3d6VVNQeFZwRHdtMk8wdGI2MTMvQURqWElSTEt0Nk9h +NVQyOFFnM0h2eVcwN0ZlVmI5WlFiL3hCNGY1Rg0KIGdtdVVRTUMzUnY4QTJCVXJqVVhGWFlo +VmRSN0luNDhBSTZ5Y2RHWExmdjdPZGo3eVlzMmZkeVcxZ0QwRDY1YWRVbm9MOWVGZHFYDQog +dXNEeStVRkZCWGljNWVKSEoxaTJRbldzZ2dzeTQ1RExyMm1PV0MrVitnRkhPRm8zSnNuUjZy +TlkrTi93QVF0aDA1WFJlL1VQOEENCiBmQWFPakNZQjRSZXN4aFNCM0FCQTZCVVFzUkNXVkR3 +TTBZNUM2aXl3WlU5REJzQnZUZ0xCTDNtV2pqWSszelB6eVVhMi9TdWRwTQ0KIFg4dUh0LzdM +OGR6QitwZzdNQlRCaWZqa3NGb3d3OHJPTnl2UDhBbkFCR2lDTFRTalVqZjdBRmF4TjhCY1BF +cEltTjVRVTJmWnc3DQogYnoxalZaT1k4RVVwTE9zei9nSHFISm8wVFc3L0FQblB2bDE5ay9r +UCt5K0Z5K0Y4V2RkSXNtL3pDOXMyNVBmS1B2TjVXLzBjWE0NCiB6Uy9SdjZtOVNIbzFNNVJV +MkRGZUltU2d6V0wwamt2by9xNFJEbXV2VmpJMkpHa2JZenpqaHU3UkNxTnpCRElxU3ZKMTky +RzZMWQ0KIGpmSXBneGZ0SCt6cmh6bDEyU0E0dFpja0NJV1lFbHM5TUI5UisxZ3RmVHhiVjFI +aFFIYVdReFhZYWNYRVIxbHBzVGVybkE4VE95DQogT0RGWGFaZzZKN3JwNndHQTlJZ21hVVM0 +RE1VUWNsOThvdmF2VENJMlI3bjNNdmxnNUFhcENYd2RTcm5VcldwWTdaK2ZEa29hSmgNCiBL +ZEdZbUQybUlCRllKSis3ZURMK2xMWWNNN2hZR3ErNGFlODc0Y1hwMTBCV2dkeUcyK2tQeXh1 +R2Q2SHNNRkU5MkRLaGFnZDVkWA0KIFhTZmNOZWlkbm9KaFhVRGY4QUZTMys2cWZQanJIc24r +eVJSek1ENnducCtPYzZ5cXJwL01ENjRISU9EQXpRMU84ZjdBR1VZc3BwDQogY3N6b2o4NENW +aTRaRTdTellnTjlhS0d6UG5oNjhQV1BjVVN1bnNQM0tuTm0vU0h6Z0ZkdEozNDNNTXUxZnFs +UmdVU082d3UzUmINCiA5SE03NVJNZk1YMC9NTVM5K2JuTDRhTjlCcWIrTThIbkJvZ3JFaTRH +T1V2K2tLcmlIa2poV1JCMForTUpkTXRDclErTGVhVlNaNA0KIFBwR2hTM0R0MWdFanNSNWdO +aTBrYk54WjFMKzlJMk0rZEFYN1hGbUdoYTBheG12MzRLOGVvQXA4bS9xWXN3ckNhYzJwL3dE +c3lpDQogMzdFNXFZVTRqQUtTQWpnMjFmdkRsb3NWdlVPd2pJc2pIQ01pQmFHVHlpS3k3dFIv +TVpNZllVdC9FUllMZFpuQnhZcy81RVoweWMNCiBqOWpMeHhWbVFsRXAyY0RiTlE2Tzh0RlUy +WnY2NDdLbERwWmJQY2g0Y1BFU3ZKS2k0QWIySEg3NTFXNlMzVnVmUXRyeEhJWW9ZaQ0KIGZK +S0ZFSFJpUzJxeXByK0lJb3cwYk1TTWVRbVNhM0ZqektWQm95VkxtVzNvdTBZSDVlc0pmaWNB +SFJGQnZ0ejlVcjVkRFdveFQyDQogZ0lrUE0waWovRDRnMldaYzYrR3ZZZjhBMkhnT1RvNVR6 +ZzIxdFJiYk1IR2IxaTYyRThTWHRXc0RWRWVHUnJTOVBUbld3UFFZbGYNCiBWU0pqQWt0aGEw +WE1nZmliYXVZR3FhRE90N2M2MW1pajZSV1hETGljTDVEMDNtbzYzc2JVL0NLSVlQVi9zYWJh +TWpMYVo3V1p0aw0KICt1VGxNam9Cd0gwamRnZHJoZmlZT1RIbkFlc2QyWkVBRlNXZGVzTVBF +K09sR3NFWkg2dWQxUmlsbGJ2Z09QQXk1djNNZE1LVG9rDQogL1hJV2doY1hlK21kbHJ1NHl1 +Tk1zcVZiR2NPWUI2b2JFQVZ6ZEl0NFVCV3BkZmNwWFV2bTBLY2tpNW5IcFJOdjhBRFVtWHdC +eUUNCiBwYUVXRmREK2crWlVGZ1NPSk5YWnJWZnlOMzNBZnlFMEEvd0dQYWxHeUVuZGJEblkr +NFhoMngrcHAwaDRMOEJ5S24vWitvK3JCOA0KIGVUTm5ONmdNeVVSZkwrSThLbFNwWE5JMkhG +L0RYM0RFdzV0UzVudjJmY0c2VEo0YThEaWNxbWFnZVJMaDE4ZHdSaGtzd1preEpjDQogV25h +NVZTUzhTZksrT1JYTDBtSUd2aTZNR0xBTnJHdk55RE1IM20vYTMwZUY1bncvMG1MY3Q4dkdJ +ZGo3UmxvN3dXeXdGbFpUR2INCiBYbFJ1dVVLMDVWY2w0VUkxWTgvd0FjMmhzYmdENmVKSG1p +eHEzMGk2c0Q4dko2K1Q2ZnhLTk9GOHBJbmlPRE1jeHo3L3Vkak9ZbA0KIDRieXpiM3Z4SE9W +ZmpVTjdJUm1oeWMrMWZRUzg2dkd3VXNDbzJEaS9NTmN6Nm5TS2ZMKzhUblp4Ny9XcDk4b05j +TnZmRDc0UE9UDQogdzZjSEtVYndWZjByN2czanZ5OVpYdjIvRWZDY29XMXRpd1FuQXpuaXZz +ZVVqbjdIQitwaUxmd0grUFdNSXdhaXkrMk1KV213ZVoNCiBrL3JMbmlPOWlWdGRvQ0VCQURU +bEZqVVgxUXU3TkJaYW9LcFBJa1oyL3dBSndPRGxVN0xEenIrOHpMNy9BSzhKNFh3S0YzaFdj +Yg0KIHhRRGY4QUdiR1UxRldUMXc1WkV2bGEzbGcxOE1lRkF3MkwwbHkyVGZub3Z5aEpZeVN4 +L3dBdVJhajNZL3ptYlJ0K2VuaEhrcW9iDQogb201aHJoaWViNzNEZXg4eGJ4WGRIWmN2cmxt +R1p0UHplRURCT0RaaFlrMkpyRDdXTGo2bS9tWVVZUUhFWWZxL3g2N2l2dFRCczUNCiBXa3dO +d0FQaURMOEhlL1NZcFJsVlFreW1BOURlT3NZV1lpUXg2Zm9Zb1JjdFlKQ044ai93QWJTNnhi +R0Y5ZVYzeW1IVlZPNDRRYw0KIERNbGFBNFI4Y0c1YUZpYy9IN0tsT3o1d0VWckxyL2lOMVlJ +UFJGZHZLZEFDVk14aSt1UVBHci9yMklrdUZjc3YrZVdzSU8xQWNODQogYmhwVWdQSk1MOS9h +UGhaKzA0eFFEUkR6RDNtRlZROXdPVlZtSFRyVjlvVHlubzZqQ3F1Wi9EM2NBWUx2bVFkUWxt +OUIvYVRUcUoNCiAvd0FONGZ0a1Y5dmxZeUFLRzF3djRhVGszMEZsRSsyNkpUL3VZN3Z2QUtV +UEFBdXhxWWFUYzNWV3ZZSWxpT1V1d2NFNm45TVdLeQ0KIHM1SmkySkNLMjNIdGI4Q1lTS1ll +alU5TGdWd3lhdXNjRGxEcE4ra3h5UDFldURvUFJOdjdMNTdyOTgrVitrdytzRWRWUDk1ZHA0 +DQogaFJxdkwySms3b0RieGJnUmQ3QndGYTRoaUVzUU5HM3pQbHk1THBZVkhiVDh4TEtqamgx +Z3kzL2RnQVpIQlNSQ2tZOHhGYkhjOS8NCiBTVWlqWTgvZDZud2dydHZDcVc1VGZnNHBvMktC +T3NnZDNsWWdwN2JlWWx1cmM4WjBwQjJxZGFBeG1KdHJvSDljV3NEdW4zZlBKeg0KIFcvMEpy +VnlDQllWRjYxMy9BRHZ4Snh0RkowbVJGOTVlL3dDM2hFOGNKenFTY1RYejlRVXRpdkRnRFlu +YVRIZ3owSW1yY3RrYjhwDQogYXRjQTFsOFc1cnF3dDlSaCs2ZU1xckpEdlVzWnQrMnVKSTBR +L2Yrb2Zpd3M1QkMyTk16U1o1YUg3bWxSTkpmWjlUMHVGWU0vOEENCiBSejk1cndOeVNsRXZ2 +S1d2S3UySkJzRXBPWnI4UWxGOWt1UDlqNEhLM0lndWZTbnhIYjBFZSs3djRCbWhnTnVWcXFS +ZGNFSE5IRg0KIDd1UDN5T3RpUGFVSG9lN2pjSVVYUm1HMWM3VXhyM2ZUa3JSRENQSVByaTJT +K3Vqc2ltMDdzNGdOWTFobWRZeXdUN3BUMXg5bzh0DQogSGFVcnNSZHVoMktQcncwR1k0TlE2 +M3JLVXpjaHJBb3pDNnd5QXlDZ242dVVnT05INkpRQUFaSElOQjFJOEhiNVBCamh2ZjhBYjMN +CiBnUXdPR3JzZUE4a0ZzQnh5MG1aeHhHeW9lOXc0SHNEU0ZpUzZRNDd5UHk0OFNLMW10Z3FV +RnQyZjNmbDRzWjRkTW41bnVSNE1xeg0KIFlCQmRzZnROenNZQVNuYld2a2RvZE5KMnk1YXNj +UnFkNy9uSjlsTTN3akpyUXRWLzE3Uk5yR3g0NTZZTWJlUm1mMVR2eWphVVlqDQogeUNYeUQ4 +Z0gxRGpmcURBWnFZdHFyMzArRDRDODJuODd5Z3dMNUtsMEMxMmw3TVp4N004L1loeHdZSk5E +cXlselVOcTdvcUVjY08NCiBDR3NoQWFPY3Nuak92OWowN3R2UiszZ2FTcUppSkJpZC9tOEpl +WEFaYUU3YzYyOS9TR1JXUFdmUEFXaEJOczR6Y3hMMElsYmxCdw0KIEd6Zi9rQ21HZ1BCa2pB +QzlkQi93RFkxVjJoT0lsa0tSMUlyUnZ0c3BIMXlLRExTdnh0QUp5UGZqUUVaU0NDT3BiaC9o +WUxPUU5RDQogTXJsNWQzVy9NWjVVSHJCNFh4K0tqSmEyd0NWKzBwalZJVDhTMDVCai9wVDd0 +UmoxeVpiei93Q3djNGJhK0ZoS1dBYmtmNjE5NVUNCiAvZmdhNnZPa3p0aTk4K05kaGF6ODIw +c0NyMTA0QUxhRzh2SWwxUkdweXVqZG9mNGZ5L2wvZVNITFNwZHQ0UGl5bFhSZThTcHJaLw0K +IHRQdzMzTSt2US9wRGJJN25nekhPbEFhcitzT2xVYXByeUtCT1M5dzUrZFFwTEtwOEF2WWdK +Z0pmOVM0OWFIbytEV0VHRGF4Z3NGDQogVDcvYUlMWENXMmFEZlZqajV3V1JNanhuTTZuTjdN +Qkt5QStPdFU4V2Rpc3JMM2pYZDRmQ3BrdDVwK1daQnU4YVMxNnYweFF4eUMNCiA2WDUzTE9n +b0Q0ZjhoNGNVSnJETG1Vam5SUFJQM2NIZ0dlMVEwV0piZHpENVBEa1pBNU5yL3dESVVhYnYv +U2JDUVpIM1BKSUJmRA0KIDhUVC9FTlhhK2NyQ0kwd1VOcko5ZUxXRzlOa3Q2VDlRQXBCaGhB +T2pFdGVVeklkZFU5cGlqZlJEN2xDUjVyT01JWVdrbThWTTY5DQogenBuNndhQVdKWStHNTF5 +VVFuNmlqck02OTRxYmY1dWtYb25NKzVBME9yWkpXTTR0V3hJcjJVQmFhOEpjdUNMM2ZRLzIv +Yy9EL0MNCiAvZnhONGYxMyt4dys0Ymkvc3ZtTTUvdUgweW54d1F6VHZ3bmpoWVJTSWlMZ2py +Rkhic2REdGxFQVZnOEtCcHF4SjBZUS9xWjRIUQ0KIEwzSmpsK3RvZWhGK0E3Q1hxdU8wd0FI +NmhvUWxxckh2S09MbFRCL1hBc2QzTXVvemNXYUZaU3FXeld4c1pnK3lWUkNMejBJaGlCDQog +TWtxdU92OXdCYjU4eC9kUm9CS3l2RW0wd1lOd3grb0tZQUFOQ2IvTUlwNU9KSHltT2o5WDZ4 +TmhPdzBIekNUMEFaMDZjZUFiaWUNCiBicDFtQ1pZWXN3OXFsZWlZWjMwbGc1MVZ5K3IwY1lR +cHVqc05kWVljTXNjQXhsMGRwbU9OUHkrWmY4Q3hKMTB6bUltbEdsZjA0Tw0KIE9lVTdaZjd4 +UkpXR001alU2NlB2eFVvdkR0ekorWmppQmxiK1plVjA2dStjTmhPeEswN1RialNoc0RON1Mx +Nkp5eDd4eTZ1Yld6DQogNGlKLzdNYWNIaFp3Ym03RUFsUUVISVFwbGdKMTcyUDNCc2F1UEt3 +akdPSStZcjkvL0NZR3JWQWEzejkyTitCc2QvRmhoVnN3Ti8NCiA2ck40Mk85VlJFeFVZakR6 +dFppNm92YWlxN0l1L2t6SEk0NWdKZUJCMUx0ZWZCQ01tVTA4RktyNjdTa0dMOHppU0FZOTE5 +VE4xWA0KIG1WbVh0N3dLTU1Odi9oakhiRkVxelYwYlplTlpzWS94NngrVkprZkpCV0k4UlI1 +NVNvLzZDT3NRMWVXSC9rd0dHdEE0WUVUNG1PDQogMDNybndBbVF5WXVubHBXRGtDc1B0cjFn +VU1pVVV1SC9WeFpHTVVqVlUxYThYLzJnQU1Bd0VBQWdBREFBQUFFRW1EVEFIT3B2SksNCiBM +MFd3OTFrL21vWHZKODUxTm1rKzE0a3YxRk54VG8yZ0xDeHpWcU5HRk9GWVVQdmQwdXRqZjBx +b1phRnVZc3M5aGQ1MFJ4Q1lRZw0KIEFBQUZXb3N2ZzF5MVBuYjJnQUFBQUFBN0xaZFd3d0FB +QUFBQU5aKys5L3BoR2F3UVFBQUFBQUFBRUo0L3dBQUFBQUFBQWhSdnkvDQogbnNFSXdBQUFB +QUFBQUFsNVJvd0FBUUFRQUFBSkJQb2toZzZBQUFBQUFBREZVSUgvQUJRQUJnUWNBQUFBQVNF +S0pxMHFNQUFBQUENCiBDOFJ1bkQ5OG9BRkdicWtzSUFCVXN2WG5VdWdBQUFBQVp6OFZCWlVF +QUJRUFB4V1lvQUNkblhjTU1LTUFBQUFBZmNNZTBvSUVBRA0KIFd2N1VmTllJQkxJMVV2OEFt +QUFBQUFBbmVTdTIrQUFBQVRzKzliU3c5TlJEcmxOcnFJQUFBQUFSWVBlK0dyQkFBQU44SjJV +QURMDQogNDZoejRzTUJBQUFBQUNUSFljSVBJQUFMMjlHeHdBSVRLYWs5cyt5SkFBQUFBQW9o +TEwzRUxPSDRzNHA3VjJydjBOUFg3K3pwSUENCiBBQUFBVjg1QkxFZkp5SWUxMi84QWZmTEdD +UjcwWWttUXdBQUFBRVlqL3dDc2pqUStGaTUvL3dEL0FQWkhMajAyUnNlVVFBQUFBQQ0KIEV1 +RDkzaU9LS3cvd0QvQVA4QTZQTFBsbDk5ZzdZREFBQUFBQWdTUVdwd25DS25QZjhBOUNadmh4 +NzhmLzhBcFJtakFBQUFBUkxODQogUkJ0UGQ0M2Yvd0Q1OWJQYjZEU3VUV1pmVEFBQUFBQlJa +dmRjNlQxRXRQOEEvd0RkbUxtdzhnc21Bd0lpcEFBQUFENGhSeDN0MWwNCiBldi93RC9BTWdL +SkxRdzh2OEF3VUV0TEFBQUFDeFgzM2Y1UmFEL0FQOEEvd0Q3L2kyNHMvbmYzcFpObkFBQUFX +d0h2ZmY3OHllMg0KICsvOEEvd0FzUjBiOFU4ZlBPZjNTSUFBQkhILytYUEE0NXBQNy93RC9B +Q2xYYkptL3oybmxKR0FnQ3dGQ2NvdnF4djhBNjRUZmIvDQogOEFycFkvdzIxL2ltQzVBQVVU +Q3RlS1Y5cWYvd0Q3bVN2UC93RDl6djM4bFg4SVphOU1JTU16R05LazZUNy9BT2d4dEw3cWR3 +K0cNCiAwOFIvcStxamdhY2NhbDFpWFJVLy93QzlTY0ZKZU9qM1BHZmVtSWVhZjFqRm12OEE4 +VmxhMzcvL0FQTlRMVDVUdzg4OEVkL1pmLw0KIFI3bGRIQysvUjFhbjVYL3I0N0phT211dTBR +QTd3dnozLzVwcXQ2aUNKOTY5SzQvdnVaeG1qS0dkNUxtYXZlMTNEcGgyNzlaYTJpDQogNjl4 +Ri93RDdUMVZqTjNmWFovZmZmdi9FQUI4UkFBTUFBd0VCQVFFQkFRQUFBQUFBQUFBQkVSQWdJ +VEZCTUZGaGNmL2FBQWdCQXcNCiBFQlB4RGFmb2o0UjFCL1FCTFFlQ1I5UjdDSHo4cGlNOTh4 +RGh3ZWt3N2xDVm9yWEdFZDFuaElTSTdOQnF5NW1peWxYRWUyS1hvbA0KIGVvdjRoa2V1bzlu +RXlxNElTcy93OFA4QWg3N2lKOFpjUVkzUzNla0hQUlZXVlBaSjAraDRESnlqR0VTbjRMdEJq +Ujd3ZDB4ZmtuDQogZDF6RjFBMmFNYTdGaUorSHlDbWdXem5vaUMvTlpXM0g4SkxOV0pxaDJU +VnNBbVMvQlgwVXZCcmlHUHNDOGcxVTFpeERHa1A4ajINCiBCTHQvWGxZaCtnM3c0UHZtclhP +QzE1Nk5ldkZ4MGlLT2hJbWFxb1lJK1lnbW40VzU5aCs2c1ZSU09IcjF2VEd2MGdrRnp3dEg1 +dw0KIGFXME9TaDlqajBhU2x2d1NjTGhLdy9YcXRJbE9iUEhIcmFjTW1MS09NQzloaUhLc2Fn +NFBMd01MWFFzYlhwVC9kdTNINjlJU0Z1DQogalY0Y1ZDbm9sbEd1V3RURkE2VXdiMGViMHFh +Rm90SDZDMHRFMDhaSHdaOFI4MFp3RnRWK2xKRGh4bmhTNEExVjdQekkwcFN6b3UNCiB5d3o0 +Q3l4RG1xaGNXZWkzUWswUURGTmRQcHpCYmQ3ckJ2M3dROElMb2xFUEF3RlNSaTM1aVo5eEQ0 +NGRORitiZW02cEQ3TkVOWA0KIDBhOEVzRy9FNmVyMDRmQlJySGNOb2JUUXhjS0xiVEJPZWJX +RVVWdW5sbmJWOUVqUkVUMWREWkIzL292U1Bkb01SUGVkZmdrZlQ2DQogOUV6Qi95SHFkSWEx +RGt5N2VJcFI1UnpHTDNibmMzQzBlVUo4eW5GUGpVY3Q5UTYzUTM2cDNiNk90dVN0dGNJYU02 +V2pqVmFnWjkNCiA2ZTJQRTNzakpxdFlTTWhiTDBTaEl0R0xrdC9SN3pQYUU2cnI5SVNNdC9v +MFZ6VWZHMFc2d2c4cHhyWi9qUFhkQ3JyVktpb05UOA0KIHZHYzJqN28zR3l6aTFhY0d5b1k0 +dGVhL1U3QVkzQ05iMDlPNFA5eXVpMnRuVHVhVWN3b0llUU9lTVhlNkpZTW1jS1hRMVBkMGZj +DQogK1ljdVlmQlBXaUM4VHd2MG9veEwrNTlPb2ZRY2ZHZk1QbXpYQ2FwZWtKWENJQVYxanhT +OExEL05KK2xsRkxvbktKMVVUOUVncXENCiAyWTJrSVhmUkZIRXhDTG43bDRZcFVUdHd6eERo +NHFnbmVvYi9nbWZHUVV3eDZkQkMxZzV4UFJsZ21sNks0SHVUUE9sdjRyR0Qxag0KIHdoeGkv +dUpUNHg3MTVnNkZocklURkpQTWNEVy9CbG8wVndWL1NuNDhhNml0WGlNZXE0ZzdsdmtaNnhm +d1p3QzU1aUNXRU5wa2VpDQogTXN3WlZPRVNRWXRDUmlGL1pEdWdtaXhZTnBVeHMwQy9vU0lU +aHNvK0REL2c2eElhM1EraUR6ZC9qSjV0Q0NkdG9mK2padWo0U28NCiBzVUk2T3lTcTRaLy94 +QUFnRVFBREFBTUJBUUVCQVFFQkFBQUFBQUFBQVJFUUlDRXhRVEJoVVVCeC85b0FDQUVDQVFF +L0VIbWxLWA0KIEZ5dEZqbjBiVHhDMDZOTDRSc1RzYWZvdDNlYmh1RUZMaGFMS3hUM2dsS256 +Zy82ZjZDVkhGMkNPRUpUVlBXa2I4T3F4SVdQYmh5DQogOFBVRThKbFBUNnNYQ3cvOE80ZlZC +alZDM2VHT0JMMFRYelpLZFBrSFZsckNVVTNsUHVoYk1iZ3g2SThma3Bxb3M0TmtGVDcrRjUN +CiBDam1yR1cwVXNXOXpCYWxYY1JJczNkUFF2TkdKUGdKM21JdWlGeERjaVA3alBRaURyV1ZQ +RXhQbU04MlY1ckZHUGZteTZKVCtqVw0KIGlGaHF1SXYxaVVUSEJYUmRIU0h0VFBtV1NWRnVl +d3RYZkJPeGZXWFdmcXorQzArRnkvQnBBdWlFcjRScDhIRWJGcFZvSjZwUjRiDQogTkdHNjNv +dFJDUlRLWWltQzBPV0ptRmh6L3dTdkJDVkhqTHA1bnpiMkozUm91cjZvUW5ER3hLRXcwNElV +UndUVTVQelpLbUpOQ2MNCiBkR2c5WlVKaWNMbWozcU9hMlNWSGp6TUhxMlhTUWhDRUtlakpL +c002SFVhbXA0ZkZGdDBTT0ZiZWpYU2kzOWhOR3FQSzBHU1Vlcw0KIE9BT0lZb1ovcVNOQmpF +cU56ZXpPd2s1dFNoZEpwQm1GRUVQUXNGSFV0RVJFUkNSR3cxNkw1YXREVlJPMXNsVUpHMWg2 +czhDOG9mDQogMlBWT0NSK2tQd3ZaS1VqWkVBME5FSVREUTFmd2p4b2tKV1RqUWVIZjBOazRM +TzVoQ1pZdFVHbzlDdDZMbHdSSkY0SWhDRXhUeDANCiBpMlVGMWZnbFBlaW02aTFDelJiUWMy +NllYQjdNZkI3eXp6RnNpNk4wRTZycS9HTVRlS0Q3bzBSaTh2NDBvL0NtcjR4K3NQV1NITg0K +IHFuT2xrRVBaNGVQZy93QUZvK0pqN1dHaVpTZEtPRFVvOVh5SHZVSTVaejUrOEN6QnIvQlNq +MkVWNFhWUFBkTEJnNndyeGlkNnZ6DQogbWljRnpyS09DMGdvNkdaTTlSOVVYS0lJVzZKUStn +VDV0OEY3Y05wS3NXcUlxSVRiZHpDRTFDMTZVTlZRZTJqRFZJT2lobEZHWFYNCiB0em1JWE9s +WVBBSDNyMHVIODZjc1dMSVNDbEVTb1VTaEVJMktLaUhUekFKVHBiaU92b2tQOGV3Z0xEVjlL +K0RaREd1NlM0ME9jaw0KIHVFZW9KSGd6aEMvQkVLMFdFWUpZaUltalZRa2VQZzlJSmZqUzlD +eFlOYzRWTHdiYkZVVTlPQ1ppWjhFN3hNOGYwdGhSVVdoemJ3DQogbThrSGRNUTlYRG4wNDhH +N0cybWpsMFNnNlhiRWhTUkQ0d1RkRlA4QTRFVDdsTm9hZmc0dlJYMGhOcmhkYXhDbnVGRzFy +Q0lPWEINCiBZLy84UUFLUkFCQUFJQ0FRTURCUUVBQXdFQUFBQUFBUUFSSVRGQkVGRmhjWUdS +SURDaHNjSHdRTkhoOGYvYUFBZ0JBUUFCUHhBNg0KIEhTcFVxVktsU3BVcVZLbFNwVXFWS2lS +T3FRNk0wbWtlakg2R2V6M3VndXBXTXdxNUdxb2pmckdtM2dDZVhEOFJBYmVBVS9pQ3l1DQog +V3Y4OEZ0b1VUU2lpcllMMDAxMHZHYStNeHBGVzMzYWpsZDY4eGJlenoyZzV5WWFPOFdHdWox +U1YxU1ZCbUlRZ1FQcHFWS2xTdXQNCiBTdWxkTDZKRTYxR01lMFlrZWpBdXVid1YzbVZhYzFa +cUtXRmJabFc4OEdUSmNaOEF2QlBJcjVRQVZoWTdmTVVNbG9XOTViVkhFYw0KIDJhVGxDaGlH +dzdOTWh0VnRaVnNpN2NCNzh4M0cwSVRYWlNPMGdxcS9BbjVsMmI1TGRlOENIeGczQWp2UTQ5 +Z0VTdFJnMmVoYmdpDQogSzhmSk9PZmZveXBYbUJIRVdYRVhubzlVQ29RaERyVUNCS2xTb0Vx +VktqVXFWR1ZLaVNvblZqSG9rVG9rRzJyZ2pXT0lZU29HTG4NCiAwT0JhTjVNeExvSE50OHRl +N1BiRVpHY243Z1gzNkNzdDNHSlNxcXh3MnJYQkZoZmd5UE5pTDh6QnRlT2g4cS9NS0tYbHlR +S3R5SA0KIGljV1pZRFY1UFJsRXRzN01mbnpCbDkxVkZrRUFROXVtMTNKUjZTNHhkOWJucEc1 +UkU3ZFFnUUlkS2xRSldPaENWRjQxNlpuQmhlDQogMFQzOEJOdEZlNUFIdVY0eEVzOGZFeHAz +NUlsY1I2TVl4NkpLbFJJa3J2S3hmNVhCN3hqN2RpNVZVVEk1M2pVeWh1RXlmUFhDMVENCiAz +aEdsbk00Qit2bU1EZDhFSmxyZC92MWdZS2xheDFNTU1CVFFaWTRzRjBhTmhWbk9kWHhDM0o3 +QkVyQ3REeGRiN3pPZ3Flc0t2TQ0KIFVPSmNZL1lJZENIVW5IYVcyNDR4YnVXaEFHMWloNFJl +WGJGbkVPWXM5bFVjT0dtWEZaQXJzQmdCVVhkRC9xSS84QVgvNmxLb3VWDQogUDVCanhkUS9B +UW84TkI4ZitZaTN3TDcrYUFzMFZDQ2k5MVA0bWk4UHpLYTduaU5qR0htNGtTSkdNWStKbHhF +c1R4QVlSUWJOeFYNCiB6Qy9TbTh5bVg5eFd1ODYraHlBNUJuRkdQcVlQTXFQdGJUeGJwWlRM +b25kb1dQazJTOExtbnpFWlR6UGVYTDZWMHFWR1ZLaERvUQ0KIGh1R3I2S3pBdGRDVXpHNkZQ +WW02ejRqU3pOMGk3V0hMY0toSzFMcjd3QUFBY0d2aU9lTDlaWG9lS252K0o2NWczL1lBT1Ax +Szd1DQogT3dRSUFHZ0daUjdoUWZJbWg1RjRBMnFGN29xVnFTWCtDN1R6TStxNmlSM09Za3FW +R2lhV1l6Vnd4Z0NzeFNvSHUweGRPMkNyMmcNCiA3RzhIZGg1bzhIMjl6bXlPQkR3bDNDQncy +WFQ2WFMrM0JEN0VCQVcxaHd0NGRZdUN2aDZWTHpVdjdES2xlT2crajFoUTdUeEZ4MA0KIE5n +anNOYkROYmlPMjBBQTdxMi9EQXJuTXJXbUhodjdsWGZic3hBSUdxaWVubUpxZ0NoVXhoeGRt +N3ZVQ3ZKa3RYWkduM2xmUFBtDQogSjBlaVJERm9jNTE3eHJndlV3WVIrR2tvVWZLbFZqdDk3 +RHViTERPbFNrbjNoUUlYdTZNSHNZT1lXNVc2MVRMU21VeXBSM2xITEsNCiBPOHhDb3N2NkJI +Q2R2MzRteS82anpEMEFqemFEbkdzYmlFWnNvbk5GM1FjVERCZ05mOVF3M1I5NG80TDd3Q0Zj +RXZMSGIwaEJmeQ0KIE1IbFVsbmp4QVpERUxMeWhkcG8xanZHN3F1TXhKWGRsSGVZN3pKdXNs +RlVKUFF0N1F1N2FYdExlZSs0NXYvZ2MyNXhXWTdPODJRDQogbXYxSGRBSXVJNHBlVndYdmNG +MjMrNWw1Z1BlVTlGZUo3U3ZXYWc5RjBKWlQ0ZzNBV3JRY3l1OVY1ZzdsK1RYQlRHbXczYXFk +OHoNCiBYUDhBd2ZqM2prcDQrSllBMW1pREorU0NDSzFxTHNheGRKMjFHTjhUMElvTFlZVUc0 +MDN0NksvQ1lFSC9BTi80VzhjN3QwU3VzQQ0KIFR1Q2xlMHk1dngzLzhBc3VzTG54TGx5NWNW +dVh5akNYRGlIVFdVSEFyWHRCWERDeUNqYTVnMEMyM2FTaUhZU1pVLzR0MExkaGhEDQogY3ZZ +TzNvUDdsUEFUZk5jZDVSeDQzTk9FOHRWS2NXa1U0TUlxdDJJZWZSSzRsR2ZHUCtIb05FWXRG +c2M3emg2ckNxTzMwRlJxUFMNCiArZ1JaenFXMHZ1TzNwRzFUWVRlYVBEbktaeEZZdHVWc3M0 +cmovaXQ0cmJLZ3d6N3k2NkUwT0MxWTJNdUpNS0pQYXIvTUlCWGRROA0KIEpOK3JNZjhBZXk2 +a3dYQ3R3d0FCaWpqL0FJaHN6VUV0ZktDQWJ0RHE5VWxRSU1PMkc4VmV2TUM3TWtocFlaTUE0 +MUx0UlpHMXRmDQogVzF6UEZyWEx0LzROZE9MNDZlNUxCdGFEY1RDenR0djljQUFvWGcvRWJ0 +VDRMbW9oYnpXYlp2V2dFeHcvOEFaUVlLcndVZjhUMGENCiBtWEtyUDJzUDdBRFRpZTh1WEYr +a2hFSGg0VjBscDV3eTJ6NjRPQUF4eS9QL0FBcitZR205WlRnK0M0Tnk3V1dHTlVjbGY3R1A0 +Uw0KIC9zSWp3bEFQRHl2TVQ1SnV5NTN6MVVDM1J1SnpiSzlCU0pXUHB4eS9mWXppdWYyUkNF +MDYraGgwQ1ZLaVhRREppbmw0aisyaEt3DQogTUs5NmFYNW5BMEhIMzgyVjhkNTJGcFgxbUl1 +QTVlZ0xtZURZOEI3cEVsWXh6VlQ4TUVtcFlmeVVSRTdlb0lBQU1CeDBLang1a28NCiBaSEw2 +NXZ4MHdGbzBkcFRMeDBhOXBqZ0JzNy93Q3VPK3JWaGs5V1lsTGxnMkhldVlSZzRxS1RJaTMv +QVBJc1ZnY08zQzYvbGlIWA0KIGF4Ym5ERERNL0pFNXprc2p2ZCszMi9pQitFQjdIOVJPMFJt +ZTAzeEtsUTZocVJJb3QyaytFcGU0TnBtV3psY3I3eGx0NktQT1pnDQogTkdFNW43KzVXUjdQ +TTVidVhpRmxzcm5MclFiMDdTUDhqSWIzd3ByMmpvR3Z6RzY4OTV3MS8zTk9DT0lzOWdmMGsw +WHdRR0lObDQNCiBod2ZJRzQ4UVNJYkwwTjFNdTk5Y0hINWx6SFBLelVHWkVOV1JwZXF0bVlN +SEJjeUltSzRTY0FJQmZac1FVenkzajJFMjhUa2o0Lw0KIElmL0pvTWx0cWVPZTMyZjlic240 +SDlTcFV6MHMra3lERmVGZG9aOHFaMFBScTJyWkxkNmgrczlDL1JnQWdNNTdPWmZPZ0hJVm9X +DQogMEZtR1ZUVkdPVG43aUNvY0N4N29Lb3p4b0VHaStNOE84SEFHUW9BVUh3UTEwV09KY1po +SGFLMTJFWVBFMHdkMk5pUWI3dnJLMDANCiBOVW13ckFjZlVieHVBUGFnbkVYVjA1c3NSK2lZ +dFM4dHQ5K21nMGdZRTM0RXBPVGFyeWhlY3NiS1N3RmtPRkRkZDZyRXB5L0lUdA0KIDlqL1c3 +SW5zZjFFcVZLbGRTK0piMmxuYUJ2R01vMXlYWGNuUGVHZUFBZ2RuL3dCaUJZYkdBSzNXcnl6 +T2I1KzZ1dFpGb1BQNGcvDQogUnFobDh2ZG01Y3hIeEdNcHpxQmNKbTc5Q0pQQWZiV3RuSklv +aFY2ais0K3BRRlVBTnhuZmdtdzgzc2dXVTZBUDdCbnFBV1NzWGwNCiBXMjQ5MHZKd0lNZkVy +cFhlTmZVQllqd25hWno3Q3dOV0dRY0dNYmxWRkQ4UDdPQXBieWZyNm1ZY0JYNFJCOUsrUWl2 +TXVZbU9sUw0KIG5pWmpEUUR3SEE3UjZqRnp5Ulo1aTlNVXQ5ZlAzYnhmcExBS1FkV1VQNXdi +dnc5R0dZeFlzUzdsNXlWV2dEekYzS0RpQU9IUE9yDQogOUoyNTR6OVZwbjBQV0N4WDJhdzAz +U2EyZVNWSENvcllaUnZkbCtJUWVXN0JmZ3dKNnJHeW9RcFpISWxqOHdZcFFVZExEKzJQclMN +CiBOM0hNdU1RbFFVUzByREhHKzhlbE9kZ1BoRnRVOXdPRjJPdmszRk1tQ05pN2lXT0dPR3Vl +WmszOURwZzdtcDlreU9qSHdsbERybw0KIHJzaVBQU3BYZVVSV0IzajVyWmVEcEJuTFcxN2Zj +NW5ndHZndWR4UW96eHBQSFlqbnBxTEhvcWEzS2tWOHF5RjNkbnZCQm9vR3VXDQogY1ZXdnE5 +STdJbzVJYStFaDJqS2F4YkFCWW41ZjhBa3NXMENoczd0ajZkb3RPeXpQa040MW0rWUlOd3M4 +aHpQZnBlbWFzZ1l5bnANCiBpSjI1M2RTdnlSeTZGcjJKY0lRUGh6YUY1dml1R0RLeFNRY0tY +eUkyUjlwYkFUSzdUUEx3VFlkYTZTeXl3c2FRbU9Mcno5SERFNw0KIFdBK3lIbVNzOGdnVnJw +bnZGcmVaZmlWRXZvU0RxOVVSYnU3MzB1OE1MNjM5eldadWVQMVJjUXg4aVI0NzFGbHhqR0ww +Y0lRMTdLDQogMzlSaTJsV3g2ZlpBWUt6UjNqRHdLamdPdml1bTJQVitvNVdZWDNPb1FmeUlz +eVA0ajZ3TDBBSyswc3pZREViNVh0UUszYzRKVEcNCiBDR2dXMkpaUkNuUkxoc0hEaFRQaTlS +YmtJVlBBUkxEQ2JuS0s0MVd1cHM5Wnllc0VaY0tpK3hVZ3BjWThTdlBSVmRLbFJPbkhqVQ0K +IC9xOEpZNys1czlKbVozc01HdTQ3S09kOTR4YWw5RjZPQmprSzFQa3pQUDJVeGhwR2ZLc2Jk +RFNyMm5NNHI5VG44ZEFTRVYwWlZVDQogQnl2SGVGN1Z4Z1VSTEdDNXJXMHBPYlhLczdCbzdH +SUhtVkFqNGhSWTJCVnB5T3d6M205Y3hIZTc4MlBlSTRBVmRPOHc2dXZQUkwNCiBWbERYaW1n +bzArVkFhdDkrbnZOZVpaMm1POHhHdUpVSDk5S3ZMOXd5d2VvL1V6Tm1SUjJvNWNXYkl2UjZl +cy9sbnI3V05HZTBzUA0KIGFrQnpudFgwQnZpdVZ2YzVmdEF3QVlENmc1YXJFckZMSGhMc1I5 +U0s2enZXUmk2MGc1c002aGhoWEoxMVpzN3JDZnFBaUFvN21IDQogOGpMbHkrbU9sVkw2TzNx +djdIS3crdjNQSGVkdjFQeExwY3ZiVm1hUnZtNG9OUjZzNWd2NEhDWXpRcjdCRUlPbjJlL2ts +a05DdTENCiBweFdXK2Jlbk1ZaTg2dlM0UHl3SFpJQmxFdDgzTEVrQ0FEM2duUkQ3YnJMZW83 +QWNtUWpwK0pwMzY1Z2FhM0RlNGlDelZsbUhlWg0KIGRYWWc2dTFSa00xenpEd2dhTjE2K1o2 +NzdRNklKUWRJN0l5bGRYUWFGSjhzU3V6VmN1enhIcXN1WExoMmQxWjZ3VHNPUFlZb3I2DQog +NCs1eVBhY0E0ZzhHUXViQXpTc2FtNDU2Wmx4aUROMTVnS1h1c3lUWStyL1pmSEIzTk5ZK0dP +UEk1WDJIK0pNSTExZkZoL1puREkNCiBIMUI2RFc5UjZPbDQvd0I2Z29sRFFla1RwYVZTVG8v +RDdTM3BOWTJhUFRNZWNpTmNuaGdxL29TeVZXYVVsUGw1NHBTN0NoZmRncQ0KIGV3dW95ZDRR +cVNacWd4ZDczRUhrOXdjbmJTeWpxb0dLREJ2emZ4Rml5NHg2OGoybHNZUjhOSGNLT2RVYSs3 +VlRFcXprMXRZV0hzDQogdFBTWVM0ZEM0eHYvQU5qZWdzM21XRDBXNjc4ajVOTUhwbm44aFhy +ekhDbkpoUHNGQ2JBK0VDNUZHamVjblRrOVpwUDk2dlJBaVgNCiBHdDJvVkh6S09BcDNsejJ5 +aEI5YXVOcXlpN3JtRjgvUTA0c2d5VFhnQVRCUjVwcnRycXh3VVcwckVMMTFvQVh5bks3dVhl +SVlBQQ0KIEtjbG1Ibm1Pb1pBc3B3QTZacTQwQ2pDYkh1d3pRVlZ2Z2hlUVQrdzNNQndmY2p4 +MFk5U2FJTGZtZ1ZIZUEvZUNWcS9BL3dEVXJwDQogREx2QnpOWm5udkxqT0llZWdNQldTeE9Z +d2toc3NqTjNGbmZlbFQ0ZWpQdlBUNlBMbzNDamtKNVhqOFJ0YzdnR3JGUnJBVStCcjgNCiBE +cVF4WUtTYk1JT1N4emNWWUw3eDQ3K2U4ZnByWm5NWUhEcktXQUFYdnZHUUxOcW91RXJSVjZH +OHpFcGNFWlNuL0JBVFpKNHpDYQ0KIEVQQUgzRVZ1TzI1L0NRci9zQm1BeDRiMTMvQUxIZWQ2 +K3E0c0JjQjVHVjRYRXNJWSs5VWRvU0UyYXlYZU5MK0Vpem1EWk9QU0VjDQogelhTNW04TEV4 +TGxJbGo3UVJOVGpEdlhiVjRCNGhKc2dJZWptZHU5Wk83c3pIUXlnNHVPeVVTN0dTRUowU3VZ +bGxMWWxwRER3S1cNCiBpNW9IZC9XWnpvT2U4OVpVZTBoMFM1NEJNajNKekc4R3JzbXp1ODRn +OWJJVjd1MW96V1ZwTWZjWTkxTVVVU21CdGxMOHd4eWFOMw0KIDBFSW1xVzJxZUtXdWVZbVNO +MDUyRmtONDhzUzk2NU9HY1ZRdlpjMTNsZ0RZODFMNlU0TmVLOVZuWUFsSFltdUNPYXZpT2Zx +dVdjDQogbDAzWGVJNEtCTzZ6Ky92YXFyc3F2RVcvQ3BZRWRSZENER1dTOHdtMkt2ekVGQUNr +NTBUYzNDRUtGVURIWnVyeEQ0M2M4djk0aUMNCiBLR3kvYUdhTlJGT3VjOXhpc3ZZTWFGVnFG +OGl1SHhGTkJoNGFiSDB4TXV3aHdUVlh3bkY4VHRkcWJFL1V6elh0b21mY2NWUDg5ZA0KIHhn +cm0veFlFaGFMdDhYeEJwY3JsdjdXVm9IakQ4VGhzdnRNMGRDUXRvSTJxQnZ2bDRZWUUzUUls +M0tlVy9CS0s1WnRsblNudDlGDQogeDY0OXlvZzY2b1lMS0src3NBTmdzaG84L2NyTHpSS1dt +R3RDb2o1U0Jmb3VvSjFJa3FDRU54Wm9hQmN1OWlBV2RrWFNPWmxhS2INCiB5ZEdlV2FJeFZ5 +REpybjJqZ0xLY2l1bGI0dzhjeGJyRXIvQUFod0hXRXdNY1pQRTFuTzBCaHZuMThUUkFieDVS +bVdLcTVJSHVzTw0KIElSMmhCVVM4bkRMTHM5L3QzMHhBODNqMGMrMFZ0c3Y3aEhnMzR1Tzcw +UUtGUy9jaUlLenJ2Q1BaWW1SZHhWUzQweDhvOUhwY05uDQogbHFEWEFMdkNUL0FCQ3NGaGM5 +TU1OT2ZQM08zaU50bUEzZ1FMZ3ZEdlF2N2h1SE5RWU11TzhRMTlGWXFhUCs0U2hOZ1lvQ3RD +MFENCiBESmZJd1loSlUzQW9LK3E1aFNqc05CUUVic0ExdG1TMEdFSndaMHZGUHhMSVJCVUZU +dzVLNWQ0WEYxdkp4ZG45eXBTRk5xdjFIUQ0KIFZMQ285MFhaMUFuTmE4UCsvRXI2OEcydTND +S2dNM1lRdlozbEYwVDVmRDVtOUNoMjJSR3RiVmFrTU8xeXpOc1dHaHZ5VDJoQ2dRDQogczNn +RTNGci9BRlRmUkpxUGhIeEtqMDE2OFFHYll2STRZYlRaRXdNZ1BZVFM4ZU8zM1JYTHRWOFNq +NEkrQXQ3RXZJczE3elcraGMNCiAwektiNkV2bzZtOXpjVVNMQVQrSTVtRFRrQTQ3Ymk2RWRV +TkMydTZVaHlLMmtrMDMyeU1hTCtZaFFEQmp4M2x5SUpnRlBLYnJ6Qg0KIGE0R2VtTy9abFp3 +RjkzN0R6V0ZLdUR3ZXlDWGlEOGdTS0c5RTgxaDNFSXprdnpRalBIK1YzbGFxcjh5MVVvaUxZ +Q3J6eEQwakhNDQogcUo1YnJSTEFUbXRpTkkrNHdlbHhxSjB1TUhyV2NMWWJiRDlGQ05MUmo3 +dUhEcGpzRkM3V3Fvbkk5SU5oTndMSnREaU1KeExneGUNCiBoYkN5bnlIMmFmYUN3ZEFDRjlq +VGdUdlZTNWtrYnhiRkV0WjlWVzIzQzR6ZnBjd3hjVkxzb0RWOTN4Y0VhSnVRSU9BMk5ITGo3 +Zg0KIE14ekc5byswVWR6Mm41STBiY29nODBSSWRic1MvTGNjZFpIRThtSlI2SXVSNkt0enNX +dlBTNGRGbHhycmN1Rzh0aHVnQ0g3ais2DQogMEx2RTFudjl6elBWWWtMQ2o4UUtXM2oybHNJ +YWcwK0p0TDdUMFJjd2U4NWk1eDlHbUFOc2Y5Y1RqMmI2RUFPdk1ZSnNPUWUwbmMNCiBnbzFi +MVZMSFBlS1lkMVZsZnJFZDRjODNGcG5CdzdmeERNVk9ETDhFZWhqbTh2Wkk5SVR1eS9jTjhD +UC9zQmt6bkVXTmNCZll2dA0KIDdRUks3Mjl2YU00QUZ4WTE2UDNjMkJRT2ZYaTVmVy9wTFVN +ekVMUk9IL1hBQURCMk1pZXUvdkFNWnBwdSsvM2NVeHM4M1hFdTVlDQogdzNkcEJ6aUpDNE9n +TlMyWEZxRFpPWWJpZFBUamk2aDI0M1hhWDNCOXBWaU9zSEhFRFNGS2FzZytmclBpRVVCbFkx +M081RCtSdEwNCiBUdEczek1yYVgzanhaN2MvTWJHbER4VXlaRkRobVRoYW92NVFIaktEZCty +VlFsb0FCaWpSNlJiYnJQZm9NMzB1TGZTNDdnNGx3ZQ0KIFhFcFdMK1FVZXdtRFhHcGVxZno3 +Z1haQWZnREdLTVNkblgrVmw0MDcrOGRXUTNVSEV2TXVYRnpPWmQ5TGx3ZWx6OVFCVkxYQTJS +DQogK1g2N215ZDNMcFY0alF1c2R2TTBuckJ1R2dNWWI4a0VlbXQ3VVgvSlEyQmtoKzQ5SGJj +ZmdRZlFYQTRscnlxY3N1WExneGVqMHYNCiBxd25GUUJ3aFN5a3FCaW1WZDFiNHI3eUpMZGVM +Q212U1J2RDBSV1ZCekhjdU1YSFVJcGVZZDVobFRpVkF4blVybnZ4dWkxejdKZQ0KIEQvUUov +d0RmcGVaenpRVHpsaTUrbnZXTGNWcENveERTQkpiTHkvc2czS094RVZFSlN4Y1ViamlFMzlh +d2w4emExMXFPc0RaUDhhDQogSVdUSnE2TzNlYkxOUDNIZVZlZWgvcmhGTmxZOTdoaGc2UjFN +aG1vbk15aVRpb2FnNXFEbU91cDVnVlZnSGxhak5MY25zcC9Kd1gNCiB1ajZTWWdTKzI3Zmxs +eU9jNE0xLzdIcW9PUDJFTHBnMUN2bVlkMnhYdWptUFJxTXFVUjdXVW5FdnJjdjZIVUt0ZkdZ +VndIUXVrag0KIDJiaEZxYk51Yi9BRDkzdVFnOWtEQ1Vidlp2S2taNW5CREUyNmFtNVdaZlRj +SGpwZVlKenFLdVp4UGZHdXZLMkRtbjZlWUVRZFpODQogdUVpeHBvdFBVL0V5OE1WRUZ1dlps +MjR2QzRpaHdidVdVYXJ6SGl0am1OUklrNGxkTERVY3hybm85V0Vaek5KeE1lYko0TXl2d2wN +CiBWNzUrNE9qT1hyL3FqZ1dZbllWSDRJNWptcHc2Tmx3Ymg5QXk1Y3ZwWlRlcG85K1dZcHNZ +TDFiK3psUHJvWFVKWDE3dEREc0FYTg0KIGRGM0xxR1dKbG1wdm9kU2lFcnB4TmRHMmNDS1ls +QUxVc0JmR0ZRUzNnZW1OVGp6eWR2dDVMMEc1WkRkb0w3dUhHb2MzQnJFeklIDQogUUlTcFVU +SDBYMFFwdkoybUxsQU9ieFhtRnZRTFZacWNIZjY5YzE1aVY0Z3gyVUorWnBqbzQ2WDBPbGRL +cnBtR3N4NXlwVWVKeksNCiBocURHSmF3YTc4bFFLcUFlWDZGVGFwdXFmdDhOYnBFTWNPbmtZ +VVhUS3pGU0U3U3BVRFAwVjBaY0dHV29TK3dQaGJDL0VCUUU1Kw0KIHZQRzR3YjlSZ3ArWlZW +dVlNM0VsVFVJU285YWdFcDZGUklFY1JLaDBUTVFrUUE1Z09kbkI1QzcvbjJ3c0hFN0UrOWov +MmdhZk9ZDQogd3hCc09ta1plT3F3aEhvMWdDUUJYQWU2aERlMEV1WGtPYVI3YSt6cGltV21E +Tk1maUNJTFVSdktGUG1KaWN4M0tsUSttdnBXdWcNCiBSekhaT0VHWmhOdWQwZnRFM0FmV0d2 +dG1Ja3Ivd3pxbzZoa2l2REF1SFNzOUZxWDBPaDB1QzZ6ejZSMktEbmhiWjZpeDNtajQ1UQ0K +IENnK3p1REZZUjJvbUlXM01FblRUeFU1MHhOVVh5VjM1aTZzSTZlSTdoNWxrNTYxMVlRNk1a +eE1ub0lrQXBGanM4UjFScTJTckFzDQogZmJkcGYwbC9NcnIxZzVtbW9ZWnBINlIwSUNrQVds +cWp6RmRFWWJiVWlFeUprTHFNRUs4eTlMY2g1VzhrdTB5QzB0R1BzK2tzSlgNCiBGMTZROUZt +aWc1bDFxSXc2S01JMkszdUlWV0JwRjJPZVJiZUlIdWJMOUltSUl6aTZ4MHI2V3BVUG9ZRlFs +UU14TkdNcEtybG1uSQ0KIG9mZ1FLWHdYOXB5K0VoVUYvSlVndTdhdzRoR0VvWU45SDZGbm1s +ck9KWXNNYTlCZmkvaVBUVGw4QzJjdGlFZnlHL1VYY2dVUUprDQogeUVZQWtPQ3NSTGpOZHVi +ekRQMnJFQUNGSUJEUHVpbW1qZlVQaW9NN09TVVNiMWdkVFBmc2tUVmdSdzFUVUJIRkNCTU5V +b2xqejINCiBtV1JBTUtyejJSaHFIVmxTcFVxYWpDYmpDT0lialRaR0tZWkhIL0FHbUJjYVNp +UG43TjJUUmZNUkpEMDBsMi9VNzNYaWFpSFFsZQ0KIEpTWDA0WEdNN2wwNkxMQzM3aFl3b29E +eXVvemdBcGl3andLOUl1bUtFeEN0MlZRMWczOHN2bGt0VlZoM21GRE55d0MxcXNyTk5ODQog +Wk02bVI4TkJleXI3V1c5SVFhc0JRS29qd2lkNWQzV1Fhdno5bmRudUxxWHd0ZjJDd2NZR3k2 +a1ExbHNCNjJmRU5JNVljWHF2eEUNCiBkRHFDR2g1VEJqR3BZYzhWT2pBc21CMzJRa0pSUTNW +MGpEbTJ3eGZlVjJsU3V1NWNlbWlFV0VlaTFjSjF2QXJSK2xpUFYyRmZZaA0KIHI3SnVOWkw3 +TGlid2d1VXRmd1l1YlBpTExnOUE3eTZ6QllDdGhGb3ZIdkRzM2hkSXNXMU4rNTQwc1BkanVk +aEFsWU8vZjFabm5JDQogODgvSGFacGhqOG5hbzdoUldVMGFzUzhSWmVKTzBRWTFwbFZpRDZY +UTAwSnRMeEc4QUxtb3llamoybkljdjJNNW9GMW5VcFVHM04NCiBpZHNXUTFBb0ZnUlB3eG5w +RkhLS2U3Q3N2dFZ2eEJXaGhHUzdzZG5zelI2UkFYaEdtcVROcVFNazlseVFhMzlWVE1NeGhH +R285QQ0KIHVCcENQM1R6TEg4VGo3SnZQSmgzUHd6TGRjUGRBWDhSWXNIRXZNSmMzTHBtV093 +WHhCZXF1Y0FMOTJCbnVhS1J4bTQ0bEdHRXFUDQogaWlHQ3VPSHFFWkYzMlNPTXJxNS9IWHlJ +UkswWkl4WStzc2ExSzR6NmRRelJDRGUrZnM0SVNuWlREN05NdXFpR3lRWHdTMXNCNlcNCiBE +bThXeDh4VnlpOElIQ0RreVB4MFF1aG1nbEtpNVk4bVVlRmNXSER1RUFTL3lMMXhUamlaYS9N +T2o5QmduTTEwNGwzMElUbG9wKw0KIGtGWmMwZlZoYUZ2ZGRQUEVTdkxkeDBDa1V3b2Zpckh4 +cVBRSWgwT3BkNE9PWTB1dVdnVTY4ZVRtSEJBQlZRaFZHRDIraDFtRG1NDQogQTZ6RlBkZ0c1 +eklwR0VwcnM1M0RlazdqYlZjcVB4Sm13OUE2dnRjM2src2dLbmpvQVNuK2JtYUFqczd4RXU5 +d2tUUFEyNGx4Q3cNCiBmS1BKNGxlYi9zb3NlR3hQTUN1bGxWc3R2NHBWV0dFL2tkNVA1R1o3 +VjIvd0IzbC9WekdFWEVKY0lGMVZNaGlSVFkvSDBkL0VCZA0KIFF1VmgwVUs3VDBodVB1MTJa +V1pia3JxejBjZUFpYXp4cnRFaEt6SG9kUDhBcTRjOWVmWWhYMjBHK1pyTC9QUUN2eEtLUVhP +MXpMDQogdml2SDBjeGhxZXRBWDlFekhlY1BTYVVGeTdVQ0NzTzc3Mkk0M0ZkeGp3amhwMnM3 +dFFiejMrUHJaaC91NXV5NC9NenRqRkNjMXoNCiA2U3hMclRDV0paNUxncnl3S2padlNucDFM +Mzh4eVkzQjJOTzVXRW1ia0o4andyaXpzd09LYi9DT1p4ZkVxUFZoRmd4WVBTMmxPRQ0KIFBk +MUR3NUY0QmdKT0FQaDlGWnZpb2pyYTQrUDhRUFgza3hqdFk0Y3NlbWNEbUt4amcwVStZUjYz +TGx5OHk1UlFXY3VPN0FJNWU2DQogQlErUDY0dXhROGQzMU1RWVgwZWRSRXBMTDRYOFR6NGpB +aVlVbUVVRFRoSFVvT0loMlp2NnZXRHdRSk9IY2JSSzJ2WTJVdXIwdUkNCiAzaVdRZ2RobWxD +dFd3NWdIYVlCcnRSK0pxa1pRNTVKeDVnRnVwTFkwYS9rOGFoTzBtRTBqbjY2Z0Vkd09oZ1BQ +RHYzbUY4ZDNjUA0KIHdKd04zdVZXT3FCNE1qNlJMK1kwY3VQL0FHT2RZNFRDS1Y5MThTNmtI +R0pGM1dYazdhZzdpZ09CM2h1TzJQUjNPT2x5NHdvZTVBDQogazE3cExsT1d1MVYvbFRiYnY2 +M1BMdzN1bVZMUTh3bFEvWEhRZ2orR05ZcTdPQ0RxeDdFVnhwNStybUl1cGpncCtJeEF2REVJ +bzMNCiBWZVRJYUROaFozc3hBNVZqVXplU2MzekhDcWh3VktwNU5rSVNxdk1JbGpWTEhFV3pW +WWFYajFoMy93RGtlaG5yeE9ZZEFiS0xvaQ0KIDFpNU9qYzRMQ09LNnVDNmFqUDFlM1FJU2NR +eTkzZUdkZzVUMlJsNktCRjN0MVJ2aDNDanZRQVBBYWpaYWY1NnczSGNZd09qS1ptDQogSWo2 +b0FsbnpETEFBQTZNUHBES2hUOFJGVGdKNHpocnBUWnF1MG9xRE5oYkZwbXFYeERHcWp0SXpT +YTNncTdkZExpNlpkWFlMWm0NCiBNS3JHRk5DOXA1TWtHNnFBWU5QU2x2MGt0YThkRms5SklG +SWpDOThYMjF5NWF5T2hpeVZxNjZac1NQcDB5MEZtek5JdVBNVHZxaw0KIFhXNnhoVDRTN3Ax +NDRJeTRFdm9zNWgwTFdZanZDMzR3UzIwUGxkOVdFQ2g5cHdaNWxiZFBIbmNIYnBvazdscGY1 +amxZdVR4OEtIDQogdnU1a0ZNYU9xaG11REh2T0liakdNT2owenh1Zm9vMkM0UHJOejgxK28x +SHNKOHczNDZNNERwdzNIWW9jNFBoWGZOeGNHenJ0cEkNCiBWeHptZWlqM0k0SmFqTnBTTTRp +cW5GT1R2alI3eE1xVDVseVBzd2NSN1RnM0VSMlE1QnZ5b3RkK2VqbGRKeEROb2txQzJVNjRy +UA0KIGVHV0IxYXdzZGpsc1E2dlJWTFJ0dGE4QzRKcWpKaW5TVTV3aWUzVTFHRVlUaGduRTBZ +QWYyWHVOOTJBUUhnVVRFRy9CVDBvV2xxDQogK1BIZnhEckFOZzJnUEt6S3FJNVFUR1JqRVd3 +aHBwMmJVVDJtSS94d2V3UVlCQ0V1UEgwc2VsRG9aQWUzMWh3cmdjS2w5SmVHQUsNCiA3VW9R +M1JZY25LSEJpdFpGaVBrWXd3d3VEcW1JY3lhQndpZk9keE8vbTJndDJ1MWtiME1kcWNRR0Zp +L2FIZCtFbzdHcWdzd055ag0KIDZrckFFbkVCSFh0QktjaHVDb1lUYml5SzJubkFEeFVEUFNq +c1RrMVV3Y2ppckZLMTJETnZjRnVjNVpYL0FOeE9jLzQ2SU9jZlloDQoga3JzeThlamRMUmNz +QXRzUEdwVldMVHAvZlhveFlTNW91TkEzbngzaVhxQVJ5WDgvb3d6TUJrL0tQSzR6bU9GTzNN +dGUvQXRYejQNCiBoRDhGTStMRzIzdW1KcEtjYy84QVVweGdHK0psVzZoQ1htRGljdzZKSzZN +U0JuTXJya3dmUS83ZlhXZjlpQklPZ2hNWFUyV1d1OQ0KIEFOMjR4R3RLaDUzRjVsM3RpWDBM +SEppQU56SEtLT1JOUzFCTzZoY1UyMlFwMHkyQTZVUFpjUGhpV2haVVg5VkZ4bGhoUFdsK1pa +DQogM1Q1U0dFQ0EwR082QmtHcVN2a3JsWUVyUFUyVkNEdk55Q0o4TVpPa3JxMEE4MHY0aHJI +VGpkdFZieEttV2xtcVJCUFpmbU9Ec1QNCiBxVkFyRGk3K0piVGpQYnJVcVZockxBUDlDQXBN +ZjRRUk5TT2FORy9CQXh2UE1SbUxhYXFDbUlXQVM3VUs3OG1vR0NOaERmaTErTQ0KIDNCeG5I +ZGlTdWhDTzRhaENFWXhqR01xc1ZYc1hnRW5tYy9WVm1TenRLdFJXb25HdlpmaUk0eEl0bzNh +aTdkRjB4T1Q0bzM0aDBXDQogelZBdzhpeHlZaXlQNFo1aHVQT0l4Nm1ydmtnS3JONVIrcHdD +aWtmZ01RdmI0djZubzlEaFNxOHl1MXR2RVFNWXNSMzF0RVRLYUkNCiBvN2FjTkJWMnU1N2Jn +K0JETjJBa3FWRWxRdjE2djU3MUU0dmlLc3ZidmRIUHRNYlk5S0lDZUZGS0Y3S29RL0cwekhZ +UVZYb3dhcQ0KIGc4WEtyYkhXVVlZbDlIcWVwMVk5T09qMm01OXJyOEROWXJmUkwrcldRcVpK +b1VXdHRBSGxROTR5cTFzcFBTQ0RYZXR5cEQ2Y003DQogRWd4LzNQWk14NFpKL1pWZ2R0QVQx +Z3AxUGhLTWE4U3JpSW10MWdxcXc0NU1OK2hxaE5WM2ZtUFUzOWhDdzM1NFJQNUZVdHRyN28N +CiBXSFJ4a2x2QXozS2xGMW1Zc3NMT3dmU29rTXRmNGhxbmpZS2M4VmhlMENCaXFicDhBaFE2 +M2hkNml4ZjFRRUwzSzNEaWxEMXpLcg0KIFZGY1A3M2xVQXhIUDBuMEgwTXFNOVpjWTlBV3Bi +K1ZReFRZVEtwWHRpQnY2YXNEcTRnZ0J6UlNoOXl3bnd3QnhWYWlnMkdvVnhoDQogYitKaThD +aHRhYXpNVEtwYkRIc3NORE9DUmUrYTh5empYNHFPc004c1J3Mzh3cGJTWmtHMml4c2NETzNl +b3c1b1BDWWcyNnJwZGINCiBsOThScHhPZGZmbmhZUzNwc1kvRVhRd2NwWHVDUVpwQzY1SVVq +eTA2KzlJN3JuL1pSQ1pSa0RheStMalhZMUFBcEJ4cVc2clBieA0KIEx6cHJ2eEt2UStyZ2xq +bkh1eDZiU2tVVnc3SXc2MmRyTk1MTVlLeG1VRFFVOHR6aTF1TjBYRG82Nk1ZYWh1Ry9vSXg2 +UFNwUnpxDQogSmltc0twaFVyUk8wV1ZIdVFBYU5CWHY5TGw3Q0Z6T0c4dDdEam5EdWpSbmpk +ZTUxeE0zc2hxMThDdytDWU1HQm8xS2IxWjJKU3ANCiB1NmFqN2o4SzUvUkc5VlFKWG5KQy9y +UjNGVlk3T1hnczUyT1Y1aG5FQkh1TXVQZDRsMTdFcm4zQ2hmS2gxNGp5YlBxRHl2WHN3bg0K +IHVBdmxnSDRsUDh2Yis0cW52aWEvY0R0NXNDbUxuSUJRbXdObXI0bUMxQnFKc0txcklybk1O +REhzZnFVcUtnc1dVYTVKV3VZNWp3DQogU2Jnc0tyTlhudk1XdDNzUGtNdVphMEZMNXBQNGhF +Q0ZIbjFnVkw2YVQ2N2p2cGNXWG1MTDZFR0xCakhpUFZsZFhVVHZJQnBCSysNCiB5VGo2Vlhq +dWZTNnhEUGJmYkJyOHdFK2lNQVVIb1RLTDVISHRMV3RhUFpDckpiNGw0MUpZSG1yWDRpRHZq +eTVoalBBREN5K3JVdA0KIFJHTVVQaU1ad0VvdGZBOGpuMmxEbkxCZTZBdlNIdEV3RXRZbmtN +aWJCMHdCN09RbGJueUFSdzBCc3Q5REU5YlJMWUM2RlhITXpWDQogbkJNVVJHMjNuQ21QaVg3 +VUE2YmR2SUtnTGlIckE4TXhZYkRRb3R4ek9VY0U2QWFoamlBRlFBQ2hDRHVWS2xkWG9zZWpM +NjNVR0UNCiBZVGZUZlZZUDBYZ2xnMVcvNUhoT2ZkbWxlOWtYa3ZUajBaNjlhbGw3RXBhdXIy +VDdRVFl2b2l3dzJNd1JZVmhlQVlvR3pTYWpGRg0KIFVjVzBCYTI3cmlKUm9ISGlDMVlRV2kr +WWxGT1BmY3ZCZGV0NHVKT0Y1UzdyeTlhbHg3RktqdkZBeDJlWXRnODBqN3VEMGdBVlhvDQog +TVJOUUdBTm4vRXViR1lEaUdDdUplWnVlZjNCaGJQRjNKam1GVnZ6Q3hGZ1ZzWW1JVU9Xd3Mr +OVl2RUZOeWtmTnFIVXNVNVRmd0oNCiBqdDFNZlN4akdQUitoNkV1NFE2SFJqRHF6VEJidjJq +YU5RYnNwcG5GM3REa25NM1J6bjAxS3I2SFNOMTI3eXhEbEp6ZnIyaHU3dw0KIGxEd2Z5UXc3 +WmRyZHJOdVFDQjdzSjZheXBNQmhRM3A0alMwVUlPQThrTDF6RnlYWVhlb2U1TERjSE1yL0Np +VjBnSndDOXZNc2lKDQogcWRhWnJwWUxSZzZjRU9qblVFSEpDcTc3cGozVFZVaW5MdDZabUhQ +Smc4RXFNNklUUTBJdDlrUktpWllvUU9rTzI0RXdBQUs4VmoNCiA2U1BSakdNWTlHY3g2SFVs +d2gwM0RvZFdNQ0dZMHZDVi9aa0d5RGFnNU9iS0ZaTVNxeG4zK29CbER1QlJMTE81U1ZwdGNR +NEZ2Sw0KIGg4UjlHY3doWE1GdTNuaURLNGdBejNlOHRNR05LR0RXdFFqdWVTVUIweExtYjE3 +RXpML3VleXZTM2lFdDUvclhMK0lac2FoaTRqDQogTUd1eFVCTnFadHZHcDR1QzIrc2FMUHhj +V3ArV091cjNsbkZTeFdOT1BDemtQaGlsYS9WLy9aDQpPUkc7WC1OQy1TQ09QRT12Mi1sb2Nh +bDpEZWxpdmVyaW5nIENyZXcNClRJVExFO1gtTkMtU0NPUEU9djItbG9jYWw6Q2FwdGFpbg0K +WC1TT0NJQUxQUk9GSUxFO1RZUEU9TkVYVENMT1VEO1gtTkMtU0NPUEU9djItcHVibGlzaGVk +Omh0dHBzOi8vc2VydmVyLmludGVyDQogbmFsOjQ0My9pbmRleC5waHAvdS80MzdjNTQyMC1k +NDUwLTEwM2QtOGE3ZS1mOTQyYTQ2YjNkZjcNCkNMT1VEOjQzN2M1NDIwLWQ0NTAtMTAzZC04 +YTdlLWY5NDJhNDZiM2RmN0BzZXJ2ZXIuaW50ZXJuYWw6NDQzDQpFTkQ6VkNBUkQNCg== + +--sgnirk-111111111111111-- + |