#!/bin/bash
# Patch apllying tool template
# v0.1.2
# (c) Copyright 2013. Magento Inc.
#
# DO NOT CHANGE ANY LINE IN THIS FILE.

# 1. Check required system tools
_check_installed_tools() {
    local missed=""

    until [ -z "$1" ]; do
        type -t $1 >/dev/null 2>/dev/null
        if (( $? != 0 )); then
            missed="$missed $1"
        fi
        shift
    done

    echo $missed
}

REQUIRED_UTILS='sed patch'
MISSED_REQUIRED_TOOLS=`_check_installed_tools $REQUIRED_UTILS`
if (( `echo $MISSED_REQUIRED_TOOLS | wc -w` > 0 ));
then
    echo -e "Error! Some required system tools, that are utilized in this sh script, are not installed:\nTool(s) \"$MISSED_REQUIRED_TOOLS\" is(are) missed, please install it(them)."
    exit 1
fi

# 2. Determine bin path for system tools
CAT_BIN=`which cat`
PATCH_BIN=`which patch`
SED_BIN=`which sed`
PWD_BIN=`which pwd`
BASENAME_BIN=`which basename`

BASE_NAME=`$BASENAME_BIN "$0"`

# 3. Help menu
if [ "$1" = "-?" -o "$1" = "-h" -o "$1" = "--help" ]
then
    $CAT_BIN << EOFH
Usage: sh $BASE_NAME [--help] [-R|--revert] [--list]
Apply embedded patch.

-R, --revert    Revert previously applied embedded patch
--list          Show list of applied patches
--help          Show this help message
EOFH
    exit 0
fi

# 4. Get "revert" flag and "list applied patches" flag
REVERT_FLAG=
SHOW_APPLIED_LIST=0
if [ "$1" = "-R" -o "$1" = "--revert" ]
then
    REVERT_FLAG=-R
fi
if [ "$1" = "--list" ]
then
    SHOW_APPLIED_LIST=1
fi

# 5. File pathes
CURRENT_DIR=`$PWD_BIN`/
APP_ETC_DIR=`echo "$CURRENT_DIR""app/etc/"`
APPLIED_PATCHES_LIST_FILE=`echo "$APP_ETC_DIR""applied.patches.list"`

# 6. Show applied patches list if requested
if [ "$SHOW_APPLIED_LIST" -eq 1 ] ; then
    echo -e "Applied/reverted patches list:"
    if [ -e "$APPLIED_PATCHES_LIST_FILE" ]
    then
        if [ ! -r "$APPLIED_PATCHES_LIST_FILE" ]
        then
            echo "ERROR: \"$APPLIED_PATCHES_LIST_FILE\" must be readable so applied patches list can be shown."
            exit 1
        else
            $SED_BIN -n "/SUP-\|SUPEE-/p" $APPLIED_PATCHES_LIST_FILE
        fi
    else
        echo "<empty>"
    fi
    exit 0
fi

# 7. Check applied patches track file and its directory
_check_files() {
    if [ ! -e "$APP_ETC_DIR" ]
    then
        echo "ERROR: \"$APP_ETC_DIR\" must exist for proper tool work."
        exit 1
    fi

    if [ ! -w "$APP_ETC_DIR" ]
    then
        echo "ERROR: \"$APP_ETC_DIR\" must be writeable for proper tool work."
        exit 1
    fi

    if [ -e "$APPLIED_PATCHES_LIST_FILE" ]
    then
        if [ ! -w "$APPLIED_PATCHES_LIST_FILE" ]
        then
            echo "ERROR: \"$APPLIED_PATCHES_LIST_FILE\" must be writeable for proper tool work."
            exit 1
        fi
    fi
}

_check_files

# 8. Apply/revert patch
# Note: there is no need to check files permissions for files to be patched.
# "patch" tool will not modify any file if there is not enough permissions for all files to be modified.
# Get start points for additional information and patch data
SKIP_LINES=$((`$SED_BIN -n "/^__PATCHFILE_FOLLOWS__$/=" "$CURRENT_DIR""$BASE_NAME"` + 1))
ADDITIONAL_INFO_LINE=$(($SKIP_LINES - 3))p

_apply_revert_patch() {
    DRY_RUN_FLAG=
    if [ "$1" = "dry-run" ]
    then
        DRY_RUN_FLAG=" --dry-run"
        echo "Checking if patch can be applied/reverted successfully..."
    fi
    PATCH_APPLY_REVERT_RESULT=`$SED_BIN -e '1,/^__PATCHFILE_FOLLOWS__$/d' "$CURRENT_DIR""$BASE_NAME" | $PATCH_BIN $DRY_RUN_FLAG $REVERT_FLAG -p0`
    PATCH_APPLY_REVERT_STATUS=$?
    if [ $PATCH_APPLY_REVERT_STATUS -eq 1 ] ; then
        echo -e "ERROR: Patch can't be applied/reverted successfully.\n\n$PATCH_APPLY_REVERT_RESULT"
        exit 1
    fi
    if [ $PATCH_APPLY_REVERT_STATUS -eq 2 ] ; then
        echo -e "ERROR: Patch can't be applied/reverted successfully."
        exit 2
    fi
}

REVERTED_PATCH_MARK=
if [ -n "$REVERT_FLAG" ]
then
    REVERTED_PATCH_MARK=" | REVERTED"
fi

_apply_revert_patch dry-run
_apply_revert_patch

# 9. Track patch applying result
echo "Patch was applied/reverted successfully."
ADDITIONAL_INFO=`$SED_BIN -n ""$ADDITIONAL_INFO_LINE"" "$CURRENT_DIR""$BASE_NAME"`
APPLIED_REVERTED_ON_DATE=`date -u +"%F %T UTC"`
APPLIED_REVERTED_PATCH_INFO=`echo -n "$APPLIED_REVERTED_ON_DATE"" | ""$ADDITIONAL_INFO""$REVERTED_PATCH_MARK"`
echo -e "$APPLIED_REVERTED_PATCH_INFO\n$PATCH_APPLY_REVERT_RESULT\n\n" >> "$APPLIED_PATCHES_LIST_FILE"

exit 0


SUPEE-8788 | CE_1.6.1.0 | v2 | 5a3621af956dfbd254da8e091c7fe973bb59159a | Fri Oct 14 20:28:55 2016 +0300 | 1eb4151ae2391d6e444e6fbdc60f317b7aec96e8

__PATCHFILE_FOLLOWS__
diff --git app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Gallery/Content.php app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Gallery/Content.php
index ba20f4d..8150064 100644
--- app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Gallery/Content.php
+++ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Helper/Form/Gallery/Content.php
@@ -34,6 +34,12 @@
  */
 class Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content extends Mage_Adminhtml_Block_Widget
 {
+    /**
+     * Type of uploader block
+     *
+     * @var string
+     */
+    protected $_uploaderType = 'uploader/multiple';
 
     public function __construct()
     {
@@ -44,17 +50,17 @@ class Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content extends M
     protected function _prepareLayout()
     {
         $this->setChild('uploader',
-            $this->getLayout()->createBlock('adminhtml/media_uploader')
+            $this->getLayout()->createBlock($this->_uploaderType)
         );
 
-        $this->getUploader()->getConfig()
-            ->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/catalog_product_gallery/upload'))
-            ->setFileField('image')
-            ->setFilters(array(
-                'images' => array(
-                    'label' => Mage::helper('adminhtml')->__('Images (.gif, .jpg, .png)'),
-                    'files' => array('*.gif', '*.jpg','*.jpeg', '*.png')
-                )
+        $this->getUploader()->getUploaderConfig()
+            ->setFileParameterName('image')
+            ->setTarget(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/catalog_product_gallery/upload'));
+
+        $browseConfig = $this->getUploader()->getButtonConfig();
+        $browseConfig
+            ->setAttributes(array(
+                'accept' => $browseConfig->getMimeTypesByExtensions('gif, png, jpeg, jpg')
             ));
 
         return parent::_prepareLayout();
@@ -63,7 +69,7 @@ class Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content extends M
     /**
      * Retrive uploader block
      *
-     * @return Mage_Adminhtml_Block_Media_Uploader
+     * @return Mage_Uploader_Block_Multiple
      */
     public function getUploader()
     {
diff --git app/code/core/Mage/Adminhtml/Block/Cms/Wysiwyg/Images/Content/Uploader.php app/code/core/Mage/Adminhtml/Block/Cms/Wysiwyg/Images/Content/Uploader.php
index e8b3334..45bd063 100644
--- app/code/core/Mage/Adminhtml/Block/Cms/Wysiwyg/Images/Content/Uploader.php
+++ app/code/core/Mage/Adminhtml/Block/Cms/Wysiwyg/Images/Content/Uploader.php
@@ -31,29 +31,24 @@
  * @package    Mage_Adminhtml
  * @author     Magento Core Team <core@magentocommerce.com>
 */
-class Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Uploader extends Mage_Adminhtml_Block_Media_Uploader
+class Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Uploader extends Mage_Uploader_Block_Multiple
 {
+    /**
+     * Uploader block constructor
+     */
     public function __construct()
     {
         parent::__construct();
-        $params = $this->getConfig()->getParams();
         $type = $this->_getMediaType();
         $allowed = Mage::getSingleton('cms/wysiwyg_images_storage')->getAllowedExtensions($type);
-        $labels = array();
-        $files = array();
-        foreach ($allowed as $ext) {
-            $labels[] = '.' . $ext;
-            $files[] = '*.' . $ext;
-        }
-        $this->getConfig()
-            ->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/upload', array('type' => $type)))
-            ->setParams($params)
-            ->setFileField('image')
-            ->setFilters(array(
-                'images' => array(
-                    'label' => $this->helper('cms')->__('Images (%s)', implode(', ', $labels)),
-                    'files' => $files
-                )
+        $this->getUploaderConfig()
+            ->setFileParameterName('image')
+            ->setTarget(
+                Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/upload', array('type' => $type))
+            );
+        $this->getButtonConfig()
+            ->setAttributes(array(
+                'accept' => $this->getButtonConfig()->getMimeTypesByExtensions($allowed)
             ));
     }
 
diff --git app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
index b1a82c2..e8d80bd 100644
--- app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
+++ app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
@@ -444,7 +444,7 @@ class Mage_Adminhtml_Block_Dashboard_Graph extends Mage_Adminhtml_Block_Dashboar
             }
             return self::API_URL . '?' . implode('&', $p);
         } else {
-            $gaData = urlencode(base64_encode(serialize($params)));
+            $gaData = urlencode(base64_encode(json_encode($params)));
             $gaHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
             $params = array('ga' => $gaData, 'h' => $gaHash);
             return $this->getUrl('*/*/tunnel', array('_query' => $params));
diff --git app/code/core/Mage/Adminhtml/Block/Media/Uploader.php app/code/core/Mage/Adminhtml/Block/Media/Uploader.php
index 1eff336..99cff39 100644
--- app/code/core/Mage/Adminhtml/Block/Media/Uploader.php
+++ app/code/core/Mage/Adminhtml/Block/Media/Uploader.php
@@ -31,188 +31,20 @@
  * @package    Mage_Adminhtml
  * @author      Magento Core Team <core@magentocommerce.com>
  */
-class Mage_Adminhtml_Block_Media_Uploader extends Mage_Adminhtml_Block_Widget
-{
-
-    protected $_config;
-
-    public function __construct()
-    {
-        parent::__construct();
-        $this->setId($this->getId() . '_Uploader');
-        $this->setTemplate('media/uploader.phtml');
-        $this->getConfig()->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/upload'));
-        $this->getConfig()->setParams(array('form_key' => $this->getFormKey()));
-        $this->getConfig()->setFileField('file');
-        $this->getConfig()->setFilters(array(
-            'images' => array(
-                'label' => Mage::helper('adminhtml')->__('Images (.gif, .jpg, .png)'),
-                'files' => array('*.gif', '*.jpg', '*.png')
-            ),
-            'media' => array(
-                'label' => Mage::helper('adminhtml')->__('Media (.avi, .flv, .swf)'),
-                'files' => array('*.avi', '*.flv', '*.swf')
-            ),
-            'all'    => array(
-                'label' => Mage::helper('adminhtml')->__('All Files'),
-                'files' => array('*.*')
-            )
-        ));
-    }
-
-    protected function _prepareLayout()
-    {
-        $this->setChild(
-            'browse_button',
-            $this->getLayout()->createBlock('adminhtml/widget_button')
-                ->addData(array(
-                    'id'      => $this->_getButtonId('browse'),
-                    'label'   => Mage::helper('adminhtml')->__('Browse Files...'),
-                    'type'    => 'button',
-                    'onclick' => $this->getJsObjectName() . '.browse()'
-                ))
-        );
-
-        $this->setChild(
-            'upload_button',
-            $this->getLayout()->createBlock('adminhtml/widget_button')
-                ->addData(array(
-                    'id'      => $this->_getButtonId('upload'),
-                    'label'   => Mage::helper('adminhtml')->__('Upload Files'),
-                    'type'    => 'button',
-                    'onclick' => $this->getJsObjectName() . '.upload()'
-                ))
-        );
-
-        $this->setChild(
-            'delete_button',
-            $this->getLayout()->createBlock('adminhtml/widget_button')
-                ->addData(array(
-                    'id'      => '{{id}}-delete',
-                    'class'   => 'delete',
-                    'type'    => 'button',
-                    'label'   => Mage::helper('adminhtml')->__('Remove'),
-                    'onclick' => $this->getJsObjectName() . '.removeFile(\'{{fileId}}\')'
-                ))
-        );
-
-        return parent::_prepareLayout();
-    }
-
-    protected function _getButtonId($buttonName)
-    {
-        return $this->getHtmlId() . '-' . $buttonName;
-    }
-
-    public function getBrowseButtonHtml()
-    {
-        return $this->getChildHtml('browse_button');
-    }
-
-    public function getUploadButtonHtml()
-    {
-        return $this->getChildHtml('upload_button');
-    }
-
-    public function getDeleteButtonHtml()
-    {
-        return $this->getChildHtml('delete_button');
-    }
-
-    /**
-     * Retrive uploader js object name
-     *
-     * @return string
-     */
-    public function getJsObjectName()
-    {
-        return $this->getHtmlId() . 'JsObject';
-    }
-
-    /**
-     * Retrive config json
-     *
-     * @return string
-     */
-    public function getConfigJson()
-    {
-        return Mage::helper('core')->jsonEncode($this->getConfig()->getData());
-    }
-
-    /**
-     * Retrive config object
-     *
-     * @return Varien_Config
-     */
-    public function getConfig()
-    {
-        if(is_null($this->_config)) {
-            $this->_config = new Varien_Object();
-        }
-
-        return $this->_config;
-    }
-
-    public function getPostMaxSize()
-    {
-        return ini_get('post_max_size');
-    }
-
-    public function getUploadMaxSize()
-    {
-        return ini_get('upload_max_filesize');
-    }
-
-    public function getDataMaxSize()
-    {
-        return min($this->getPostMaxSize(), $this->getUploadMaxSize());
-    }
-
-    public function getDataMaxSizeInBytes()
-    {
-        $iniSize = $this->getDataMaxSize();
-        $size = substr($iniSize, 0, strlen($iniSize)-1);
-        $parsedSize = 0;
-        switch (strtolower(substr($iniSize, strlen($iniSize)-1))) {
-            case 't':
-                $parsedSize = $size*(1024*1024*1024*1024);
-                break;
-            case 'g':
-                $parsedSize = $size*(1024*1024*1024);
-                break;
-            case 'm':
-                $parsedSize = $size*(1024*1024);
-                break;
-            case 'k':
-                $parsedSize = $size*1024;
-                break;
-            case 'b':
-            default:
-                $parsedSize = $size;
-                break;
-        }
-        return $parsedSize;
-    }
 
+/**
+ * @deprecated
+ * Class Mage_Adminhtml_Block_Media_Uploader
+ */
+class Mage_Adminhtml_Block_Media_Uploader extends Mage_Uploader_Block_Multiple
+{
     /**
-     * Retrive full uploader SWF's file URL
-     * Implemented to solve problem with cross domain SWFs
-     * Now uploader can be only in the same URL where backend located
-     *
-     * @param string url to uploader in current theme
-     * @return string full URL
+     * Constructor for uploader block
      */
-    public function getUploaderUrl($url)
+    public function __construct()
     {
-        if (!is_string($url)) {
-            $url = '';
-        }
-        $design = Mage::getDesign();
-        $theme = $design->getTheme('skin');
-        if (empty($url) || !$design->validateFile($url, array('_type' => 'skin', '_theme' => $theme))) {
-            $theme = $design->getDefaultTheme();
-        }
-        return Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN) .
-            $design->getArea() . '/' . $design->getPackageName() . '/' . $theme . '/' . $url;
+        parent::__construct();
+        $this->getUploaderConfig()->setTarget(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/upload'));
+        $this->getUploaderConfig()->setFileParameterName('file');
     }
 }
diff --git app/code/core/Mage/Adminhtml/Block/System/Email/Template/Preview.php app/code/core/Mage/Adminhtml/Block/System/Email/Template/Preview.php
index 7048b3d..1ffcbb4 100644
--- app/code/core/Mage/Adminhtml/Block/System/Email/Template/Preview.php
+++ app/code/core/Mage/Adminhtml/Block/System/Email/Template/Preview.php
@@ -44,8 +44,12 @@ class Mage_Adminhtml_Block_System_Email_Template_Preview extends Mage_Adminhtml_
             $template->setTemplateText($this->getRequest()->getParam('text'));
             $template->setTemplateStyles($this->getRequest()->getParam('styles'));
         }
+
+        /* @var $filter Mage_Core_Model_Input_Filter_MaliciousCode */
+        $filter = Mage::getSingleton('core/input_filter_maliciousCode');
+
         $template->setTemplateText(
-            $this->escapeHtml($template->getTemplateText())
+            $filter->filter($template->getTemplateText())
         );
 
         Varien_Profiler::start("email_template_proccessing");
diff --git app/code/core/Mage/Adminhtml/Block/Urlrewrite/Category/Tree.php app/code/core/Mage/Adminhtml/Block/Urlrewrite/Category/Tree.php
index 519d59e..9ffd568 100644
--- app/code/core/Mage/Adminhtml/Block/Urlrewrite/Category/Tree.php
+++ app/code/core/Mage/Adminhtml/Block/Urlrewrite/Category/Tree.php
@@ -119,7 +119,7 @@ class Mage_Adminhtml_Block_Urlrewrite_Category_Tree extends Mage_Adminhtml_Block
             'parent_id'      => (int)$node->getParentId(),
             'children_count' => (int)$node->getChildrenCount(),
             'is_active'      => (bool)$node->getIsActive(),
-            'name'           => $node->getName(),
+            'name'           => $this->escapeHtml($node->getName()),
             'level'          => (int)$node->getLevel(),
             'product_count'  => (int)$node->getProductCount()
         );
diff --git app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Serialized.php app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Serialized.php
index 26c6085..f4f413b 100644
--- app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Serialized.php
+++ app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Serialized.php
@@ -29,8 +29,17 @@ class Mage_Adminhtml_Model_System_Config_Backend_Serialized extends Mage_Core_Mo
     protected function _afterLoad()
     {
         if (!is_array($this->getValue())) {
-            $value = $this->getValue();
-            $this->setValue(empty($value) ? false : unserialize($value));
+            $serializedValue = $this->getValue();
+            $unserializedValue = false;
+            if (!empty($serializedValue)) {
+                try {
+                    $unserializedValue = Mage::helper('core/unserializeArray')
+                        ->unserialize($serializedValue);
+                } catch (Exception $e) {
+                    Mage::logException($e);
+                }
+            }
+            $this->setValue($unserializedValue);
         }
     }
 
diff --git app/code/core/Mage/Adminhtml/controllers/DashboardController.php app/code/core/Mage/Adminhtml/controllers/DashboardController.php
index 5edfd5d..14ff36e 100644
--- app/code/core/Mage/Adminhtml/controllers/DashboardController.php
+++ app/code/core/Mage/Adminhtml/controllers/DashboardController.php
@@ -76,8 +76,9 @@ class Mage_Adminhtml_DashboardController extends Mage_Adminhtml_Controller_Actio
         $gaHash = $this->getRequest()->getParam('h');
         if ($gaData && $gaHash) {
             $newHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
-            if ($newHash == $gaHash) {
-                if ($params = unserialize(base64_decode(urldecode($gaData)))) {
+            if (hash_equals($newHash, $gaHash)) {
+                $params = json_decode(base64_decode(urldecode($gaData)), true);
+                if ($params) {
                     $response = $httpClient->setUri(Mage_Adminhtml_Block_Dashboard_Graph::API_URL)
                             ->setParameterGet($params)
                             ->setConfig(array('timeout' => 5))
diff --git app/code/core/Mage/Adminhtml/controllers/IndexController.php app/code/core/Mage/Adminhtml/controllers/IndexController.php
index e3020b5..071be65 100644
--- app/code/core/Mage/Adminhtml/controllers/IndexController.php
+++ app/code/core/Mage/Adminhtml/controllers/IndexController.php
@@ -403,7 +403,7 @@ class Mage_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action
         }
 
         $userToken = $user->getRpToken();
-        if (strcmp($userToken, $resetPasswordLinkToken) != 0 || $user->isResetPasswordLinkTokenExpired()) {
+        if (!hash_equals($userToken, $resetPasswordLinkToken) || $user->isResetPasswordLinkTokenExpired()) {
             throw Mage::exception('Mage_Core', Mage::helper('adminhtml')->__('Your password reset link has expired.'));
         }
     }
diff --git app/code/core/Mage/Adminhtml/controllers/Media/UploaderController.php app/code/core/Mage/Adminhtml/controllers/Media/UploaderController.php
index bdc4394..9f61f96 100644
--- app/code/core/Mage/Adminhtml/controllers/Media/UploaderController.php
+++ app/code/core/Mage/Adminhtml/controllers/Media/UploaderController.php
@@ -43,7 +43,7 @@ class Mage_Adminhtml_Media_UploaderController extends Mage_Adminhtml_Controller_
     {
         $this->loadLayout();
         $this->_addContent(
-            $this->getLayout()->createBlock('adminhtml/media_uploader')
+            $this->getLayout()->createBlock('uploader/multiple')
         );
         $this->renderLayout();
     }
diff --git app/code/core/Mage/Catalog/Block/Product/Abstract.php app/code/core/Mage/Catalog/Block/Product/Abstract.php
index e573a51..6edb9d7 100644
--- app/code/core/Mage/Catalog/Block/Product/Abstract.php
+++ app/code/core/Mage/Catalog/Block/Product/Abstract.php
@@ -34,6 +34,11 @@
  */
 abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Template
 {
+    /**
+     * Price block array
+     *
+     * @var array
+     */
     protected $_priceBlock = array();
 
     /**
@@ -43,10 +48,25 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
      */
     protected $_block = 'catalog/product_price';
 
+    /**
+     * Price template
+     *
+     * @var string
+     */
     protected $_priceBlockDefaultTemplate = 'catalog/product/price.phtml';
 
+    /**
+     * Tier price template
+     *
+     * @var string
+     */
     protected $_tierPriceDefaultTemplate  = 'catalog/product/view/tierprices.phtml';
 
+    /**
+     * Price types
+     *
+     * @var array
+     */
     protected $_priceBlockTypes = array();
 
     /**
@@ -56,6 +76,11 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
      */
     protected $_useLinkForAsLowAs = true;
 
+    /**
+     * Review block instance
+     *
+     * @var null|Mage_Review_Block_Helper
+     */
     protected $_reviewsHelperBlock;
 
     /**
@@ -89,18 +114,33 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
      */
     public function getAddToCartUrl($product, $additional = array())
     {
-        if ($product->getTypeInstance(true)->hasRequiredOptions($product)) {
-            if (!isset($additional['_escape'])) {
-                $additional['_escape'] = true;
-            }
-            if (!isset($additional['_query'])) {
-                $additional['_query'] = array();
-            }
-            $additional['_query']['options'] = 'cart';
-
-            return $this->getProductUrl($product, $additional);
+        if (!$product->getTypeInstance(true)->hasRequiredOptions($product)) {
+            return $this->helper('checkout/cart')->getAddUrl($product, $additional);
         }
-        return $this->helper('checkout/cart')->getAddUrl($product, $additional);
+        $additional = array_merge(
+            $additional,
+            array(Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey())
+        );
+        if (!isset($additional['_escape'])) {
+            $additional['_escape'] = true;
+        }
+        if (!isset($additional['_query'])) {
+            $additional['_query'] = array();
+        }
+        $additional['_query']['options'] = 'cart';
+        return $this->getProductUrl($product, $additional);
+    }
+
+    /**
+     * Return model instance
+     *
+     * @param string $className
+     * @param array $arguments
+     * @return Mage_Core_Model_Abstract
+     */
+    protected function _getSingletonModel($className, $arguments = array())
+    {
+        return Mage::getSingleton($className, $arguments);
     }
 
     /**
@@ -126,7 +166,7 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
     }
 
     /**
-     * Enter description here...
+     * Return link to Add to Wishlist
      *
      * @param Mage_Catalog_Model_Product $product
      * @return string
@@ -155,6 +195,12 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
         return null;
     }
 
+    /**
+     * Return price block
+     *
+     * @param string $productTypeId
+     * @return mixed
+     */
     protected function _getPriceBlock($productTypeId)
     {
         if (!isset($this->_priceBlock[$productTypeId])) {
@@ -169,6 +215,12 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
         return $this->_priceBlock[$productTypeId];
     }
 
+    /**
+     * Return Block template
+     *
+     * @param string $productTypeId
+     * @return string
+     */
     protected function _getPriceBlockTemplate($productTypeId)
     {
         if (isset($this->_priceBlockTypes[$productTypeId])) {
@@ -303,6 +355,11 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
         return $this->getData('product');
     }
 
+    /**
+     * Return tier price template
+     *
+     * @return mixed|string
+     */
     public function getTierPriceTemplate()
     {
         if (!$this->hasData('tier_price_template')) {
@@ -410,13 +467,13 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
      *
      * @return string
      */
-    public function getImageLabel($product=null, $mediaAttributeCode='image')
+    public function getImageLabel($product = null, $mediaAttributeCode = 'image')
     {
         if (is_null($product)) {
             $product = $this->getProduct();
         }
 
-        $label = $product->getData($mediaAttributeCode.'_label');
+        $label = $product->getData($mediaAttributeCode . '_label');
         if (empty($label)) {
             $label = $product->getName();
         }
diff --git app/code/core/Mage/Catalog/Block/Product/View.php app/code/core/Mage/Catalog/Block/Product/View.php
index b83bece..c853d6b 100644
--- app/code/core/Mage/Catalog/Block/Product/View.php
+++ app/code/core/Mage/Catalog/Block/Product/View.php
@@ -60,7 +60,7 @@ class Mage_Catalog_Block_Product_View extends Mage_Catalog_Block_Product_Abstrac
             $currentCategory = Mage::registry('current_category');
             if ($keyword) {
                 $headBlock->setKeywords($keyword);
-            } elseif($currentCategory) {
+            } elseif ($currentCategory) {
                 $headBlock->setKeywords($product->getName());
             }
             $description = $product->getMetaDescription();
@@ -70,7 +70,7 @@ class Mage_Catalog_Block_Product_View extends Mage_Catalog_Block_Product_Abstrac
                 $headBlock->setDescription(Mage::helper('core/string')->substr($product->getDescription(), 0, 255));
             }
             if ($this->helper('catalog/product')->canUseCanonicalTag()) {
-                $params = array('_ignore_category'=>true);
+                $params = array('_ignore_category' => true);
                 $headBlock->addLinkRel('canonical', $product->getUrlModel()->getUrl($product, $params));
             }
         }
@@ -116,7 +116,7 @@ class Mage_Catalog_Block_Product_View extends Mage_Catalog_Block_Product_Abstrac
             return $this->getCustomAddToCartUrl();
         }
 
-        if ($this->getRequest()->getParam('wishlist_next')){
+        if ($this->getRequest()->getParam('wishlist_next')) {
             $additional['wishlist_next'] = 1;
         }
 
@@ -178,9 +178,9 @@ class Mage_Catalog_Block_Product_View extends Mage_Catalog_Block_Product_Abstrac
         );
 
         $responseObject = new Varien_Object();
-        Mage::dispatchEvent('catalog_product_view_config', array('response_object'=>$responseObject));
+        Mage::dispatchEvent('catalog_product_view_config', array('response_object' => $responseObject));
         if (is_array($responseObject->getAdditionalOptions())) {
-            foreach ($responseObject->getAdditionalOptions() as $option=>$value) {
+            foreach ($responseObject->getAdditionalOptions() as $option => $value) {
                 $config[$option] = $value;
             }
         }
diff --git app/code/core/Mage/Catalog/Helper/Image.php app/code/core/Mage/Catalog/Helper/Image.php
index f7ec369..eef9efc 100644
--- app/code/core/Mage/Catalog/Helper/Image.php
+++ app/code/core/Mage/Catalog/Helper/Image.php
@@ -31,6 +31,8 @@
  */
 class Mage_Catalog_Helper_Image extends Mage_Core_Helper_Abstract
 {
+    const XML_NODE_PRODUCT_MAX_DIMENSION = 'catalog/product_image/max_dimension';
+
     protected $_model;
     protected $_scheduleResize = false;
     protected $_scheduleRotate = false;
@@ -492,10 +494,18 @@ class Mage_Catalog_Helper_Image extends Mage_Core_Helper_Abstract
      * @throw Mage_Core_Exception
      */
     public function validateUploadFile($filePath) {
-        if (!getimagesize($filePath)) {
+        $maxDimension = Mage::getStoreConfig(self::XML_NODE_PRODUCT_MAX_DIMENSION);
+        $imageInfo = getimagesize($filePath);
+        if (!$imageInfo) {
             Mage::throwException($this->__('Disallowed file type.'));
         }
-        return true;
+
+        if ($imageInfo[0] > $maxDimension || $imageInfo[1] > $maxDimension) {
+            Mage::throwException($this->__('Disalollowed file format.'));
+        }
+
+        $_processor = new Varien_Image($filePath);
+        return $_processor->getMimeType() !== null;
     }
 
 }
diff --git app/code/core/Mage/Catalog/Helper/Product/Compare.php app/code/core/Mage/Catalog/Helper/Product/Compare.php
index 31e9a74..3f76772 100644
--- app/code/core/Mage/Catalog/Helper/Product/Compare.php
+++ app/code/core/Mage/Catalog/Helper/Product/Compare.php
@@ -79,17 +79,17 @@ class Mage_Catalog_Helper_Product_Compare extends Mage_Core_Helper_Url
      */
     public function getListUrl()
     {
-         $itemIds = array();
-         foreach ($this->getItemCollection() as $item) {
-             $itemIds[] = $item->getId();
-         }
+        $itemIds = array();
+        foreach ($this->getItemCollection() as $item) {
+            $itemIds[] = $item->getId();
+        }
 
-         $params = array(
-            'items'=>implode(',', $itemIds),
+        $params = array(
+            'items' => implode(',', $itemIds),
             Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->getEncodedUrl()
-         );
+        );
 
-         return $this->_getUrl('catalog/product_compare', $params);
+        return $this->_getUrl('catalog/product_compare', $params);
     }
 
     /**
@@ -102,7 +102,8 @@ class Mage_Catalog_Helper_Product_Compare extends Mage_Core_Helper_Url
     {
         return array(
             'product' => $product->getId(),
-            Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->getEncodedUrl()
+            Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->getEncodedUrl(),
+            Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey()
         );
     }
 
@@ -128,7 +129,8 @@ class Mage_Catalog_Helper_Product_Compare extends Mage_Core_Helper_Url
         $beforeCompareUrl = Mage::getSingleton('catalog/session')->getBeforeCompareUrl();
 
         $params = array(
-            'product'=>$product->getId(),
+            'product' => $product->getId(),
+            Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey(),
             Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->getEncodedUrl($beforeCompareUrl)
         );
 
@@ -143,10 +145,11 @@ class Mage_Catalog_Helper_Product_Compare extends Mage_Core_Helper_Url
      */
     public function getAddToCartUrl($product)
     {
-        $beforeCompareUrl = Mage::getSingleton('catalog/session')->getBeforeCompareUrl();
+        $beforeCompareUrl = $this->_getSingletonModel('catalog/session')->getBeforeCompareUrl();
         $params = array(
-            'product'=>$product->getId(),
-            Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->getEncodedUrl($beforeCompareUrl)
+            'product' => $product->getId(),
+            Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->getEncodedUrl($beforeCompareUrl),
+            Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey()
         );
 
         return $this->_getUrl('checkout/cart/add', $params);
@@ -161,7 +164,7 @@ class Mage_Catalog_Helper_Product_Compare extends Mage_Core_Helper_Url
     public function getRemoveUrl($item)
     {
         $params = array(
-            'product'=>$item->getId(),
+            'product' => $item->getId(),
             Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->getEncodedUrl()
         );
         return $this->_getUrl('catalog/product_compare/remove', $params);
diff --git app/code/core/Mage/Catalog/controllers/Product/CompareController.php app/code/core/Mage/Catalog/controllers/Product/CompareController.php
index 78b9e73..cfad47c 100644
--- app/code/core/Mage/Catalog/controllers/Product/CompareController.php
+++ app/code/core/Mage/Catalog/controllers/Product/CompareController.php
@@ -74,6 +74,10 @@ class Mage_Catalog_Product_CompareController extends Mage_Core_Controller_Front_
      */
     public function addAction()
     {
+        if (!$this->_validateFormKey()) {
+            $this->_redirectReferer();
+            return;
+        }
         if ($productId = (int) $this->getRequest()->getParam('product')) {
             $product = Mage::getModel('catalog/product')
                 ->setStoreId(Mage::app()->getStore()->getId())
diff --git app/code/core/Mage/Catalog/etc/config.xml app/code/core/Mage/Catalog/etc/config.xml
index a14d2b2..85741b4 100644
--- app/code/core/Mage/Catalog/etc/config.xml
+++ app/code/core/Mage/Catalog/etc/config.xml
@@ -750,6 +750,9 @@
             <product>
                 <default_tax_group>2</default_tax_group>
             </product>
+            <product_image>
+                <max_dimension>5000</max_dimension>
+            </product_image>
             <seo>
                 <product_url_suffix>.html</product_url_suffix>
                 <category_url_suffix>.html</category_url_suffix>
diff --git app/code/core/Mage/Catalog/etc/system.xml app/code/core/Mage/Catalog/etc/system.xml
index 4cbacb4..d1e1302 100644
--- app/code/core/Mage/Catalog/etc/system.xml
+++ app/code/core/Mage/Catalog/etc/system.xml
@@ -181,6 +181,24 @@
                         </lines_perpage>
                     </fields>
                 </sitemap>
+                <product_image translate="label">
+                    <label>Product Image</label>
+                    <sort_order>200</sort_order>
+                    <show_in_default>1</show_in_default>
+                    <show_in_website>1</show_in_website>
+                    <show_in_store>1</show_in_store>
+                    <fields>
+                        <max_dimension translate="label comment">
+                            <label>Maximum resolution for upload image</label>
+                            <comment>Maximum width and height resolutions for upload image</comment>
+                            <frontend_type>text</frontend_type>
+                            <sort_order>10</sort_order>
+                            <show_in_default>1</show_in_default>
+                            <show_in_website>1</show_in_website>
+                            <show_in_store>1</show_in_store>
+                        </max_dimension>
+                    </fields>
+                </product_image>
                 <placeholder translate="label">
                     <label>Product Image Placeholders</label>
                     <clone_fields>1</clone_fields>
diff --git app/code/core/Mage/Centinel/Model/Api.php app/code/core/Mage/Centinel/Model/Api.php
index 5126701..4ac0e86 100644
--- app/code/core/Mage/Centinel/Model/Api.php
+++ app/code/core/Mage/Centinel/Model/Api.php
@@ -25,11 +25,6 @@
  */
 
 /**
- * 3D Secure Validation Library for Payment
- */
-include_once '3Dsecure/CentinelClient.php';
-
-/**
  * 3D Secure Validation Api
  */
 class Mage_Centinel_Model_Api extends Varien_Object
@@ -73,19 +68,19 @@ class Mage_Centinel_Model_Api extends Varien_Object
     /**
      * Centinel validation client
      *
-     * @var CentinelClient
+     * @var Mage_Centinel_Model_Api_Client
      */
     protected $_clientInstance = null;
 
     /**
      * Return Centinel thin client object
      *
-     * @return CentinelClient
+     * @return Mage_Centinel_Model_Api_Client
      */
     protected function _getClientInstance()
     {
         if (empty($this->_clientInstance)) {
-            $this->_clientInstance = new CentinelClient();
+            $this->_clientInstance = new Mage_Centinel_Model_Api_Client();
         }
         return $this->_clientInstance;
     }
@@ -136,7 +131,7 @@ class Mage_Centinel_Model_Api extends Varien_Object
      * @param $method string
      * @param $data array
      *
-     * @return CentinelClient
+     * @return Mage_Centinel_Model_Api_Client
      */
     protected function _call($method, $data)
     {
diff --git app/code/core/Mage/Centinel/Model/Api/Client.php app/code/core/Mage/Centinel/Model/Api/Client.php
new file mode 100644
index 0000000..e91a482
--- /dev/null
+++ app/code/core/Mage/Centinel/Model/Api/Client.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Mage
+ * @package     Mage_Centinel
+ * @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * 3D Secure Validation Library for Payment
+ */
+include_once '3Dsecure/CentinelClient.php';
+
+/**
+ * 3D Secure Validation Api
+ */
+class Mage_Centinel_Model_Api_Client extends CentinelClient
+{
+    public function sendHttp($url, $connectTimeout = "", $timeout)
+    {
+        // verify that the URL uses a supported protocol.
+        if ((strpos($url, "http://") === 0) || (strpos($url, "https://") === 0)) {
+
+            //Construct the payload to POST to the url.
+            $data = $this->getRequestXml();
+
+            // create a new cURL resource
+            $ch = curl_init($url);
+
+            // set URL and other appropriate options
+            curl_setopt($ch, CURLOPT_POST ,1);
+            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
+            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
+            curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
+
+            // Execute the request.
+            $result = curl_exec($ch);
+            $succeeded = curl_errno($ch) == 0 ? true : false;
+
+            // close cURL resource, and free up system resources
+            curl_close($ch);
+
+            // If Communication was not successful set error result, otherwise
+            if (!$succeeded) {
+                $result = $this->setErrorResponse(CENTINEL_ERROR_CODE_8030, CENTINEL_ERROR_CODE_8030_DESC);
+            }
+
+            // Assert that we received an expected Centinel Message in reponse.
+            if (strpos($result, "<CardinalMPI>") === false) {
+                $result = $this->setErrorResponse(CENTINEL_ERROR_CODE_8010, CENTINEL_ERROR_CODE_8010_DESC);
+            }
+        } else {
+            $result = $this->setErrorResponse(CENTINEL_ERROR_CODE_8000, CENTINEL_ERROR_CODE_8000_DESC);
+        }
+        $parser = new XMLParser;
+        $parser->deserializeXml($result);
+        $this->response = $parser->deserializedResponse;
+    }
+}
diff --git app/code/core/Mage/Checkout/Helper/Cart.php app/code/core/Mage/Checkout/Helper/Cart.php
index 2331db7..2ba1429 100644
--- app/code/core/Mage/Checkout/Helper/Cart.php
+++ app/code/core/Mage/Checkout/Helper/Cart.php
@@ -31,6 +31,9 @@
  */
 class Mage_Checkout_Helper_Cart extends Mage_Core_Helper_Url
 {
+    /**
+     * Redirect to Cart path
+     */
     const XML_PATH_REDIRECT_TO_CART         = 'checkout/cart/redirect_to_cart';
 
     /**
@@ -47,16 +50,16 @@ class Mage_Checkout_Helper_Cart extends Mage_Core_Helper_Url
      * Retrieve url for add product to cart
      *
      * @param   Mage_Catalog_Model_Product $product
+     * @param array $additional
      * @return  string
      */
     public function getAddUrl($product, $additional = array())
     {
-        $continueUrl    = Mage::helper('core')->urlEncode($this->getCurrentUrl());
-        $urlParamName   = Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED;
-
         $routeParams = array(
-            $urlParamName   => $continueUrl,
-            'product'       => $product->getEntityId()
+            Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->_getHelperInstance('core')
+                ->urlEncode($this->getCurrentUrl()),
+            'product' => $product->getEntityId(),
+            Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey()
         );
 
         if (!empty($additional)) {
@@ -77,6 +80,17 @@ class Mage_Checkout_Helper_Cart extends Mage_Core_Helper_Url
     }
 
     /**
+     * Return helper instance
+     *
+     * @param  string $helperName
+     * @return Mage_Core_Helper_Abstract
+     */
+    protected function _getHelperInstance($helperName)
+    {
+        return Mage::helper($helperName);
+    }
+
+    /**
      * Retrieve url for remove product from cart
      *
      * @param   Mage_Sales_Quote_Item $item
@@ -85,7 +99,7 @@ class Mage_Checkout_Helper_Cart extends Mage_Core_Helper_Url
     public function getRemoveUrl($item)
     {
         $params = array(
-            'id'=>$item->getId(),
+            'id' => $item->getId(),
             Mage_Core_Controller_Front_Action::PARAM_NAME_BASE64_URL => $this->getCurrentBase64Url()
         );
         return $this->_getUrl('checkout/cart/delete', $params);
diff --git app/code/core/Mage/Checkout/controllers/CartController.php app/code/core/Mage/Checkout/controllers/CartController.php
index 3233084..16f1593 100644
--- app/code/core/Mage/Checkout/controllers/CartController.php
+++ app/code/core/Mage/Checkout/controllers/CartController.php
@@ -70,6 +70,7 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
      * Set back redirect url to response
      *
      * @return Mage_Checkout_CartController
+     * @throws Mage_Exception
      */
     protected function _goBack()
     {
@@ -156,9 +157,15 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
 
     /**
      * Add product to shopping cart action
+     *
+     * @return void
      */
     public function addAction()
     {
+        if (!$this->_validateFormKey()) {
+            $this->_goBack();
+            return;
+        }
         $cart   = $this->_getCart();
         $params = $this->getRequest()->getParams();
         try {
@@ -197,7 +204,7 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
             );
 
             if (!$this->_getSession()->getNoCartRedirect(true)) {
-                if (!$cart->getQuote()->getHasError()){
+                if (!$cart->getQuote()->getHasError()) {
                     $message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->htmlEscape($product->getName()));
                     $this->_getSession()->addSuccess($message);
                 }
@@ -226,34 +233,41 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
         }
     }
 
+    /**
+     * Add products in group to shopping cart action
+     */
     public function addgroupAction()
     {
         $orderItemIds = $this->getRequest()->getParam('order_items', array());
-        if (is_array($orderItemIds)) {
-            $itemsCollection = Mage::getModel('sales/order_item')
-                ->getCollection()
-                ->addIdFilter($orderItemIds)
-                ->load();
-            /* @var $itemsCollection Mage_Sales_Model_Mysql4_Order_Item_Collection */
-            $cart = $this->_getCart();
-            foreach ($itemsCollection as $item) {
-                try {
-                    $cart->addOrderItem($item, 1);
-                } catch (Mage_Core_Exception $e) {
-                    if ($this->_getSession()->getUseNotice(true)) {
-                        $this->_getSession()->addNotice($e->getMessage());
-                    } else {
-                        $this->_getSession()->addError($e->getMessage());
-                    }
-                } catch (Exception $e) {
-                    $this->_getSession()->addException($e, $this->__('Cannot add the item to shopping cart.'));
-                    Mage::logException($e);
-                    $this->_goBack();
+
+        if (!is_array($orderItemIds) || !$this->_validateFormKey()) {
+            $this->_goBack();
+            return;
+        }
+
+        $itemsCollection = Mage::getModel('sales/order_item')
+            ->getCollection()
+            ->addIdFilter($orderItemIds)
+            ->load();
+        /* @var $itemsCollection Mage_Sales_Model_Mysql4_Order_Item_Collection */
+        $cart = $this->_getCart();
+        foreach ($itemsCollection as $item) {
+            try {
+                $cart->addOrderItem($item, 1);
+            } catch (Mage_Core_Exception $e) {
+                if ($this->_getSession()->getUseNotice(true)) {
+                    $this->_getSession()->addNotice($e->getMessage());
+                } else {
+                    $this->_getSession()->addError($e->getMessage());
                 }
+            } catch (Exception $e) {
+                $this->_getSession()->addException($e, $this->__('Cannot add the item to shopping cart.'));
+                Mage::logException($e);
+                $this->_goBack();
             }
-            $cart->save();
-            $this->_getSession()->setCartWasUpdated(true);
         }
+        $cart->save();
+        $this->_getSession()->setCartWasUpdated(true);
         $this->_goBack();
     }
 
@@ -337,8 +351,8 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
                 array('item' => $item, 'request' => $this->getRequest(), 'response' => $this->getResponse())
             );
             if (!$this->_getSession()->getNoCartRedirect(true)) {
-                if (!$cart->getQuote()->getHasError()){
-                    $message = $this->__('%s was updated in your shopping cart.', Mage::helper('core')->htmlEscape($item->getProduct()->getName()));
+                if (!$cart->getQuote()->getHasError()) {
+                    $message = $this->__('%s was updated in your shopping cart.', Mage::helper('core')->escapeHtml($item->getProduct()->getName()));
                     $this->_getSession()->addSuccess($message);
                 }
                 $this->_goBack();
@@ -372,6 +386,10 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
      */
     public function updatePostAction()
     {
+        if (!$this->_validateFormKey()) {
+            $this->_redirect('*/*/');
+            return;
+        }
         try {
             $cartData = $this->getRequest()->getParam('cart');
             if (is_array($cartData)) {
@@ -447,6 +465,11 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
         $this->_goBack();
     }
 
+    /**
+     * Estimate update action
+     *
+     * @return null
+     */
     public function estimateUpdatePostAction()
     {
         $code = (string) $this->getRequest()->getParam('estimate_method');
diff --git app/code/core/Mage/Checkout/controllers/OnepageController.php app/code/core/Mage/Checkout/controllers/OnepageController.php
index d68b639..7c0dda9 100644
--- app/code/core/Mage/Checkout/controllers/OnepageController.php
+++ app/code/core/Mage/Checkout/controllers/OnepageController.php
@@ -24,9 +24,16 @@
  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  */
 
-
+/**
+ * Class Onepage controller
+ */
 class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
 {
+    /**
+     * Functions for concrete method
+     *
+     * @var array
+     */
     protected $_sectionUpdateFunctions = array(
         'payment-method'  => '_getPaymentMethodsHtml',
         'shipping-method' => '_getShippingMethodsHtml',
@@ -50,6 +57,11 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
         return $this;
     }
 
+    /**
+     * Send headers in case if session is expired
+     *
+     * @return Mage_Checkout_OnepageController
+     */
     protected function _ajaxRedirectResponse()
     {
         $this->getResponse()
@@ -114,6 +126,12 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
         return $output;
     }
 
+    /**
+     * Return block content from the 'checkout_onepage_additional'
+     * This is the additional content for shipping method
+     *
+     * @return string
+     */
     protected function _getAdditionalHtml()
     {
         $layout = $this->getLayout();
@@ -167,7 +185,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
             return;
         }
         Mage::getSingleton('checkout/session')->setCartWasUpdated(false);
-        Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::getUrl('*/*/*', array('_secure'=>true)));
+        Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::getUrl('*/*/*', array('_secure' => true)));
         $this->getOnepage()->initCheckout();
         $this->loadLayout();
         $this->_initLayoutMessages('customer/session');
@@ -187,6 +205,9 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
         $this->renderLayout();
     }
 
+    /**
+     * Shipping action
+     */
     public function shippingMethodAction()
     {
         if ($this->_expireAjax()) {
@@ -196,6 +217,9 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
         $this->renderLayout();
     }
 
+    /**
+     * Review action
+     */
     public function reviewAction()
     {
         if ($this->_expireAjax()) {
@@ -231,6 +255,9 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
         $this->renderLayout();
     }
 
+    /**
+     * Failure action
+     */
     public function failureAction()
     {
         $lastQuoteId = $this->getOnepage()->getCheckout()->getLastQuoteId();
@@ -246,6 +273,9 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
     }
 
 
+    /**
+     * Additional action
+     */
     public function getAdditionalAction()
     {
         $this->getResponse()->setBody($this->_getAdditionalHtml());
@@ -370,10 +400,10 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
             /*
             $result will have erro data if shipping method is empty
             */
-            if(!$result) {
+            if (!$result) {
                 Mage::dispatchEvent('checkout_controller_onepage_save_shipping_method',
-                        array('request'=>$this->getRequest(),
-                            'quote'=>$this->getOnepage()->getQuote()));
+                    array('request' => $this->getRequest(),
+                        'quote' => $this->getOnepage()->getQuote()));
                 $this->getOnepage()->getQuote()->collectTotals();
                 $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
 
@@ -442,7 +472,8 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
     /**
      * Get Order by quoteId
      *
-     * @return Mage_Sales_Model_Order
+     * @return Mage_Core_Model_Abstract|Mage_Sales_Model_Order
+     * @throws Mage_Payment_Model_Info_Exception
      */
     protected function _getOrder()
     {
@@ -479,15 +510,21 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
      */
     public function saveOrderAction()
     {
+        if (!$this->_validateFormKey()) {
+            return $this->_redirect('*/*');
+        }
+
         if ($this->_expireAjax()) {
             return;
         }
 
         $result = array();
         try {
-            if ($requiredAgreements = Mage::helper('checkout')->getRequiredAgreementIds()) {
+            $requiredAgreements = Mage::helper('checkout')->getRequiredAgreementIds();
+            if ($requiredAgreements) {
                 $postedAgreements = array_keys($this->getRequest()->getPost('agreement', array()));
-                if ($diff = array_diff($requiredAgreements, $postedAgreements)) {
+                $diff = array_diff($requiredAgreements, $postedAgreements);
+                if ($diff) {
                     $result['success'] = false;
                     $result['error'] = true;
                     $result['error_messages'] = $this->__('Please agree to all the terms and conditions before placing the order.');
@@ -520,7 +557,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
             $result['error']   = false;
         } catch (Mage_Payment_Model_Info_Exception $e) {
             $message = $e->getMessage();
-            if( !empty($message) ) {
+            if ( !empty($message) ) {
                 $result['error_messages'] = $message;
             }
             $result['goto_section'] = 'payment';
@@ -535,12 +572,13 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
             $result['error'] = true;
             $result['error_messages'] = $e->getMessage();
 
-            if ($gotoSection = $this->getOnepage()->getCheckout()->getGotoSection()) {
+            $gotoSection = $this->getOnepage()->getCheckout()->getGotoSection();
+            if ($gotoSection) {
                 $result['goto_section'] = $gotoSection;
                 $this->getOnepage()->getCheckout()->setGotoSection(null);
             }
-
-            if ($updateSection = $this->getOnepage()->getCheckout()->getUpdateSection()) {
+            $updateSection = $this->getOnepage()->getCheckout()->getUpdateSection();
+            if ($updateSection) {
                 if (isset($this->_sectionUpdateFunctions[$updateSection])) {
                     $updateSectionFunction = $this->_sectionUpdateFunctions[$updateSection];
                     $result['update_section'] = array(
diff --git app/code/core/Mage/Core/Block/Abstract.php app/code/core/Mage/Core/Block/Abstract.php
index 7ece433..7d9d714 100644
--- app/code/core/Mage/Core/Block/Abstract.php
+++ app/code/core/Mage/Core/Block/Abstract.php
@@ -38,6 +38,10 @@
 abstract class Mage_Core_Block_Abstract extends Varien_Object
 {
     /**
+     * Prefix for cache key
+     */
+    const CACHE_KEY_PREFIX = 'BLOCK_';
+    /**
      * Cache group Tag
      */
     const CACHE_GROUP = 'block_html';
@@ -1233,7 +1237,13 @@ abstract class Mage_Core_Block_Abstract extends Varien_Object
     public function getCacheKey()
     {
         if ($this->hasData('cache_key')) {
-            return $this->getData('cache_key');
+            $cacheKey = $this->getData('cache_key');
+            if (strpos($cacheKey, self::CACHE_KEY_PREFIX) !== 0) {
+                $cacheKey = self::CACHE_KEY_PREFIX . $cacheKey;
+                $this->setData('cache_key', $cacheKey);
+            }
+
+            return $cacheKey;
         }
         /**
          * don't prevent recalculation by saving generated cache key
diff --git app/code/core/Mage/Core/Helper/Url.php app/code/core/Mage/Core/Helper/Url.php
index 811b5c4..e55ee09 100644
--- app/code/core/Mage/Core/Helper/Url.php
+++ app/code/core/Mage/Core/Helper/Url.php
@@ -51,7 +51,7 @@ class Mage_Core_Helper_Url extends Mage_Core_Helper_Abstract
             $port = (in_array($port, $defaultPorts)) ? '' : ':' . $port;
         }
         $url = $request->getScheme() . '://' . $request->getHttpHost() . $port . $request->getServer('REQUEST_URI');
-        return $url;
+        return $this->escapeUrl($url);
 //        return $this->_getUrl('*/*/*', array('_current' => true, '_use_rewrite' => true));
     }
 
@@ -65,7 +65,13 @@ class Mage_Core_Helper_Url extends Mage_Core_Helper_Abstract
         return $this->urlEncode($this->getCurrentUrl());
     }
 
-    public function getEncodedUrl($url=null)
+    /**
+     * Return encoded url
+     *
+     * @param null|string $url
+     * @return string
+     */
+    public function getEncodedUrl($url = null)
     {
         if (!$url) {
             $url = $this->getCurrentUrl();
@@ -83,6 +89,12 @@ class Mage_Core_Helper_Url extends Mage_Core_Helper_Abstract
         return Mage::getBaseUrl();
     }
 
+    /**
+     * Formatting string
+     *
+     * @param string $string
+     * @return string
+     */
     protected function _prepareString($string)
     {
         $string = preg_replace('#[^0-9a-z]+#i', '-', $string);
@@ -104,7 +116,7 @@ class Mage_Core_Helper_Url extends Mage_Core_Helper_Abstract
         $startDelimiter = (false === strpos($url,'?'))? '?' : '&';
 
         $arrQueryParams = array();
-        foreach($param as $key=>$value) {
+        foreach ($param as $key => $value) {
             if (is_numeric($key) || is_object($value)) {
                 continue;
             }
@@ -128,6 +140,7 @@ class Mage_Core_Helper_Url extends Mage_Core_Helper_Abstract
      *
      * @param string $url
      * @param string $paramKey
+     * @param boolean $caseSensitive
      * @return string
      */
     public function removeRequestParam($url, $paramKey, $caseSensitive = false)
@@ -143,4 +156,16 @@ class Mage_Core_Helper_Url extends Mage_Core_Helper_Abstract
         }
         return $url;
     }
+
+    /**
+     * Return singleton model instance
+     *
+     * @param string $name
+     * @param array $arguments
+     * @return Mage_Core_Model_Abstract
+     */
+    protected function _getSingletonModel($name, $arguments = array())
+    {
+        return Mage::getSingleton($name, $arguments);
+    }
 }
diff --git app/code/core/Mage/Core/Model/Encryption.php app/code/core/Mage/Core/Model/Encryption.php
index 9fffd83..4763516 100644
--- app/code/core/Mage/Core/Model/Encryption.php
+++ app/code/core/Mage/Core/Model/Encryption.php
@@ -98,9 +98,9 @@ class Mage_Core_Model_Encryption
         $hashArr = explode(':', $hash);
         switch (count($hashArr)) {
             case 1:
-                return $this->hash($password) === $hash;
+                return hash_equals($this->hash($password), $hash);
             case 2:
-                return $this->hash($hashArr[1] . $password) === $hashArr[0];
+                return hash_equals($this->hash($hashArr[1] . $password),  $hashArr[0]);
         }
         Mage::throwException('Invalid hash.');
     }
diff --git app/code/core/Mage/Core/Model/Input/Filter/MaliciousCode.php app/code/core/Mage/Core/Model/Input/Filter/MaliciousCode.php
index a559a6d..2566189 100644
--- app/code/core/Mage/Core/Model/Input/Filter/MaliciousCode.php
+++ app/code/core/Mage/Core/Model/Input/Filter/MaliciousCode.php
@@ -65,7 +65,13 @@ class Mage_Core_Model_Input_Filter_MaliciousCode implements Zend_Filter_Interfac
      */
     public function filter($value)
     {
-        return preg_replace($this->_expressions, '', $value);
+        $result = false;
+        do {
+            $subject = $result ? $result : $value;
+            $result = preg_replace($this->_expressions, '', $subject, -1, $count);
+        } while ($count !== 0);
+
+        return $result;
     }
 
     /**
diff --git app/code/core/Mage/Core/Model/Url.php app/code/core/Mage/Core/Model/Url.php
index 63bd855..ccf8d0b 100644
--- app/code/core/Mage/Core/Model/Url.php
+++ app/code/core/Mage/Core/Model/Url.php
@@ -97,6 +97,11 @@ class Mage_Core_Model_Url extends Varien_Object
     const XML_PATH_SECURE_IN_FRONT  = 'web/secure/use_in_frontend';
 
     /**
+     * Param name for form key functionality
+     */
+    const FORM_KEY = 'form_key';
+
+    /**
      * Configuration data cache
      *
      * @var array
@@ -483,7 +488,7 @@ class Mage_Core_Model_Url extends Varien_Object
             }
             $routePath = $this->getActionPath();
             if ($this->getRouteParams()) {
-                foreach ($this->getRouteParams() as $key=>$value) {
+                foreach ($this->getRouteParams() as $key => $value) {
                     if (is_null($value) || false === $value || '' === $value || !is_scalar($value)) {
                         continue;
                     }
@@ -939,8 +944,8 @@ class Mage_Core_Model_Url extends Varien_Object
     /**
      * Build url by requested path and parameters
      *
-     * @param   string|null $routePath
-     * @param   array|null $routeParams
+     * @param string|null $routePath
+     * @param array|null $routeParams
      * @return  string
      */
     public function getUrl($routePath = null, $routeParams = null)
@@ -974,6 +979,7 @@ class Mage_Core_Model_Url extends Varien_Object
             $noSid = (bool) $routeParams['_nosid'];
             unset($routeParams['_nosid']);
         }
+
         $url = $this->getRouteUrl($routePath, $routeParams);
         /**
          * Apply query params, need call after getRouteUrl for rewrite _current values
@@ -1007,6 +1013,18 @@ class Mage_Core_Model_Url extends Varien_Object
     }
 
     /**
+     * Return singleton model instance
+     *
+     * @param string $name
+     * @param array $arguments
+     * @return Mage_Core_Model_Abstract
+     */
+    protected function _getSingletonModel($name, $arguments = array())
+    {
+        return Mage::getSingleton($name, $arguments);
+    }
+
+    /**
      * Check and add session id to URL
      *
      * @param string $url
diff --git app/code/core/Mage/Core/functions.php app/code/core/Mage/Core/functions.php
index 06894ae..6f4de6c 100644
--- app/code/core/Mage/Core/functions.php
+++ app/code/core/Mage/Core/functions.php
@@ -375,3 +375,38 @@ if ( !function_exists('sys_get_temp_dir') ) {
         }
     }
 }
+
+if (!function_exists('hash_equals')) {
+    /**
+     * Compares two strings using the same time whether they're equal or not.
+     * A difference in length will leak
+     *
+     * @param string $known_string
+     * @param string $user_string
+     * @return boolean Returns true when the two strings are equal, false otherwise.
+     */
+    function hash_equals($known_string, $user_string)
+    {
+        $result = 0;
+
+        if (!is_string($known_string)) {
+            trigger_error("hash_equals(): Expected known_string to be a string", E_USER_WARNING);
+            return false;
+        }
+
+        if (!is_string($user_string)) {
+            trigger_error("hash_equals(): Expected user_string to be a string", E_USER_WARNING);
+            return false;
+        }
+
+        if (strlen($known_string) != strlen($user_string)) {
+            return false;
+        }
+
+        for ($i = 0; $i < strlen($known_string); $i++) {
+            $result |= (ord($known_string[$i]) ^ ord($user_string[$i]));
+        }
+
+        return 0 === $result;
+    }
+}
diff --git app/code/core/Mage/Customer/Block/Address/Book.php app/code/core/Mage/Customer/Block/Address/Book.php
index 8957f6b..07306bf 100644
--- app/code/core/Mage/Customer/Block/Address/Book.php
+++ app/code/core/Mage/Customer/Block/Address/Book.php
@@ -56,7 +56,8 @@ class Mage_Customer_Block_Address_Book extends Mage_Core_Block_Template
 
     public function getDeleteUrl()
     {
-        return $this->getUrl('customer/address/delete');
+        return $this->getUrl('customer/address/delete',
+            array(Mage_Core_Model_Url::FORM_KEY => Mage::getSingleton('core/session')->getFormKey()));
     }
 
     public function getAddressEditUrl($address)
diff --git app/code/core/Mage/Customer/controllers/AccountController.php app/code/core/Mage/Customer/controllers/AccountController.php
index c4b628b..d79efe0 100644
--- app/code/core/Mage/Customer/controllers/AccountController.php
+++ app/code/core/Mage/Customer/controllers/AccountController.php
@@ -140,6 +140,11 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
      */
     public function loginPostAction()
     {
+        if (!$this->_validateFormKey()) {
+            $this->_redirect('*/*/');
+            return;
+        }
+
         if ($this->_getSession()->isLoggedIn()) {
             $this->_redirect('*/*/');
             return;
@@ -157,8 +162,8 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
                 } catch (Mage_Core_Exception $e) {
                     switch ($e->getCode()) {
                         case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED:
-                            $value = Mage::helper('customer')->getEmailConfirmationUrl($login['username']);
-                            $message = Mage::helper('customer')->__('This account is not confirmed. <a href="%s">Click here</a> to resend confirmation email.', $value);
+                            $value = $this->_getHelper('customer')->getEmailConfirmationUrl($login['username']);
+                            $message = $this->_getHelper('customer')->__('This account is not confirmed. <a href="%s">Click here</a> to resend confirmation email.', $value);
                             break;
                         case Mage_Customer_Model_Customer::EXCEPTION_INVALID_EMAIL_OR_PASSWORD:
                             $message = $e->getMessage();
@@ -189,7 +194,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
         if (!$session->getBeforeAuthUrl() || $session->getBeforeAuthUrl() == Mage::getBaseUrl()) {
 
             // Set default URL to redirect customer to
-            $session->setBeforeAuthUrl(Mage::helper('customer')->getAccountUrl());
+            $session->setBeforeAuthUrl($this->_getHelper('customer')->getAccountUrl());
             // Redirect customer to the last page visited after logging in
             if ($session->isLoggedIn()) {
                 if (!Mage::getStoreConfigFlag(
@@ -197,7 +202,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
                 )) {
                     $referer = $this->getRequest()->getParam(Mage_Customer_Helper_Data::REFERER_QUERY_PARAM_NAME);
                     if ($referer) {
-                        $referer = Mage::helper('core')->urlDecode($referer);
+                        $referer = $this->_getHelper('core')->urlDecode($referer);
                         if ($this->_isUrlInternal($referer)) {
                             $session->setBeforeAuthUrl($referer);
                         }
@@ -206,10 +211,10 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
                     $session->setBeforeAuthUrl($session->getAfterAuthUrl(true));
                 }
             } else {
-                $session->setBeforeAuthUrl(Mage::helper('customer')->getLoginUrl());
+                $session->setBeforeAuthUrl($this->_getHelper('customer')->getLoginUrl());
             }
-        } else if ($session->getBeforeAuthUrl() == Mage::helper('customer')->getLogoutUrl()) {
-            $session->setBeforeAuthUrl(Mage::helper('customer')->getDashboardUrl());
+        } else if ($session->getBeforeAuthUrl() == $this->_getHelper('customer')->getLogoutUrl()) {
+            $session->setBeforeAuthUrl($this->_getHelper('customer')->getDashboardUrl());
         } else {
             if (!$session->getAfterAuthUrl()) {
                 $session->setAfterAuthUrl($session->getBeforeAuthUrl());
@@ -266,125 +271,254 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
             return;
         }
 
+        /** @var $session Mage_Customer_Model_Session */
         $session = $this->_getSession();
         if ($session->isLoggedIn()) {
             $this->_redirect('*/*/');
             return;
         }
 
-        if ($this->getRequest()->isPost()) {
-            $errors = array();
+        if (!$this->getRequest()->isPost()) {
+            $errUrl = $this->_getUrl('*/*/create', array('_secure' => true));
+            $this->_redirectError($errUrl);
+            return;
+        }
 
-            if (!$customer = Mage::registry('current_customer')) {
-                $customer = Mage::getModel('customer/customer')->setId(null);
-            }
+        $customer = $this->_getCustomer();
 
-            /* @var $customerForm Mage_Customer_Model_Form */
-            $customerForm = Mage::getModel('customer/form');
-            $customerForm->setFormCode('customer_account_create')
-                ->setEntity($customer);
+        try {
+            $errors = $this->_getCustomerErrors($customer);
 
-            $customerData = $customerForm->extractData($this->getRequest());
+            if (empty($errors)) {
+                $customer->save();
+                $this->_dispatchRegisterSuccess($customer);
+                $this->_successProcessRegistration($customer);
+                return;
+            } else {
+                $this->_addSessionError($errors);
+            }
+        } catch (Mage_Core_Exception $e) {
+            $session->setCustomerFormData($this->getRequest()->getPost());
+            if ($e->getCode() === Mage_Customer_Model_Customer::EXCEPTION_EMAIL_EXISTS) {
+                $url = $this->_getUrl('customer/account/forgotpassword');
+                $message = $this->__('There is already an account with this email address. If you are sure that it is your email address, <a href="%s">click here</a> to get your password and access your account.', $url);
+            } else {
+                $message = Mage::helper('core')->escapeHtml($e->getMessage());
+            }
+            $session->addError($message);
+        } catch (Exception $e) {
+            $session->setCustomerFormData($this->getRequest()->getPost())
+                ->addException($e, $this->__('Cannot save the customer.'));
+        }
+        $url = $this->_getUrl('*/*/create', array('_secure' => true));
+        $this->_redirectError($url);
+    }
 
+    /**
+     * Success Registration
+     *
+     * @param Mage_Customer_Model_Customer $customer
+     * @return Mage_Customer_AccountController
+     */
+    protected function _successProcessRegistration(Mage_Customer_Model_Customer $customer)
+    {
+        $session = $this->_getSession();
+        if ($customer->isConfirmationRequired()) {
+            /** @var $app Mage_Core_Model_App */
+            $app = $this->_getApp();
+            /** @var $store  Mage_Core_Model_Store*/
+            $store = $app->getStore();
+            $customer->sendNewAccountEmail(
+                'confirmation',
+                $session->getBeforeAuthUrl(),
+                $store->getId()
+            );
+            $customerHelper = $this->_getHelper('customer');
+            $session->addSuccess($this->__('Account confirmation is required. Please, check your email for the confirmation link. To resend the confirmation email please <a href="%s">click here</a>.',
+                $customerHelper->getEmailConfirmationUrl($customer->getEmail())));
+            $url = $this->_getUrl('*/*/index', array('_secure' => true));
+        } else {
+            $session->setCustomerAsLoggedIn($customer);
+            $session->renewSession();
+            $url = $this->_welcomeCustomer($customer);
+        }
+        $this->_redirectSuccess($url);
+        return $this;
+    }
+
+    /**
+     * Get Customer Model
+     *
+     * @return Mage_Customer_Model_Customer
+     */
+    protected function _getCustomer()
+    {
+        $customer = $this->_getFromRegistry('current_customer');
+        if (!$customer) {
+            $customer = $this->_getModel('customer/customer')->setId(null);
+        }
             if ($this->getRequest()->getParam('is_subscribed', false)) {
                 $customer->setIsSubscribed(1);
             }
-
             /**
              * Initialize customer group id
              */
             $customer->getGroupId();
 
-            if ($this->getRequest()->getPost('create_address')) {
-                /* @var $address Mage_Customer_Model_Address */
-                $address = Mage::getModel('customer/address');
-                /* @var $addressForm Mage_Customer_Model_Form */
-                $addressForm = Mage::getModel('customer/form');
-                $addressForm->setFormCode('customer_register_address')
-                    ->setEntity($address);
-
-                $addressData    = $addressForm->extractData($this->getRequest(), 'address', false);
-                $addressErrors  = $addressForm->validateData($addressData);
-                if ($addressErrors === true) {
-                    $address->setId(null)
-                        ->setIsDefaultBilling($this->getRequest()->getParam('default_billing', false))
-                        ->setIsDefaultShipping($this->getRequest()->getParam('default_shipping', false));
-                    $addressForm->compactData($addressData);
-                    $customer->addAddress($address);
-
-                    $addressErrors = $address->validate();
-                    if (is_array($addressErrors)) {
-                        $errors = array_merge($errors, $addressErrors);
+        return $customer;
+    }
+
+    /**
+     * Add session error method
+     *
+     * @param string|array $errors
+     */
+    protected function _addSessionError($errors)
+    {
+        $session = $this->_getSession();
+        $session->setCustomerFormData($this->getRequest()->getPost());
+        if (is_array($errors)) {
+            foreach ($errors as $errorMessage) {
+                $session->addError(Mage::helper('core')->escapeHtml($errorMessage));
                     }
                 } else {
-                    $errors = array_merge($errors, $addressErrors);
+            $session->addError($this->__('Invalid customer data'));
                 }
             }
 
-            try {
+    /**
+     * Validate customer data and return errors if they are
+     *
+     * @param Mage_Customer_Model_Customer $customer
+     * @return array|string
+     */
+    protected function _getCustomerErrors($customer)
+    {
+        $errors = array();
+        $request = $this->getRequest();
+        if ($request->getPost('create_address')) {
+            $errors = $this->_getErrorsOnCustomerAddress($customer);
+        }
+        $customerForm = $this->_getCustomerForm($customer);
+        $customerData = $customerForm->extractData($request);
                 $customerErrors = $customerForm->validateData($customerData);
                 if ($customerErrors !== true) {
                     $errors = array_merge($customerErrors, $errors);
                 } else {
                     $customerForm->compactData($customerData);
-                    $customer->setPassword($this->getRequest()->getPost('password'));
-                    $customer->setConfirmation($this->getRequest()->getPost('confirmation'));
+            $customer->setPassword($request->getPost('password'));
+            $customer->setConfirmation($request->getPost('confirmation'));
                     $customerErrors = $customer->validate();
                     if (is_array($customerErrors)) {
                         $errors = array_merge($customerErrors, $errors);
                     }
                 }
+        return $errors;
+    }
 
-                $validationResult = count($errors) == 0;
+    /**
+     * Get Customer Form Initalized Model
+     *
+     * @param Mage_Customer_Model_Customer $customer
+     * @return Mage_Customer_Model_Form
+     */
+    protected function _getCustomerForm($customer)
+    {
+        /* @var $customerForm Mage_Customer_Model_Form */
+        $customerForm = $this->_getModel('customer/form');
+        $customerForm->setFormCode('customer_account_create');
+        $customerForm->setEntity($customer);
+        return $customerForm;
+    }
 
-                if (true === $validationResult) {
-                    $customer->save();
+    /**
+     * Get Helper
+     *
+     * @param string $path
+     * @return Mage_Core_Helper_Abstract
+     */
+    protected function _getHelper($path)
+    {
+        return Mage::helper($path);
+    }
 
+    /**
+     * Get App
+     *
+     * @return Mage_Core_Model_App
+     */
+    protected function _getApp()
+    {
+        return Mage::app();
+    }
+
+    /**
+     * Dispatch Event
+     *
+     * @param Mage_Customer_Model_Customer $customer
+     */
+    protected function _dispatchRegisterSuccess($customer)
+    {
                     Mage::dispatchEvent('customer_register_success',
                         array('account_controller' => $this, 'customer' => $customer)
                     );
+    }
 
-                    if ($customer->isConfirmationRequired()) {
-                        $customer->sendNewAccountEmail(
-                            'confirmation',
-                            $session->getBeforeAuthUrl(),
-                            Mage::app()->getStore()->getId()
-                        );
-                        $session->addSuccess($this->__('Account confirmation is required. Please, check your email for the confirmation link. To resend the confirmation email please <a href="%s">click here</a>.', Mage::helper('customer')->getEmailConfirmationUrl($customer->getEmail())));
-                        $this->_redirectSuccess(Mage::getUrl('*/*/index', array('_secure'=>true)));
-                        return;
-                    } else {
-                        $session->setCustomerAsLoggedIn($customer);
-                        $url = $this->_welcomeCustomer($customer);
-                        $this->_redirectSuccess($url);
-                        return;
+    /**
+     * Get errors on provided customer address
+     *
+     * @param Mage_Customer_Model_Customer $customer
+     * @return array $errors
+     */
+    protected function _getErrorsOnCustomerAddress($customer)
+    {
+        $errors = array();
+        /* @var $address Mage_Customer_Model_Address */
+        $address = $this->_getModel('customer/address');
+        /* @var $addressForm Mage_Customer_Model_Form */
+        $addressForm = $this->_getModel('customer/form');
+        $addressForm->setFormCode('customer_register_address')
+            ->setEntity($address);
+
+        $addressData = $addressForm->extractData($this->getRequest(), 'address', false);
+        $addressErrors = $addressForm->validateData($addressData);
+        if (is_array($addressErrors)) {
+            $errors = $addressErrors;
                     }
-                } else {
-                    $session->setCustomerFormData($this->getRequest()->getPost());
-                    if (is_array($errors)) {
-                        foreach ($errors as $errorMessage) {
-                            $session->addError(Mage::helper('core')->escapeHtml($errorMessage));
+        $address->setId(null)
+            ->setIsDefaultBilling($this->getRequest()->getParam('default_billing', false))
+            ->setIsDefaultShipping($this->getRequest()->getParam('default_shipping', false));
+        $addressForm->compactData($addressData);
+        $customer->addAddress($address);
+
+        $addressErrors = $address->validate();
+        if (is_array($addressErrors)) {
+            $errors = array_merge($errors, $addressErrors);
                         }
-                    } else {
-                        $session->addError($this->__('Invalid customer data'));
+        return $errors;
                     }
+
+    /**
+     * Get model by path
+     *
+     * @param string $path
+     * @param array|null $arguments
+     * @return false|Mage_Core_Model_Abstract
+     */
+    public function _getModel($path, $arguments = array())
+    {
+        return Mage::getModel($path, $arguments);
                 }
-            } catch (Mage_Core_Exception $e) {
-                $session->setCustomerFormData($this->getRequest()->getPost());
-                if ($e->getCode() === Mage_Customer_Model_Customer::EXCEPTION_EMAIL_EXISTS) {
-                    $url = Mage::getUrl('customer/account/forgotpassword');
-                    $message = $this->__('There is already an account with this email address. If you are sure that it is your email address, <a href="%s">click here</a> to get your password and access your account.', $url);
-                } else {
-                    $message = Mage::helper('core')->escapeHtml($e->getMessage());
-                }
-                $session->addError($message);
-            } catch (Exception $e) {
-                $session->setCustomerFormData($this->getRequest()->getPost())
-                    ->addException($e, $this->__('Cannot save the customer.'));
-            }
-        }
 
-        $this->_redirectError(Mage::getUrl('*/*/create', array('_secure' => true)));
+    /**
+     * Get model from registry by path
+     *
+     * @param string $path
+     * @return mixed
+     */
+    protected function _getFromRegistry($path)
+    {
+        return Mage::registry($path);
     }
 
     /**
@@ -407,7 +541,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
             Mage::app()->getStore()->getId()
         );
 
-        $successUrl = Mage::getUrl('*/*/index', array('_secure'=>true));
+        $successUrl = $this->_getUrl('*/*/index', array('_secure'=>true));
         if ($this->_getSession()->getBeforeAuthUrl()) {
             $successUrl = $this->_getSession()->getBeforeAuthUrl(true);
         }
@@ -419,7 +553,8 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
      */
     public function confirmAction()
     {
-        if ($this->_getSession()->isLoggedIn()) {
+        $session = $this->_getSession();
+        if ($session->isLoggedIn()) {
             $this->_redirect('*/*/');
             return;
         }
@@ -433,7 +568,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
 
             // load customer by id (try/catch in case if it throws exceptions)
             try {
-                $customer = Mage::getModel('customer/customer')->load($id);
+                $customer = $this->_getModel('customer/customer')->load($id);
                 if ((!$customer) || (!$customer->getId())) {
                     throw new Exception('Failed to load customer by id.');
                 }
@@ -457,21 +592,22 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
                     throw new Exception($this->__('Failed to confirm customer account.'));
                 }
 
+                $session->renewSession();
                 // log in and send greeting email, then die happy
-                $this->_getSession()->setCustomerAsLoggedIn($customer);
+                $session->setCustomerAsLoggedIn($customer);
                 $successUrl = $this->_welcomeCustomer($customer, true);
                 $this->_redirectSuccess($backUrl ? $backUrl : $successUrl);
                 return;
             }
 
             // die happy
-            $this->_redirectSuccess(Mage::getUrl('*/*/index', array('_secure'=>true)));
+            $this->_redirectSuccess($this->_getUrl('*/*/index', array('_secure' => true)));
             return;
         }
         catch (Exception $e) {
             // die unhappy
             $this->_getSession()->addError($e->getMessage());
-            $this->_redirectError(Mage::getUrl('*/*/index', array('_secure'=>true)));
+            $this->_redirectError($this->_getUrl('*/*/index', array('_secure' => true)));
             return;
         }
     }
@@ -481,7 +617,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
      */
     public function confirmationAction()
     {
-        $customer = Mage::getModel('customer/customer');
+        $customer = $this->_getModel('customer/customer');
         if ($this->_getSession()->isLoggedIn()) {
             $this->_redirect('*/*/');
             return;
@@ -502,10 +638,10 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
                     $this->_getSession()->addSuccess($this->__('This email does not require confirmation.'));
                 }
                 $this->_getSession()->setUsername($email);
-                $this->_redirectSuccess(Mage::getUrl('*/*/index', array('_secure' => true)));
+                $this->_redirectSuccess($this->_getUrl('*/*/index', array('_secure' => true)));
             } catch (Exception $e) {
                 $this->_getSession()->addException($e, $this->__('Wrong email.'));
-                $this->_redirectError(Mage::getUrl('*/*/*', array('email' => $email, '_secure' => true)));
+                $this->_redirectError($this->_getUrl('*/*/*', array('email' => $email, '_secure' => true)));
             }
             return;
         }
@@ -521,6 +657,18 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
     }
 
     /**
+     * Get Url method
+     *
+     * @param string $url
+     * @param array $params
+     * @return string
+     */
+    protected function _getUrl($url, $params = array())
+    {
+        return Mage::getUrl($url, $params);
+    }
+
+    /**
      * Forgot customer password page
      */
     public function forgotPasswordAction()
@@ -551,13 +699,13 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
             }
 
             /** @var $customer Mage_Customer_Model_Customer */
-            $customer = Mage::getModel('customer/customer')
+            $customer = $this->_getModel('customer/customer')
                 ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
                 ->loadByEmail($email);
 
             if ($customer->getId()) {
                 try {
-                    $newResetPasswordLinkToken = Mage::helper('customer')->generateResetPasswordLinkToken();
+                    $newResetPasswordLinkToken = $this->_getHelper('customer')->generateResetPasswordLinkToken();
                     $customer->changeResetPasswordLinkToken($newResetPasswordLinkToken);
                     $customer->sendPasswordResetConfirmationEmail();
                 } catch (Exception $exception) {
@@ -567,7 +715,9 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
                 }
             }
             $this->_getSession()
-                ->addSuccess(Mage::helper('customer')->__('If there is an account associated with %s you will receive an email with a link to reset your password.', Mage::helper('customer')->htmlEscape($email)));
+                ->addSuccess($this->_getHelper('customer')
+                    ->__('If there is an account associated with %s you will receive an email with a link to reset your password.',
+                        $this->_getHelper('customer')->escapeHtml($email)));
             $this->_redirect('*/*/');
             return;
         } else {
@@ -612,16 +762,14 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
                 ->_redirect('*/*/changeforgotten');
 
         } catch (Exception $exception) {
-            $this->_getSession()->addError(Mage::helper('customer')->__('Your password reset link has expired.'));
-            $this->_redirect('*/*/');
+            $this->_getSession()->addError($this->_getHelper('customer')->__('Your password reset link has expired.'));
+            $this->_redirect('*/*/forgotpassword');
         }
     }
 
     /**
      * Reset forgotten password
-     *
      * Used to handle data recieved from reset forgotten password form
-     *
      */
     public function resetPasswordPostAction()
     {
@@ -632,17 +780,17 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
         try {
             $this->_validateResetPasswordLinkToken($customerId, $resetPasswordLinkToken);
         } catch (Exception $exception) {
-            $this->_getSession()->addError(Mage::helper('customer')->__('Your password reset link has expired.'));
+            $this->_getSession()->addError($this->_getHelper('customer')->__('Your password reset link has expired.'));
             $this->_redirect('*/*/');
             return;
         }
 
         $errorMessages = array();
         if (iconv_strlen($password) <= 0) {
-            array_push($errorMessages, Mage::helper('customer')->__('New password field cannot be empty.'));
+            array_push($errorMessages, $this->_getHelper('customer')->__('New password field cannot be empty.'));
         }
         /** @var $customer Mage_Customer_Model_Customer */
-        $customer = Mage::getModel('customer/customer')->load($customerId);
+        $customer = $this->_getModel('customer/customer')->load($customerId);
 
         $customer->setPassword($password);
         $customer->setConfirmation($passwordConfirmation);
@@ -670,7 +818,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
             $this->_getSession()->unsetData(self::TOKEN_SESSION_NAME);
             $this->_getSession()->unsetData(self::CUSTOMER_ID_SESSION_NAME);
 
-            $this->_getSession()->addSuccess(Mage::helper('customer')->__('Your password has been updated.'));
+            $this->_getSession()->addSuccess($this->_getHelper('customer')->__('Your password has been updated.'));
             $this->_redirect('*/*/login');
         } catch (Exception $exception) {
             $this->_getSession()->addException($exception, $this->__('Cannot save a new password.'));
@@ -694,18 +842,18 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
             || empty($customerId)
             || $customerId < 0
         ) {
-            throw Mage::exception('Mage_Core', Mage::helper('customer')->__('Invalid password reset token.'));
+            throw Mage::exception('Mage_Core', $this->_getHelper('customer')->__('Invalid password reset token.'));
         }
 
         /** @var $customer Mage_Customer_Model_Customer */
-        $customer = Mage::getModel('customer/customer')->load($customerId);
+        $customer = $this->_getModel('customer/customer')->load($customerId);
         if (!$customer || !$customer->getId()) {
-            throw Mage::exception('Mage_Core', Mage::helper('customer')->__('Wrong customer account specified.'));
+            throw Mage::exception('Mage_Core', $this->_getHelper('customer')->__('Wrong customer account specified.'));
         }
 
         $customerToken = $customer->getRpToken();
         if (strcmp($customerToken, $resetPasswordLinkToken) != 0 || $customer->isResetPasswordLinkTokenExpired()) {
-            throw Mage::exception('Mage_Core', Mage::helper('customer')->__('Your password reset link has expired.'));
+            throw Mage::exception('Mage_Core', $this->_getHelper('customer')->__('Your password reset link has expired.'));
         }
     }
 
@@ -727,7 +875,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
         if (!empty($data)) {
             $customer->addData($data);
         }
-        if ($this->getRequest()->getParam('changepass')==1){
+        if ($this->getRequest()->getParam('changepass') == 1) {
             $customer->setChangePassword(1);
         }
 
@@ -750,7 +898,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
             $customer = $this->_getSession()->getCustomer();
 
             /** @var $customerForm Mage_Customer_Model_Form */
-            $customerForm = Mage::getModel('customer/form');
+            $customerForm = $this->_getModel('customer/form');
             $customerForm->setFormCode('customer_account_edit')
                 ->setEntity($customer);
 
@@ -771,7 +919,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
                     $confPass   = $this->getRequest()->getPost('confirmation');
 
                     $oldPass = $this->_getSession()->getCustomer()->getPasswordHash();
-                    if (Mage::helper('core/string')->strpos($oldPass, ':')) {
+                    if ($this->_getHelper('core/string')->strpos($oldPass, ':')) {
                         list($_salt, $salt) = explode(':', $oldPass);
                     } else {
                         $salt = false;
diff --git app/code/core/Mage/Customer/controllers/AddressController.php app/code/core/Mage/Customer/controllers/AddressController.php
index a410ff8..259411a 100644
--- app/code/core/Mage/Customer/controllers/AddressController.php
+++ app/code/core/Mage/Customer/controllers/AddressController.php
@@ -163,6 +163,9 @@ class Mage_Customer_AddressController extends Mage_Core_Controller_Front_Action
 
     public function deleteAction()
     {
+        if (!$this->_validateFormKey()) {
+            return $this->_redirect('*/*/');
+        }
         $addressId = $this->getRequest()->getParam('id', false);
 
         if ($addressId) {
diff --git app/code/core/Mage/Dataflow/Model/Profile.php app/code/core/Mage/Dataflow/Model/Profile.php
index 4a13a6d..c746f55 100644
--- app/code/core/Mage/Dataflow/Model/Profile.php
+++ app/code/core/Mage/Dataflow/Model/Profile.php
@@ -64,10 +64,14 @@ class Mage_Dataflow_Model_Profile extends Mage_Core_Model_Abstract
 
     protected function _afterLoad()
     {
+        $guiData = '';
         if (is_string($this->getGuiData())) {
-            $guiData = unserialize($this->getGuiData());
-        } else {
-            $guiData = '';
+            try {
+                $guiData = Mage::helper('core/unserializeArray')
+                    ->unserialize($this->getGuiData());
+            } catch (Exception $e) {
+                Mage::logException($e);
+            }
         }
         $this->setGuiData($guiData);
 
@@ -127,7 +131,13 @@ class Mage_Dataflow_Model_Profile extends Mage_Core_Model_Abstract
     protected function _afterSave()
     {
         if (is_string($this->getGuiData())) {
-            $this->setGuiData(unserialize($this->getGuiData()));
+            try {
+                $guiData = Mage::helper('core/unserializeArray')
+                    ->unserialize($this->getGuiData());
+                $this->setGuiData($guiData);
+            } catch (Exception $e) {
+                Mage::logException($e);
+            }
         }
 
         $profileHistory = Mage::getModel('dataflow/profile_history');
diff --git app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php
index 77ddb28..0e0d677 100644
--- app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php
+++ app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php
@@ -32,7 +32,7 @@
  * @author      Magento Core Team <core@magentocommerce.com>
  */
 class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
-    extends Mage_Adminhtml_Block_Template
+    extends Mage_Uploader_Block_Single
 {
     /**
      * Purchased Separately Attribute cache
@@ -245,6 +245,7 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Li
      */
      protected function _prepareLayout()
     {
+        parent::_prepareLayout();
         $this->setChild(
             'upload_button',
             $this->getLayout()->createBlock('adminhtml/widget_button')->addData(array(
@@ -254,6 +255,10 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Li
                 'onclick' => 'Downloadable.massUploadByType(\'links\');Downloadable.massUploadByType(\'linkssample\')'
             ))
         );
+        $this->_addElementIdsMapping(array(
+            'container' => $this->getHtmlId() . '-new',
+            'delete'    => $this->getHtmlId() . '-delete'
+        ));
     }
 
     /**
@@ -273,33 +278,56 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Li
      */
     public function getConfigJson($type='links')
     {
-        $this->getConfig()->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()
-            ->getUrl('*/downloadable_file/upload', array('type' => $type, '_secure' => true)));
-        $this->getConfig()->setParams(array('form_key' => $this->getFormKey()));
-        $this->getConfig()->setFileField($type);
-        $this->getConfig()->setFilters(array(
-            'all'    => array(
-                'label' => Mage::helper('adminhtml')->__('All Files'),
-                'files' => array('*.*')
+
+        $this->getUploaderConfig()
+            ->setFileParameterName($type)
+            ->setTarget(
+                Mage::getModel('adminhtml/url')
+                    ->addSessionParam()
+                    ->getUrl('*/downloadable_file/upload', array('type' => $type, '_secure' => true))
+            );
+        $this->getMiscConfig()
+            ->setReplaceBrowseWithRemove(true)
+        ;
+        return Mage::helper('core')->jsonEncode(parent::getJsonConfig());
+    }
+
+    /**
+     * @return string
+     */
+    public function getBrowseButtonHtml($type = '')
+    {
+        return $this->getChild('browse_button')
+            // Workaround for IE9
+            ->setBeforeHtml(
+                '<div style="display:inline-block; " id="downloadable_link_{{id}}_' . $type . 'file-browse">'
             )
-        ));
-        $this->getConfig()->setReplaceBrowseWithRemove(true);
-        $this->getConfig()->setWidth('32');
-        $this->getConfig()->setHideUploadButton(true);
-        return Mage::helper('core')->jsonEncode($this->getConfig()->getData());
+            ->setAfterHtml('</div>')
+            ->setId('downloadable_link_{{id}}_' . $type . 'file-browse_button')
+            ->toHtml();
     }
 
+
     /**
-     * Retrive config object
+     * @return string
+     */
+    public function getDeleteButtonHtml($type = '')
+    {
+        return $this->getChild('delete_button')
+            ->setLabel('')
+            ->setId('downloadable_link_{{id}}_' . $type . 'file-delete')
+            ->setStyle('display:none; width:31px;')
+            ->toHtml();
+    }
+
+    /**
+     * Retrieve config object
      *
-     * @return Varien_Config
+     * @deprecated
+     * @return $this
      */
     public function getConfig()
     {
-        if(is_null($this->_config)) {
-            $this->_config = new Varien_Object();
-        }
-
-        return $this->_config;
+        return $this;
     }
 }
diff --git app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Samples.php app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Samples.php
index 5c50d21..4d524b8 100644
--- app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Samples.php
+++ app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Samples.php
@@ -31,7 +31,8 @@
  * @package     Mage_Downloadable
  * @author      Magento Core Team <core@magentocommerce.com>
  */
-class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Samples extends Mage_Adminhtml_Block_Widget
+class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Samples
+    extends Mage_Uploader_Block_Single
 {
     /**
      * Class constructor
@@ -147,6 +148,7 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Sa
      */
     protected function _prepareLayout()
     {
+        parent::_prepareLayout();
         $this->setChild(
             'upload_button',
             $this->getLayout()->createBlock('adminhtml/widget_button')
@@ -157,6 +159,11 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Sa
                     'onclick' => 'Downloadable.massUploadByType(\'samples\')'
                 ))
         );
+
+        $this->_addElementIdsMapping(array(
+            'container' => $this->getHtmlId() . '-new',
+            'delete'    => $this->getHtmlId() . '-delete'
+        ));
     }
 
     /**
@@ -170,38 +177,59 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Sa
     }
 
     /**
-     * Retrive config json
+     * Retrieve config json
      *
      * @return string
      */
     public function getConfigJson()
     {
-        $this->getConfig()->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/downloadable_file/upload', array('type' => 'samples', '_secure' => true)));
-        $this->getConfig()->setParams(array('form_key' => $this->getFormKey()));
-        $this->getConfig()->setFileField('samples');
-        $this->getConfig()->setFilters(array(
-            'all'    => array(
-                'label' => Mage::helper('adminhtml')->__('All Files'),
-                'files' => array('*.*')
-            )
-        ));
-        $this->getConfig()->setReplaceBrowseWithRemove(true);
-        $this->getConfig()->setWidth('32');
-        $this->getConfig()->setHideUploadButton(true);
-        return Mage::helper('core')->jsonEncode($this->getConfig()->getData());
+        $this->getUploaderConfig()
+            ->setFileParameterName('samples')
+            ->setTarget(
+                Mage::getModel('adminhtml/url')
+                    ->addSessionParam()
+                    ->getUrl('*/downloadable_file/upload', array('type' => 'samples', '_secure' => true))
+            );
+        $this->getMiscConfig()
+            ->setReplaceBrowseWithRemove(true)
+        ;
+        return Mage::helper('core')->jsonEncode(parent::getJsonConfig());
     }
 
     /**
-     * Retrive config object
+     * @return string
+     */
+    public function getBrowseButtonHtml()
+    {
+        return $this->getChild('browse_button')
+            // Workaround for IE9
+            ->setBeforeHtml('<div style="display:inline-block; " id="downloadable_sample_{{id}}_file-browse">')
+            ->setAfterHtml('</div>')
+            ->setId('downloadable_sample_{{id}}_file-browse_button')
+            ->toHtml();
+    }
+
+
+    /**
+     * @return string
+     */
+    public function getDeleteButtonHtml()
+    {
+        return $this->getChild('delete_button')
+            ->setLabel('')
+            ->setId('downloadable_sample_{{id}}_file-delete')
+            ->setStyle('display:none; width:31px;')
+            ->toHtml();
+    }
+
+    /**
+     * Retrieve config object
      *
-     * @return Varien_Config
+     * @deprecated
+     * @return $this
      */
     public function getConfig()
     {
-        if(is_null($this->_config)) {
-            $this->_config = new Varien_Object();
-        }
-
-        return $this->_config;
+        return $this;
     }
 }
diff --git app/code/core/Mage/Downloadable/Helper/File.php app/code/core/Mage/Downloadable/Helper/File.php
index 4e09b03..11a1a3b 100644
--- app/code/core/Mage/Downloadable/Helper/File.php
+++ app/code/core/Mage/Downloadable/Helper/File.php
@@ -33,15 +33,35 @@
  */
 class Mage_Downloadable_Helper_File extends Mage_Core_Helper_Abstract
 {
+    /**
+     * @see Mage_Uploader_Helper_File::getMimeTypes
+     * @var array
+     */
+    protected $_mimeTypes;
+
+    /**
+     * @var Mage_Uploader_Helper_File
+     */
+    protected $_fileHelper;
+
+    /**
+     * Populate self::_mimeTypes array with values that set in config or pre-defined
+     */
     public function __construct()
     {
-        $nodes = Mage::getConfig()->getNode('global/mime/types');
-        if ($nodes) {
-            $nodes = (array)$nodes;
-            foreach ($nodes as $key => $value) {
-                self::$_mimeTypes[$key] = $value;
-            }
+        $this->_mimeTypes = $this->_getFileHelper()->getMimeTypes();
+    }
+
+    /**
+     * @return Mage_Uploader_Helper_File
+     */
+    protected function _getFileHelper()
+    {
+        if (!$this->_fileHelper) {
+            $this->_fileHelper = Mage::helper('uploader/file');
         }
+
+        return $this->_fileHelper;
     }
 
     /**
@@ -152,628 +172,48 @@ class Mage_Downloadable_Helper_File extends Mage_Core_Helper_Abstract
         return $file;
     }
 
+    /**
+     * Get MIME type for $filePath
+     *
+     * @param $filePath
+     * @return string
+     */
     public function getFileType($filePath)
     {
         $ext = substr($filePath, strrpos($filePath, '.')+1);
         return $this->_getFileTypeByExt($ext);
     }
 
+    /**
+     * Get MIME type by file extension
+     *
+     * @param $ext
+     * @return string
+     * @deprecated
+     */
     protected function _getFileTypeByExt($ext)
     {
-        $type = 'x' . $ext;
-        if (isset(self::$_mimeTypes[$type])) {
-            return self::$_mimeTypes[$type];
-        }
-        return 'application/octet-stream';
+        return $this->_getFileHelper()->getMimeTypeByExtension($ext);
     }
 
+    /**
+     * Get all MIME types
+     *
+     * @return array
+     */
     public function getAllFileTypes()
     {
-        return array_values(self::getAllMineTypes());
+        return array_values($this->getAllMineTypes());
     }
 
+    /**
+     * Get list of all MIME types
+     *
+     * @return array
+     */
     public function getAllMineTypes()
     {
-        return self::$_mimeTypes;
+        return $this->_mimeTypes;
     }
 
-    protected static $_mimeTypes =
-        array(
-            'x123' => 'application/vnd.lotus-1-2-3',
-            'x3dml' => 'text/vnd.in3d.3dml',
-            'x3g2' => 'video/3gpp2',
-            'x3gp' => 'video/3gpp',
-            'xace' => 'application/x-ace-compressed',
-            'xacu' => 'application/vnd.acucobol',
-            'xaep' => 'application/vnd.audiograph',
-            'xai' => 'application/postscript',
-            'xaif' => 'audio/x-aiff',
-
-            'xaifc' => 'audio/x-aiff',
-            'xaiff' => 'audio/x-aiff',
-            'xami' => 'application/vnd.amiga.ami',
-            'xapr' => 'application/vnd.lotus-approach',
-            'xasf' => 'video/x-ms-asf',
-            'xaso' => 'application/vnd.accpac.simply.aso',
-            'xasx' => 'video/x-ms-asf',
-            'xatom' => 'application/atom+xml',
-            'xatomcat' => 'application/atomcat+xml',
-
-            'xatomsvc' => 'application/atomsvc+xml',
-            'xatx' => 'application/vnd.antix.game-component',
-            'xau' => 'audio/basic',
-            'xavi' => 'video/x-msvideo',
-            'xbat' => 'application/x-msdownload',
-            'xbcpio' => 'application/x-bcpio',
-            'xbdm' => 'application/vnd.syncml.dm+wbxml',
-            'xbh2' => 'application/vnd.fujitsu.oasysprs',
-            'xbmi' => 'application/vnd.bmi',
-
-            'xbmp' => 'image/bmp',
-            'xbox' => 'application/vnd.previewsystems.box',
-            'xboz' => 'application/x-bzip2',
-            'xbtif' => 'image/prs.btif',
-            'xbz' => 'application/x-bzip',
-            'xbz2' => 'application/x-bzip2',
-            'xcab' => 'application/vnd.ms-cab-compressed',
-            'xccxml' => 'application/ccxml+xml',
-            'xcdbcmsg' => 'application/vnd.contact.cmsg',
-
-            'xcdkey' => 'application/vnd.mediastation.cdkey',
-            'xcdx' => 'chemical/x-cdx',
-            'xcdxml' => 'application/vnd.chemdraw+xml',
-            'xcdy' => 'application/vnd.cinderella',
-            'xcer' => 'application/pkix-cert',
-            'xcgm' => 'image/cgm',
-            'xchat' => 'application/x-chat',
-            'xchm' => 'application/vnd.ms-htmlhelp',
-            'xchrt' => 'application/vnd.kde.kchart',
-
-            'xcif' => 'chemical/x-cif',
-            'xcii' => 'application/vnd.anser-web-certificate-issue-initiation',
-            'xcil' => 'application/vnd.ms-artgalry',
-            'xcla' => 'application/vnd.claymore',
-            'xclkk' => 'application/vnd.crick.clicker.keyboard',
-            'xclkp' => 'application/vnd.crick.clicker.palette',
-            'xclkt' => 'application/vnd.crick.clicker.template',
-            'xclkw' => 'application/vnd.crick.clicker.wordbank',
-            'xclkx' => 'application/vnd.crick.clicker',
-
-            'xclp' => 'application/x-msclip',
-            'xcmc' => 'application/vnd.cosmocaller',
-            'xcmdf' => 'chemical/x-cmdf',
-            'xcml' => 'chemical/x-cml',
-            'xcmp' => 'application/vnd.yellowriver-custom-menu',
-            'xcmx' => 'image/x-cmx',
-            'xcom' => 'application/x-msdownload',
-            'xconf' => 'text/plain',
-            'xcpio' => 'application/x-cpio',
-
-            'xcpt' => 'application/mac-compactpro',
-            'xcrd' => 'application/x-mscardfile',
-            'xcrl' => 'application/pkix-crl',
-            'xcrt' => 'application/x-x509-ca-cert',
-            'xcsh' => 'application/x-csh',
-            'xcsml' => 'chemical/x-csml',
-            'xcss' => 'text/css',
-            'xcsv' => 'text/csv',
-            'xcurl' => 'application/vnd.curl',
-
-            'xcww' => 'application/prs.cww',
-            'xdaf' => 'application/vnd.mobius.daf',
-            'xdavmount' => 'application/davmount+xml',
-            'xdd2' => 'application/vnd.oma.dd2+xml',
-            'xddd' => 'application/vnd.fujixerox.ddd',
-            'xdef' => 'text/plain',
-            'xder' => 'application/x-x509-ca-cert',
-            'xdfac' => 'application/vnd.dreamfactory',
-            'xdis' => 'application/vnd.mobius.dis',
-
-            'xdjv' => 'image/vnd.djvu',
-            'xdjvu' => 'image/vnd.djvu',
-            'xdll' => 'application/x-msdownload',
-            'xdna' => 'application/vnd.dna',
-            'xdoc' => 'application/msword',
-            'xdot' => 'application/msword',
-            'xdp' => 'application/vnd.osgi.dp',
-            'xdpg' => 'application/vnd.dpgraph',
-            'xdsc' => 'text/prs.lines.tag',
-
-            'xdtd' => 'application/xml-dtd',
-            'xdvi' => 'application/x-dvi',
-            'xdwf' => 'model/vnd.dwf',
-            'xdwg' => 'image/vnd.dwg',
-            'xdxf' => 'image/vnd.dxf',
-            'xdxp' => 'application/vnd.spotfire.dxp',
-            'xecelp4800' => 'audio/vnd.nuera.ecelp4800',
-            'xecelp7470' => 'audio/vnd.nuera.ecelp7470',
-            'xecelp9600' => 'audio/vnd.nuera.ecelp9600',
-
-            'xecma' => 'application/ecmascript',
-            'xedm' => 'application/vnd.novadigm.edm',
-            'xedx' => 'application/vnd.novadigm.edx',
-            'xefif' => 'application/vnd.picsel',
-            'xei6' => 'application/vnd.pg.osasli',
-            'xeml' => 'message/rfc822',
-            'xeol' => 'audio/vnd.digital-winds',
-            'xeot' => 'application/vnd.ms-fontobject',
-            'xeps' => 'application/postscript',
-
-            'xesf' => 'application/vnd.epson.esf',
-            'xetx' => 'text/x-setext',
-            'xexe' => 'application/x-msdownload',
-            'xext' => 'application/vnd.novadigm.ext',
-            'xez' => 'application/andrew-inset',
-            'xez2' => 'application/vnd.ezpix-album',
-            'xez3' => 'application/vnd.ezpix-package',
-            'xfbs' => 'image/vnd.fastbidsheet',
-            'xfdf' => 'application/vnd.fdf',
-
-            'xfe_launch' => 'application/vnd.denovo.fcselayout-link',
-            'xfg5' => 'application/vnd.fujitsu.oasysgp',
-            'xfli' => 'video/x-fli',
-            'xflo' => 'application/vnd.micrografx.flo',
-            'xflw' => 'application/vnd.kde.kivio',
-            'xflx' => 'text/vnd.fmi.flexstor',
-            'xfly' => 'text/vnd.fly',
-            'xfnc' => 'application/vnd.frogans.fnc',
-            'xfpx' => 'image/vnd.fpx',
-
-            'xfsc' => 'application/vnd.fsc.weblaunch',
-            'xfst' => 'image/vnd.fst',
-            'xftc' => 'application/vnd.fluxtime.clip',
-            'xfti' => 'application/vnd.anser-web-funds-transfer-initiation',
-            'xfvt' => 'video/vnd.fvt',
-            'xfzs' => 'application/vnd.fuzzysheet',
-            'xg3' => 'image/g3fax',
-            'xgac' => 'application/vnd.groove-account',
-            'xgdl' => 'model/vnd.gdl',
-
-            'xghf' => 'application/vnd.groove-help',
-            'xgif' => 'image/gif',
-            'xgim' => 'application/vnd.groove-identity-message',
-            'xgph' => 'application/vnd.flographit',
-            'xgram' => 'application/srgs',
-            'xgrv' => 'application/vnd.groove-injector',
-            'xgrxml' => 'application/srgs+xml',
-            'xgtar' => 'application/x-gtar',
-            'xgtm' => 'application/vnd.groove-tool-message',
-
-            'xgtw' => 'model/vnd.gtw',
-            'xh261' => 'video/h261',
-            'xh263' => 'video/h263',
-            'xh264' => 'video/h264',
-            'xhbci' => 'application/vnd.hbci',
-            'xhdf' => 'application/x-hdf',
-            'xhlp' => 'application/winhlp',
-            'xhpgl' => 'application/vnd.hp-hpgl',
-            'xhpid' => 'application/vnd.hp-hpid',
-
-            'xhps' => 'application/vnd.hp-hps',
-            'xhqx' => 'application/mac-binhex40',
-            'xhtke' => 'application/vnd.kenameaapp',
-            'xhtm' => 'text/html',
-            'xhtml' => 'text/html',
-            'xhvd' => 'application/vnd.yamaha.hv-dic',
-            'xhvp' => 'application/vnd.yamaha.hv-voice',
-            'xhvs' => 'application/vnd.yamaha.hv-script',
-            'xice' => '#x-conference/x-cooltalk',
-
-            'xico' => 'image/x-icon',
-            'xics' => 'text/calendar',
-            'xief' => 'image/ief',
-            'xifb' => 'text/calendar',
-            'xifm' => 'application/vnd.shana.informed.formdata',
-            'xigl' => 'application/vnd.igloader',
-            'xigx' => 'application/vnd.micrografx.igx',
-            'xiif' => 'application/vnd.shana.informed.interchange',
-            'ximp' => 'application/vnd.accpac.simply.imp',
-
-            'xims' => 'application/vnd.ms-ims',
-            'xin' => 'text/plain',
-            'xipk' => 'application/vnd.shana.informed.package',
-            'xirm' => 'application/vnd.ibm.rights-management',
-            'xirp' => 'application/vnd.irepository.package+xml',
-            'xitp' => 'application/vnd.shana.informed.formtemplate',
-            'xivp' => 'application/vnd.immervision-ivp',
-            'xivu' => 'application/vnd.immervision-ivu',
-            'xjad' => 'text/vnd.sun.j2me.app-descriptor',
-
-            'xjam' => 'application/vnd.jam',
-            'xjava' => 'text/x-java-source',
-            'xjisp' => 'application/vnd.jisp',
-            'xjlt' => 'application/vnd.hp-jlyt',
-            'xjoda' => 'application/vnd.joost.joda-archive',
-            'xjpe' => 'image/jpeg',
-            'xjpeg' => 'image/jpeg',
-            'xjpg' => 'image/jpeg',
-            'xjpgm' => 'video/jpm',
-
-            'xjpgv' => 'video/jpeg',
-            'xjpm' => 'video/jpm',
-            'xjs' => 'application/javascript',
-            'xjson' => 'application/json',
-            'xkar' => 'audio/midi',
-            'xkarbon' => 'application/vnd.kde.karbon',
-            'xkfo' => 'application/vnd.kde.kformula',
-            'xkia' => 'application/vnd.kidspiration',
-            'xkml' => 'application/vnd.google-earth.kml+xml',
-
-            'xkmz' => 'application/vnd.google-earth.kmz',
-            'xkon' => 'application/vnd.kde.kontour',
-            'xksp' => 'application/vnd.kde.kspread',
-            'xlatex' => 'application/x-latex',
-            'xlbd' => 'application/vnd.llamagraphics.life-balance.desktop',
-            'xlbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml',
-            'xles' => 'application/vnd.hhe.lesson-player',
-            'xlist' => 'text/plain',
-            'xlog' => 'text/plain',
-
-            'xlrm' => 'application/vnd.ms-lrm',
-            'xltf' => 'application/vnd.frogans.ltf',
-            'xlvp' => 'audio/vnd.lucent.voice',
-            'xlwp' => 'application/vnd.lotus-wordpro',
-            'xm13' => 'application/x-msmediaview',
-            'xm14' => 'application/x-msmediaview',
-            'xm1v' => 'video/mpeg',
-            'xm2a' => 'audio/mpeg',
-            'xm3a' => 'audio/mpeg',
-
-            'xm3u' => 'audio/x-mpegurl',
-            'xm4u' => 'video/vnd.mpegurl',
-            'xmag' => 'application/vnd.ecowin.chart',
-            'xmathml' => 'application/mathml+xml',
-            'xmbk' => 'application/vnd.mobius.mbk',
-            'xmbox' => 'application/mbox',
-            'xmc1' => 'application/vnd.medcalcdata',
-            'xmcd' => 'application/vnd.mcd',
-            'xmdb' => 'application/x-msaccess',
-
-            'xmdi' => 'image/vnd.ms-modi',
-            'xmesh' => 'model/mesh',
-            'xmfm' => 'application/vnd.mfmp',
-            'xmgz' => 'application/vnd.proteus.magazine',
-            'xmid' => 'audio/midi',
-            'xmidi' => 'audio/midi',
-            'xmif' => 'application/vnd.mif',
-            'xmime' => 'message/rfc822',
-            'xmj2' => 'video/mj2',
-
-            'xmjp2' => 'video/mj2',
-            'xmlp' => 'application/vnd.dolby.mlp',
-            'xmmd' => 'application/vnd.chipnuts.karaoke-mmd',
-            'xmmf' => 'application/vnd.smaf',
-            'xmmr' => 'image/vnd.fujixerox.edmics-mmr',
-            'xmny' => 'application/x-msmoney',
-            'xmov' => 'video/quicktime',
-            'xmovie' => 'video/x-sgi-movie',
-            'xmp2' => 'audio/mpeg',
-
-            'xmp2a' => 'audio/mpeg',
-            'xmp3' => 'audio/mpeg',
-            'xmp4' => 'video/mp4',
-            'xmp4a' => 'audio/mp4',
-            'xmp4s' => 'application/mp4',
-            'xmp4v' => 'video/mp4',
-            'xmpc' => 'application/vnd.mophun.certificate',
-            'xmpe' => 'video/mpeg',
-            'xmpeg' => 'video/mpeg',
-
-            'xmpg' => 'video/mpeg',
-            'xmpg4' => 'video/mp4',
-            'xmpga' => 'audio/mpeg',
-            'xmpkg' => 'application/vnd.apple.installer+xml',
-            'xmpm' => 'application/vnd.blueice.multipass',
-            'xmpn' => 'application/vnd.mophun.application',
-            'xmpp' => 'application/vnd.ms-project',
-            'xmpt' => 'application/vnd.ms-project',
-            'xmpy' => 'application/vnd.ibm.minipay',
-
-            'xmqy' => 'application/vnd.mobius.mqy',
-            'xmrc' => 'application/marc',
-            'xmscml' => 'application/mediaservercontrol+xml',
-            'xmseq' => 'application/vnd.mseq',
-            'xmsf' => 'application/vnd.epson.msf',
-            'xmsh' => 'model/mesh',
-            'xmsi' => 'application/x-msdownload',
-            'xmsl' => 'application/vnd.mobius.msl',
-            'xmsty' => 'application/vnd.muvee.style',
-
-            'xmts' => 'model/vnd.mts',
-            'xmus' => 'application/vnd.musician',
-            'xmvb' => 'application/x-msmediaview',
-            'xmwf' => 'application/vnd.mfer',
-            'xmxf' => 'application/mxf',
-            'xmxl' => 'application/vnd.recordare.musicxml',
-            'xmxml' => 'application/xv+xml',
-            'xmxs' => 'application/vnd.triscape.mxs',
-            'xmxu' => 'video/vnd.mpegurl',
-
-            'xn-gage' => 'application/vnd.nokia.n-gage.symbian.install',
-            'xngdat' => 'application/vnd.nokia.n-gage.data',
-            'xnlu' => 'application/vnd.neurolanguage.nlu',
-            'xnml' => 'application/vnd.enliven',
-            'xnnd' => 'application/vnd.noblenet-directory',
-            'xnns' => 'application/vnd.noblenet-sealer',
-            'xnnw' => 'application/vnd.noblenet-web',
-            'xnpx' => 'image/vnd.net-fpx',
-            'xnsf' => 'application/vnd.lotus-notes',
-
-            'xoa2' => 'application/vnd.fujitsu.oasys2',
-            'xoa3' => 'application/vnd.fujitsu.oasys3',
-            'xoas' => 'application/vnd.fujitsu.oasys',
-            'xobd' => 'application/x-msbinder',
-            'xoda' => 'application/oda',
-            'xodc' => 'application/vnd.oasis.opendocument.chart',
-            'xodf' => 'application/vnd.oasis.opendocument.formula',
-            'xodg' => 'application/vnd.oasis.opendocument.graphics',
-            'xodi' => 'application/vnd.oasis.opendocument.image',
-
-            'xodp' => 'application/vnd.oasis.opendocument.presentation',
-            'xods' => 'application/vnd.oasis.opendocument.spreadsheet',
-            'xodt' => 'application/vnd.oasis.opendocument.text',
-            'xogg' => 'application/ogg',
-            'xoprc' => 'application/vnd.palm',
-            'xorg' => 'application/vnd.lotus-organizer',
-            'xotc' => 'application/vnd.oasis.opendocument.chart-template',
-            'xotf' => 'application/vnd.oasis.opendocument.formula-template',
-            'xotg' => 'application/vnd.oasis.opendocument.graphics-template',
-
-            'xoth' => 'application/vnd.oasis.opendocument.text-web',
-            'xoti' => 'application/vnd.oasis.opendocument.image-template',
-            'xotm' => 'application/vnd.oasis.opendocument.text-master',
-            'xots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
-            'xott' => 'application/vnd.oasis.opendocument.text-template',
-            'xoxt' => 'application/vnd.openofficeorg.extension',
-            'xp10' => 'application/pkcs10',
-            'xp7r' => 'application/x-pkcs7-certreqresp',
-            'xp7s' => 'application/pkcs7-signature',
-
-            'xpbd' => 'application/vnd.powerbuilder6',
-            'xpbm' => 'image/x-portable-bitmap',
-            'xpcl' => 'application/vnd.hp-pcl',
-            'xpclxl' => 'application/vnd.hp-pclxl',
-            'xpct' => 'image/x-pict',
-            'xpcx' => 'image/x-pcx',
-            'xpdb' => 'chemical/x-pdb',
-            'xpdf' => 'application/pdf',
-            'xpfr' => 'application/font-tdpfr',
-
-            'xpgm' => 'image/x-portable-graymap',
-            'xpgn' => 'application/x-chess-pgn',
-            'xpgp' => 'application/pgp-encrypted',
-            'xpic' => 'image/x-pict',
-            'xpki' => 'application/pkixcmp',
-            'xpkipath' => 'application/pkix-pkipath',
-            'xplb' => 'application/vnd.3gpp.pic-bw-large',
-            'xplc' => 'application/vnd.mobius.plc',
-            'xplf' => 'application/vnd.pocketlearn',
-
-            'xpls' => 'application/pls+xml',
-            'xpml' => 'application/vnd.ctc-posml',
-            'xpng' => 'image/png',
-            'xpnm' => 'image/x-portable-anymap',
-            'xportpkg' => 'application/vnd.macports.portpkg',
-            'xpot' => 'application/vnd.ms-powerpoint',
-            'xppd' => 'application/vnd.cups-ppd',
-            'xppm' => 'image/x-portable-pixmap',
-            'xpps' => 'application/vnd.ms-powerpoint',
-
-            'xppt' => 'application/vnd.ms-powerpoint',
-            'xpqa' => 'application/vnd.palm',
-            'xprc' => 'application/vnd.palm',
-            'xpre' => 'application/vnd.lotus-freelance',
-            'xprf' => 'application/pics-rules',
-            'xps' => 'application/postscript',
-            'xpsb' => 'application/vnd.3gpp.pic-bw-small',
-            'xpsd' => 'image/vnd.adobe.photoshop',
-            'xptid' => 'application/vnd.pvi.ptid1',
-
-            'xpub' => 'application/x-mspublisher',
-            'xpvb' => 'application/vnd.3gpp.pic-bw-var',
-            'xpwn' => 'application/vnd.3m.post-it-notes',
-            'xqam' => 'application/vnd.epson.quickanime',
-            'xqbo' => 'application/vnd.intu.qbo',
-            'xqfx' => 'application/vnd.intu.qfx',
-            'xqps' => 'application/vnd.publishare-delta-tree',
-            'xqt' => 'video/quicktime',
-            'xra' => 'audio/x-pn-realaudio',
-
-            'xram' => 'audio/x-pn-realaudio',
-            'xrar' => 'application/x-rar-compressed',
-            'xras' => 'image/x-cmu-raster',
-            'xrcprofile' => 'application/vnd.ipunplugged.rcprofile',
-            'xrdf' => 'application/rdf+xml',
-            'xrdz' => 'application/vnd.data-vision.rdz',
-            'xrep' => 'application/vnd.businessobjects',
-            'xrgb' => 'image/x-rgb',
-            'xrif' => 'application/reginfo+xml',
-
-            'xrl' => 'application/resource-lists+xml',
-            'xrlc' => 'image/vnd.fujixerox.edmics-rlc',
-            'xrm' => 'application/vnd.rn-realmedia',
-            'xrmi' => 'audio/midi',
-            'xrmp' => 'audio/x-pn-realaudio-plugin',
-            'xrms' => 'application/vnd.jcp.javame.midlet-rms',
-            'xrnc' => 'application/relax-ng-compact-syntax',
-            'xrpss' => 'application/vnd.nokia.radio-presets',
-            'xrpst' => 'application/vnd.nokia.radio-preset',
-
-            'xrq' => 'application/sparql-query',
-            'xrs' => 'application/rls-services+xml',
-            'xrsd' => 'application/rsd+xml',
-            'xrss' => 'application/rss+xml',
-            'xrtf' => 'application/rtf',
-            'xrtx' => 'text/richtext',
-            'xsaf' => 'application/vnd.yamaha.smaf-audio',
-            'xsbml' => 'application/sbml+xml',
-            'xsc' => 'application/vnd.ibm.secure-container',
-
-            'xscd' => 'application/x-msschedule',
-            'xscm' => 'application/vnd.lotus-screencam',
-            'xscq' => 'application/scvp-cv-request',
-            'xscs' => 'application/scvp-cv-response',
-            'xsdp' => 'application/sdp',
-            'xsee' => 'application/vnd.seemail',
-            'xsema' => 'application/vnd.sema',
-            'xsemd' => 'application/vnd.semd',
-            'xsemf' => 'application/vnd.semf',
-
-            'xsetpay' => 'application/set-payment-initiation',
-            'xsetreg' => 'application/set-registration-initiation',
-            'xsfs' => 'application/vnd.spotfire.sfs',
-            'xsgm' => 'text/sgml',
-            'xsgml' => 'text/sgml',
-            'xsh' => 'application/x-sh',
-            'xshar' => 'application/x-shar',
-            'xshf' => 'application/shf+xml',
-            'xsilo' => 'model/mesh',
-
-            'xsit' => 'application/x-stuffit',
-            'xsitx' => 'application/x-stuffitx',
-            'xslt' => 'application/vnd.epson.salt',
-            'xsnd' => 'audio/basic',
-            'xspf' => 'application/vnd.yamaha.smaf-phrase',
-            'xspl' => 'application/x-futuresplash',
-            'xspot' => 'text/vnd.in3d.spot',
-            'xspp' => 'application/scvp-vp-response',
-            'xspq' => 'application/scvp-vp-request',
-
-            'xsrc' => 'application/x-wais-source',
-            'xsrx' => 'application/sparql-results+xml',
-            'xssf' => 'application/vnd.epson.ssf',
-            'xssml' => 'application/ssml+xml',
-            'xstf' => 'application/vnd.wt.stf',
-            'xstk' => 'application/hyperstudio',
-            'xstr' => 'application/vnd.pg.format',
-            'xsus' => 'application/vnd.sus-calendar',
-            'xsusp' => 'application/vnd.sus-calendar',
-
-            'xsv4cpio' => 'application/x-sv4cpio',
-            'xsv4crc' => 'application/x-sv4crc',
-            'xsvd' => 'application/vnd.svd',
-            'xswf' => 'application/x-shockwave-flash',
-            'xtao' => 'application/vnd.tao.intent-module-archive',
-            'xtar' => 'application/x-tar',
-            'xtcap' => 'application/vnd.3gpp2.tcap',
-            'xtcl' => 'application/x-tcl',
-            'xtex' => 'application/x-tex',
-
-            'xtext' => 'text/plain',
-            'xtif' => 'image/tiff',
-            'xtiff' => 'image/tiff',
-            'xtmo' => 'application/vnd.tmobile-livetv',
-            'xtorrent' => 'application/x-bittorrent',
-            'xtpl' => 'application/vnd.groove-tool-template',
-            'xtpt' => 'application/vnd.trid.tpt',
-            'xtra' => 'application/vnd.trueapp',
-            'xtrm' => 'application/x-msterminal',
-
-            'xtsv' => 'text/tab-separated-values',
-            'xtxd' => 'application/vnd.genomatix.tuxedo',
-            'xtxf' => 'application/vnd.mobius.txf',
-            'xtxt' => 'text/plain',
-            'xumj' => 'application/vnd.umajin',
-            'xunityweb' => 'application/vnd.unity',
-            'xuoml' => 'application/vnd.uoml+xml',
-            'xuri' => 'text/uri-list',
-            'xuris' => 'text/uri-list',
-
-            'xurls' => 'text/uri-list',
-            'xustar' => 'application/x-ustar',
-            'xutz' => 'application/vnd.uiq.theme',
-            'xuu' => 'text/x-uuencode',
-            'xvcd' => 'application/x-cdlink',
-            'xvcf' => 'text/x-vcard',
-            'xvcg' => 'application/vnd.groove-vcard',
-            'xvcs' => 'text/x-vcalendar',
-            'xvcx' => 'application/vnd.vcx',
-
-            'xvis' => 'application/vnd.visionary',
-            'xviv' => 'video/vnd.vivo',
-            'xvrml' => 'model/vrml',
-            'xvsd' => 'application/vnd.visio',
-            'xvsf' => 'application/vnd.vsf',
-            'xvss' => 'application/vnd.visio',
-            'xvst' => 'application/vnd.visio',
-            'xvsw' => 'application/vnd.visio',
-            'xvtu' => 'model/vnd.vtu',
-
-            'xvxml' => 'application/voicexml+xml',
-            'xwav' => 'audio/x-wav',
-            'xwax' => 'audio/x-ms-wax',
-            'xwbmp' => 'image/vnd.wap.wbmp',
-            'xwbs' => 'application/vnd.criticaltools.wbs+xml',
-            'xwbxml' => 'application/vnd.wap.wbxml',
-            'xwcm' => 'application/vnd.ms-works',
-            'xwdb' => 'application/vnd.ms-works',
-            'xwks' => 'application/vnd.ms-works',
-
-            'xwm' => 'video/x-ms-wm',
-            'xwma' => 'audio/x-ms-wma',
-            'xwmd' => 'application/x-ms-wmd',
-            'xwmf' => 'application/x-msmetafile',
-            'xwml' => 'text/vnd.wap.wml',
-            'xwmlc' => 'application/vnd.wap.wmlc',
-            'xwmls' => 'text/vnd.wap.wmlscript',
-            'xwmlsc' => 'application/vnd.wap.wmlscriptc',
-            'xwmv' => 'video/x-ms-wmv',
-
-            'xwmx' => 'video/x-ms-wmx',
-            'xwmz' => 'application/x-ms-wmz',
-            'xwpd' => 'application/vnd.wordperfect',
-            'xwpl' => 'application/vnd.ms-wpl',
-            'xwps' => 'application/vnd.ms-works',
-            'xwqd' => 'application/vnd.wqd',
-            'xwri' => 'application/x-mswrite',
-            'xwrl' => 'model/vrml',
-            'xwsdl' => 'application/wsdl+xml',
-
-            'xwspolicy' => 'application/wspolicy+xml',
-            'xwtb' => 'application/vnd.webturbo',
-            'xwvx' => 'video/x-ms-wvx',
-            'xx3d' => 'application/vnd.hzn-3d-crossword',
-            'xxar' => 'application/vnd.xara',
-            'xxbd' => 'application/vnd.fujixerox.docuworks.binder',
-            'xxbm' => 'image/x-xbitmap',
-            'xxdm' => 'application/vnd.syncml.dm+xml',
-            'xxdp' => 'application/vnd.adobe.xdp+xml',
-
-            'xxdw' => 'application/vnd.fujixerox.docuworks',
-            'xxenc' => 'application/xenc+xml',
-            'xxfdf' => 'application/vnd.adobe.xfdf',
-            'xxfdl' => 'application/vnd.xfdl',
-            'xxht' => 'application/xhtml+xml',
-            'xxhtml' => 'application/xhtml+xml',
-            'xxhvml' => 'application/xv+xml',
-            'xxif' => 'image/vnd.xiff',
-            'xxla' => 'application/vnd.ms-excel',
-
-            'xxlc' => 'application/vnd.ms-excel',
-            'xxlm' => 'application/vnd.ms-excel',
-            'xxls' => 'application/vnd.ms-excel',
-            'xxlt' => 'application/vnd.ms-excel',
-            'xxlw' => 'application/vnd.ms-excel',
-            'xxml' => 'application/xml',
-            'xxo' => 'application/vnd.olpc-sugar',
-            'xxop' => 'application/xop+xml',
-            'xxpm' => 'image/x-xpixmap',
-
-            'xxpr' => 'application/vnd.is-xpr',
-            'xxps' => 'application/vnd.ms-xpsdocument',
-            'xxsl' => 'application/xml',
-            'xxslt' => 'application/xslt+xml',
-            'xxsm' => 'application/vnd.syncml+xml',
-            'xxspf' => 'application/xspf+xml',
-            'xxul' => 'application/vnd.mozilla.xul+xml',
-            'xxvm' => 'application/xv+xml',
-            'xxvml' => 'application/xv+xml',
-
-            'xxwd' => 'image/x-xwindowdump',
-            'xxyz' => 'chemical/x-xyz',
-            'xzaz' => 'application/vnd.zzazz.deck+xml',
-            'xzip' => 'application/zip',
-            'xzmm' => 'application/vnd.handheld-entertainment+xml',
-            'xodt' => 'application/x-vnd.oasis.opendocument.spreadsheet'
-        );
 }
diff --git app/code/core/Mage/Paygate/Model/Authorizenet.php app/code/core/Mage/Paygate/Model/Authorizenet.php
index 7678300..e288f2f 100644
--- app/code/core/Mage/Paygate/Model/Authorizenet.php
+++ app/code/core/Mage/Paygate/Model/Authorizenet.php
@@ -1218,8 +1218,10 @@ class Mage_Paygate_Model_Authorizenet extends Mage_Payment_Model_Method_Cc
         $uri = $this->getConfigData('cgi_url');
         $client->setUri($uri ? $uri : self::CGI_URL);
         $client->setConfig(array(
-            'maxredirects'=>0,
-            'timeout'=>30,
+            'maxredirects' => 0,
+            'timeout' => 30,
+            'verifyhost' => 2,
+            'verifypeer' => true,
             //'ssltransport' => 'tcp',
         ));
         foreach ($request->getData() as $key => $value) {
@@ -1486,8 +1488,13 @@ class Mage_Paygate_Model_Authorizenet extends Mage_Payment_Model_Method_Cc
 
         $client = new Varien_Http_Client();
         $uri = $this->getConfigData('cgi_url_td');
-        $client->setUri($uri ? $uri : self::CGI_URL_TD);
-        $client->setConfig(array('timeout'=>45));
+        $uri = $uri ? $uri : self::CGI_URL_TD;
+        $client->setUri($uri);
+        $client->setConfig(array(
+            'timeout' => 45,
+            'verifyhost' => 2,
+            'verifypeer' => true,
+        ));
         $client->setHeaders(array('Content-Type: text/xml'));
         $client->setMethod(Zend_Http_Client::POST);
         $client->setRawData($requestBody);
diff --git app/code/core/Mage/Payment/Block/Info/Checkmo.php app/code/core/Mage/Payment/Block/Info/Checkmo.php
index 3fd7ea3..470ef05 100644
--- app/code/core/Mage/Payment/Block/Info/Checkmo.php
+++ app/code/core/Mage/Payment/Block/Info/Checkmo.php
@@ -70,7 +70,13 @@ class Mage_Payment_Block_Info_Checkmo extends Mage_Payment_Block_Info
      */
     protected function _convertAdditionalData()
     {
-        $details = @unserialize($this->getInfo()->getAdditionalData());
+        $details = false;
+        try {
+            $details = Mage::helper('core/unserializeArray')
+                ->unserialize($this->getInfo()->getAdditionalData());
+        } catch (Exception $e) {
+            Mage::logException($e);
+        }
         if (is_array($details)) {
             $this->_payableTo = isset($details['payable_to']) ? (string) $details['payable_to'] : '';
             $this->_mailingAddress = isset($details['mailing_address']) ? (string) $details['mailing_address'] : '';
@@ -80,7 +86,7 @@ class Mage_Payment_Block_Info_Checkmo extends Mage_Payment_Block_Info
         }
         return $this;
     }
-    
+
     public function toPdf()
     {
         $this->setTemplate('payment/info/pdf/checkmo.phtml');
diff --git app/code/core/Mage/Paypal/Model/Resource/Payment/Transaction.php app/code/core/Mage/Paypal/Model/Resource/Payment/Transaction.php
index cddaf8b..3eebe5d 100644
--- app/code/core/Mage/Paypal/Model/Resource/Payment/Transaction.php
+++ app/code/core/Mage/Paypal/Model/Resource/Payment/Transaction.php
@@ -52,6 +52,30 @@ class Mage_Paypal_Model_Resource_Payment_Transaction extends Mage_Core_Model_Res
     }
 
     /**
+     * Unserialize Varien_Object field in an object
+     *
+     * @param Mage_Core_Model_Abstract $object
+     * @param string $field
+     * @param mixed $defaultValue
+     */
+    protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
+    {
+        $value = $object->getData($field);
+        if (empty($value)) {
+            $object->setData($field, $defaultValue);
+        } elseif (!is_array($value) && !is_object($value)) {
+            $unserializedValue = false;
+            try {
+                $unserializedValue = Mage::helper('core/unserializeArray')
+                    ->unserialize($value);
+            } catch (Exception $e) {
+                Mage::logException($e);
+            }
+            $object->setData($field, $unserializedValue);
+        }
+    }
+
+    /**
      * Load the transaction object by specified txn_id
      *
      * @param Mage_Paypal_Model_Payment_Transaction $transaction
diff --git app/code/core/Mage/ProductAlert/Block/Email/Abstract.php app/code/core/Mage/ProductAlert/Block/Email/Abstract.php
index b6ff4b9..99b4fbf 100644
--- app/code/core/Mage/ProductAlert/Block/Email/Abstract.php
+++ app/code/core/Mage/ProductAlert/Block/Email/Abstract.php
@@ -135,4 +135,19 @@ abstract class Mage_ProductAlert_Block_Email_Abstract extends Mage_Core_Block_Te
             '_store_to_url' => true
         );
     }
+
+    /**
+     * Get filtered product short description to be inserted into mail
+     *
+     * @param Mage_Catalog_Model_Product $product
+     * @return string|null
+     */
+    public function _getFilteredProductShortDescription(Mage_Catalog_Model_Product $product)
+    {
+        $shortDescription = $product->getShortDescription();
+        if ($shortDescription) {
+            $shortDescription = Mage::getSingleton('core/input_filter_maliciousCode')->filter($shortDescription);
+        }
+        return $shortDescription;
+    }
 }
diff --git app/code/core/Mage/Review/controllers/ProductController.php app/code/core/Mage/Review/controllers/ProductController.php
index 82361cb..58e8ce6 100644
--- app/code/core/Mage/Review/controllers/ProductController.php
+++ app/code/core/Mage/Review/controllers/ProductController.php
@@ -149,6 +149,12 @@ class Mage_Review_ProductController extends Mage_Core_Controller_Front_Action
      */
     public function postAction()
     {
+        if (!$this->_validateFormKey()) {
+            // returns to the product item page
+            $this->_redirectReferer();
+            return;
+        }
+
         if ($data = Mage::getSingleton('review/session')->getFormData(true)) {
             $rating = array();
             if (isset($data['ratings']) && is_array($data['ratings'])) {
diff --git app/code/core/Mage/Sales/Model/Resource/Order/Payment.php app/code/core/Mage/Sales/Model/Resource/Order/Payment.php
index d2ae6eb..865888c 100755
--- app/code/core/Mage/Sales/Model/Resource/Order/Payment.php
+++ app/code/core/Mage/Sales/Model/Resource/Order/Payment.php
@@ -58,4 +58,28 @@ class Mage_Sales_Model_Resource_Order_Payment extends Mage_Sales_Model_Resource_
     {
         $this->_init('sales/order_payment', 'entity_id');
     }
+
+    /**
+     * Unserialize Varien_Object field in an object
+     *
+     * @param Mage_Core_Model_Abstract $object
+     * @param string $field
+     * @param mixed $defaultValue
+     */
+    protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
+    {
+        $value = $object->getData($field);
+        if (empty($value)) {
+            $object->setData($field, $defaultValue);
+        } elseif (!is_array($value) && !is_object($value)) {
+            $unserializedValue = false;
+            try {
+                $unserializedValue = Mage::helper('core/unserializeArray')
+                ->unserialize($value);
+            } catch (Exception $e) {
+                Mage::logException($e);
+            }
+            $object->setData($field, $unserializedValue);
+        }
+    }
 }
diff --git app/code/core/Mage/Sales/Model/Resource/Order/Payment/Transaction.php app/code/core/Mage/Sales/Model/Resource/Order/Payment/Transaction.php
index 928f7cc..40270aa 100755
--- app/code/core/Mage/Sales/Model/Resource/Order/Payment/Transaction.php
+++ app/code/core/Mage/Sales/Model/Resource/Order/Payment/Transaction.php
@@ -53,6 +53,30 @@ class Mage_Sales_Model_Resource_Order_Payment_Transaction extends Mage_Sales_Mod
     }
 
     /**
+     * Unserialize Varien_Object field in an object
+     *
+     * @param Mage_Core_Model_Abstract $object
+     * @param string $field
+     * @param mixed $defaultValue
+     */
+    protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
+    {
+        $value = $object->getData($field);
+        if (empty($value)) {
+            $object->setData($field, $defaultValue);
+        } elseif (!is_array($value) && !is_object($value)) {
+            $unserializedValue = false;
+            try {
+                $unserializedValue = Mage::helper('core/unserializeArray')
+                ->unserialize($value);
+            } catch (Exception $e) {
+                Mage::logException($e);
+            }
+            $object->setData($field, $unserializedValue);
+        }
+    }
+
+    /**
      * Update transactions in database using provided transaction as parent for them
      * have to repeat the business logic to avoid accidental injection of wrong transactions
      *
diff --git app/code/core/Mage/Sales/Model/Resource/Quote/Payment.php app/code/core/Mage/Sales/Model/Resource/Quote/Payment.php
index c36456b..1808744 100755
--- app/code/core/Mage/Sales/Model/Resource/Quote/Payment.php
+++ app/code/core/Mage/Sales/Model/Resource/Quote/Payment.php
@@ -51,4 +51,28 @@ class Mage_Sales_Model_Resource_Quote_Payment extends Mage_Sales_Model_Resource_
     {
         $this->_init('sales/quote_payment', 'payment_id');
     }
+
+    /**
+     * Unserialize Varien_Object field in an object
+     *
+     * @param Mage_Core_Model_Abstract $object
+     * @param string $field
+     * @param mixed $defaultValue
+     */
+    protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
+    {
+        $value = $object->getData($field);
+        if (empty($value)) {
+            $object->setData($field, $defaultValue);
+        } elseif (!is_array($value) && !is_object($value)) {
+            $unserializedValue = false;
+            try {
+                $unserializedValue = Mage::helper('core/unserializeArray')
+                    ->unserialize($value);
+            } catch (Exception $e) {
+                Mage::logException($e);
+            }
+            $object->setData($field, $unserializedValue);
+        }
+    }
 }
diff --git app/code/core/Mage/Sales/Model/Resource/Recurring/Profile.php app/code/core/Mage/Sales/Model/Resource/Recurring/Profile.php
index 6c020f3..07bc6b3 100755
--- app/code/core/Mage/Sales/Model/Resource/Recurring/Profile.php
+++ app/code/core/Mage/Sales/Model/Resource/Recurring/Profile.php
@@ -54,6 +54,33 @@ class Mage_Sales_Model_Resource_Recurring_Profile extends Mage_Sales_Model_Resou
     }
 
     /**
+     * Unserialize Varien_Object field in an object
+     *
+     * @param Mage_Core_Model_Abstract $object
+     * @param string $field
+     * @param mixed $defaultValue
+     */
+    protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
+    {
+        if ($field != 'additional_info') {
+            return parent::_unserializeField($object, $field, $defaultValue);
+        }
+        $value = $object->getData($field);
+        if (empty($value)) {
+            $object->setData($field, $defaultValue);
+        } elseif (!is_array($value) && !is_object($value)) {
+            $unserializedValue = false;
+            try {
+                $unserializedValue = Mage::helper('core/unserializeArray')
+                ->unserialize($value);
+            } catch (Exception $e) {
+                Mage::logException($e);
+            }
+            $object->setData($field, $unserializedValue);
+        }
+    }
+
+    /**
      * Return recurring profile child Orders Ids
      *
      *
diff --git app/code/core/Mage/Uploader/Block/Abstract.php app/code/core/Mage/Uploader/Block/Abstract.php
new file mode 100644
index 0000000..a11c23a
--- /dev/null
+++ app/code/core/Mage/Uploader/Block/Abstract.php
@@ -0,0 +1,247 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Mage
+ * @package     Mage_Uploader
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+abstract class Mage_Uploader_Block_Abstract extends Mage_Adminhtml_Block_Widget
+{
+    /**
+     * Template used for uploader
+     *
+     * @var string
+     */
+    protected $_template = 'media/uploader.phtml';
+
+    /**
+     * @var Mage_Uploader_Model_Config_Misc
+     */
+    protected $_misc;
+
+    /**
+     * @var Mage_Uploader_Model_Config_Uploader
+     */
+    protected $_uploaderConfig;
+
+    /**
+     * @var Mage_Uploader_Model_Config_Browsebutton
+     */
+    protected $_browseButtonConfig;
+
+    /**
+     * @var Mage_Uploader_Model_Config_Misc
+     */
+    protected $_miscConfig;
+
+    /**
+     * @var array
+     */
+    protected $_idsMapping = array();
+
+    /**
+     * Default browse button ID suffix
+     */
+    const DEFAULT_BROWSE_BUTTON_ID_SUFFIX = 'browse';
+
+    /**
+     * Constructor for uploader block
+     *
+     * @see https://github.com/flowjs/flow.js/tree/v2.9.0#configuration
+     * @description Set unique id for block
+     */
+    public function __construct()
+    {
+        parent::__construct();
+        $this->setId($this->getId() . '_Uploader');
+    }
+
+    /**
+     * Helper for file manipulation
+     *
+     * @return Mage_Uploader_Helper_File
+     */
+    protected function _getHelper()
+    {
+        return Mage::helper('uploader/file');
+    }
+
+    /**
+     * @return string
+     */
+    public function getJsonConfig()
+    {
+        return $this->helper('core')->jsonEncode(array(
+            'uploaderConfig'    => $this->getUploaderConfig()->getData(),
+            'elementIds'        => $this->_getElementIdsMapping(),
+            'browseConfig'      => $this->getButtonConfig()->getData(),
+            'miscConfig'        => $this->getMiscConfig()->getData(),
+        ));
+    }
+
+    /**
+     * Get mapping of ids for front-end use
+     *
+     * @return array
+     */
+    protected function _getElementIdsMapping()
+    {
+        return $this->_idsMapping;
+    }
+
+    /**
+     * Add mapping ids for front-end use
+     *
+     * @param array $additionalButtons
+     * @return $this
+     */
+    protected function _addElementIdsMapping($additionalButtons = array())
+    {
+        $this->_idsMapping = array_merge($this->_idsMapping, $additionalButtons);
+
+        return $this;
+    }
+
+    /**
+     * Prepare layout, create buttons, set front-end elements ids
+     *
+     * @return Mage_Core_Block_Abstract
+     */
+    protected function _prepareLayout()
+    {
+        $this->setChild(
+            'browse_button',
+            $this->getLayout()->createBlock('adminhtml/widget_button')
+                ->addData(array(
+                    // Workaround for IE9
+                    'before_html'   => sprintf(
+                        '<div style="display:inline-block;" id="%s">',
+                        $this->getElementId(self::DEFAULT_BROWSE_BUTTON_ID_SUFFIX)
+                    ),
+                    'after_html'    => '</div>',
+                    'id'            => $this->getElementId(self::DEFAULT_BROWSE_BUTTON_ID_SUFFIX . '_button'),
+                    'label'         => Mage::helper('uploader')->__('Browse Files...'),
+                    'type'          => 'button',
+                ))
+        );
+
+        $this->setChild(
+            'delete_button',
+            $this->getLayout()->createBlock('adminhtml/widget_button')
+                ->addData(array(
+                    'id'      => '{{id}}',
+                    'class'   => 'delete',
+                    'type'    => 'button',
+                    'label'   => Mage::helper('uploader')->__('Remove')
+                ))
+        );
+
+        $this->_addElementIdsMapping(array(
+            'container'         => $this->getHtmlId(),
+            'templateFile'      => $this->getElementId('template'),
+            'browse'            => $this->_prepareElementsIds(array(self::DEFAULT_BROWSE_BUTTON_ID_SUFFIX))
+        ));
+
+        return parent::_prepareLayout();
+    }
+
+    /**
+     * Get browse button html
+     *
+     * @return string
+     */
+    public function getBrowseButtonHtml()
+    {
+        return $this->getChildHtml('browse_button');
+    }
+
+    /**
+     * Get delete button html
+     *
+     * @return string
+     */
+    public function getDeleteButtonHtml()
+    {
+        return $this->getChildHtml('delete_button');
+    }
+
+    /**
+     * Get uploader misc settings
+     *
+     * @return Mage_Uploader_Model_Config_Misc
+     */
+    public function getMiscConfig()
+    {
+        if (is_null($this->_miscConfig)) {
+            $this->_miscConfig = Mage::getModel('uploader/config_misc');
+        }
+        return $this->_miscConfig;
+    }
+
+    /**
+     * Get uploader general settings
+     *
+     * @return Mage_Uploader_Model_Config_Uploader
+     */
+    public function getUploaderConfig()
+    {
+        if (is_null($this->_uploaderConfig)) {
+            $this->_uploaderConfig = Mage::getModel('uploader/config_uploader');
+        }
+        return $this->_uploaderConfig;
+    }
+
+    /**
+     * Get browse button settings
+     *
+     * @return Mage_Uploader_Model_Config_Browsebutton
+     */
+    public function getButtonConfig()
+    {
+        if (is_null($this->_browseButtonConfig)) {
+            $this->_browseButtonConfig = Mage::getModel('uploader/config_browsebutton');
+        }
+        return $this->_browseButtonConfig;
+    }
+
+    /**
+     * Get button unique id
+     *
+     * @param string $suffix
+     * @return string
+     */
+    public function getElementId($suffix)
+    {
+        return $this->getHtmlId() . '-' . $suffix;
+    }
+
+    /**
+     * Prepare actual elements ids from suffixes
+     *
+     * @param array $targets $type => array($idsSuffixes)
+     * @return array $type => array($htmlIds)
+     */
+    protected function _prepareElementsIds($targets)
+    {
+        return array_map(array($this, 'getElementId'), array_unique(array_values($targets)));
+    }
+}
diff --git app/code/core/Mage/Uploader/Block/Multiple.php app/code/core/Mage/Uploader/Block/Multiple.php
new file mode 100644
index 0000000..abf47df
--- /dev/null
+++ app/code/core/Mage/Uploader/Block/Multiple.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Mage
+ * @package     Mage_Uploader
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+class Mage_Uploader_Block_Multiple extends Mage_Uploader_Block_Abstract
+{
+    /**
+     *
+     * Default upload button ID suffix
+     */
+    const DEFAULT_UPLOAD_BUTTON_ID_SUFFIX = 'upload';
+
+
+    /**
+     * Prepare layout, create upload button
+     *
+     * @return Mage_Uploader_Block_Multiple
+     */
+    protected function _prepareLayout()
+    {
+        parent::_prepareLayout();
+
+        $this->setChild(
+            'upload_button',
+            $this->getLayout()->createBlock('adminhtml/widget_button')
+                ->addData(array(
+                    'id'      => $this->getElementId(self::DEFAULT_UPLOAD_BUTTON_ID_SUFFIX),
+                    'label'   => Mage::helper('uploader')->__('Upload Files'),
+                    'type'    => 'button',
+                ))
+        );
+
+        $this->_addElementIdsMapping(array(
+            'upload' => $this->_prepareElementsIds(array(self::DEFAULT_UPLOAD_BUTTON_ID_SUFFIX))
+        ));
+
+        return $this;
+    }
+
+    /**
+     * Get upload button html
+     *
+     * @return string
+     */
+    public function getUploadButtonHtml()
+    {
+        return $this->getChildHtml('upload_button');
+    }
+}
diff --git app/code/core/Mage/Uploader/Block/Single.php app/code/core/Mage/Uploader/Block/Single.php
new file mode 100644
index 0000000..ed298a0
--- /dev/null
+++ app/code/core/Mage/Uploader/Block/Single.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Mage
+ * @package     Mage_Uploader
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+class Mage_Uploader_Block_Single extends Mage_Uploader_Block_Abstract
+{
+    /**
+     * Prepare layout, change button and set front-end element ids mapping
+     *
+     * @return Mage_Core_Block_Abstract
+     */
+    protected function _prepareLayout()
+    {
+        parent::_prepareLayout();
+        $this->getChild('browse_button')->setLabel(Mage::helper('uploader')->__('...'));
+
+        return $this;
+    }
+
+    /**
+     * Constructor for single uploader block
+     */
+    public function __construct()
+    {
+        parent::__construct();
+
+        $this->getUploaderConfig()->setSingleFile(true);
+        $this->getButtonConfig()->setSingleFile(true);
+    }
+}
diff --git app/code/core/Mage/Uploader/Helper/Data.php app/code/core/Mage/Uploader/Helper/Data.php
new file mode 100644
index 0000000..2650976
--- /dev/null
+++ app/code/core/Mage/Uploader/Helper/Data.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Mage
+ * @package     Mage_Uploader
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+class Mage_Uploader_Helper_Data extends Mage_Core_Helper_Abstract
+{
+
+}
diff --git app/code/core/Mage/Uploader/Helper/File.php app/code/core/Mage/Uploader/Helper/File.php
new file mode 100644
index 0000000..b0f17cb
--- /dev/null
+++ app/code/core/Mage/Uploader/Helper/File.php
@@ -0,0 +1,750 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Mage
+ * @package     Mage_Uploader
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+class Mage_Uploader_Helper_File extends Mage_Core_Helper_Abstract
+{
+    /**
+     * List of pre-defined MIME types
+     *
+     * @var array
+     */
+    protected $_mimeTypes =
+        array(
+            'x123' => 'application/vnd.lotus-1-2-3',
+            'x3dml' => 'text/vnd.in3d.3dml',
+            'x3g2' => 'video/3gpp2',
+            'x3gp' => 'video/3gpp',
+            'xace' => 'application/x-ace-compressed',
+            'xacu' => 'application/vnd.acucobol',
+            'xaep' => 'application/vnd.audiograph',
+            'xai' => 'application/postscript',
+            'xaif' => 'audio/x-aiff',
+
+            'xaifc' => 'audio/x-aiff',
+            'xaiff' => 'audio/x-aiff',
+            'xami' => 'application/vnd.amiga.ami',
+            'xapr' => 'application/vnd.lotus-approach',
+            'xasf' => 'video/x-ms-asf',
+            'xaso' => 'application/vnd.accpac.simply.aso',
+            'xasx' => 'video/x-ms-asf',
+            'xatom' => 'application/atom+xml',
+            'xatomcat' => 'application/atomcat+xml',
+
+            'xatomsvc' => 'application/atomsvc+xml',
+            'xatx' => 'application/vnd.antix.game-component',
+            'xau' => 'audio/basic',
+            'xavi' => 'video/x-msvideo',
+            'xbat' => 'application/x-msdownload',
+            'xbcpio' => 'application/x-bcpio',
+            'xbdm' => 'application/vnd.syncml.dm+wbxml',
+            'xbh2' => 'application/vnd.fujitsu.oasysprs',
+            'xbmi' => 'application/vnd.bmi',
+
+            'xbmp' => 'image/bmp',
+            'xbox' => 'application/vnd.previewsystems.box',
+            'xboz' => 'application/x-bzip2',
+            'xbtif' => 'image/prs.btif',
+            'xbz' => 'application/x-bzip',
+            'xbz2' => 'application/x-bzip2',
+            'xcab' => 'application/vnd.ms-cab-compressed',
+            'xccxml' => 'application/ccxml+xml',
+            'xcdbcmsg' => 'application/vnd.contact.cmsg',
+
+            'xcdkey' => 'application/vnd.mediastation.cdkey',
+            'xcdx' => 'chemical/x-cdx',
+            'xcdxml' => 'application/vnd.chemdraw+xml',
+            'xcdy' => 'application/vnd.cinderella',
+            'xcer' => 'application/pkix-cert',
+            'xcgm' => 'image/cgm',
+            'xchat' => 'application/x-chat',
+            'xchm' => 'application/vnd.ms-htmlhelp',
+            'xchrt' => 'application/vnd.kde.kchart',
+
+            'xcif' => 'chemical/x-cif',
+            'xcii' => 'application/vnd.anser-web-certificate-issue-initiation',
+            'xcil' => 'application/vnd.ms-artgalry',
+            'xcla' => 'application/vnd.claymore',
+            'xclkk' => 'application/vnd.crick.clicker.keyboard',
+            'xclkp' => 'application/vnd.crick.clicker.palette',
+            'xclkt' => 'application/vnd.crick.clicker.template',
+            'xclkw' => 'application/vnd.crick.clicker.wordbank',
+            'xclkx' => 'application/vnd.crick.clicker',
+
+            'xclp' => 'application/x-msclip',
+            'xcmc' => 'application/vnd.cosmocaller',
+            'xcmdf' => 'chemical/x-cmdf',
+            'xcml' => 'chemical/x-cml',
+            'xcmp' => 'application/vnd.yellowriver-custom-menu',
+            'xcmx' => 'image/x-cmx',
+            'xcom' => 'application/x-msdownload',
+            'xconf' => 'text/plain',
+            'xcpio' => 'application/x-cpio',
+
+            'xcpt' => 'application/mac-compactpro',
+            'xcrd' => 'application/x-mscardfile',
+            'xcrl' => 'application/pkix-crl',
+            'xcrt' => 'application/x-x509-ca-cert',
+            'xcsh' => 'application/x-csh',
+            'xcsml' => 'chemical/x-csml',
+            'xcss' => 'text/css',
+            'xcsv' => 'text/csv',
+            'xcurl' => 'application/vnd.curl',
+
+            'xcww' => 'application/prs.cww',
+            'xdaf' => 'application/vnd.mobius.daf',
+            'xdavmount' => 'application/davmount+xml',
+            'xdd2' => 'application/vnd.oma.dd2+xml',
+            'xddd' => 'application/vnd.fujixerox.ddd',
+            'xdef' => 'text/plain',
+            'xder' => 'application/x-x509-ca-cert',
+            'xdfac' => 'application/vnd.dreamfactory',
+            'xdis' => 'application/vnd.mobius.dis',
+
+            'xdjv' => 'image/vnd.djvu',
+            'xdjvu' => 'image/vnd.djvu',
+            'xdll' => 'application/x-msdownload',
+            'xdna' => 'application/vnd.dna',
+            'xdoc' => 'application/msword',
+            'xdot' => 'application/msword',
+            'xdp' => 'application/vnd.osgi.dp',
+            'xdpg' => 'application/vnd.dpgraph',
+            'xdsc' => 'text/prs.lines.tag',
+
+            'xdtd' => 'application/xml-dtd',
+            'xdvi' => 'application/x-dvi',
+            'xdwf' => 'model/vnd.dwf',
+            'xdwg' => 'image/vnd.dwg',
+            'xdxf' => 'image/vnd.dxf',
+            'xdxp' => 'application/vnd.spotfire.dxp',
+            'xecelp4800' => 'audio/vnd.nuera.ecelp4800',
+            'xecelp7470' => 'audio/vnd.nuera.ecelp7470',
+            'xecelp9600' => 'audio/vnd.nuera.ecelp9600',
+
+            'xecma' => 'application/ecmascript',
+            'xedm' => 'application/vnd.novadigm.edm',
+            'xedx' => 'application/vnd.novadigm.edx',
+            'xefif' => 'application/vnd.picsel',
+            'xei6' => 'application/vnd.pg.osasli',
+            'xeml' => 'message/rfc822',
+            'xeol' => 'audio/vnd.digital-winds',
+            'xeot' => 'application/vnd.ms-fontobject',
+            'xeps' => 'application/postscript',
+
+            'xesf' => 'application/vnd.epson.esf',
+            'xetx' => 'text/x-setext',
+            'xexe' => 'application/x-msdownload',
+            'xext' => 'application/vnd.novadigm.ext',
+            'xez' => 'application/andrew-inset',
+            'xez2' => 'application/vnd.ezpix-album',
+            'xez3' => 'application/vnd.ezpix-package',
+            'xfbs' => 'image/vnd.fastbidsheet',
+            'xfdf' => 'application/vnd.fdf',
+
+            'xfe_launch' => 'application/vnd.denovo.fcselayout-link',
+            'xfg5' => 'application/vnd.fujitsu.oasysgp',
+            'xfli' => 'video/x-fli',
+            'xflo' => 'application/vnd.micrografx.flo',
+            'xflw' => 'application/vnd.kde.kivio',
+            'xflx' => 'text/vnd.fmi.flexstor',
+            'xfly' => 'text/vnd.fly',
+            'xfnc' => 'application/vnd.frogans.fnc',
+            'xfpx' => 'image/vnd.fpx',
+
+            'xfsc' => 'application/vnd.fsc.weblaunch',
+            'xfst' => 'image/vnd.fst',
+            'xftc' => 'application/vnd.fluxtime.clip',
+            'xfti' => 'application/vnd.anser-web-funds-transfer-initiation',
+            'xfvt' => 'video/vnd.fvt',
+            'xfzs' => 'application/vnd.fuzzysheet',
+            'xg3' => 'image/g3fax',
+            'xgac' => 'application/vnd.groove-account',
+            'xgdl' => 'model/vnd.gdl',
+
+            'xghf' => 'application/vnd.groove-help',
+            'xgif' => 'image/gif',
+            'xgim' => 'application/vnd.groove-identity-message',
+            'xgph' => 'application/vnd.flographit',
+            'xgram' => 'application/srgs',
+            'xgrv' => 'application/vnd.groove-injector',
+            'xgrxml' => 'application/srgs+xml',
+            'xgtar' => 'application/x-gtar',
+            'xgtm' => 'application/vnd.groove-tool-message',
+
+            'xsvg' => 'image/svg+xml',
+
+            'xgtw' => 'model/vnd.gtw',
+            'xh261' => 'video/h261',
+            'xh263' => 'video/h263',
+            'xh264' => 'video/h264',
+            'xhbci' => 'application/vnd.hbci',
+            'xhdf' => 'application/x-hdf',
+            'xhlp' => 'application/winhlp',
+            'xhpgl' => 'application/vnd.hp-hpgl',
+            'xhpid' => 'application/vnd.hp-hpid',
+
+            'xhps' => 'application/vnd.hp-hps',
+            'xhqx' => 'application/mac-binhex40',
+            'xhtke' => 'application/vnd.kenameaapp',
+            'xhtm' => 'text/html',
+            'xhtml' => 'text/html',
+            'xhvd' => 'application/vnd.yamaha.hv-dic',
+            'xhvp' => 'application/vnd.yamaha.hv-voice',
+            'xhvs' => 'application/vnd.yamaha.hv-script',
+            'xice' => '#x-conference/x-cooltalk',
+
+            'xico' => 'image/x-icon',
+            'xics' => 'text/calendar',
+            'xief' => 'image/ief',
+            'xifb' => 'text/calendar',
+            'xifm' => 'application/vnd.shana.informed.formdata',
+            'xigl' => 'application/vnd.igloader',
+            'xigx' => 'application/vnd.micrografx.igx',
+            'xiif' => 'application/vnd.shana.informed.interchange',
+            'ximp' => 'application/vnd.accpac.simply.imp',
+
+            'xims' => 'application/vnd.ms-ims',
+            'xin' => 'text/plain',
+            'xipk' => 'application/vnd.shana.informed.package',
+            'xirm' => 'application/vnd.ibm.rights-management',
+            'xirp' => 'application/vnd.irepository.package+xml',
+            'xitp' => 'application/vnd.shana.informed.formtemplate',
+            'xivp' => 'application/vnd.immervision-ivp',
+            'xivu' => 'application/vnd.immervision-ivu',
+            'xjad' => 'text/vnd.sun.j2me.app-descriptor',
+
+            'xjam' => 'application/vnd.jam',
+            'xjava' => 'text/x-java-source',
+            'xjisp' => 'application/vnd.jisp',
+            'xjlt' => 'application/vnd.hp-jlyt',
+            'xjoda' => 'application/vnd.joost.joda-archive',
+            'xjpe' => 'image/jpeg',
+            'xjpeg' => 'image/jpeg',
+            'xjpg' => 'image/jpeg',
+            'xjpgm' => 'video/jpm',
+
+            'xjpgv' => 'video/jpeg',
+            'xjpm' => 'video/jpm',
+            'xjs' => 'application/javascript',
+            'xjson' => 'application/json',
+            'xkar' => 'audio/midi',
+            'xkarbon' => 'application/vnd.kde.karbon',
+            'xkfo' => 'application/vnd.kde.kformula',
+            'xkia' => 'application/vnd.kidspiration',
+            'xkml' => 'application/vnd.google-earth.kml+xml',
+
+            'xkmz' => 'application/vnd.google-earth.kmz',
+            'xkon' => 'application/vnd.kde.kontour',
+            'xksp' => 'application/vnd.kde.kspread',
+            'xlatex' => 'application/x-latex',
+            'xlbd' => 'application/vnd.llamagraphics.life-balance.desktop',
+            'xlbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml',
+            'xles' => 'application/vnd.hhe.lesson-player',
+            'xlist' => 'text/plain',
+            'xlog' => 'text/plain',
+
+            'xlrm' => 'application/vnd.ms-lrm',
+            'xltf' => 'application/vnd.frogans.ltf',
+            'xlvp' => 'audio/vnd.lucent.voice',
+            'xlwp' => 'application/vnd.lotus-wordpro',
+            'xm13' => 'application/x-msmediaview',
+            'xm14' => 'application/x-msmediaview',
+            'xm1v' => 'video/mpeg',
+            'xm2a' => 'audio/mpeg',
+            'xm3a' => 'audio/mpeg',
+
+            'xm3u' => 'audio/x-mpegurl',
+            'xm4u' => 'video/vnd.mpegurl',
+            'xmag' => 'application/vnd.ecowin.chart',
+            'xmathml' => 'application/mathml+xml',
+            'xmbk' => 'application/vnd.mobius.mbk',
+            'xmbox' => 'application/mbox',
+            'xmc1' => 'application/vnd.medcalcdata',
+            'xmcd' => 'application/vnd.mcd',
+            'xmdb' => 'application/x-msaccess',
+
+            'xmdi' => 'image/vnd.ms-modi',
+            'xmesh' => 'model/mesh',
+            'xmfm' => 'application/vnd.mfmp',
+            'xmgz' => 'application/vnd.proteus.magazine',
+            'xmid' => 'audio/midi',
+            'xmidi' => 'audio/midi',
+            'xmif' => 'application/vnd.mif',
+            'xmime' => 'message/rfc822',
+            'xmj2' => 'video/mj2',
+
+            'xmjp2' => 'video/mj2',
+            'xmlp' => 'application/vnd.dolby.mlp',
+            'xmmd' => 'application/vnd.chipnuts.karaoke-mmd',
+            'xmmf' => 'application/vnd.smaf',
+            'xmmr' => 'image/vnd.fujixerox.edmics-mmr',
+            'xmny' => 'application/x-msmoney',
+            'xmov' => 'video/quicktime',
+            'xmovie' => 'video/x-sgi-movie',
+            'xmp2' => 'audio/mpeg',
+
+            'xmp2a' => 'audio/mpeg',
+            'xmp3' => 'audio/mpeg',
+            'xmp4' => 'video/mp4',
+            'xmp4a' => 'audio/mp4',
+            'xmp4s' => 'application/mp4',
+            'xmp4v' => 'video/mp4',
+            'xmpc' => 'application/vnd.mophun.certificate',
+            'xmpe' => 'video/mpeg',
+            'xmpeg' => 'video/mpeg',
+
+            'xmpg' => 'video/mpeg',
+            'xmpg4' => 'video/mp4',
+            'xmpga' => 'audio/mpeg',
+            'xmpkg' => 'application/vnd.apple.installer+xml',
+            'xmpm' => 'application/vnd.blueice.multipass',
+            'xmpn' => 'application/vnd.mophun.application',
+            'xmpp' => 'application/vnd.ms-project',
+            'xmpt' => 'application/vnd.ms-project',
+            'xmpy' => 'application/vnd.ibm.minipay',
+
+            'xmqy' => 'application/vnd.mobius.mqy',
+            'xmrc' => 'application/marc',
+            'xmscml' => 'application/mediaservercontrol+xml',
+            'xmseq' => 'application/vnd.mseq',
+            'xmsf' => 'application/vnd.epson.msf',
+            'xmsh' => 'model/mesh',
+            'xmsi' => 'application/x-msdownload',
+            'xmsl' => 'application/vnd.mobius.msl',
+            'xmsty' => 'application/vnd.muvee.style',
+
+            'xmts' => 'model/vnd.mts',
+            'xmus' => 'application/vnd.musician',
+            'xmvb' => 'application/x-msmediaview',
+            'xmwf' => 'application/vnd.mfer',
+            'xmxf' => 'application/mxf',
+            'xmxl' => 'application/vnd.recordare.musicxml',
+            'xmxml' => 'application/xv+xml',
+            'xmxs' => 'application/vnd.triscape.mxs',
+            'xmxu' => 'video/vnd.mpegurl',
+
+            'xn-gage' => 'application/vnd.nokia.n-gage.symbian.install',
+            'xngdat' => 'application/vnd.nokia.n-gage.data',
+            'xnlu' => 'application/vnd.neurolanguage.nlu',
+            'xnml' => 'application/vnd.enliven',
+            'xnnd' => 'application/vnd.noblenet-directory',
+            'xnns' => 'application/vnd.noblenet-sealer',
+            'xnnw' => 'application/vnd.noblenet-web',
+            'xnpx' => 'image/vnd.net-fpx',
+            'xnsf' => 'application/vnd.lotus-notes',
+
+            'xoa2' => 'application/vnd.fujitsu.oasys2',
+            'xoa3' => 'application/vnd.fujitsu.oasys3',
+            'xoas' => 'application/vnd.fujitsu.oasys',
+            'xobd' => 'application/x-msbinder',
+            'xoda' => 'application/oda',
+            'xodc' => 'application/vnd.oasis.opendocument.chart',
+            'xodf' => 'application/vnd.oasis.opendocument.formula',
+            'xodg' => 'application/vnd.oasis.opendocument.graphics',
+            'xodi' => 'application/vnd.oasis.opendocument.image',
+
+            'xodp' => 'application/vnd.oasis.opendocument.presentation',
+            'xods' => 'application/vnd.oasis.opendocument.spreadsheet',
+            'xodt' => 'application/vnd.oasis.opendocument.text',
+            'xogg' => 'application/ogg',
+            'xoprc' => 'application/vnd.palm',
+            'xorg' => 'application/vnd.lotus-organizer',
+            'xotc' => 'application/vnd.oasis.opendocument.chart-template',
+            'xotf' => 'application/vnd.oasis.opendocument.formula-template',
+            'xotg' => 'application/vnd.oasis.opendocument.graphics-template',
+
+            'xoth' => 'application/vnd.oasis.opendocument.text-web',
+            'xoti' => 'application/vnd.oasis.opendocument.image-template',
+            'xotm' => 'application/vnd.oasis.opendocument.text-master',
+            'xots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
+            'xott' => 'application/vnd.oasis.opendocument.text-template',
+            'xoxt' => 'application/vnd.openofficeorg.extension',
+            'xp10' => 'application/pkcs10',
+            'xp7r' => 'application/x-pkcs7-certreqresp',
+            'xp7s' => 'application/pkcs7-signature',
+
+            'xpbd' => 'application/vnd.powerbuilder6',
+            'xpbm' => 'image/x-portable-bitmap',
+            'xpcl' => 'application/vnd.hp-pcl',
+            'xpclxl' => 'application/vnd.hp-pclxl',
+            'xpct' => 'image/x-pict',
+            'xpcx' => 'image/x-pcx',
+            'xpdb' => 'chemical/x-pdb',
+            'xpdf' => 'application/pdf',
+            'xpfr' => 'application/font-tdpfr',
+
+            'xpgm' => 'image/x-portable-graymap',
+            'xpgn' => 'application/x-chess-pgn',
+            'xpgp' => 'application/pgp-encrypted',
+            'xpic' => 'image/x-pict',
+            'xpki' => 'application/pkixcmp',
+            'xpkipath' => 'application/pkix-pkipath',
+            'xplb' => 'application/vnd.3gpp.pic-bw-large',
+            'xplc' => 'application/vnd.mobius.plc',
+            'xplf' => 'application/vnd.pocketlearn',
+
+            'xpls' => 'application/pls+xml',
+            'xpml' => 'application/vnd.ctc-posml',
+            'xpng' => 'image/png',
+            'xpnm' => 'image/x-portable-anymap',
+            'xportpkg' => 'application/vnd.macports.portpkg',
+            'xpot' => 'application/vnd.ms-powerpoint',
+            'xppd' => 'application/vnd.cups-ppd',
+            'xppm' => 'image/x-portable-pixmap',
+            'xpps' => 'application/vnd.ms-powerpoint',
+
+            'xppt' => 'application/vnd.ms-powerpoint',
+            'xpqa' => 'application/vnd.palm',
+            'xprc' => 'application/vnd.palm',
+            'xpre' => 'application/vnd.lotus-freelance',
+            'xprf' => 'application/pics-rules',
+            'xps' => 'application/postscript',
+            'xpsb' => 'application/vnd.3gpp.pic-bw-small',
+            'xpsd' => 'image/vnd.adobe.photoshop',
+            'xptid' => 'application/vnd.pvi.ptid1',
+
+            'xpub' => 'application/x-mspublisher',
+            'xpvb' => 'application/vnd.3gpp.pic-bw-var',
+            'xpwn' => 'application/vnd.3m.post-it-notes',
+            'xqam' => 'application/vnd.epson.quickanime',
+            'xqbo' => 'application/vnd.intu.qbo',
+            'xqfx' => 'application/vnd.intu.qfx',
+            'xqps' => 'application/vnd.publishare-delta-tree',
+            'xqt' => 'video/quicktime',
+            'xra' => 'audio/x-pn-realaudio',
+
+            'xram' => 'audio/x-pn-realaudio',
+            'xrar' => 'application/x-rar-compressed',
+            'xras' => 'image/x-cmu-raster',
+            'xrcprofile' => 'application/vnd.ipunplugged.rcprofile',
+            'xrdf' => 'application/rdf+xml',
+            'xrdz' => 'application/vnd.data-vision.rdz',
+            'xrep' => 'application/vnd.businessobjects',
+            'xrgb' => 'image/x-rgb',
+            'xrif' => 'application/reginfo+xml',
+
+            'xrl' => 'application/resource-lists+xml',
+            'xrlc' => 'image/vnd.fujixerox.edmics-rlc',
+            'xrm' => 'application/vnd.rn-realmedia',
+            'xrmi' => 'audio/midi',
+            'xrmp' => 'audio/x-pn-realaudio-plugin',
+            'xrms' => 'application/vnd.jcp.javame.midlet-rms',
+            'xrnc' => 'application/relax-ng-compact-syntax',
+            'xrpss' => 'application/vnd.nokia.radio-presets',
+            'xrpst' => 'application/vnd.nokia.radio-preset',
+
+            'xrq' => 'application/sparql-query',
+            'xrs' => 'application/rls-services+xml',
+            'xrsd' => 'application/rsd+xml',
+            'xrss' => 'application/rss+xml',
+            'xrtf' => 'application/rtf',
+            'xrtx' => 'text/richtext',
+            'xsaf' => 'application/vnd.yamaha.smaf-audio',
+            'xsbml' => 'application/sbml+xml',
+            'xsc' => 'application/vnd.ibm.secure-container',
+
+            'xscd' => 'application/x-msschedule',
+            'xscm' => 'application/vnd.lotus-screencam',
+            'xscq' => 'application/scvp-cv-request',
+            'xscs' => 'application/scvp-cv-response',
+            'xsdp' => 'application/sdp',
+            'xsee' => 'application/vnd.seemail',
+            'xsema' => 'application/vnd.sema',
+            'xsemd' => 'application/vnd.semd',
+            'xsemf' => 'application/vnd.semf',
+
+            'xsetpay' => 'application/set-payment-initiation',
+            'xsetreg' => 'application/set-registration-initiation',
+            'xsfs' => 'application/vnd.spotfire.sfs',
+            'xsgm' => 'text/sgml',
+            'xsgml' => 'text/sgml',
+            'xsh' => 'application/x-sh',
+            'xshar' => 'application/x-shar',
+            'xshf' => 'application/shf+xml',
+            'xsilo' => 'model/mesh',
+
+            'xsit' => 'application/x-stuffit',
+            'xsitx' => 'application/x-stuffitx',
+            'xslt' => 'application/vnd.epson.salt',
+            'xsnd' => 'audio/basic',
+            'xspf' => 'application/vnd.yamaha.smaf-phrase',
+            'xspl' => 'application/x-futuresplash',
+            'xspot' => 'text/vnd.in3d.spot',
+            'xspp' => 'application/scvp-vp-response',
+            'xspq' => 'application/scvp-vp-request',
+
+            'xsrc' => 'application/x-wais-source',
+            'xsrx' => 'application/sparql-results+xml',
+            'xssf' => 'application/vnd.epson.ssf',
+            'xssml' => 'application/ssml+xml',
+            'xstf' => 'application/vnd.wt.stf',
+            'xstk' => 'application/hyperstudio',
+            'xstr' => 'application/vnd.pg.format',
+            'xsus' => 'application/vnd.sus-calendar',
+            'xsusp' => 'application/vnd.sus-calendar',
+
+            'xsv4cpio' => 'application/x-sv4cpio',
+            'xsv4crc' => 'application/x-sv4crc',
+            'xsvd' => 'application/vnd.svd',
+            'xswf' => 'application/x-shockwave-flash',
+            'xtao' => 'application/vnd.tao.intent-module-archive',
+            'xtar' => 'application/x-tar',
+            'xtcap' => 'application/vnd.3gpp2.tcap',
+            'xtcl' => 'application/x-tcl',
+            'xtex' => 'application/x-tex',
+
+            'xtext' => 'text/plain',
+            'xtif' => 'image/tiff',
+            'xtiff' => 'image/tiff',
+            'xtmo' => 'application/vnd.tmobile-livetv',
+            'xtorrent' => 'application/x-bittorrent',
+            'xtpl' => 'application/vnd.groove-tool-template',
+            'xtpt' => 'application/vnd.trid.tpt',
+            'xtra' => 'application/vnd.trueapp',
+            'xtrm' => 'application/x-msterminal',
+
+            'xtsv' => 'text/tab-separated-values',
+            'xtxd' => 'application/vnd.genomatix.tuxedo',
+            'xtxf' => 'application/vnd.mobius.txf',
+            'xtxt' => 'text/plain',
+            'xumj' => 'application/vnd.umajin',
+            'xunityweb' => 'application/vnd.unity',
+            'xuoml' => 'application/vnd.uoml+xml',
+            'xuri' => 'text/uri-list',
+            'xuris' => 'text/uri-list',
+
+            'xurls' => 'text/uri-list',
+            'xustar' => 'application/x-ustar',
+            'xutz' => 'application/vnd.uiq.theme',
+            'xuu' => 'text/x-uuencode',
+            'xvcd' => 'application/x-cdlink',
+            'xvcf' => 'text/x-vcard',
+            'xvcg' => 'application/vnd.groove-vcard',
+            'xvcs' => 'text/x-vcalendar',
+            'xvcx' => 'application/vnd.vcx',
+
+            'xvis' => 'application/vnd.visionary',
+            'xviv' => 'video/vnd.vivo',
+            'xvrml' => 'model/vrml',
+            'xvsd' => 'application/vnd.visio',
+            'xvsf' => 'application/vnd.vsf',
+            'xvss' => 'application/vnd.visio',
+            'xvst' => 'application/vnd.visio',
+            'xvsw' => 'application/vnd.visio',
+            'xvtu' => 'model/vnd.vtu',
+
+            'xvxml' => 'application/voicexml+xml',
+            'xwav' => 'audio/x-wav',
+            'xwax' => 'audio/x-ms-wax',
+            'xwbmp' => 'image/vnd.wap.wbmp',
+            'xwbs' => 'application/vnd.criticaltools.wbs+xml',
+            'xwbxml' => 'application/vnd.wap.wbxml',
+            'xwcm' => 'application/vnd.ms-works',
+            'xwdb' => 'application/vnd.ms-works',
+            'xwks' => 'application/vnd.ms-works',
+
+            'xwm' => 'video/x-ms-wm',
+            'xwma' => 'audio/x-ms-wma',
+            'xwmd' => 'application/x-ms-wmd',
+            'xwmf' => 'application/x-msmetafile',
+            'xwml' => 'text/vnd.wap.wml',
+            'xwmlc' => 'application/vnd.wap.wmlc',
+            'xwmls' => 'text/vnd.wap.wmlscript',
+            'xwmlsc' => 'application/vnd.wap.wmlscriptc',
+            'xwmv' => 'video/x-ms-wmv',
+
+            'xwmx' => 'video/x-ms-wmx',
+            'xwmz' => 'application/x-ms-wmz',
+            'xwpd' => 'application/vnd.wordperfect',
+            'xwpl' => 'application/vnd.ms-wpl',
+            'xwps' => 'application/vnd.ms-works',
+            'xwqd' => 'application/vnd.wqd',
+            'xwri' => 'application/x-mswrite',
+            'xwrl' => 'model/vrml',
+            'xwsdl' => 'application/wsdl+xml',
+
+            'xwspolicy' => 'application/wspolicy+xml',
+            'xwtb' => 'application/vnd.webturbo',
+            'xwvx' => 'video/x-ms-wvx',
+            'xx3d' => 'application/vnd.hzn-3d-crossword',
+            'xxar' => 'application/vnd.xara',
+            'xxbd' => 'application/vnd.fujixerox.docuworks.binder',
+            'xxbm' => 'image/x-xbitmap',
+            'xxdm' => 'application/vnd.syncml.dm+xml',
+            'xxdp' => 'application/vnd.adobe.xdp+xml',
+
+            'xxdw' => 'application/vnd.fujixerox.docuworks',
+            'xxenc' => 'application/xenc+xml',
+            'xxfdf' => 'application/vnd.adobe.xfdf',
+            'xxfdl' => 'application/vnd.xfdl',
+            'xxht' => 'application/xhtml+xml',
+            'xxhtml' => 'application/xhtml+xml',
+            'xxhvml' => 'application/xv+xml',
+            'xxif' => 'image/vnd.xiff',
+            'xxla' => 'application/vnd.ms-excel',
+
+            'xxlc' => 'application/vnd.ms-excel',
+            'xxlm' => 'application/vnd.ms-excel',
+            'xxls' => 'application/vnd.ms-excel',
+            'xxlt' => 'application/vnd.ms-excel',
+            'xxlw' => 'application/vnd.ms-excel',
+            'xxml' => 'application/xml',
+            'xxo' => 'application/vnd.olpc-sugar',
+            'xxop' => 'application/xop+xml',
+            'xxpm' => 'image/x-xpixmap',
+
+            'xxpr' => 'application/vnd.is-xpr',
+            'xxps' => 'application/vnd.ms-xpsdocument',
+            'xxsl' => 'application/xml',
+            'xxslt' => 'application/xslt+xml',
+            'xxsm' => 'application/vnd.syncml+xml',
+            'xxspf' => 'application/xspf+xml',
+            'xxul' => 'application/vnd.mozilla.xul+xml',
+            'xxvm' => 'application/xv+xml',
+            'xxvml' => 'application/xv+xml',
+
+            'xxwd' => 'image/x-xwindowdump',
+            'xxyz' => 'chemical/x-xyz',
+            'xzaz' => 'application/vnd.zzazz.deck+xml',
+            'xzip' => 'application/zip',
+            'xzmm' => 'application/vnd.handheld-entertainment+xml',
+        );
+
+    /**
+     * Extend list of MIME types if needed from config
+     */
+    public function __construct()
+    {
+        $nodes = Mage::getConfig()->getNode('global/mime/types');
+        if ($nodes) {
+            $nodes = (array)$nodes;
+            foreach ($nodes as $key => $value) {
+                $this->_mimeTypes[$key] = $value;
+            }
+        }
+    }
+
+    /**
+     * Get MIME type by file extension from list of pre-defined MIME types
+     *
+     * @param $ext
+     * @return string
+     */
+    public function getMimeTypeByExtension($ext)
+    {
+        $type = 'x' . $ext;
+        if (isset($this->_mimeTypes[$type])) {
+            return $this->_mimeTypes[$type];
+        }
+        return 'application/octet-stream';
+    }
+
+    /**
+     * Get all MIME Types
+     *
+     * @return array
+     */
+    public function getMimeTypes()
+    {
+        return $this->_mimeTypes;
+    }
+
+    /**
+     * Get array of MIME types associated with given file extension
+     *
+     * @param array|string $extensionsList
+     * @return array
+     */
+    public function getMimeTypeFromExtensionList($extensionsList)
+    {
+        if (is_string($extensionsList)) {
+            $extensionsList = array_map('trim', explode(',', $extensionsList));
+        }
+
+        return array_map(array($this, 'getMimeTypeByExtension'), $extensionsList);
+    }
+
+    /**
+     * Get post_max_size server setting
+     *
+     * @return string
+     */
+    public function getPostMaxSize()
+    {
+        return ini_get('post_max_size');
+    }
+
+    /**
+     * Get upload_max_filesize server setting
+     *
+     * @return string
+     */
+    public function getUploadMaxSize()
+    {
+        return ini_get('upload_max_filesize');
+    }
+
+    /**
+     * Get max upload size
+     *
+     * @return mixed
+     */
+    public function getDataMaxSize()
+    {
+        return min($this->getPostMaxSize(), $this->getUploadMaxSize());
+    }
+
+    /**
+     * Get maximum upload size in bytes
+     *
+     * @return int
+     */
+    public function getDataMaxSizeInBytes()
+    {
+        $iniSize = $this->getDataMaxSize();
+        $size = substr($iniSize, 0, strlen($iniSize)-1);
+        $parsedSize = 0;
+        switch (strtolower(substr($iniSize, strlen($iniSize)-1))) {
+            case 't':
+                $parsedSize = $size*(1024*1024*1024*1024);
+                break;
+            case 'g':
+                $parsedSize = $size*(1024*1024*1024);
+                break;
+            case 'm':
+                $parsedSize = $size*(1024*1024);
+                break;
+            case 'k':
+                $parsedSize = $size*1024;
+                break;
+            case 'b':
+            default:
+                $parsedSize = $size;
+                break;
+        }
+        return (int)$parsedSize;
+    }
+
+}
diff --git app/code/core/Mage/Uploader/Model/Config/Abstract.php app/code/core/Mage/Uploader/Model/Config/Abstract.php
new file mode 100644
index 0000000..b11f11e
--- /dev/null
+++ app/code/core/Mage/Uploader/Model/Config/Abstract.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Mage
+ * @package     Mage_Uploader
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+abstract class Mage_Uploader_Model_Config_Abstract extends Varien_Object
+{
+    /**
+     * Get file helper
+     *
+     * @return Mage_Uploader_Helper_File
+     */
+    protected function _getHelper()
+    {
+        return Mage::helper('uploader/file');
+    }
+
+    /**
+     * Set/Get attribute wrapper
+     * Also set data in cameCase for config values
+     *
+     * @param string $method
+     * @param array $args
+     * @return bool|mixed|Varien_Object
+     * @throws Varien_Exception
+     */
+    public function __call($method, $args)
+    {
+        $key = lcfirst($this->_camelize(substr($method,3)));
+        switch (substr($method, 0, 3)) {
+            case 'get' :
+                $data = $this->getData($key, isset($args[0]) ? $args[0] : null);
+                return $data;
+
+            case 'set' :
+                $result = $this->setData($key, isset($args[0]) ? $args[0] : null);
+                return $result;
+
+            case 'uns' :
+                $result = $this->unsetData($key);
+                return $result;
+
+            case 'has' :
+                return isset($this->_data[$key]);
+        }
+        throw new Varien_Exception("Invalid method ".get_class($this)."::".$method."(".print_r($args,1).")");
+    }
+}
diff --git app/code/core/Mage/Uploader/Model/Config/Browsebutton.php app/code/core/Mage/Uploader/Model/Config/Browsebutton.php
new file mode 100644
index 0000000..442f254
--- /dev/null
+++ app/code/core/Mage/Uploader/Model/Config/Browsebutton.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category  Mage
+ * @package   Mage_Uploader
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+
+ * @method Mage_Uploader_Model_Config_Browsebutton setDomNodes(array $domNodesIds)
+ *      Array of element browse buttons ids
+ * @method Mage_Uploader_Model_Config_Browsebutton setIsDirectory(bool $isDirectory)
+ *      Pass in true to allow directories to be selected (Google Chrome only)
+ * @method Mage_Uploader_Model_Config_Browsebutton setSingleFile(bool $isSingleFile)
+ *      To prevent multiple file uploads set this to true.
+ *      Also look at config parameter singleFile (Mage_Uploader_Model_Config_Uploader setSingleFile())
+ * @method Mage_Uploader_Model_Config_Browsebutton setAttributes(array $attributes)
+ *      Pass object of keys and values to set custom attributes on input fields.
+ *      @see http://www.w3.org/TR/html-markup/input.file.html#input.file-attributes
+ */
+
+class Mage_Uploader_Model_Config_Browsebutton extends Mage_Uploader_Model_Config_Abstract
+{
+    /**
+     * Set params for browse button
+     */
+    protected function _construct()
+    {
+        $this->setIsDirectory(false);
+    }
+
+    /**
+     * Get MIME types from files extensions
+     *
+     * @param string|array $exts
+     * @return string
+     */
+    public function getMimeTypesByExtensions($exts)
+    {
+        $mimes = array_unique($this->_getHelper()->getMimeTypeFromExtensionList($exts));
+
+        // Not include general file type
+        unset($mimes['application/octet-stream']);
+
+        return implode(',', $mimes);
+    }
+}
diff --git app/code/core/Mage/Uploader/Model/Config/Misc.php app/code/core/Mage/Uploader/Model/Config/Misc.php
new file mode 100644
index 0000000..8231844
--- /dev/null
+++ app/code/core/Mage/Uploader/Model/Config/Misc.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category   Mage
+ * @package    Mage_Uploader
+ * @copyright  Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ * 
+ * @method Mage_Uploader_Model_Config_Misc setMaxSizePlural (string $sizePlural) Set plural info about max upload size
+ * @method Mage_Uploader_Model_Config_Misc setMaxSizeInBytes (int $sizeInBytes) Set max upload size in bytes
+ * @method Mage_Uploader_Model_Config_Misc setReplaceBrowseWithRemove (bool $replaceBrowseWithRemove)
+ *      Replace browse button with remove
+ *
+ * Class Mage_Uploader_Model_Config_Misc
+ */
+
+class Mage_Uploader_Model_Config_Misc extends Mage_Uploader_Model_Config_Abstract
+{
+    /**
+     * Prepare misc params
+     */
+    protected function _construct()
+    {
+        $this
+            ->setMaxSizeInBytes($this->_getHelper()->getDataMaxSizeInBytes())
+            ->setMaxSizePlural($this->_getHelper()->getDataMaxSize())
+        ;
+    }
+}
diff --git app/code/core/Mage/Uploader/Model/Config/Uploader.php app/code/core/Mage/Uploader/Model/Config/Uploader.php
new file mode 100644
index 0000000..9e35570
--- /dev/null
+++ app/code/core/Mage/Uploader/Model/Config/Uploader.php
@@ -0,0 +1,122 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category   Mage
+ * @package    Mage_Uploader
+ * @copyright  Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * @method Mage_Uploader_Model_Config_Uploader setTarget(string $url)
+ *      The target URL for the multipart POST request.
+ * @method Mage_Uploader_Model_Config_Uploader setSingleFile(bool $isSingleFile)
+ *      Enable single file upload.
+ *      Once one file is uploaded, second file will overtake existing one, first one will be canceled.
+ * @method Mage_Uploader_Model_Config_Uploader setChunkSize(int $chunkSize) The size in bytes of each uploaded chunk of data.
+ * @method Mage_Uploader_Model_Config_Uploader setForceChunkSize(bool $forceChunkSize)
+ *      Force all chunks to be less or equal than chunkSize.
+ * @method Mage_Uploader_Model_Config_Uploader setSimultaneousUploads(int $amountOfSimultaneousUploads)
+ * @method Mage_Uploader_Model_Config_Uploader setFileParameterName(string $fileUploadParam)
+ * @method Mage_Uploader_Model_Config_Uploader setQuery(array $additionalQuery)
+ * @method Mage_Uploader_Model_Config_Uploader setHeaders(array $headers)
+ *      Extra headers to include in the multipart POST with data.
+ * @method Mage_Uploader_Model_Config_Uploader setWithCredentials(bool $isCORS)
+ *      Standard CORS requests do not send or set any cookies by default.
+ *      In order to include cookies as part of the request, you need to set the withCredentials property to true.
+ * @method Mage_Uploader_Model_Config_Uploader setMethod(string $sendMethod)
+ *       Method to use when POSTing chunks to the server. Defaults to "multipart"
+ * @method Mage_Uploader_Model_Config_Uploader setTestMethod(string $testMethod) Defaults to "GET"
+ * @method Mage_Uploader_Model_Config_Uploader setUploadMethod(string $uploadMethod) Defaults to "POST"
+ * @method Mage_Uploader_Model_Config_Uploader setAllowDuplicateUploads(bool $allowDuplicateUploads)
+ *      Once a file is uploaded, allow reupload of the same file. By default, if a file is already uploaded,
+ *      it will be skipped unless the file is removed from the existing Flow object.
+ * @method Mage_Uploader_Model_Config_Uploader setPrioritizeFirstAndLastChunk(bool $prioritizeFirstAndLastChunk)
+ *      This can be handy if you can determine if a file is valid for your service from only the first or last chunk.
+ * @method Mage_Uploader_Model_Config_Uploader setTestChunks(bool $prioritizeFirstAndLastChunk)
+ *      Make a GET request to the server for each chunks to see if it already exists.
+ * @method Mage_Uploader_Model_Config_Uploader setPreprocess(bool $prioritizeFirstAndLastChunk)
+ *      Optional function to process each chunk before testing & sending.
+ * @method Mage_Uploader_Model_Config_Uploader setInitFileFn(string $function)
+ *      Optional function to initialize the fileObject (js).
+ * @method Mage_Uploader_Model_Config_Uploader setReadFileFn(string $function)
+ *      Optional function wrapping reading operation from the original file.
+ * @method Mage_Uploader_Model_Config_Uploader setGenerateUniqueIdentifier(string $function)
+ *      Override the function that generates unique identifiers for each file. Defaults to "null"
+ * @method Mage_Uploader_Model_Config_Uploader setMaxChunkRetries(int $maxChunkRetries) Defaults to 0
+ * @method Mage_Uploader_Model_Config_Uploader setChunkRetryInterval(int $chunkRetryInterval) Defaults to "undefined"
+ * @method Mage_Uploader_Model_Config_Uploader setProgressCallbacksInterval(int $progressCallbacksInterval)
+ * @method Mage_Uploader_Model_Config_Uploader setSpeedSmoothingFactor(int $speedSmoothingFactor)
+ *      Used for calculating average upload speed. Number from 1 to 0.
+ *      Set to 1 and average upload speed wil be equal to current upload speed.
+ *      For longer file uploads it is better set this number to 0.02,
+ *      because time remaining estimation will be more accurate.
+ * @method Mage_Uploader_Model_Config_Uploader setSuccessStatuses(array $successStatuses)
+ *      Response is success if response status is in this list
+ * @method Mage_Uploader_Model_Config_Uploader setPermanentErrors(array $permanentErrors)
+ *      Response fails if response status is in this list
+ *
+ * Class Mage_Uploader_Model_Config_Uploader
+ */
+
+class Mage_Uploader_Model_Config_Uploader extends Mage_Uploader_Model_Config_Abstract
+{
+    /**
+     * Type of upload
+     */
+    const UPLOAD_TYPE = 'multipart';
+
+    /**
+     * Test chunks on resumable uploads
+     */
+    const TEST_CHUNKS = false;
+
+    /**
+     * Used for calculating average upload speed.
+     */
+    const SMOOTH_UPLOAD_FACTOR = 0.02;
+
+    /**
+     * Progress check interval
+     */
+    const PROGRESS_CALLBACK_INTERVAL = 0;
+
+    /**
+     * Set default values for uploader
+     */
+    protected function _construct()
+    {
+        $this
+            ->setChunkSize($this->_getHelper()->getDataMaxSizeInBytes())
+            ->setWithCredentials(false)
+            ->setForceChunkSize(false)
+            ->setQuery(array(
+                'form_key' => Mage::getSingleton('core/session')->getFormKey()
+            ))
+            ->setMethod(self::UPLOAD_TYPE)
+            ->setAllowDuplicateUploads(true)
+            ->setPrioritizeFirstAndLastChunk(false)
+            ->setTestChunks(self::TEST_CHUNKS)
+            ->setSpeedSmoothingFactor(self::SMOOTH_UPLOAD_FACTOR)
+            ->setProgressCallbacksInterval(self::PROGRESS_CALLBACK_INTERVAL)
+            ->setSuccessStatuses(array(200, 201, 202))
+            ->setPermanentErrors(array(404, 415, 500, 501));
+    }
+}
diff --git app/code/core/Mage/Uploader/etc/config.xml app/code/core/Mage/Uploader/etc/config.xml
new file mode 100644
index 0000000..d3fcd40
--- /dev/null
+++ app/code/core/Mage/Uploader/etc/config.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Mage
+ * @package     Mage_Uploader
+ * @copyright   Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+-->
+<config>
+    <modules>
+        <Mage_Uploader>
+            <version>0.1.0</version>
+        </Mage_Uploader>
+    </modules>
+    <global>
+        <blocks>
+            <uploader>
+                <class>Mage_Uploader_Block</class>
+            </uploader>
+        </blocks>
+        <helpers>
+            <uploader>
+                <class>Mage_Uploader_Helper</class>
+            </uploader>
+        </helpers>
+        <models>
+            <uploader>
+                <class>Mage_Uploader_Model</class>
+            </uploader>
+        </models>
+    </global>
+</config>
diff --git app/code/core/Mage/Uploader/etc/jstranslator.xml app/code/core/Mage/Uploader/etc/jstranslator.xml
new file mode 100644
index 0000000..4d7d405
--- /dev/null
+++ app/code/core/Mage/Uploader/etc/jstranslator.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category   Mage
+ * @package    Mage_Uploader
+ * @copyright  Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+-->
+<jstranslator>
+    <uploader-exceed_max-1 translate="message" module="uploader">
+        <message>Maximum allowed file size for upload is</message>
+    </uploader-exceed_max-1>
+    <uploader-exceed_max-2 translate="message" module="uploader">
+        <message>Please check your server PHP settings.</message>
+    </uploader-exceed_max-2>
+    <uploader-tab-change-event-confirm translate="message" module="uploader">
+        <message>There are files that were selected but not uploaded yet. After switching to another tab your selections will be lost. Do you wish to continue ?</message>
+    </uploader-tab-change-event-confirm>
+    <uploader-complete-event-text translate="message" module="uploader">
+        <message>Complete</message>
+    </uploader-complete-event-text>
+    <uploader-uploading-progress translate="message" module="uploader">
+        <message>Uploading...</message>
+    </uploader-uploading-progress>
+</jstranslator>
diff --git app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php
index c56d97e..1e2b399 100644
--- app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php
+++ app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php
@@ -564,8 +564,8 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl
                 $ch = curl_init();
                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                 curl_setopt($ch, CURLOPT_URL, $url);
-                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
-                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
+                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
+                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
                 curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
                 $responseBody = curl_exec($ch);
                 curl_close($ch);
@@ -1071,8 +1071,8 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl
             $ch = curl_init();
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
             curl_setopt($ch, CURLOPT_URL, $url);
-            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
-            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
+            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
+            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
             curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
             $responseBody = curl_exec($ch);
             $debugData['result'] = $responseBody;
diff --git app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php
index d567b6e..c263b19 100644
--- app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php
+++ app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php
@@ -455,6 +455,7 @@ class Mage_Usa_Model_Shipping_Carrier_Fedex
     /**
      * Get xml quotes
      *
+     * @deprecated
      * @return Mage_Shipping_Model_Rate_Result
      */
     protected function _getXmlQuotes()
@@ -514,8 +515,8 @@ class Mage_Usa_Model_Shipping_Carrier_Fedex
                 $ch = curl_init();
                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                 curl_setopt($ch, CURLOPT_URL, $url);
-                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
-                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
+                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
+                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
                 curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
                 $responseBody = curl_exec($ch);
                 curl_close ($ch);
diff --git app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php
index 3819a2e..97b8c73 100644
--- app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php
+++ app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php
@@ -929,7 +929,7 @@ XMLRequest;
                 curl_setopt($ch, CURLOPT_POST, 1);
                 curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest);
                 curl_setopt($ch, CURLOPT_TIMEOUT, 30);
-                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, (boolean)$this->getConfigFlag('mode_xml'));
+                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
                 $xmlResponse = curl_exec ($ch);
 
                 $debugData['result'] = $xmlResponse;
@@ -1567,7 +1567,7 @@ XMLAuth;
             curl_setopt($ch, CURLOPT_POST, 1);
             curl_setopt($ch, CURLOPT_POSTFIELDS, $this->_xmlAccessRequest . $xmlRequest->asXML());
             curl_setopt($ch, CURLOPT_TIMEOUT, 30);
-            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, (boolean)$this->getConfigFlag('mode_xml'));
+            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
             $xmlResponse = curl_exec ($ch);
 
             $debugData['result'] = $xmlResponse;
@@ -1625,7 +1625,7 @@ XMLAuth;
             curl_setopt($ch, CURLOPT_POST, 1);
             curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest);
             curl_setopt($ch, CURLOPT_TIMEOUT, 30);
-            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, (boolean)$this->getConfigFlag('mode_xml'));
+            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
             $xmlResponse = curl_exec($ch);
             if ($xmlResponse === false) {
                 throw new Exception(curl_error($ch));
diff --git app/code/core/Mage/Usa/etc/config.xml app/code/core/Mage/Usa/etc/config.xml
index aeed112..8e66d89 100644
--- app/code/core/Mage/Usa/etc/config.xml
+++ app/code/core/Mage/Usa/etc/config.xml
@@ -104,6 +104,7 @@
                 <dutypaymenttype>R</dutypaymenttype>
                 <free_method>G</free_method>
                 <gateway_url>https://eCommerce.airborne.com/ApiLandingTest.asp</gateway_url>
+                <verify_peer>0</verify_peer>
                 <id backend_model="adminhtml/system_config_backend_encrypted"/>
                 <model>usa/shipping_carrier_dhl</model>
                 <password backend_model="adminhtml/system_config_backend_encrypted"/>
@@ -168,6 +169,7 @@
                 <negotiated_active>0</negotiated_active>
                 <mode_xml>1</mode_xml>
                 <type>UPS</type>
+                <verify_peer>0</verify_peer>
             </ups>
             <usps>
                 <active>0</active>
diff --git app/code/core/Mage/Usa/etc/system.xml app/code/core/Mage/Usa/etc/system.xml
index eecf439..d4f2bc4 100644
--- app/code/core/Mage/Usa/etc/system.xml
+++ app/code/core/Mage/Usa/etc/system.xml
@@ -129,6 +129,15 @@
                             <show_in_website>1</show_in_website>
                             <show_in_store>0</show_in_store>
                         </gateway_url>
+                        <verify_peer translate="label">
+                            <label>Enable SSL Verification</label>
+                            <frontend_type>select</frontend_type>
+                            <source_model>adminhtml/system_config_source_yesno</source_model>
+                            <sort_order>30</sort_order>
+                            <show_in_default>1</show_in_default>
+                            <show_in_website>1</show_in_website>
+                            <show_in_store>0</show_in_store>
+                        </verify_peer>
                         <handling_type translate="label">
                             <label>Calculate Handling Fee</label>
                             <frontend_type>select</frontend_type>
@@ -691,6 +700,15 @@
                             <show_in_website>1</show_in_website>
                             <show_in_store>0</show_in_store>
                         </gateway_url>
+                        <verify_peer translate="label">
+                            <label>Enable SSL Verification</label>
+                            <frontend_type>select</frontend_type>
+                            <source_model>adminhtml/system_config_source_yesno</source_model>
+                            <sort_order>45</sort_order>
+                            <show_in_default>1</show_in_default>
+                            <show_in_website>1</show_in_website>
+                            <show_in_store>0</show_in_store>
+                        </verify_peer>
                         <gateway_xml_url translate="label">
                             <label>Gateway XML URL</label>
                             <frontend_type>text</frontend_type>
diff --git app/code/core/Mage/Wishlist/Controller/Abstract.php app/code/core/Mage/Wishlist/Controller/Abstract.php
index aa04088..cfd4c9a 100644
--- app/code/core/Mage/Wishlist/Controller/Abstract.php
+++ app/code/core/Mage/Wishlist/Controller/Abstract.php
@@ -71,10 +71,15 @@ abstract class Mage_Wishlist_Controller_Abstract extends Mage_Core_Controller_Fr
      */
     public function allcartAction()
     {
+        if (!$this->_validateFormKey()) {
+            $this->_forward('noRoute');
+            return;
+        }
+
         $wishlist   = $this->_getWishlist();
         if (!$wishlist) {
             $this->_forward('noRoute');
-            return ;
+            return;
         }
         $isOwner    = $wishlist->isOwner(Mage::getSingleton('customer/session')->getCustomerId());
 
@@ -87,7 +92,9 @@ abstract class Mage_Wishlist_Controller_Abstract extends Mage_Core_Controller_Fr
         $collection = $wishlist->getItemCollection()
                 ->setVisibilityFilter();
 
-        $qtys = $this->getRequest()->getParam('qty');
+        $qtysString = $this->getRequest()->getParam('qty');
+        $qtys =  array_filter(json_decode($qtysString), 'strlen');
+
         foreach ($collection as $item) {
             /** @var Mage_Wishlist_Model_Item */
             try {
diff --git app/code/core/Mage/Wishlist/Helper/Data.php app/code/core/Mage/Wishlist/Helper/Data.php
index 3940e0d..f3d4818 100644
--- app/code/core/Mage/Wishlist/Helper/Data.php
+++ app/code/core/Mage/Wishlist/Helper/Data.php
@@ -105,11 +105,9 @@ class Mage_Wishlist_Helper_Data extends Mage_Core_Helper_Abstract
         if (is_null($this->_wishlist)) {
             if (Mage::registry('shared_wishlist')) {
                 $this->_wishlist = Mage::registry('shared_wishlist');
-            }
-            elseif (Mage::registry('wishlist')) {
+            } else if (Mage::registry('wishlist')) {
                 $this->_wishlist = Mage::registry('wishlist');
-            }
-            else {
+            } else {
                 $this->_wishlist = Mage::getModel('wishlist/wishlist');
                 if ($this->_getCustomerSession()->isLoggedIn()) {
                     $this->_wishlist->loadByCustomer($this->_getCustomerSession()->getCustomer());
@@ -223,8 +221,7 @@ class Mage_Wishlist_Helper_Data extends Mage_Core_Helper_Abstract
         if ($product) {
             if ($product->isVisibleInSiteVisibility()) {
                 $storeId = $product->getStoreId();
-            }
-            else if ($product->hasUrlDataObject()) {
+            } else if ($product->hasUrlDataObject()) {
                 $storeId = $product->getUrlDataObject()->getStoreId();
             }
         }
@@ -240,7 +237,10 @@ class Mage_Wishlist_Helper_Data extends Mage_Core_Helper_Abstract
     public function getRemoveUrl($item)
     {
         return $this->_getUrl('wishlist/index/remove',
-            array('item' => $item->getWishlistItemId())
+            array(
+                'item' => $item->getWishlistItemId(),
+                Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey()
+            )
         );
     }
 
@@ -312,40 +312,62 @@ class Mage_Wishlist_Helper_Data extends Mage_Core_Helper_Abstract
             $productId = $item->getProductId();
         }
 
-        if ($productId) {
-            $params['product'] = $productId;
-            return $this->_getUrlStore($item)->getUrl('wishlist/index/add', $params);
+        if (!$productId) {
+            return false;
         }
-
-        return false;
+        $params['product'] = $productId;
+        $params[Mage_Core_Model_Url::FORM_KEY] = $this->_getSingletonModel('core/session')->getFormKey();
+        return $this->_getUrlStore($item)->getUrl('wishlist/index/add', $params);
     }
 
     /**
-     * Retrieve URL for adding item to shoping cart
+     * Retrieve URL for adding item to shopping cart
      *
      * @param string|Mage_Catalog_Model_Product|Mage_Wishlist_Model_Item $item
      * @return  string
      */
     public function getAddToCartUrl($item)
     {
-        $urlParamName = Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED;
-        $continueUrl  = Mage::helper('core')->urlEncode(
-            Mage::getUrl('*/*/*', array(
+        $continueUrl  = $this->_getHelperInstance('core')->urlEncode(
+            $this->_getUrl('*/*/*', array(
                 '_current'      => true,
                 '_use_rewrite'  => true,
                 '_store_to_url' => true,
             ))
         );
-
-        $urlParamName = Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED;
         $params = array(
             'item' => is_string($item) ? $item : $item->getWishlistItemId(),
-            $urlParamName => $continueUrl
+            Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $continueUrl,
+            Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey()
         );
+
         return $this->_getUrlStore($item)->getUrl('wishlist/index/cart', $params);
     }
 
     /**
+     * Return helper instance
+     *
+     * @param string $helperName
+     * @return Mage_Core_Helper_Abstract
+     */
+    protected function _getHelperInstance($helperName)
+    {
+        return Mage::helper($helperName);
+    }
+
+    /**
+     * Return model instance
+     *
+     * @param string $className
+     * @param array $arguments
+     * @return Mage_Core_Model_Abstract
+     */
+    protected function _getSingletonModel($className, $arguments = array())
+    {
+        return Mage::getSingleton($className, $arguments);
+    }
+
+    /**
      * Retrieve URL for adding item to shoping cart from shared wishlist
      *
      * @param string|Mage_Catalog_Model_Product|Mage_Wishlist_Model_Item $item
@@ -359,10 +381,10 @@ class Mage_Wishlist_Helper_Data extends Mage_Core_Helper_Abstract
             '_store_to_url' => true,
         )));
 
-        $urlParamName = Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED;
         $params = array(
             'item' => is_string($item) ? $item : $item->getWishlistItemId(),
-            $urlParamName => $continueUrl
+            Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $continueUrl,
+            Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey()
         );
         return $this->_getUrlStore($item)->getUrl('wishlist/shared/cart', $params);
     }
diff --git app/code/core/Mage/Wishlist/controllers/IndexController.php app/code/core/Mage/Wishlist/controllers/IndexController.php
index db76caa..eb9fd10 100644
--- app/code/core/Mage/Wishlist/controllers/IndexController.php
+++ app/code/core/Mage/Wishlist/controllers/IndexController.php
@@ -48,6 +48,11 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
      */
     protected $_skipAuthentication = false;
 
+    /**
+     * Extend preDispatch
+     *
+     * @return Mage_Core_Controller_Front_Action|void
+     */
     public function preDispatch()
     {
         parent::preDispatch();
@@ -136,14 +141,28 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
      */
     public function addAction()
     {
-        $session = Mage::getSingleton('customer/session');
+        if (!$this->_validateFormKey()) {
+            return $this->_redirect('*/*');
+        }
+        $this->_addItemToWishList();
+    }
+
+    /**
+     * Add the item to wish list
+     *
+     * @return Mage_Core_Controller_Varien_Action|void
+     */
+    protected function _addItemToWishList()
+    {
         $wishlist = $this->_getWishlist();
         if (!$wishlist) {
             $this->_redirect('*/');
             return;
         }
 
-        $productId = (int) $this->getRequest()->getParam('product');
+        $session = Mage::getSingleton('customer/session');
+
+        $productId = (int)$this->getRequest()->getParam('product');
         if (!$productId) {
             $this->_redirect('*/');
             return;
@@ -193,13 +212,13 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
 
             Mage::helper('wishlist')->calculate();
 
-            $message = $this->__('%1$s has been added to your wishlist. Click <a href="%2$s">here</a> to continue shopping', $product->getName(), $referer);
+            $message = $this->__('%1$s has been added to your wishlist. Click <a href="%2$s">here</a> to continue shopping',
+                $product->getName(), Mage::helper('core')->escapeUrl($referer)
+            );
             $session->addSuccess($message);
-        }
-        catch (Mage_Core_Exception $e) {
+        } catch (Mage_Core_Exception $e) {
             $session->addError($this->__('An error occurred while adding item to wishlist: %s', $e->getMessage()));
-        }
-        catch (Exception $e) {
+        } catch (Exception $e) {
             $session->addError($this->__('An error occurred while adding item to wishlist.'));
         }
 
@@ -309,7 +328,7 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
             return $this->_redirect('*/*/');
         }
         $post = $this->getRequest()->getPost();
-        if($post && isset($post['description']) && is_array($post['description'])) {
+        if ($post && isset($post['description']) && is_array($post['description'])) {
             $wishlist = $this->_getWishlist();
             $updatedItems = 0;
 
@@ -366,8 +385,7 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
                 try {
                     $wishlist->save();
                     Mage::helper('wishlist')->calculate();
-                }
-                catch (Exception $e) {
+                } catch (Exception $e) {
                     Mage::getSingleton('customer/session')->addError($this->__('Can\'t update wishlist'));
                 }
             }
@@ -385,6 +403,9 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
      */
     public function removeAction()
     {
+        if (!$this->_validateFormKey()) {
+            return $this->_redirect('*/*');
+        }
         $wishlist = $this->_getWishlist();
         $id = (int) $this->getRequest()->getParam('item');
         $item = Mage::getModel('wishlist/item')->load($id);
@@ -399,7 +420,7 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
                     $this->__('An error occurred while deleting the item from wishlist: %s', $e->getMessage())
                 );
             }
-            catch(Exception $e) {
+            catch (Exception $e) {
                 Mage::getSingleton('customer/session')->addError(
                     $this->__('An error occurred while deleting the item from wishlist.')
                 );
@@ -420,6 +441,9 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
      */
     public function cartAction()
     {
+        if (!$this->_validateFormKey()) {
+            return $this->_redirect('*/*');
+        }
         $wishlist   = $this->_getWishlist();
         if (!$wishlist) {
             return $this->_redirect('*/*');
@@ -544,7 +568,7 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
             /*if share rss added rss feed to email template*/
             if ($this->getRequest()->getParam('rss_url')) {
                 $rss_url = $this->getLayout()->createBlock('wishlist/share_email_rss')->toHtml();
-                $message .=$rss_url;
+                $message .= $rss_url;
             }
             $wishlistBlock = $this->getLayout()->createBlock('wishlist/share_email_items')->toHtml();
 
@@ -552,19 +576,20 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
             /* @var $emailModel Mage_Core_Model_Email_Template */
             $emailModel = Mage::getModel('core/email_template');
 
-            foreach($emails as $email) {
+            $sharingCode = $wishlist->getSharingCode();
+            foreach ($emails as $email) {
                 $emailModel->sendTransactional(
                     Mage::getStoreConfig('wishlist/email/email_template'),
                     Mage::getStoreConfig('wishlist/email/email_identity'),
                     $email,
                     null,
                     array(
-                        'customer'      => $customer,
-                        'salable'       => $wishlist->isSalable() ? 'yes' : '',
-                        'items'         => $wishlistBlock,
-                        'addAllLink'    => Mage::getUrl('*/shared/allcart', array('code' => $wishlist->getSharingCode())),
-                        'viewOnSiteLink'=> Mage::getUrl('*/shared/index', array('code' => $wishlist->getSharingCode())),
-                        'message'       => $message
+                        'customer'       => $customer,
+                        'salable'        => $wishlist->isSalable() ? 'yes' : '',
+                        'items'          => $wishlistBlock,
+                        'addAllLink'     => Mage::getUrl('*/shared/allcart', array('code' => $sharingCode)),
+                        'viewOnSiteLink' => Mage::getUrl('*/shared/index', array('code' => $sharingCode)),
+                        'message'        => $message
                     )
                 );
             }
@@ -574,7 +599,7 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
 
             $translate->setTranslateInline(true);
 
-            Mage::dispatchEvent('wishlist_share', array('wishlist'=>$wishlist));
+            Mage::dispatchEvent('wishlist_share', array('wishlist' => $wishlist));
             Mage::getSingleton('customer/session')->addSuccess(
                 $this->__('Your Wishlist has been shared.')
             );
@@ -613,7 +638,7 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
                     ));
                 }
             }
-        } catch(Exception $e) {
+        } catch (Exception $e) {
             $this->_forward('noRoute');
         }
         exit(0);
diff --git app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Design.php app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Design.php
index 5ef12f4..ab54d20 100644
--- app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Design.php
+++ app/code/core/Mage/XmlConnect/Block/Adminhtml/Mobile/Edit/Tab/Design.php
@@ -95,4 +95,21 @@ class Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design
     {
         return true;
     }
+
+    /**
+     * Create browse button template
+     *
+     * @return string
+     */
+    public function getBrowseButtonHtml()
+    {
+        return $this->getLayout()->createBlock('adminhtml/widget_button')
+            ->addData(array(
+                'before_html'   => '<div style="display:inline-block; " id="{{file_field}}_{{id}}_file-browse">',
+                'after_html'    => '</div>',
+                'id'            => '{{file_field}}_{{id}}_file-browse_button',
+                'label'         => Mage::helper('uploader')->__('...'),
+                'type'          => 'button',
+            ))->toHtml();
+    }
 }
diff --git app/design/adminhtml/default/default/layout/cms.xml app/design/adminhtml/default/default/layout/cms.xml
index f822d9b..13b37e1 100644
--- app/design/adminhtml/default/default/layout/cms.xml
+++ app/design/adminhtml/default/default/layout/cms.xml
@@ -82,7 +82,9 @@
         </reference>
         <reference name="content">
             <block name="wysiwyg_images.content"  type="adminhtml/cms_wysiwyg_images_content" template="cms/browser/content.phtml">
-                <block name="wysiwyg_images.uploader" type="adminhtml/cms_wysiwyg_images_content_uploader" template="cms/browser/content/uploader.phtml" />
+                <block name="wysiwyg_images.uploader" type="adminhtml/cms_wysiwyg_images_content_uploader" template="media/uploader.phtml">
+                    <block name="additional_scripts" type="core/template" template="cms/browser/content/uploader.phtml"/>
+                </block>
                 <block name="wysiwyg_images.newfolder" type="adminhtml/cms_wysiwyg_images_content_newfolder" template="cms/browser/content/newfolder.phtml" />
             </block>
         </reference>
diff --git app/design/adminhtml/default/default/layout/main.xml app/design/adminhtml/default/default/layout/main.xml
index 77af339..2a17e95 100644
--- app/design/adminhtml/default/default/layout/main.xml
+++ app/design/adminhtml/default/default/layout/main.xml
@@ -167,9 +167,10 @@ Layout for editor element
             <action method="setCanLoadExtJs"><flag>1</flag></action>
             <action method="addJs"><script>mage/adminhtml/variables.js</script></action>
             <action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
-            <action method="addJs"><script>lib/flex.js</script></action>
-            <action method="addJs"><script>lib/FABridge.js</script></action>
-            <action method="addJs"><script>mage/adminhtml/flexuploader.js</script></action>
+            <action method="addJs"><name>lib/uploader/flow.min.js</name></action>
+            <action method="addJs"><name>lib/uploader/fusty-flow.js</name></action>
+            <action method="addJs"><name>lib/uploader/fusty-flow-factory.js</name></action>
+            <action method="addJs"><name>mage/adminhtml/uploader/instance.js</name></action>
             <action method="addJs"><script>mage/adminhtml/browser.js</script></action>
             <action method="addJs"><script>prototype/window.js</script></action>
             <action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
diff --git app/design/adminhtml/default/default/layout/xmlconnect.xml app/design/adminhtml/default/default/layout/xmlconnect.xml
index 3bdea0a..fecec8c 100644
--- app/design/adminhtml/default/default/layout/xmlconnect.xml
+++ app/design/adminhtml/default/default/layout/xmlconnect.xml
@@ -74,9 +74,10 @@
             <action method="setCanLoadExtJs"><flag>1</flag></action>
             <action method="addJs"><script>mage/adminhtml/variables.js</script></action>
             <action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
-            <action method="addJs"><script>lib/flex.js</script></action>
-            <action method="addJs"><script>lib/FABridge.js</script></action>
-            <action method="addJs"><script>mage/adminhtml/flexuploader.js</script></action>
+             <action method="addJs"><name>lib/uploader/flow.min.js</name></action>
+             <action method="addJs"><name>lib/uploader/fusty-flow.js</name></action>
+             <action method="addJs"><name>lib/uploader/fusty-flow-factory.js</name></action>
+             <action method="addJs"><name>mage/adminhtml/uploader/instance.js</name></action>
             <action method="addJs"><script>mage/adminhtml/browser.js</script></action>
             <action method="addJs"><script>prototype/window.js</script></action>
             <action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
diff --git app/design/adminhtml/default/default/template/catalog/product/helper/gallery.phtml app/design/adminhtml/default/default/template/catalog/product/helper/gallery.phtml
index a9a6b6f..7e9bedf 100644
--- app/design/adminhtml/default/default/template/catalog/product/helper/gallery.phtml
+++ app/design/adminhtml/default/default/template/catalog/product/helper/gallery.phtml
@@ -108,6 +108,7 @@ $_block = $this;
     <tfoot>
         <tr>
             <td colspan="100" class="last" style="padding:8px">
+                <?php echo Mage::helper('catalog')->__('Maximum width and height dimension for upload image is %s.', Mage::getStoreConfig(Mage_Catalog_Helper_Image::XML_NODE_PRODUCT_MAX_DIMENSION)); ?>
                 <?php echo $_block->getUploaderHtml() ?>
             </td>
         </tr>
@@ -120,6 +121,6 @@ $_block = $this;
 <input type="hidden" id="<?php echo $_block->getHtmlId() ?>_save_image" name="<?php echo $_block->getElement()->getName() ?>[values]" value="<?php echo $_block->htmlEscape($_block->getImagesValuesJson()) ?>" />
 <script type="text/javascript">
 //<![CDATA[
-var <?php echo $_block->getJsObjectName(); ?> = new Product.Gallery('<?php echo $_block->getHtmlId() ?>', <?php if ($_block->getElement()->getReadonly()):?>null<?php else:?><?php echo $_block->getUploader()->getJsObjectName() ?><?php endif;?>, <?php echo $_block->getImageTypesJson() ?>);
+var <?php echo $_block->getJsObjectName(); ?> = new Product.Gallery('<?php echo $_block->getHtmlId() ?>', <?php echo $_block->getImageTypesJson() ?>);
 //]]>
 </script>
diff --git app/design/adminhtml/default/default/template/cms/browser/content/uploader.phtml app/design/adminhtml/default/default/template/cms/browser/content/uploader.phtml
index 3f9cb77..94a08d6 100644
--- app/design/adminhtml/default/default/template/cms/browser/content/uploader.phtml
+++ app/design/adminhtml/default/default/template/cms/browser/content/uploader.phtml
@@ -24,51 +24,8 @@
  * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
  */
 ?>
-<?php
-/**
- * Uploader template for Wysiwyg Images
- *
- * @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Uploader
- */
-?>
-
-<?php echo $this->helper('adminhtml/media_js')->getTranslatorScript() ?>
-
-<div id="<?php echo $this->getHtmlId() ?>" class="uploader">
-    <div class="buttons">
-        <div id="<?php echo $this->getHtmlId() ?>-install-flash" style="display:none">
-            <?php echo Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/') ?>
-        </div>
-    </div>
-    <div class="clear"></div>
-    <div class="no-display" id="<?php echo $this->getHtmlId() ?>-template">
-        <div id="{{id}}" class="file-row">
-        <span class="file-info">{{name}} ({{size}})</span>
-        <span class="delete-button"><?php echo $this->getDeleteButtonHtml() ?></span>
-        <span class="progress-text"></span>
-        <div class="clear"></div>
-        </div>
-    </div>
-    <div class="no-display" id="<?php echo $this->getHtmlId() ?>-template-progress">
-        {{percent}}% {{uploaded}} / {{total}}
-    </div>
-</div>
-
 <script type="text/javascript">
 //<![CDATA[
-maxUploadFileSizeInBytes = <?php echo $this->getDataMaxSizeInBytes() ?>;
-maxUploadFileSize = '<?php echo $this->getDataMaxSize() ?>';
-
-<?php echo $this->getJsObjectName() ?> = new Flex.Uploader('<?php echo $this->getHtmlId() ?>', '<?php echo $this->getSkinUrl('media/uploader.swf') ?>', <?php echo $this->getConfigJson() ?>);
-<?php echo $this->getJsObjectName() ?>.onFilesComplete = function(completedFiles){
-    completedFiles.each(function(file){
-        <?php echo $this->getJsObjectName() ?>.removeFile(file.id);
-    });
-    MediabrowserInstance.handleUploadComplete();
-}
-// hide flash buttons
-if ($('<?php echo $this->getHtmlId() ?>-flash') != undefined) {
-    $('<?php echo $this->getHtmlId() ?>-flash').setStyle({float:'left'});
-}
+    document.on('uploader:success', MediabrowserInstance.handleUploadComplete.bind(MediabrowserInstance));
 //]]>
 </script>
diff --git app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml
index 188b66f..c291a1a 100644
--- app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml
+++ app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml
@@ -34,19 +34,16 @@
 //<![CDATA[>
 
 var uploaderTemplate = '<div class="no-display" id="[[idName]]-template">' +
-                            '<div id="{{id}}" class="file-row file-row-narrow">' +
+                            '<div id="{{id}}-container" class="file-row file-row-narrow">' +
                                 '<span class="file-info">' +
                                     '<span class="file-info-name">{{name}}</span>' +
                                     ' ' +
-                                    '<span class="file-info-size">({{size}})</span>' +
+                                    '<span class="file-info-size">{{size}}</span>' +
                                 '</span>' +
                                 '<span class="progress-text"></span>' +
                                 '<div class="clear"></div>' +
                             '</div>' +
-                        '</div>' +
-                            '<div class="no-display" id="[[idName]]-template-progress">' +
-                            '{{percent}}% {{uploaded}} / {{total}}' +
-                            '</div>';
+                        '</div>';
 
 var fileListTemplate = '<span class="file-info">' +
                             '<span class="file-info-name">{{name}}</span>' +
@@ -88,7 +85,7 @@ var Downloadable = {
     massUploadByType : function(type){
         try {
             this.uploaderObj.get(type).each(function(item){
-                container = item.value.container.up('tr');
+                var container = item.value.elements.container.up('tr');
                 if (container.visible() && !container.hasClassName('no-display')) {
                     item.value.upload();
                 } else {
@@ -141,10 +138,11 @@ Downloadable.FileUploader.prototype = {
                ? this.fileValue.toJSON()
                : Object.toJSON(this.fileValue);
         }
+        var uploaderConfig = (Object.isString(this.config) && this.config.evalJSON()) || this.config;
         Downloadable.setUploaderObj(
             this.type,
             this.key,
-            new Flex.Uploader(this.idName, '<?php echo $this->getSkinUrl('media/uploaderSingle.swf') ?>', this.config)
+            new Uploader(uploaderConfig)
         );
         if (varienGlobalEvents) {
             varienGlobalEvents.attachEventHandler('tabChangeBefore', Downloadable.getUploaderObj(type, key).onContainerHideBefore);
@@ -167,16 +165,48 @@ Downloadable.FileList.prototype = {
         this.containerId  = containerId,
         this.container = $(this.containerId);
         this.uploader = uploader;
-        this.uploader.onFilesComplete = this.handleUploadComplete.bind(this);
+        document.on('uploader:fileSuccess', function(event) {
+            var memo = event.memo;
+            if(this._checkCurrentContainer(memo.containerId)) {
+                this.handleUploadComplete([{response: memo.response}]);
+                this.handleButtonsSwap();
+            }
+        }.bind(this));
+        document.on('uploader:fileError', function(event) {
+            var memo = event.memo;
+            if(this._checkCurrentContainer(memo.containerId)) {
+                this.handleButtonsSwap();
+            }
+        }.bind(this));
+        document.on('upload:simulateDelete', this.handleFileRemoveAll.bind(this));
+        document.on('uploader:simulateNewUpload', this.handleFileNew.bind(this));
         this.file = this.getElement('save').value.evalJSON();
         this.listTemplate = new Template(this.fileListTemplate, this.templatePattern);
         this.updateFiles();
         this.uploader.onFileRemoveAll = this.handleFileRemoveAll.bind(this);
         this.uploader.onFileSelect = this.handleFileSelect.bind(this);
     },
-    handleFileRemoveAll: function(fileId) {
-        $(this.containerId+'-new').hide();
-        $(this.containerId+'-old').show();
+
+    _checkCurrentContainer: function (child) {
+        return $(this.containerId).down('#' + child);
+    },
+
+    handleFileRemoveAll: function(e) {
+        if(e.memo && this._checkCurrentContainer(e.memo.containerId)) {
+            $(this.containerId+'-new').hide();
+            $(this.containerId+'-old').show();
+            this.handleButtonsSwap();
+        }
+    },
+    handleFileNew: function (e) {
+        if(e.memo && this._checkCurrentContainer(e.memo.containerId)) {
+            $(this.containerId + '-new').show();
+            $(this.containerId + '-old').hide();
+            this.handleButtonsSwap();
+        }
+    },
+    handleButtonsSwap: function () {
+        $$(['#' + this.containerId+'-browse', '#'+this.containerId+'-delete']).invoke('toggle');
     },
     handleFileSelect: function() {
         $(this.containerId+'_type').checked = true;
@@ -204,7 +234,6 @@ Downloadable.FileList.prototype = {
            newFile.size = response.size;
            newFile.status = 'new';
            this.file[0] = newFile;
-           this.uploader.removeFile(item.id);
         }.bind(this));
         this.updateFiles();
     },
diff --git app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml
index caf70a6..6731d62 100644
--- app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml
+++ app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml
@@ -28,6 +28,7 @@
 
 /**
  * @see Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
+ * @var $this Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
  */
 ?>
 <?php $_product = $this->getProduct()?>
@@ -137,17 +138,14 @@ var linkTemplate = '<tr>'+
     '</td>'+
     '<td>'+
         '<div class="files">'+
-            '<div class="row">'+
-                '<label for="downloadable_link_{{id}}_sample_file_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_file_type" name="downloadable[link][{{id}}][sample][type]" value="file"{{sample_file_checked}} /> File:</label>'+
+            '<div class="row a-right">'+
+                '<label for="downloadable_link_{{id}}_sample_file_type" class="a-left"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_file_type" name="downloadable[link][{{id}}][sample][type]" value="file"{{sample_file_checked}} /> File:</label>'+
                 '<input type="hidden" id="downloadable_link_{{id}}_sample_file_save" name="downloadable[link][{{id}}][sample][file]" value="{{sample_file_save}}" />'+
-                '<div id="downloadable_link_{{id}}_sample_file" class="uploader">'+
+                '<?php echo $this->getBrowseButtonHtml('sample_'); ?>'+
+                '<?php echo $this->getDeleteButtonHtml('sample_'); ?>'+
+                '<div id="downloadable_link_{{id}}_sample_file" class="uploader a-left">'+
                     '<div id="downloadable_link_{{id}}_sample_file-old" class="file-row-info"></div>'+
                     '<div id="downloadable_link_{{id}}_sample_file-new" class="file-row-info"></div>'+
-                    '<div class="buttons">'+
-                        '<div id="downloadable_link_{{id}}_sample_file-install-flash" style="display:none">'+
-                            '<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>'+
-                        '</div>'+
-                    '</div>'+
                     '<div class="clear"></div>'+
                 '</div>'+
             '</div>'+
@@ -161,17 +159,14 @@ var linkTemplate = '<tr>'+
     '</td>'+
     '<td>'+
         '<div class="files">'+
-            '<div class="row">'+
-                '<label for="downloadable_link_{{id}}_file_type"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_link_{{id}}_file_type" name="downloadable[link][{{id}}][type]" value="file"{{file_checked}} /> File:</label>'+
+            '<div class="row a-right">'+
+                '<label for="downloadable_link_{{id}}_file_type" class="a-left"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_link_{{id}}_file_type" name="downloadable[link][{{id}}][type]" value="file"{{file_checked}} /> File:</label>'+
             '<input type="hidden" class="validate-downloadable-file" id="downloadable_link_{{id}}_file_save" name="downloadable[link][{{id}}][file]" value="{{file_save}}" />'+
-                '<div id="downloadable_link_{{id}}_file" class="uploader">'+
+                '<?php echo $this->getBrowseButtonHtml(); ?>'+
+                '<?php echo $this->getDeleteButtonHtml(); ?>'+
+                '<div id="downloadable_link_{{id}}_file" class="uploader a-left">'+
                     '<div id="downloadable_link_{{id}}_file-old" class="file-row-info"></div>'+
                     '<div id="downloadable_link_{{id}}_file-new" class="file-row-info new-file"></div>'+
-                    '<div class="buttons">'+
-                        '<div id="downloadable_link_{{id}}_file-install-flash" style="display:none">'+
-                            '<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>'+
-                        '</div>'+
-                    '</div>'+
                     '<div class="clear"></div>'+
                 '</div>'+
             '</div>'+
@@ -282,6 +277,9 @@ var linkItems = {
         if (!data.sample_file_save) {
             data.sample_file_save = [];
         }
+        var UploaderConfigLinkSamples = <?php echo $this->getConfigJson('link_samples') ?>.replace(
+            new RegExp('<?php echo $this->getId(); ?>', 'g'),
+            'downloadable_link_'+data.id+'_sample_file');
 
         // link sample file
         new Downloadable.FileUploader(
@@ -291,8 +289,12 @@ var linkItems = {
             'downloadable[link]['+data.id+'][sample]',
             data.sample_file_save,
             'downloadable_link_'+data.id+'_sample_file',
-            <?php echo $this->getConfigJson('link_samples') ?>
+            UploaderConfigLinkSamples
         );
+
+        var UploaderConfigLink = <?php echo $this->getConfigJson() ?>.replace(
+            new RegExp('<?php echo $this->getId(); ?>', 'g'),
+            'downloadable_link_'+data.id+'_file');
         // link file
         new Downloadable.FileUploader(
             'links',
@@ -301,7 +303,7 @@ var linkItems = {
             'downloadable[link]['+data.id+']',
             data.file_save,
             'downloadable_link_'+data.id+'_file',
-            <?php echo $this->getConfigJson() ?>
+            UploaderConfigLink
         );
 
         linkFile = $('downloadable_link_'+data.id+'_file_type');
diff --git app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/samples.phtml app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/samples.phtml
index 3116693..8d2eeb6 100644
--- app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/samples.phtml
+++ app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/samples.phtml
@@ -27,6 +27,7 @@
 <?php
 /**
  * @see Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Samples
+ * @var $this Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Samples
  */
 ?>
 
@@ -89,17 +90,14 @@ var sampleTemplate = '<tr>'+
                         '</td>'+
                         '<td>'+
                             '<div class="files-wide">'+
-                                '<div class="row">'+
-                                    '<label for="downloadable_sample_{{id}}_file_type"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_sample_{{id}}_file_type" name="downloadable[sample][{{id}}][type]" value="file"{{file_checked}} /> File:</label>'+
+                                '<div class="row a-right">'+
+                                    '<label for="downloadable_sample_{{id}}_file_type" class="a-left"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_sample_{{id}}_file_type" name="downloadable[sample][{{id}}][type]" value="file"{{file_checked}} /> File:</label>'+
                                     '<input type="hidden" class="validate-downloadable-file" id="downloadable_sample_{{id}}_file_save" name="downloadable[sample][{{id}}][file]" value="{{file_save}}" />'+
-                                    '<div id="downloadable_sample_{{id}}_file" class="uploader">'+
+                                    '<?php echo $this->getBrowseButtonHtml(); ?>'+
+                                    '<?php echo $this->getDeleteButtonHtml(); ?>'+
+                                    '<div id="downloadable_sample_{{id}}_file" class="uploader a-left">' +
                                         '<div id="downloadable_sample_{{id}}_file-old" class="file-row-info"></div>'+
                                         '<div id="downloadable_sample_{{id}}_file-new" class="file-row-info new-file"></div>'+
-                                        '<div class="buttons">'+
-                                            '<div id="downloadable_sample_{{id}}_file-install-flash" style="display:none">'+
-                                                '<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>'+
-                                            '</div>'+
-                                        '</div>'+
                                         '<div class="clear"></div>'+
                                     '</div>'+
                                 '</div>'+
@@ -161,6 +159,10 @@ var sampleItems = {
 
         sampleUrl = $('downloadable_sample_'+data.id+'_url_type');
 
+        var UploaderConfig = <?php echo $this->getConfigJson() ?>.replace(
+            new RegExp('<?php echo $this->getId(); ?>', 'g'),
+            'downloadable_sample_'+data.id+'_file');
+
         if (!data.file_save) {
             data.file_save = [];
         }
@@ -171,7 +173,7 @@ var sampleItems = {
             'downloadable[sample]['+data.id+']',
             data.file_save,
             'downloadable_sample_'+data.id+'_file',
-            <?php echo $this->getConfigJson() ?>
+            UploaderConfig
         );
         sampleUrl.advaiceContainer = 'downloadable_sample_'+data.id+'_container';
         sampleFile = $('downloadable_sample_'+data.id+'_file_type');
diff --git app/design/adminhtml/default/default/template/media/uploader.phtml app/design/adminhtml/default/default/template/media/uploader.phtml
index 04ca285..d8db109 100644
--- app/design/adminhtml/default/default/template/media/uploader.phtml
+++ app/design/adminhtml/default/default/template/media/uploader.phtml
@@ -26,50 +26,30 @@
 ?>
 <?php
 /**
- * @see Mage_Adminhtml_Block_Media_Uploader
+ * @var $this Mage_Uploader_Block_Multiple|Mage_Uploader_Block_Single
  */
 ?>
-
-<?php echo $this->helper('adminhtml/media_js')->includeScript('lib/flex.js') ?>
-<?php echo $this->helper('adminhtml/media_js')->includeScript('mage/adminhtml/flexuploader.js') ?>
-<?php echo $this->helper('adminhtml/media_js')->includeScript('lib/FABridge.js') ?>
-<?php echo $this->helper('adminhtml/media_js')->getTranslatorScript() ?>
-
-
 <div id="<?php echo $this->getHtmlId() ?>" class="uploader">
-    <div class="buttons">
-        <?php /* buttons included in flex object */ ?>
-        <?php  /*echo $this->getBrowseButtonHtml()*/  ?>
-        <?php  /*echo $this->getUploadButtonHtml()*/  ?>
-        <div id="<?php echo $this->getHtmlId() ?>-install-flash" style="display:none">
-            <?php echo Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/') ?>
-        </div>
+    <div class="buttons a-right">
+        <?php echo $this->getBrowseButtonHtml(); ?>
+        <?php echo $this->getUploadButtonHtml(); ?>
     </div>
-    <div class="clear"></div>
-    <div class="no-display" id="<?php echo $this->getHtmlId() ?>-template">
-        <div id="{{id}}" class="file-row">
-        <span class="file-info">{{name}} ({{size}})</span>
+</div>
+<div class="no-display" id="<?php echo $this->getElementId('template') ?>">
+    <div id="{{id}}-container" class="file-row">
+        <span class="file-info">{{name}} {{size}}</span>
         <span class="delete-button"><?php echo $this->getDeleteButtonHtml() ?></span>
         <span class="progress-text"></span>
         <div class="clear"></div>
-        </div>
-    </div>
-    <div class="no-display" id="<?php echo $this->getHtmlId() ?>-template-progress">
-        {{percent}}% {{uploaded}} / {{total}}
     </div>
 </div>
-
 <script type="text/javascript">
-//<![CDATA[
-
-var maxUploadFileSizeInBytes = <?php echo $this->getDataMaxSizeInBytes() ?>;
-var maxUploadFileSize = '<?php echo $this->getDataMaxSize() ?>';
-
-<?php echo $this->getJsObjectName() ?> = new Flex.Uploader('<?php echo $this->getHtmlId() ?>', '<?php echo $this->getUploaderUrl('media/uploader.swf') ?>', <?php echo $this->getConfigJson() ?>);
-
-if (varienGlobalEvents) {
-    varienGlobalEvents.attachEventHandler('tabChangeBefore', <?php echo $this->getJsObjectName() ?>.onContainerHideBefore);
-}
+    (function() {
+        var uploader = new Uploader(<?php echo $this->getJsonConfig(); ?>);
 
-//]]>
+        if (varienGlobalEvents) {
+            varienGlobalEvents.attachEventHandler('tabChangeBefore', uploader.onContainerHideBefore);
+        }
+    })();
 </script>
+<?php echo $this->getChildHtml('additional_scripts'); ?>
diff --git app/design/frontend/base/default/template/catalog/product/view.phtml app/design/frontend/base/default/template/catalog/product/view.phtml
index 4ca4fae..f495089 100644
--- app/design/frontend/base/default/template/catalog/product/view.phtml
+++ app/design/frontend/base/default/template/catalog/product/view.phtml
@@ -40,6 +40,7 @@
 <div class="product-view">
     <div class="product-essential">
     <form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>>
+        <?php echo $this->getBlockHtml('formkey') ?>
         <div class="no-display">
             <input type="hidden" name="product" value="<?php echo $_product->getId() ?>" />
             <input type="hidden" name="related_product" id="related-products-field" value="" />
diff --git app/design/frontend/base/default/template/checkout/cart.phtml app/design/frontend/base/default/template/checkout/cart.phtml
index 0cae4b4..b8ad267 100644
--- app/design/frontend/base/default/template/checkout/cart.phtml
+++ app/design/frontend/base/default/template/checkout/cart.phtml
@@ -47,6 +47,7 @@
     <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
     <?php echo $this->getChildHtml('form_before') ?>
     <form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post">
+        <?php echo $this->getBlockHtml('formkey'); ?>
         <fieldset>
             <table id="shopping-cart-table" class="data-table cart-table">
                 <col width="1" />
diff --git app/design/frontend/base/default/template/checkout/onepage/review/info.phtml app/design/frontend/base/default/template/checkout/onepage/review/info.phtml
index 808ae43..2bac9fb 100644
--- app/design/frontend/base/default/template/checkout/onepage/review/info.phtml
+++ app/design/frontend/base/default/template/checkout/onepage/review/info.phtml
@@ -78,7 +78,7 @@
     </div>
     <script type="text/javascript">
     //<![CDATA[
-        review = new Review('<?php echo $this->getUrl('checkout/onepage/saveOrder') ?>', '<?php echo $this->getUrl('checkout/onepage/success') ?>', $('checkout-agreements'));
+        review = new Review('<?php echo $this->getUrl('checkout/onepage/saveOrder', array('form_key' => Mage::getSingleton('core/session')->getFormKey())) ?>', '<?php echo $this->getUrl('checkout/onepage/success') ?>', $('checkout-agreements'));
     //]]>
     </script>
 </div>
diff --git app/design/frontend/base/default/template/customer/form/login.phtml app/design/frontend/base/default/template/customer/form/login.phtml
index 8a50ccb..7b29491 100644
--- app/design/frontend/base/default/template/customer/form/login.phtml
+++ app/design/frontend/base/default/template/customer/form/login.phtml
@@ -37,6 +37,7 @@
     </div>
     <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
     <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
+        <?php echo $this->getBlockHtml('formkey'); ?>
         <div class="col2-set">
             <div class="col-1 new-users">
                 <div class="content">
diff --git app/design/frontend/base/default/template/email/productalert/price.phtml app/design/frontend/base/default/template/email/productalert/price.phtml
index 5cef986..181bf8c 100644
--- app/design/frontend/base/default/template/email/productalert/price.phtml
+++ app/design/frontend/base/default/template/email/productalert/price.phtml
@@ -32,7 +32,7 @@
         <td><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><img src="<?php echo $_product->getThumbnailUrl() ?>" border="0" align="left" height="75" width="75" alt="<?php echo $this->htmlEscape($_product->getName()) ?>" /></a></td>
         <td>
             <p><a href="<?php echo $_product->getProductUrl() ?>"><strong><?php echo $this->htmlEscape($_product->getName()) ?></strong></a></p>
-            <?php if ($shortDescription = $this->htmlEscape($_product->getShortDescription())): ?>
+            <?php if ($shortDescription = $this->_getFilteredProductShortDescription($product)): ?>
             <p><small><?php echo $shortDescription ?></small></p>
             <?php endif; ?>
             <p><?php if ($_product->getPrice() != $_product->getFinalPrice()): ?>
diff --git app/design/frontend/base/default/template/email/productalert/stock.phtml app/design/frontend/base/default/template/email/productalert/stock.phtml
index d628c85..4c0fd2c 100644
--- app/design/frontend/base/default/template/email/productalert/stock.phtml
+++ app/design/frontend/base/default/template/email/productalert/stock.phtml
@@ -32,7 +32,7 @@
         <td><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail')->resize(75, 75) ?>" border="0" align="left" height="75" width="75" alt="<?php echo $this->htmlEscape($_product->getName()) ?>" /></a></td>
         <td>
             <p><a href="<?php echo $_product->getProductUrl() ?>"><strong><?php echo $this->htmlEscape($_product->getName()) ?></strong></a></p>
-            <?php if ($shortDescription = $this->htmlEscape($_product->getShortDescription())): ?>
+            <?php if ($shortDescription = $this->_getFilteredProductShortDescription($product)): ?>
             <p><small><?php echo $shortDescription ?></small></p>
             <?php endif; ?>
             <p><?php if ($_product->getPrice() != $_product->getFinalPrice()): ?>
diff --git app/design/frontend/base/default/template/persistent/customer/form/login.phtml app/design/frontend/base/default/template/persistent/customer/form/login.phtml
index 3786a88..9c1b563 100644
--- app/design/frontend/base/default/template/persistent/customer/form/login.phtml
+++ app/design/frontend/base/default/template/persistent/customer/form/login.phtml
@@ -38,6 +38,7 @@
     </div>
     <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
     <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
+        <?php echo $this->getBlockHtml('formkey'); ?>
         <div class="col2-set">
             <div class="col-1 new-users">
                 <div class="content">
diff --git app/design/frontend/base/default/template/review/form.phtml app/design/frontend/base/default/template/review/form.phtml
index 5534a78..ca008ec 100644
--- app/design/frontend/base/default/template/review/form.phtml
+++ app/design/frontend/base/default/template/review/form.phtml
@@ -28,6 +28,7 @@
     <h2><?php echo $this->__('Write Your Own Review') ?></h2>
     <?php if ($this->getAllowWriteReviewFlag()): ?>
     <form action="<?php echo $this->getAction() ?>" method="post" id="review-form">
+        <?php echo $this->getBlockHtml('formkey'); ?>
         <fieldset>
             <?php echo $this->getChildHtml('form_fields_before')?>
             <h3><?php echo $this->__("You're reviewing:"); ?> <span><?php echo $this->htmlEscape($this->getProductInfo()->getName()) ?></span></h3>
diff --git app/design/frontend/base/default/template/sales/reorder/sidebar.phtml app/design/frontend/base/default/template/sales/reorder/sidebar.phtml
index 2fdf176..0c1add2 100644
--- app/design/frontend/base/default/template/sales/reorder/sidebar.phtml
+++ app/design/frontend/base/default/template/sales/reorder/sidebar.phtml
@@ -38,6 +38,7 @@
         <strong><span><?php echo $this->__('My Orders') ?></span></strong>
     </div>
     <form method="post" action="<?php echo $this->getFormActionUrl() ?>" id="reorder-validate-detail">
+        <?php echo $this->getBlockHtml('formkey'); ?>
         <div class="block-content">
             <p class="block-subtitle"><?php echo $this->__('Last Ordered Items') ?></p>
             <ol id="cart-sidebar-reorder">
diff --git app/design/frontend/base/default/template/tag/customer/view.phtml app/design/frontend/base/default/template/tag/customer/view.phtml
index 9ad6090..133f7bf 100644
--- app/design/frontend/base/default/template/tag/customer/view.phtml
+++ app/design/frontend/base/default/template/tag/customer/view.phtml
@@ -52,7 +52,9 @@
             </td>
             <td>
                 <?php if($_product->isSaleable()): ?>
-                    <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getUrl('checkout/cart/add',array('product'=>$_product->getId())) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
+                    <?php $params[Mage_Core_Model_Url::FORM_KEY] = Mage::getSingleton('core/session')->getFormKey() ?>
+                    <?php $params['product'] = $_product->getId(); ?>
+                    <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getUrl('checkout/cart/add', $params) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
                 <?php endif; ?>
                 <?php if ($this->helper('wishlist')->isAllow()) : ?>
                 <ul class="add-to-links">
diff --git app/design/frontend/base/default/template/wishlist/view.phtml app/design/frontend/base/default/template/wishlist/view.phtml
index 31ec343..c071d1d 100644
--- app/design/frontend/base/default/template/wishlist/view.phtml
+++ app/design/frontend/base/default/template/wishlist/view.phtml
@@ -107,8 +107,17 @@
     <?php else: ?>
         <p><?php echo $this->__('You have no items in your wishlist.') ?></p>
     <?php endif ?>
+
+    <form id="wishlist-allcart-form" action="<?php echo $this->getUrl('*/*/allcart') ?>" method="post">
+        <?php echo $this->getBlockHtml('formkey') ?>
+        <div class="no-display">
+            <input type="hidden" name="qty" id="qty" value="" />
+        </div>
+    </form>
     <script type="text/javascript">
     //<![CDATA[
+    var wishlistAllCartForm = new Validation($('wishlist-allcart-form'));
+
     function confirmRemoveWishlistItem() {
         return confirm('<?php echo $this->__('Are you sure you want to remove this product from your wishlist?') ?>');
     }
@@ -135,16 +144,22 @@
         setLocation(url);
     }
 
-    function addAllWItemsToCart() {
-        var url = '<?php echo $this->getUrl('*/*/allcart') ?>';
-        var separator = (url.indexOf('?') >= 0) ? '&' : '?';
+    function calculateQty() {
+        var itemQtys = new Array();
         $$('#wishlist-view-form .qty').each(
             function (input, index) {
-                url += separator + input.name + '=' + encodeURIComponent(input.value);
-                separator = '&';
+                var idxStr = input.name;
+                var idx = idxStr.replace( /[^\d.]/g, '' );
+                itemQtys[idx] = input.value;
             }
         );
-        setLocation(url);
+
+        $$('#qty')[0].value = JSON.stringify(itemQtys);
+    }
+
+    function addAllWItemsToCart() {
+        calculateQty();
+        wishlistAllCartForm.form.submit();
     }
     //]]>
     </script>
diff --git app/design/frontend/default/iphone/template/checkout/cart.phtml app/design/frontend/default/iphone/template/checkout/cart.phtml
index 2a4fa1e..af833bd 100644
--- app/design/frontend/default/iphone/template/checkout/cart.phtml
+++ app/design/frontend/default/iphone/template/checkout/cart.phtml
@@ -38,6 +38,7 @@
     <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
     <?php echo $this->getChildHtml('form_before') ?>
     <form action="<?php echo $this->getUrl('checkout/cart/updatePost') ?>" method="post">
+        <?php echo $this->getBlockHtml('formkey') ?>
         <fieldset>
             <table id="shopping-cart-table" class="data-table cart-table">
             <?php if ($this->helper('tax')->displayCartPriceExclTax() || $this->helper('tax')->displayCartBothPrices()): ?>
diff --git app/design/frontend/default/iphone/template/customer/form/login.phtml app/design/frontend/default/iphone/template/customer/form/login.phtml
index 199270c..53d3dda 100644
--- app/design/frontend/default/iphone/template/customer/form/login.phtml
+++ app/design/frontend/default/iphone/template/customer/form/login.phtml
@@ -34,6 +34,7 @@
 <div class="account-login">
     <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
     <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
+        <?php echo $this->getBlockHtml('formkey') ?>
         <div class="registered-users">
             <h1><?php echo $this->__('Registered Customers') ?></h1>
             <ul class="form-list">
diff --git app/design/frontend/default/iphone/template/persistent/customer/form/login.phtml app/design/frontend/default/iphone/template/persistent/customer/form/login.phtml
index ebbf0d8..cc59256 100644
--- app/design/frontend/default/iphone/template/persistent/customer/form/login.phtml
+++ app/design/frontend/default/iphone/template/persistent/customer/form/login.phtml
@@ -35,6 +35,7 @@
 <div class="account-login">
     <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
     <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
+        <?php echo $this->getBlockHtml('formkey') ?>
         <div class="registered-users">
             <h1><?php echo $this->__('Registered Customers') ?></h1>
             <ul class="form-list">
diff --git app/design/frontend/default/iphone/template/wishlist/view.phtml app/design/frontend/default/iphone/template/wishlist/view.phtml
index 10e10d8..81e7a74 100644
--- app/design/frontend/default/iphone/template/wishlist/view.phtml
+++ app/design/frontend/default/iphone/template/wishlist/view.phtml
@@ -96,8 +96,17 @@
     <?php else: ?>
         <p><?php echo $this->__('You have no items in your wishlist.') ?></p>
     <?php endif ?>
+
+    <form id="wishlist-allcart-form" action="<?php echo $this->getUrl('*/*/allcart') ?>" method="post">
+        <?php echo $this->getBlockHtml('formkey') ?>
+        <div class="no-display">
+            <input type="hidden" name="qty" id="qty" value="" />
+        </div>
+    </form>
     <script type="text/javascript">
     //<![CDATA[
+    var wishlistAllCartForm = new Validation($('wishlist-allcart-form'));
+
     function confirmRemoveWishlistItem() {
         return confirm('<?php echo $this->__('Are you sure you want to remove this product from your wishlist?') ?>');
     }
@@ -124,16 +133,22 @@
         setLocation(url);
     }
 
-    function addAllWItemsToCart() {
-        var url = '<?php echo $this->getUrl('*/*/allcart') ?>';
-        var separator = (url.indexOf('?') >= 0) ? '&' : '?';
+    function calculateQty() {
+        var itemQtys = new Array();
         $$('#wishlist-view-form .qty').each(
             function (input, index) {
-                url += separator + input.name + '=' + encodeURIComponent(input.value);
-                separator = '&';
+                var idxStr = input.name;
+                var idx = idxStr.replace( /[^\d.]/g, '' );
+                itemQtys[idx] = input.value;
             }
         );
-        setLocation(url);
+
+        $$('#qty')[0].value = JSON.stringify(itemQtys);
+    }
+
+    function addAllWItemsToCart() {
+        calculateQty();
+        wishlistAllCartForm.form.submit();
     }
     //]]>
     </script>
diff --git app/etc/modules/Mage_All.xml app/etc/modules/Mage_All.xml
index ca610ae..f724a77 100644
--- app/etc/modules/Mage_All.xml
+++ app/etc/modules/Mage_All.xml
@@ -274,7 +274,7 @@
             <active>true</active>
             <codePool>core</codePool>
             <depends>
-                <Mage_Core/>
+                <Mage_Uploader/>
             </depends>
         </Mage_Cms>
         <Mage_Reports>
@@ -396,5 +396,12 @@
                 <Mage_Core/>
             </depends>
         </Mage_Index>
+        <Mage_Uploader>
+            <active>true</active>
+            <codePool>core</codePool>
+            <depends>
+                <Mage_Core/>
+            </depends>
+        </Mage_Uploader>
     </modules>
 </config>
diff --git app/locale/en_US/Mage_Media.csv app/locale/en_US/Mage_Media.csv
index 110331b..504a44a 100644
--- app/locale/en_US/Mage_Media.csv
+++ app/locale/en_US/Mage_Media.csv
@@ -1,3 +1,2 @@
 "An error occurred while creating the image.","An error occurred while creating the image."
 "The image does not exist or is invalid.","The image does not exist or is invalid."
-"This content requires last version of Adobe Flash Player. <a href=""%s"">Get Flash</a>","This content requires last version of Adobe Flash Player. <a href=""%s"">Get Flash</a>"
diff --git app/locale/en_US/Mage_Uploader.csv app/locale/en_US/Mage_Uploader.csv
new file mode 100644
index 0000000..c246b24
--- /dev/null
+++ app/locale/en_US/Mage_Uploader.csv
@@ -0,0 +1,8 @@
+"Browse Files...","Browse Files..."
+"Upload Files","Upload Files"
+"Remove", "Remove"
+"There are files that were selected but not uploaded yet. After switching to another tab your selections will be lost. Do you wish to continue ?", "There are files that were selected but not uploaded yet. After switching to another tab your selections will be lost. Do you wish to continue ?"
+"Maximum allowed file size for upload is","Maximum allowed file size for upload is"
+"Please check your server PHP settings.","Please check your server PHP settings."
+"Uploading...","Uploading..."
+"Complete","Complete"
\ No newline at end of file
diff --git downloader/Maged/Controller.php downloader/Maged/Controller.php
index 11d6f0e..c03ab49b 100755
--- downloader/Maged/Controller.php
+++ downloader/Maged/Controller.php
@@ -367,6 +367,11 @@ final class Maged_Controller
      */
     public function connectInstallPackageUploadAction()
     {
+        if (!$this->_validateFormKey()) {
+            echo "No file was uploaded";
+            return;
+        }
+
         if (!$_FILES) {
             echo "No file was uploaded";
             return;
@@ -974,4 +979,27 @@ final class Maged_Controller
             'number'    => '',
         );
     }
+
+    /**
+     * Validate Form Key
+     *
+     * @return bool
+     */
+    protected function _validateFormKey()
+    {
+        if (!($formKey = $_REQUEST['form_key']) || $formKey != $this->session()->getFormKey()) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Retrieve Session Form Key
+     *
+     * @return string
+     */
+    public function getFormKey()
+    {
+        return $this->session()->getFormKey();
+    }
 }
diff --git downloader/Maged/Model/Session.php downloader/Maged/Model/Session.php
index 138f6a3..26ab58d 100644
--- downloader/Maged/Model/Session.php
+++ downloader/Maged/Model/Session.php
@@ -221,4 +221,17 @@ class Maged_Model_Session extends Maged_Model
         }
         return Mage::getSingleton('adminhtml/url')->getUrl('adminhtml');
     }
+
+    /**
+     * Retrieve Session Form Key
+     *
+     * @return string A 16 bit unique key for forms
+     */
+    public function getFormKey()
+    {
+        if (!$this->get('_form_key')) {
+            $this->set('_form_key', Mage::helper('core')->getRandomString(16));
+        }
+        return $this->get('_form_key');
+    }
 }
diff --git downloader/Maged/View.php downloader/Maged/View.php
index a2c8584..175fa6f 100755
--- downloader/Maged/View.php
+++ downloader/Maged/View.php
@@ -154,6 +154,16 @@ class Maged_View
     }
 
     /**
+     * Retrieve Session Form Key
+     *
+     * @return string
+     */
+    public function getFormKey()
+    {
+        return $this->controller()->getFormKey();
+    }
+
+    /**
      * Escape html entities
      *
      * @param   mixed $data
diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
index a8dc462..72a80d7 100644
--- downloader/lib/Mage/HTTP/Client/Curl.php
+++ downloader/lib/Mage/HTTP/Client/Curl.php
@@ -372,8 +372,8 @@ implements Mage_HTTP_IClient
         $uriModified = $this->getSecureRequest($uri, $isAuthorizationRequired);
         $this->_ch = curl_init();
         $this->curlOption(CURLOPT_URL, $uriModified);
-        $this->curlOption(CURLOPT_SSL_VERIFYPEER, false);
-        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 2);
+        $this->curlOption(CURLOPT_SSL_VERIFYPEER, true);
+        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 'TLSv1');
         $this->getCurlMethodSettings($method, $params, $isAuthorizationRequired);
 
         if(count($this->_headers)) {
diff --git downloader/template/connect/packages.phtml downloader/template/connect/packages.phtml
index 459feb0..40c31ce 100644
--- downloader/template/connect/packages.phtml
+++ downloader/template/connect/packages.phtml
@@ -101,6 +101,7 @@
     <h4>Direct package file upload</h4>
 </div>
 <form action="<?php echo $this->url('connectInstallPackageUpload')?>" method="post" target="connect_iframe" onsubmit="onSubmit(this)" enctype="multipart/form-data">
+    <input name="form_key" type="hidden" value="<?php echo $this->getFormKey() ?>" />
     <ul class="bare-list">
         <li><span class="step-count">1</span> &nbsp; Download or build package file.</li>
         <li>
diff --git js/lib/uploader/flow.min.js js/lib/uploader/flow.min.js
new file mode 100644
index 0000000..34b888e
--- /dev/null
+++ js/lib/uploader/flow.min.js
@@ -0,0 +1,2 @@
+/*! flow.js 2.9.0 */
+!function(a,b,c){"use strict";function d(b){if(this.support=!("undefined"==typeof File||"undefined"==typeof Blob||"undefined"==typeof FileList||!Blob.prototype.slice&&!Blob.prototype.webkitSlice&&!Blob.prototype.mozSlice),this.support){this.supportDirectory=/WebKit/.test(a.navigator.userAgent),this.files=[],this.defaults={chunkSize:1048576,forceChunkSize:!1,simultaneousUploads:3,singleFile:!1,fileParameterName:"file",progressCallbacksInterval:500,speedSmoothingFactor:.1,query:{},headers:{},withCredentials:!1,preprocess:null,method:"multipart",testMethod:"GET",uploadMethod:"POST",prioritizeFirstAndLastChunk:!1,target:"/",testChunks:!0,generateUniqueIdentifier:null,maxChunkRetries:0,chunkRetryInterval:null,permanentErrors:[404,415,500,501],successStatuses:[200,201,202],onDropStopPropagation:!1},this.opts={},this.events={};var c=this;this.onDrop=function(a){c.opts.onDropStopPropagation&&a.stopPropagation(),a.preventDefault();var b=a.dataTransfer;b.items&&b.items[0]&&b.items[0].webkitGetAsEntry?c.webkitReadDataTransfer(a):c.addFiles(b.files,a)},this.preventEvent=function(a){a.preventDefault()},this.opts=d.extend({},this.defaults,b||{})}}function e(a,b){this.flowObj=a,this.file=b,this.name=b.fileName||b.name,this.size=b.size,this.relativePath=b.relativePath||b.webkitRelativePath||this.name,this.uniqueIdentifier=a.generateUniqueIdentifier(b),this.chunks=[],this.paused=!1,this.error=!1,this.averageSpeed=0,this.currentSpeed=0,this._lastProgressCallback=Date.now(),this._prevUploadedSize=0,this._prevProgress=0,this.bootstrap()}function f(a,b,c){this.flowObj=a,this.fileObj=b,this.fileObjSize=b.size,this.offset=c,this.tested=!1,this.retries=0,this.pendingRetry=!1,this.preprocessState=0,this.loaded=0,this.total=0;var d=this.flowObj.opts.chunkSize;this.startByte=this.offset*d,this.endByte=Math.min(this.fileObjSize,(this.offset+1)*d),this.xhr=null,this.fileObjSize-this.endByte<d&&!this.flowObj.opts.forceChunkSize&&(this.endByte=this.fileObjSize);var e=this;this.event=function(a,b){b=Array.prototype.slice.call(arguments),b.unshift(e),e.fileObj.chunkEvent.apply(e.fileObj,b)},this.progressHandler=function(a){a.lengthComputable&&(e.loaded=a.loaded,e.total=a.total),e.event("progress",a)},this.testHandler=function(){var a=e.status(!0);"error"===a?(e.event(a,e.message()),e.flowObj.uploadNextChunk()):"success"===a?(e.tested=!0,e.event(a,e.message()),e.flowObj.uploadNextChunk()):e.fileObj.paused||(e.tested=!0,e.send())},this.doneHandler=function(){var a=e.status();if("success"===a||"error"===a)e.event(a,e.message()),e.flowObj.uploadNextChunk();else{e.event("retry",e.message()),e.pendingRetry=!0,e.abort(),e.retries++;var b=e.flowObj.opts.chunkRetryInterval;null!==b?setTimeout(function(){e.send()},b):e.send()}}}function g(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}function h(a,b){return"function"==typeof a&&(b=Array.prototype.slice.call(arguments),a=a.apply(null,b.slice(1))),a}function i(a,b){setTimeout(a.bind(b),0)}function j(a){return k(arguments,function(b){b!==a&&k(b,function(b,c){a[c]=b})}),a}function k(a,b,c){if(a){var d;if("undefined"!=typeof a.length){for(d=0;d<a.length;d++)if(b.call(c,a[d],d)===!1)return}else for(d in a)if(a.hasOwnProperty(d)&&b.call(c,a[d],d)===!1)return}}var l=a.navigator.msPointerEnabled;d.prototype={on:function(a,b){a=a.toLowerCase(),this.events.hasOwnProperty(a)||(this.events[a]=[]),this.events[a].push(b)},off:function(a,b){a!==c?(a=a.toLowerCase(),b!==c?this.events.hasOwnProperty(a)&&g(this.events[a],b):delete this.events[a]):this.events={}},fire:function(a,b){b=Array.prototype.slice.call(arguments),a=a.toLowerCase();var c=!1;return this.events.hasOwnProperty(a)&&k(this.events[a],function(a){c=a.apply(this,b.slice(1))===!1||c},this),"catchall"!=a&&(b.unshift("catchAll"),c=this.fire.apply(this,b)===!1||c),!c},webkitReadDataTransfer:function(a){function b(a){g+=a.length,k(a,function(a){if(a.isFile){var e=a.fullPath;a.file(function(a){c(a,e)},d)}else a.isDirectory&&a.createReader().readEntries(b,d)}),e()}function c(a,b){a.relativePath=b.substring(1),h.push(a),e()}function d(a){throw a}function e(){0==--g&&f.addFiles(h,a)}var f=this,g=a.dataTransfer.items.length,h=[];k(a.dataTransfer.items,function(a){var f=a.webkitGetAsEntry();return f?void(f.isFile?c(a.getAsFile(),f.fullPath):f.createReader().readEntries(b,d)):void e()})},generateUniqueIdentifier:function(a){var b=this.opts.generateUniqueIdentifier;if("function"==typeof b)return b(a);var c=a.relativePath||a.webkitRelativePath||a.fileName||a.name;return a.size+"-"+c.replace(/[^0-9a-zA-Z_-]/gim,"")},uploadNextChunk:function(a){var b=!1;if(this.opts.prioritizeFirstAndLastChunk&&(k(this.files,function(a){return!a.paused&&a.chunks.length&&"pending"===a.chunks[0].status()&&0===a.chunks[0].preprocessState?(a.chunks[0].send(),b=!0,!1):!a.paused&&a.chunks.length>1&&"pending"===a.chunks[a.chunks.length-1].status()&&0===a.chunks[0].preprocessState?(a.chunks[a.chunks.length-1].send(),b=!0,!1):void 0}),b))return b;if(k(this.files,function(a){return a.paused||k(a.chunks,function(a){return"pending"===a.status()&&0===a.preprocessState?(a.send(),b=!0,!1):void 0}),b?!1:void 0}),b)return!0;var c=!1;return k(this.files,function(a){return a.isComplete()?void 0:(c=!0,!1)}),c||a||i(function(){this.fire("complete")},this),!1},assignBrowse:function(a,c,d,e){"undefined"==typeof a.length&&(a=[a]),k(a,function(a){var f;"INPUT"===a.tagName&&"file"===a.type?f=a:(f=b.createElement("input"),f.setAttribute("type","file"),j(f.style,{visibility:"hidden",position:"absolute"}),a.appendChild(f),a.addEventListener("click",function(){f.click()},!1)),this.opts.singleFile||d||f.setAttribute("multiple","multiple"),c&&f.setAttribute("webkitdirectory","webkitdirectory"),k(e,function(a,b){f.setAttribute(b,a)});var g=this;f.addEventListener("change",function(a){g.addFiles(a.target.files,a),a.target.value=""},!1)},this)},assignDrop:function(a){"undefined"==typeof a.length&&(a=[a]),k(a,function(a){a.addEventListener("dragover",this.preventEvent,!1),a.addEventListener("dragenter",this.preventEvent,!1),a.addEventListener("drop",this.onDrop,!1)},this)},unAssignDrop:function(a){"undefined"==typeof a.length&&(a=[a]),k(a,function(a){a.removeEventListener("dragover",this.preventEvent),a.removeEventListener("dragenter",this.preventEvent),a.removeEventListener("drop",this.onDrop)},this)},isUploading:function(){var a=!1;return k(this.files,function(b){return b.isUploading()?(a=!0,!1):void 0}),a},_shouldUploadNext:function(){var a=0,b=!0,c=this.opts.simultaneousUploads;return k(this.files,function(d){k(d.chunks,function(d){return"uploading"===d.status()&&(a++,a>=c)?(b=!1,!1):void 0})}),b&&a},upload:function(){var a=this._shouldUploadNext();if(a!==!1){this.fire("uploadStart");for(var b=!1,c=1;c<=this.opts.simultaneousUploads-a;c++)b=this.uploadNextChunk(!0)||b;b||i(function(){this.fire("complete")},this)}},resume:function(){k(this.files,function(a){a.resume()})},pause:function(){k(this.files,function(a){a.pause()})},cancel:function(){for(var a=this.files.length-1;a>=0;a--)this.files[a].cancel()},progress:function(){var a=0,b=0;return k(this.files,function(c){a+=c.progress()*c.size,b+=c.size}),b>0?a/b:0},addFile:function(a,b){this.addFiles([a],b)},addFiles:function(a,b){var c=[];k(a,function(a){if((!l||l&&a.size>0)&&(a.size%4096!==0||"."!==a.name&&"."!==a.fileName)&&!this.getFromUniqueIdentifier(this.generateUniqueIdentifier(a))){var d=new e(this,a);this.fire("fileAdded",d,b)&&c.push(d)}},this),this.fire("filesAdded",c,b)&&k(c,function(a){this.opts.singleFile&&this.files.length>0&&this.removeFile(this.files[0]),this.files.push(a)},this),this.fire("filesSubmitted",c,b)},removeFile:function(a){for(var b=this.files.length-1;b>=0;b--)this.files[b]===a&&(this.files.splice(b,1),a.abort())},getFromUniqueIdentifier:function(a){var b=!1;return k(this.files,function(c){c.uniqueIdentifier===a&&(b=c)}),b},getSize:function(){var a=0;return k(this.files,function(b){a+=b.size}),a},sizeUploaded:function(){var a=0;return k(this.files,function(b){a+=b.sizeUploaded()}),a},timeRemaining:function(){var a=0,b=0;return k(this.files,function(c){c.paused||c.error||(a+=c.size-c.sizeUploaded(),b+=c.averageSpeed)}),a&&!b?Number.POSITIVE_INFINITY:a||b?Math.floor(a/b):0}},e.prototype={measureSpeed:function(){var a=Date.now()-this._lastProgressCallback;if(a){var b=this.flowObj.opts.speedSmoothingFactor,c=this.sizeUploaded();this.currentSpeed=Math.max((c-this._prevUploadedSize)/a*1e3,0),this.averageSpeed=b*this.currentSpeed+(1-b)*this.averageSpeed,this._prevUploadedSize=c}},chunkEvent:function(a,b,c){switch(b){case"progress":if(Date.now()-this._lastProgressCallback<this.flowObj.opts.progressCallbacksInterval)break;this.measureSpeed(),this.flowObj.fire("fileProgress",this,a),this.flowObj.fire("progress"),this._lastProgressCallback=Date.now();break;case"error":this.error=!0,this.abort(!0),this.flowObj.fire("fileError",this,c,a),this.flowObj.fire("error",c,this,a);break;case"success":if(this.error)return;this.measureSpeed(),this.flowObj.fire("fileProgress",this,a),this.flowObj.fire("progress"),this._lastProgressCallback=Date.now(),this.isComplete()&&(this.currentSpeed=0,this.averageSpeed=0,this.flowObj.fire("fileSuccess",this,c,a));break;case"retry":this.flowObj.fire("fileRetry",this,a)}},pause:function(){this.paused=!0,this.abort()},resume:function(){this.paused=!1,this.flowObj.upload()},abort:function(a){this.currentSpeed=0,this.averageSpeed=0;var b=this.chunks;a&&(this.chunks=[]),k(b,function(a){"uploading"===a.status()&&(a.abort(),this.flowObj.uploadNextChunk())},this)},cancel:function(){this.flowObj.removeFile(this)},retry:function(){this.bootstrap(),this.flowObj.upload()},bootstrap:function(){this.abort(!0),this.error=!1,this._prevProgress=0;for(var a=this.flowObj.opts.forceChunkSize?Math.ceil:Math.floor,b=Math.max(a(this.file.size/this.flowObj.opts.chunkSize),1),c=0;b>c;c++)this.chunks.push(new f(this.flowObj,this,c))},progress:function(){if(this.error)return 1;if(1===this.chunks.length)return this._prevProgress=Math.max(this._prevProgress,this.chunks[0].progress()),this._prevProgress;var a=0;k(this.chunks,function(b){a+=b.progress()*(b.endByte-b.startByte)});var b=a/this.size;return this._prevProgress=Math.max(this._prevProgress,b>.9999?1:b),this._prevProgress},isUploading:function(){var a=!1;return k(this.chunks,function(b){return"uploading"===b.status()?(a=!0,!1):void 0}),a},isComplete:function(){var a=!1;return k(this.chunks,function(b){var c=b.status();return"pending"===c||"uploading"===c||1===b.preprocessState?(a=!0,!1):void 0}),!a},sizeUploaded:function(){var a=0;return k(this.chunks,function(b){a+=b.sizeUploaded()}),a},timeRemaining:function(){if(this.paused||this.error)return 0;var a=this.size-this.sizeUploaded();return a&&!this.averageSpeed?Number.POSITIVE_INFINITY:a||this.averageSpeed?Math.floor(a/this.averageSpeed):0},getType:function(){return this.file.type&&this.file.type.split("/")[1]},getExtension:function(){return this.name.substr((~-this.name.lastIndexOf(".")>>>0)+2).toLowerCase()}},f.prototype={getParams:function(){return{flowChunkNumber:this.offset+1,flowChunkSize:this.flowObj.opts.chunkSize,flowCurrentChunkSize:this.endByte-this.startByte,flowTotalSize:this.fileObjSize,flowIdentifier:this.fileObj.uniqueIdentifier,flowFilename:this.fileObj.name,flowRelativePath:this.fileObj.relativePath,flowTotalChunks:this.fileObj.chunks.length}},getTarget:function(a,b){return a+=a.indexOf("?")<0?"?":"&",a+b.join("&")},test:function(){this.xhr=new XMLHttpRequest,this.xhr.addEventListener("load",this.testHandler,!1),this.xhr.addEventListener("error",this.testHandler,!1);var a=h(this.flowObj.opts.testMethod,this.fileObj,this),b=this.prepareXhrRequest(a,!0);this.xhr.send(b)},preprocessFinished:function(){this.preprocessState=2,this.send()},send:function(){var a=this.flowObj.opts.preprocess;if("function"==typeof a)switch(this.preprocessState){case 0:return this.preprocessState=1,void a(this);case 1:return}if(this.flowObj.opts.testChunks&&!this.tested)return void this.test();this.loaded=0,this.total=0,this.pendingRetry=!1;var b=this.fileObj.file.slice?"slice":this.fileObj.file.mozSlice?"mozSlice":this.fileObj.file.webkitSlice?"webkitSlice":"slice",c=this.fileObj.file[b](this.startByte,this.endByte,this.fileObj.file.type);this.xhr=new XMLHttpRequest,this.xhr.upload.addEventListener("progress",this.progressHandler,!1),this.xhr.addEventListener("load",this.doneHandler,!1),this.xhr.addEventListener("error",this.doneHandler,!1);var d=h(this.flowObj.opts.uploadMethod,this.fileObj,this),e=this.prepareXhrRequest(d,!1,this.flowObj.opts.method,c);this.xhr.send(e)},abort:function(){var a=this.xhr;this.xhr=null,a&&a.abort()},status:function(a){return this.pendingRetry||1===this.preprocessState?"uploading":this.xhr?this.xhr.readyState<4?"uploading":this.flowObj.opts.successStatuses.indexOf(this.xhr.status)>-1?"success":this.flowObj.opts.permanentErrors.indexOf(this.xhr.status)>-1||!a&&this.retries>=this.flowObj.opts.maxChunkRetries?"error":(this.abort(),"pending"):"pending"},message:function(){return this.xhr?this.xhr.responseText:""},progress:function(){if(this.pendingRetry)return 0;var a=this.status();return"success"===a||"error"===a?1:"pending"===a?0:this.total>0?this.loaded/this.total:0},sizeUploaded:function(){var a=this.endByte-this.startByte;return"success"!==this.status()&&(a=this.progress()*a),a},prepareXhrRequest:function(a,b,c,d){var e=h(this.flowObj.opts.query,this.fileObj,this,b);e=j(this.getParams(),e);var f=h(this.flowObj.opts.target,this.fileObj,this,b),g=null;if("GET"===a||"octet"===c){var i=[];k(e,function(a,b){i.push([encodeURIComponent(b),encodeURIComponent(a)].join("="))}),f=this.getTarget(f,i),g=d||null}else g=new FormData,k(e,function(a,b){g.append(b,a)}),g.append(this.flowObj.opts.fileParameterName,d,this.fileObj.file.name);return this.xhr.open(a,f,!0),this.xhr.withCredentials=this.flowObj.opts.withCredentials,k(h(this.flowObj.opts.headers,this.fileObj,this,b),function(a,b){this.xhr.setRequestHeader(b,a)},this),g}},d.evalOpts=h,d.extend=j,d.each=k,d.FlowFile=e,d.FlowChunk=f,d.version="2.9.0","object"==typeof module&&module&&"object"==typeof module.exports?module.exports=d:(a.Flow=d,"function"==typeof define&&define.amd&&define("flow",[],function(){return d}))}(window,document);
\ No newline at end of file
diff --git js/lib/uploader/fusty-flow-factory.js js/lib/uploader/fusty-flow-factory.js
new file mode 100644
index 0000000..3d09bb0
--- /dev/null
+++ js/lib/uploader/fusty-flow-factory.js
@@ -0,0 +1,14 @@
+(function (Flow, FustyFlow, window) {
+  'use strict';
+
+  var fustyFlowFactory = function (opts) {
+    var flow = new Flow(opts);
+    if (flow.support) {
+      return flow;
+    }
+    return new FustyFlow(opts);
+  }
+
+  window.fustyFlowFactory = fustyFlowFactory;
+
+})(window.Flow, window.FustyFlow, window);
diff --git js/lib/uploader/fusty-flow.js js/lib/uploader/fusty-flow.js
new file mode 100644
index 0000000..4519a81
--- /dev/null
+++ js/lib/uploader/fusty-flow.js
@@ -0,0 +1,428 @@
+(function (Flow, window, document, undefined) {
+  'use strict';
+
+  var extend = Flow.extend;
+  var each = Flow.each;
+
+  function addEvent(element, type, handler) {
+    if (element.addEventListener) {
+      element.addEventListener(type, handler, false);
+    } else if (element.attachEvent) {
+      element.attachEvent("on" + type, handler);
+    } else {
+      element["on" + type] = handler;
+    }
+  }
+
+  function removeEvent(element, type, handler) {
+    if (element.removeEventListener) {
+      element.removeEventListener(type, handler, false);
+    } else if (element.detachEvent) {
+      element.detachEvent("on" + type, handler);
+    } else {
+      element["on" + type] = null;
+    }
+  }
+
+  function removeElement(element) {
+    element.parentNode.removeChild(element);
+  }
+
+  function isFunction(functionToCheck) {
+    var getType = {};
+    return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
+  }
+
+  /**
+   * Not resumable file upload library, for IE7-IE9 browsers
+   * @name FustyFlow
+   * @param [opts]
+   * @param {bool} [opts.singleFile]
+   * @param {string} [opts.fileParameterName]
+   * @param {Object|Function} [opts.query]
+   * @param {Object} [opts.headers]
+   * @param {string} [opts.target]
+   * @param {Function} [opts.generateUniqueIdentifier]
+   * @param {bool} [opts.matchJSON]
+   * @constructor
+   */
+  function FustyFlow(opts) {
+    // Shortcut of "r instanceof Flow"
+    this.support = false;
+
+    this.files = [];
+    this.events = [];
+    this.defaults = {
+      simultaneousUploads: 3,
+      fileParameterName: 'file',
+      query: {},
+      target: '/',
+      generateUniqueIdentifier: null,
+      matchJSON: false
+    };
+
+    var $ = this;
+
+    this.inputChangeEvent = function (event) {
+      var input = event.target || event.srcElement;
+      removeEvent(input, 'change', $.inputChangeEvent);
+      var newClone = input.cloneNode(false);
+      // change current input with new one
+      input.parentNode.replaceChild(newClone, input);
+      // old input will be attached to hidden form
+      $.addFile(input, event);
+      // reset new input
+      newClone.value = '';
+      addEvent(newClone, 'change', $.inputChangeEvent);
+    };
+
+    this.opts = Flow.extend({}, this.defaults, opts || {});
+  }
+
+  FustyFlow.prototype = {
+    on: Flow.prototype.on,
+    off: Flow.prototype.off,
+    fire: Flow.prototype.fire,
+    cancel: Flow.prototype.cancel,
+    assignBrowse: function (domNodes) {
+      if (typeof domNodes.length == 'undefined') {
+        domNodes = [domNodes];
+      }
+      each(domNodes, function (domNode) {
+        var input;
+        if (domNode.tagName === 'INPUT' && domNode.type === 'file') {
+          input = domNode;
+        } else {
+          input = document.createElement('input');
+          input.setAttribute('type', 'file');
+
+          extend(domNode.style, {
+            display: 'inline-block',
+            position: 'relative',
+            overflow: 'hidden',
+            verticalAlign: 'top'
+          });
+
+          extend(input.style, {
+            position: 'absolute',
+            top: 0,
+            right: 0,
+            fontFamily: 'Arial',
+            // 4 persons reported this, the max values that worked for them were 243, 236, 236, 118
+            fontSize: '118px',
+            margin: 0,
+            padding: 0,
+            opacity: 0,
+            filter: 'alpha(opacity=0)',
+            cursor: 'pointer'
+          });
+
+          domNode.appendChild(input);
+        }
+        // When new files are added, simply append them to the overall list
+        addEvent(input, 'change', this.inputChangeEvent);
+      }, this);
+    },
+    assignDrop: function () {
+      // not supported
+    },
+    unAssignDrop: function () {
+      // not supported
+    },
+    isUploading: function () {
+      var uploading = false;
+      each(this.files, function (file) {
+        if (file.isUploading()) {
+          uploading = true;
+          return false;
+        }
+      });
+      return uploading;
+    },
+    upload: function () {
+      // Kick off the queue
+      var files = 0;
+      each(this.files, function (file) {
+        if (file.progress() == 1 || file.isPaused()) {
+          return;
+        }
+        if (file.isUploading()) {
+          files++;
+          return;
+        }
+        if (files++ >= this.opts.simultaneousUploads) {
+          return false;
+        }
+        if (files == 1) {
+          this.fire('uploadStart');
+        }
+        file.send();
+      }, this);
+      if (!files) {
+        this.fire('complete');
+      }
+    },
+    pause: function () {
+      each(this.files, function (file) {
+        file.pause();
+      });
+    },
+    resume: function () {
+      each(this.files, function (file) {
+        file.resume();
+      });
+    },
+    progress: function () {
+      var totalDone = 0;
+      var totalFiles = 0;
+      each(this.files, function (file) {
+        totalDone += file.progress();
+        totalFiles++;
+      });
+      return totalFiles > 0 ? totalDone / totalFiles : 0;
+    },
+    addFiles: function (elementsList, event) {
+      var files = [];
+      each(elementsList, function (element) {
+        // is domElement ?
+        if (element.nodeType === 1 && element.value) {
+          var f = new FustyFlowFile(this, element);
+          if (this.fire('fileAdded', f, event)) {
+            files.push(f);
+          }
+        }
+      }, this);
+      if (this.fire('filesAdded', files, event)) {
+        each(files, function (file) {
+          if (this.opts.singleFile && this.files.length > 0) {
+            this.removeFile(this.files[0]);
+          }
+          this.files.push(file);
+        }, this);
+      }
+      this.fire('filesSubmitted', files, event);
+    },
+    addFile: function (file, event) {
+      this.addFiles([file], event);
+    },
+    generateUniqueIdentifier: function (element) {
+      var custom = this.opts.generateUniqueIdentifier;
+      if (typeof custom === 'function') {
+        return custom(element);
+      }
+      return 'xxxxxxxx-xxxx-yxxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+        var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
+        return v.toString(16);
+      });
+    },
+    getFromUniqueIdentifier: function (uniqueIdentifier) {
+      var ret = false;
+      each(this.files, function (f) {
+        if (f.uniqueIdentifier == uniqueIdentifier) ret = f;
+      });
+      return ret;
+    },
+    removeFile: function (file) {
+      for (var i = this.files.length - 1; i >= 0; i--) {
+        if (this.files[i] === file) {
+          this.files.splice(i, 1);
+        }
+      }
+    },
+    getSize: function () {
+      // undefined
+    },
+    timeRemaining: function () {
+      // undefined
+    },
+    sizeUploaded: function () {
+      // undefined
+    }
+  };
+
+  function FustyFlowFile(flowObj, element) {
+    this.flowObj = flowObj;
+    this.element = element;
+    this.name = element.value && element.value.replace(/.*(\/|\\)/, "");
+    this.relativePath = this.name;
+    this.uniqueIdentifier = flowObj.generateUniqueIdentifier(element);
+    this.iFrame = null;
+
+    this.finished = false;
+    this.error = false;
+    this.paused = false;
+
+    var $ = this;
+    this.iFrameLoaded = function (event) {
+      // when we remove iframe from dom
+      // the request stops, but in IE load
+      // event fires
+      if (!$.iFrame || !$.iFrame.parentNode) {
+        return;
+      }
+      $.finished = true;
+      try {
+        // fixing Opera 10.53
+        if ($.iFrame.contentDocument &&
+          $.iFrame.contentDocument.body &&
+          $.iFrame.contentDocument.body.innerHTML == "false") {
+          // In Opera event is fired second time
+          // when body.innerHTML changed from false
+          // to server response approx. after 1 sec
+          // when we upload file with iframe
+          return;
+        }
+      } catch (error) {
+        //IE may throw an "access is denied" error when attempting to access contentDocument
+        $.error = true;
+        $.abort();
+        $.flowObj.fire('fileError', $, error);
+        return;
+      }
+      // iframe.contentWindow.document - for IE<7
+      var doc = $.iFrame.contentDocument || $.iFrame.contentWindow.document;
+      var innerHtml = doc.body.innerHTML;
+      if ($.flowObj.opts.matchJSON) {
+        innerHtml = /(\{.*\})/.exec(innerHtml)[0];
+      }
+
+      $.abort();
+      $.flowObj.fire('fileSuccess', $, innerHtml);
+      $.flowObj.upload();
+    };
+    this.bootstrap();
+  }
+
+  FustyFlowFile.prototype = {
+    getExtension: Flow.FlowFile.prototype.getExtension,
+    getType: function () {
+      // undefined
+    },
+    send: function () {
+      if (this.finished) {
+        return;
+      }
+      var o = this.flowObj.opts;
+      var form = this.createForm();
+      var params = o.query;
+      if (isFunction(params)) {
+        params = params(this);
+      }
+      params[o.fileParameterName] = this.element;
+      params['flowFilename'] = this.name;
+      params['flowRelativePath'] = this.relativePath;
+      params['flowIdentifier'] = this.uniqueIdentifier;
+
+      this.addFormParams(form, params);
+      addEvent(this.iFrame, 'load', this.iFrameLoaded);
+      form.submit();
+      removeElement(form);
+    },
+    abort: function (noupload) {
+      if (this.iFrame) {
+        this.iFrame.setAttribute('src', 'java' + String.fromCharCode(115) + 'cript:false;');
+        removeElement(this.iFrame);
+        this.iFrame = null;
+        !noupload && this.flowObj.upload();
+      }
+    },
+    cancel: function () {
+      this.flowObj.removeFile(this);
+      this.abort();
+    },
+    retry: function () {
+      this.bootstrap();
+      this.flowObj.upload();
+    },
+    bootstrap: function () {
+      this.abort(true);
+      this.finished = false;
+      this.error = false;
+    },
+    timeRemaining: function () {
+      // undefined
+    },
+    sizeUploaded: function () {
+      // undefined
+    },
+    resume: function () {
+      this.paused = false;
+      this.flowObj.upload();
+    },
+    pause: function () {
+      this.paused = true;
+      this.abort();
+    },
+    isUploading: function () {
+      return this.iFrame !== null;
+    },
+    isPaused: function () {
+      return this.paused;
+    },
+    isComplete: function () {
+      return this.progress() === 1;
+    },
+    progress: function () {
+      if (this.error) {
+        return 1;
+      }
+      return this.finished ? 1 : 0;
+    },
+
+    createIframe: function () {
+      var iFrame = (/MSIE (6|7|8)/).test(navigator.userAgent) ?
+        document.createElement('<iframe name="' + this.uniqueIdentifier + '_iframe' + '">') :
+        document.createElement('iframe');
+
+      iFrame.setAttribute('id', this.uniqueIdentifier + '_iframe_id');
+      iFrame.setAttribute('name', this.uniqueIdentifier + '_iframe');
+      iFrame.style.display = 'none';
+      document.body.appendChild(iFrame);
+      return iFrame;
+    },
+    createForm: function() {
+      var target = this.flowObj.opts.target;
+      if (typeof target === "function") {
+        target = target.apply(null);
+      }
+
+      var form = document.createElement('form');
+      form.encoding = "multipart/form-data";
+      form.method = "POST";
+      form.setAttribute('action', target);
+      if (!this.iFrame) {
+        this.iFrame = this.createIframe();
+      }
+      form.setAttribute('target', this.iFrame.name);
+      form.style.display = 'none';
+      document.body.appendChild(form);
+      return form;
+    },
+    addFormParams: function(form, params) {
+      var input;
+      each(params, function (value, key) {
+        if (value && value.nodeType === 1) {
+          input = value;
+        } else {
+          input = document.createElement('input');
+          input.setAttribute('value', value);
+        }
+        input.setAttribute('name', key);
+        form.appendChild(input);
+      });
+    }
+  };
+
+  FustyFlow.FustyFlowFile = FustyFlowFile;
+
+  if (typeof module !== 'undefined') {
+    module.exports = FustyFlow;
+  } else if (typeof define === "function" && define.amd) {
+    // AMD/requirejs: Define the module
+    define(function(){
+      return FustyFlow;
+    });
+  } else {
+    window.FustyFlow = FustyFlow;
+  }
+})(window.Flow, window, document);
diff --git js/mage/adminhtml/product.js js/mage/adminhtml/product.js
index e6aae5f..07f3041 100644
--- js/mage/adminhtml/product.js
+++ js/mage/adminhtml/product.js
@@ -34,18 +34,18 @@ Product.Gallery.prototype = {
     idIncrement :1,
     containerId :'',
     container :null,
-    uploader :null,
     imageTypes : {},
-    initialize : function(containerId, uploader, imageTypes) {
+    initialize : function(containerId, imageTypes) {
         this.containerId = containerId, this.container = $(this.containerId);
-        this.uploader = uploader;
         this.imageTypes = imageTypes;
-        if (this.uploader) {
-            this.uploader.onFilesComplete = this.handleUploadComplete
-                    .bind(this);
-        }
-        // this.uploader.onFileProgress = this.handleUploadProgress.bind(this);
-        // this.uploader.onFileError = this.handleUploadError.bind(this);
+
+        document.on('uploader:fileSuccess', function(event) {
+            var memo = event.memo;
+            if(memo && this._checkCurrentContainer(memo.containerId)) {
+                this.handleUploadComplete([{response: memo.response}]);
+            }
+        }.bind(this));
+
         this.images = this.getElement('save').value.evalJSON();
         this.imagesValues = this.getElement('save_image').value.evalJSON();
         this.template = new Template('<tr id="__id__" class="preview">' + this
@@ -56,6 +56,9 @@ Product.Gallery.prototype = {
         varienGlobalEvents.attachEventHandler('moveTab', this.onImageTabMove
                 .bind(this));
     },
+    _checkCurrentContainer: function(child) {
+        return $(this.containerId).down('#' + child);
+    },
     onImageTabMove : function(event) {
         var imagesTab = false;
         this.container.ancestors().each( function(parentItem) {
@@ -113,7 +116,6 @@ Product.Gallery.prototype = {
             newImage.disabled = 0;
             newImage.removed = 0;
             this.images.push(newImage);
-            this.uploader.removeFile(item.id);
         }.bind(this));
         this.container.setHasChanges();
         this.updateImages();
diff --git js/mage/adminhtml/uploader/instance.js js/mage/adminhtml/uploader/instance.js
new file mode 100644
index 0000000..483b2af
--- /dev/null
+++ js/mage/adminhtml/uploader/instance.js
@@ -0,0 +1,508 @@
+/**
+ * Magento Enterprise Edition
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Magento Enterprise Edition End User License Agreement
+ * that is bundled with this package in the file LICENSE_EE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://www.magento.com/license/enterprise-edition
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    design
+ * @package     default_default
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license http://www.magento.com/license/enterprise-edition
+ */
+
+(function(flowFactory, window, document) {
+'use strict';
+    window.Uploader = Class.create({
+
+        /**
+         * @type {Boolean} Are we in debug mode?
+         */
+        debug: false,
+
+        /**
+         * @constant
+         * @type {String} templatePattern
+         */
+        templatePattern: /(^|.|\r|\n)({{(\w+)}})/,
+
+        /**
+         * @type {JSON} Array of elements ids to instantiate DOM collection
+         */
+        elementsIds: [],
+
+        /**
+         * @type {Array.<HTMLElement>} List of elements ids across all uploader functionality
+         */
+        elements: [],
+
+        /**
+         * @type {(FustyFlow|Flow)} Uploader object instance
+         */
+        uploader: {},
+
+        /**
+         * @type {JSON} General Uploader config
+         */
+        uploaderConfig: {},
+
+        /**
+         * @type {JSON} browseConfig General Uploader config
+         */
+        browseConfig: {},
+
+        /**
+         * @type {JSON} Misc settings to manipulate Uploader
+         */
+        miscConfig: {},
+
+        /**
+         * @type {Array.<String>} Sizes in plural
+         */
+        sizesPlural: ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
+
+        /**
+         * @type {Number} Precision of calculation during convetion to human readable size format
+         */
+        sizePrecisionDefault: 3,
+
+        /**
+         * @type {Number} Unit type conversion kib or kb, etc
+         */
+        sizeUnitType: 1024,
+
+        /**
+         * @type {String} Default delete button selector
+         */
+        deleteButtonSelector: '.delete',
+
+        /**
+         * @type {Number} Timeout of completion handler
+         */
+        onCompleteTimeout: 1000,
+
+        /**
+         * @type {(null|Array.<FlowFile>)} Files array stored for success event
+         */
+        files: null,
+
+
+        /**
+         * @name Uploader
+         *
+         * @param {JSON} config
+         *
+         * @constructor
+         */
+        initialize: function(config) {
+            this.elementsIds = config.elementIds;
+            this.elements = this.getElements(this.elementsIds);
+
+            this.uploaderConfig = config.uploaderConfig;
+            this.browseConfig = config.browseConfig;
+            this.miscConfig =  config.miscConfig;
+
+            this.uploader = flowFactory(this.uploaderConfig);
+
+            this.attachEvents();
+
+            /**
+             * Bridging functions to retain functionality of existing modules
+             */
+            this.formatSize = this._getPluralSize.bind(this);
+            this.upload = this.onUploadClick.bind(this);
+            this.onContainerHideBefore = this.onTabChange.bind(this);
+        },
+
+        /**
+         * Array of strings containing elements ids
+         *
+         * @param {JSON.<string, Array.<string>>} ids as JSON map,
+         *      {<type> => ['id1', 'id2'...], <type2>...}
+         * @returns {Array.<HTMLElement>} An array of DOM elements
+         */
+        getElements: function (ids) {
+            /** @type {Hash} idsHash */
+            var idsHash = $H(ids);
+
+            idsHash.each(function (id) {
+                var result = this.getElementsByIds(id.value);
+
+                idsHash.set(id.key, result);
+            }.bind(this));
+
+            return idsHash.toObject();
+        },
+
+        /**
+         * Get HTMLElement from hash values
+         *
+         * @param {(Array|String)}ids
+         * @returns {(Array.<HTMLElement>|HTMLElement)}
+         */
+        getElementsByIds: function (ids) {
+            var result = [];
+            if(ids && Object.isArray(ids)) {
+                ids.each(function(fromId) {
+                    var DOMElement = $(fromId);
+
+                    if (DOMElement) {
+                        // Add it only if it's valid HTMLElement, otherwise skip.
+                        result.push(DOMElement);
+                    }
+                });
+            } else {
+                result = $(ids)
+            }
+
+            return result;
+        },
+
+        /**
+         * Attach all types of events
+         */
+        attachEvents: function() {
+            this.assignBrowse();
+
+            this.uploader.on('filesSubmitted', this.onFilesSubmitted.bind(this));
+
+            this.uploader.on('uploadStart', this.onUploadStart.bind(this));
+
+            this.uploader.on('fileSuccess', this.onFileSuccess.bind(this));
+            this.uploader.on('complete', this.onSuccess.bind(this));
+
+            if(this.elements.container && !this.elements.delete) {
+                this.elements.container.on('click', this.deleteButtonSelector, this.onDeleteClick.bind(this));
+            } else {
+                if(this.elements.delete) {
+                    this.elements.delete.on('click', Event.fire.bind(this, document, 'upload:simulateDelete', {
+                        containerId: this.elementsIds.container
+                    }));
+                }
+            }
+            if(this.elements.upload) {
+                this.elements.upload.invoke('on', 'click', this.onUploadClick.bind(this));
+            }
+            if(this.debug) {
+                this.uploader.on('catchAll', this.onCatchAll.bind(this));
+            }
+        },
+
+        onTabChange: function (successFunc) {
+            if(this.uploader.files.length && !Object.isArray(this.files)) {
+                if(confirm(
+                        this._translate('There are files that were selected but not uploaded yet. After switching to another tab your selections will be lost. Do you wish to continue ?')
+                   )
+                ) {
+                    if(Object.isFunction(successFunc)) {
+                        successFunc();
+                    } else {
+                        this._handleDelete(this.uploader.files);
+                        document.fire('uploader:fileError', {
+                            containerId: this.elementsIds.container
+                        });
+                    }
+                } else {
+                    return 'cannotchange';
+                }
+            }
+        },
+
+        /**
+         * Assign browse buttons to appropriate targets
+         */
+        assignBrowse: function() {
+            if (this.elements.browse && this.elements.browse.length) {
+                this.uploader.assignBrowse(
+                    this.elements.browse,
+                    this.browseConfig.isDirectory || false,
+                    this.browseConfig.singleFile || false,
+                    this.browseConfig.attributes || {}
+                );
+            }
+        },
+
+        /**
+         * @event
+         * @param {Array.<FlowFile>} files
+         */
+        onFilesSubmitted: function (files) {
+            files.filter(function (file) {
+                if(this._checkFileSize(file)) {
+                    alert(
+                        this._translate('Maximum allowed file size for upload is') +
+                        " " + this.miscConfig.maxSizePlural + "\n" +
+                        this._translate('Please check your server PHP settings.')
+                    );
+                    file.cancel();
+                    return false;
+                }
+                return true;
+            }.bind(this)).each(function (file) {
+                this._handleUpdateFile(file);
+            }.bind(this));
+        },
+
+        _handleUpdateFile: function (file) {
+            var replaceBrowseWithRemove = this.miscConfig.replaceBrowseWithRemove;
+            if(replaceBrowseWithRemove) {
+                document.fire('uploader:simulateNewUpload', { containerId: this.elementsIds.container });
+            }
+            this.elements.container
+                [replaceBrowseWithRemove ? 'update':'insert'](this._renderFromTemplate(
+                    this.elements.templateFile,
+                    {
+                        name: file.name,
+                        size: file.size ? '(' + this._getPluralSize(file.size) + ')' : '',
+                        id: file.uniqueIdentifier
+                    }
+                )
+            );
+        },
+
+        /**
+         * Upload button is being pressed
+         *
+         * @event
+         */
+        onUploadStart: function () {
+            var files = this.uploader.files;
+
+            files.each(function (file) {
+                var id = file.uniqueIdentifier;
+
+                this._getFileContainerById(id)
+                    .removeClassName('new')
+                    .removeClassName('error')
+                    .addClassName('progress');
+                this._getProgressTextById(id).update(this._translate('Uploading...'));
+
+                var deleteButton = this._getDeleteButtonById(id);
+                if(deleteButton) {
+                    this._getDeleteButtonById(id).hide();
+                }
+            }.bind(this));
+
+            this.files = this.uploader.files;
+        },
+
+        /**
+         * Get file-line container by id
+         *
+         * @param {String} id
+         * @returns {HTMLElement}
+         * @private
+         */
+        _getFileContainerById: function (id) {
+            return $(id + '-container');
+        },
+
+        /**
+         * Get text update container
+         *
+         * @param id
+         * @returns {*}
+         * @private
+         */
+        _getProgressTextById: function (id) {
+            return this._getFileContainerById(id).down('.progress-text');
+        },
+
+        _getDeleteButtonById: function(id) {
+            return this._getFileContainerById(id).down('.delete');
+        },
+
+        /**
+         * Handle delete button click
+         *
+         * @event
+         * @param {Event} e
+         */
+        onDeleteClick: function (e) {
+            var element = Event.findElement(e);
+            var id = element.id;
+            if(!id) {
+                id = element.up(this.deleteButtonSelector).id;
+            }
+            this._handleDelete([this.uploader.getFromUniqueIdentifier(id)]);
+        },
+
+        /**
+         * Complete handler of uploading process
+         *
+         * @event
+         */
+        onSuccess: function () {
+            document.fire('uploader:success', { files: this.files });
+            this.files = null;
+        },
+
+        /**
+         * Successfully uploaded file, notify about that other components, handle deletion from queue
+         *
+         * @param {FlowFile} file
+         * @param {JSON} response
+         */
+        onFileSuccess: function (file, response) {
+            response = response.evalJSON();
+            var id = file.uniqueIdentifier;
+            var error = response.error;
+            this._getFileContainerById(id)
+                .removeClassName('progress')
+                .addClassName(error ? 'error': 'complete')
+            ;
+            this._getProgressTextById(id).update(this._translate(
+                error ? this._XSSFilter(error) :'Complete'
+            ));
+
+            setTimeout(function() {
+                if(!error) {
+                    document.fire('uploader:fileSuccess', {
+                        response: Object.toJSON(response),
+                        containerId: this.elementsIds.container
+                    });
+                } else {
+                    document.fire('uploader:fileError', {
+                        containerId: this.elementsIds.container
+                    });
+                }
+                this._handleDelete([file]);
+            }.bind(this) , !error ? this.onCompleteTimeout: this.onCompleteTimeout * 3);
+        },
+
+        /**
+         * Upload button click event
+         *
+         * @event
+         */
+        onUploadClick: function () {
+            try {
+                this.uploader.upload();
+            } catch(e) {
+                if(console) {
+                    console.error(e);
+                }
+            }
+        },
+
+        /**
+         * Event for debugging purposes
+         *
+         * @event
+         */
+        onCatchAll: function () {
+            if(console.group && console.groupEnd && console.trace) {
+                var args = [].splice.call(arguments, 1);
+                console.group();
+                    console.info(arguments[0]);
+                    console.log("Uploader Instance:", this);
+                    console.log("Event Arguments:", args);
+                    console.trace();
+                console.groupEnd();
+            } else {
+                console.log(this, arguments);
+            }
+        },
+
+        /**
+         * Handle deletition of files
+         * @param {Array.<FlowFile>} files
+         * @private
+         */
+        _handleDelete: function (files) {
+            files.each(function (file) {
+                file.cancel();
+                var container = $(file.uniqueIdentifier + '-container');
+                if(container) {
+                    container.remove();
+                }
+            }.bind(this));
+        },
+
+        /**
+         * Check whenever file size exceeded permitted amount
+         *
+         * @param {FlowFile} file
+         * @returns {boolean}
+         * @private
+         */
+        _checkFileSize: function (file) {
+            return file.size > this.miscConfig.maxSizeInBytes;
+        },
+
+        /**
+         * Make a translation of string
+         *
+         * @param {String} text
+         * @returns {String}
+         * @private
+         */
+        _translate: function (text) {
+            try {
+                return Translator.translate(text);
+            }
+            catch(e){
+                return text;
+            }
+        },
+
+        /**
+         * Render from given template and given variables to assign
+         *
+         * @param {HTMLElement} template
+         * @param {JSON} vars
+         * @returns {String}
+         * @private
+         */
+        _renderFromTemplate: function (template, vars) {
+            var t = new Template(this._XSSFilter(template.innerHTML), this.templatePattern);
+            return t.evaluate(vars);
+        },
+
+        /**
+         * Format size with precision
+         *
+         * @param {Number} sizeInBytes
+         * @param {Number} [precision]
+         * @returns {String}
+         * @private
+         */
+        _getPluralSize: function (sizeInBytes, precision) {
+                if(sizeInBytes == 0) {
+                    return 0 + this.sizesPlural[0];
+                }
+                var dm = (precision || this.sizePrecisionDefault) + 1;
+                var i = Math.floor(Math.log(sizeInBytes) / Math.log(this.sizeUnitType));
+
+                return (sizeInBytes / Math.pow(this.sizeUnitType, i)).toPrecision(dm) + ' ' + this.sizesPlural[i];
+        },
+
+        /**
+         * Purify template string to prevent XSS attacks
+         *
+         * @param {String} str
+         * @returns {String}
+         * @private
+         */
+        _XSSFilter: function (str) {
+            return str
+                .stripScripts()
+                // Remove inline event handlers like onclick, onload, etc
+                .replace(/(on[a-z]+=["][^"]+["])(?=[^>]*>)/img, '')
+                .replace(/(on[a-z]+=['][^']+['])(?=[^>]*>)/img, '')
+            ;
+        }
+    });
+})(fustyFlowFactory, window, document);
diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
index 423902a..2c01684 100644
--- lib/Unserialize/Parser.php
+++ lib/Unserialize/Parser.php
@@ -34,6 +34,7 @@ class Unserialize_Parser
     const TYPE_DOUBLE = 'd';
     const TYPE_ARRAY = 'a';
     const TYPE_BOOL = 'b';
+    const TYPE_NULL = 'N';
 
     const SYMBOL_QUOTE = '"';
     const SYMBOL_SEMICOLON = ';';
diff --git lib/Unserialize/Reader/Arr.php lib/Unserialize/Reader/Arr.php
index caa979e..cd37804 100644
--- lib/Unserialize/Reader/Arr.php
+++ lib/Unserialize/Reader/Arr.php
@@ -101,7 +101,10 @@ class Unserialize_Reader_Arr
         if ($this->_status == self::READING_VALUE) {
             $value = $this->_reader->read($char, $prevChar);
             if (!is_null($value)) {
-                $this->_result[$this->_reader->key] = $value;
+                $this->_result[$this->_reader->key] =
+                    ($value == Unserialize_Reader_Null::NULL_VALUE && $prevChar == Unserialize_Parser::TYPE_NULL)
+                        ? null
+                        : $value;
                 if (count($this->_result) < $this->_length) {
                     $this->_reader = new Unserialize_Reader_ArrKey();
                     $this->_status = self::READING_KEY;
diff --git lib/Unserialize/Reader/ArrValue.php lib/Unserialize/Reader/ArrValue.php
index d2a4937..c6c0221 100644
--- lib/Unserialize/Reader/ArrValue.php
+++ lib/Unserialize/Reader/ArrValue.php
@@ -84,6 +84,10 @@ class Unserialize_Reader_ArrValue
                     $this->_reader = new Unserialize_Reader_Dbl();
                     $this->_status = self::READING_VALUE;
                     break;
+                case Unserialize_Parser::TYPE_NULL:
+                    $this->_reader = new Unserialize_Reader_Null();
+                    $this->_status = self::READING_VALUE;
+                    break;
                 default:
                     throw new Exception('Unsupported data type ' . $char);
             }
diff --git lib/Unserialize/Reader/Null.php lib/Unserialize/Reader/Null.php
new file mode 100644
index 0000000..93c7e0b
--- /dev/null
+++ lib/Unserialize/Reader/Null.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Unserialize
+ * @package     Unserialize_Reader_Null
+ * @copyright  Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Class Unserialize_Reader_Null
+ */
+class Unserialize_Reader_Null
+{
+    /**
+     * @var int
+     */
+    protected $_status;
+
+    /**
+     * @var string
+     */
+    protected $_value;
+
+    const NULL_VALUE = 'null';
+
+    const READING_VALUE = 1;
+
+    /**
+     * @param string $char
+     * @param string $prevChar
+     * @return string|null
+     */
+    public function read($char, $prevChar)
+    {
+        if ($prevChar == Unserialize_Parser::SYMBOL_SEMICOLON) {
+            $this->_value = self::NULL_VALUE;
+            $this->_status = self::READING_VALUE;
+            return null;
+        }
+
+        if ($this->_status == self::READING_VALUE && $char == Unserialize_Parser::SYMBOL_SEMICOLON) {
+            return $this->_value;
+        }
+        return null;
+    }
+}
diff --git skin/adminhtml/default/default/boxes.css skin/adminhtml/default/default/boxes.css
index 22478d0..ce7cb41 100644
--- skin/adminhtml/default/default/boxes.css
+++ skin/adminhtml/default/default/boxes.css
@@ -76,7 +76,7 @@
     z-index:501;
     }
 #loading-mask {
-    background:background:url(../images/blank.gif) repeat;
+    background:url(images/blank.gif) repeat;
     position:absolute;
     color:#d85909;
     font-size:1.1em;
@@ -1258,8 +1258,6 @@ ul.super-product-attributes { padding-left:15px; }
 .uploader .file-row-info .file-info-name  { font-weight:bold; }
 .uploader .file-row .progress-text { float:right; font-weight:bold; }
 .uploader .file-row .delete-button { float:right; }
-.uploader .buttons { float:left; }
-.uploader .flex { float:right; }
 .uploader .progress { border:1px solid #f0e6b7; background-color:#feffcc; }
 .uploader .error { border:1px solid #aa1717; background-color:#ffe6de; }
 .uploader .error .progress-text { padding-right:10px; }
diff --git skin/adminhtml/default/default/media/flex.swf skin/adminhtml/default/default/media/flex.swf
deleted file mode 100644
index a8ecaa0..0000000
--- skin/adminhtml/default/default/media/flex.swf
+++ /dev/null
@@ -1,70 +0,0 @@
-CWS	-~  x̽XK8i޻E.X@PH	ABIh"`î{XE,b~{6;sΜ3sʜM\A .	RCH@wTPinP$5kL䔓(:xyy99::< ZXxR$-S&buN8Kcmd%,SN<!/'I\] 7_,|94.c 9l_ȑ
-8u5hdi2!?E3rM]M&X㔮vQ;rNqJYI0Y4'9.XǑ{ax!GIqu|թ|hoV@| gH aꪭЮ,I"ğ.	yII\)lXp*eZqK8<DqDH;| LD D$qeh$MJb1q+91Ӓ}xZOɁ+E3rz@_*D|Z/ߔ4iG"N
-2:PHL!Oy*t('%!sR%K8<.X"KE\Y\.,YPJ!THsHɂx4Qf!s"eZ
-ϓHx)C;3qOB.|*)b.DD9YP,N	',AmD2
-+Ej(t稕+7P21Oe妉0fQda^RW}D`&T
-]?8-:K,R0X'4?2s=xrTAddRԈCÆ*`v4\'ND1QaCQWGgGGgFpTTD
-àB7a"hGb!L%	/'7)ޝ~)I,{wdè&ILz6
-zK#g4Y'3H$yF=H~N%%IeLapS#DIII0A)2#ĝVx)aC0Ȕ2̸f'8)ehh7҄4;hҬd)!NGm	c)qS@Qp]1@GDffOBD2$!,Iy2U<N0:Dr5*Y MBc
-d|i@d XG'D'Nc9*
-
-aL7F6J	'IdOFpsCTX8sDex0Ȣi7k̿'#f*J,Ti"w4I	88^&w:OF 76')",F@j\tCfX&Q"p̓p#[q~$l
-z`x6U5s҄SC9z ^JEɸE0,6ENejꪓm]]]7;?ѡON% 6.ndD(STT54I:=zDUc`B3րf4͜7$Q(DJRBI(사Fc @QM(jJCQ}!J6BQc5AQS5CQsX%
-P
-QEmQEQ(ꈢN(~(ꁢ(ꅢ(s 
-B?@d HCA
-Q0#PXT/K@PAA2jE cP DA
-D(	
-(Yr6*|L(P9Py ՟a JX}1/Km
-Ĭ(y5k-i+ !!;/ lMi	&2;=(E P@	uoNwj7" FJe NWUuk &	$C 4dP}( D L#(a  ZV Q5@4l BF==4P%!z}}G@C^Np}DҙX.J!n9ؗB2')QPs
-уB6G:SdF6A-
-	P9 8 fŔ#	!Z' c#P(*^휠dB&9T;'|.%\Z}=,D7K-%YQD:vDnY"uflY@'T`hg.K#JT$ZX,LzDU$$	郰>D[ye(&F"l?6:P,KD%JaEj,:i*Ah	7Vtp=Q/A2%\zl
-?mҋFl"l(JDaiq޴Km`F}njqIP%'X%LH&$%	7BA
- Zu *%@ j$:0! e}a FMH8P^ B:PKviw˙L3 X"!vAV]mbNeX";a،W`JKԀR@;:	;*JTh	ێ
-OԲh%u@"Ԁj	B&A?B#yTE}5ԧm:>"[lDSq"D`eP,&dWJܨT*T;8B3{L)B"hB0c	:]"sH$aXNÀj왭gyގbΩp#ad6-N>pF&bX*]ANfulr]+}jXW0n+$U&`F$sL%loo'ok־=BA3(!,$č"#h"	IDHC.MY}#F:'06Jd?ۑه5NnA㻃
-pPawP &fM,N,vUT &YypD(+-S6G	ɄdD zFG`kĂRjs 6갩6`Ή/M5ؼOؙ#		ЯL}}1Fb-Y!y-Dܸ^Ğ tq(b
-L&! hI"a$I"	FDutu[/Px,ǰ;*|!^Iׄ䐐@.0>ܓunF	P#jW(A{?!.+m	ݪAmG`AaQN%a	H-G.j)Li̆XSmѬƲ3[̖:e,gv3	b%`: V;â. &UG$33@b1pI5x8S.e[cs؄`/Q0ıփ:l&!k00Upa;<()9ɤ6
-&Vׄ'V;ؘX#aG#0n_C^b%uH 3pc ڈ $DyZa#l+78y	@$Q50,)H$u
-p#qتg ܩXs8\
-4P>6\K48BEǦZi!$Xb"3ܿsyvZ|9CRP}*sу7UЎ*٩2!/_i"قPꮰ^ET7Xm+M02+& 	&ې/OF'lH9	n	cx'6^/
-0K?*)8	26%<N8;@mm\޴ە4
-KߨRV)UΤ'ΛVft
-AAğ/B<v(ի7O{%$w`Fqv߄uSw?|d@{SrM[l%"2",ݼR$|!vާ-	zz=yRs&C'lSO˼%Q;G@!dUDɽ[}Шa~M\$<{<aQfwG'ߺjbW^ܣ?c'಑WN~ɻ_j鮐{+\~=w!?	Jy777bM6Ue&{?V8X._~x{)mϛOf|7:RwFM{cו{#-vbs/okDzEÞzy}ڿɿoj:r1~QЕ'5k^a[gha[i<?KBs{.4yly2'!ixʀ^G{`5wxJN5(~8/ѕ*O/<ה.>Gm"ޫ̹Mj	q}*MOYfd?qSeSЏ=c,Yp/7kBɜ'YgQ~g[Un4Rx:qw?8ѻltk_;+3K^9rv\8}+<=+6<e݉g/m֨_n]_|hmZ:wGcNaUZ˱e,~6uګ%]37oLgF+k_=s&}q)ZzVf/$G	vMY7
-^]ke֏m_XmиqhX3c3{oP{}ֶ/-޽&u785vJɫKo;apzJCZ;i#ͯ3=0㵒yiZ9_|s99cXsEKծws`gh-*(dl5ZTf_ϳ=[nTU"x̭X?Z48\ͻQACNZ-|wÚaKlw޼nh)'?ڶW:`l{Mfe=rT&GOE8ʵüzh`pֱ%{3tdPGm;ۼlad'w
-VM9g۰*K7$ٿ{akiW'ْ}n.cHU}2QfcNŮ	k>\{֤_JU7h00)b
-U2bJ%{]qsVP̼Ǐo-sKW\h;r/_e"miSS}CQ񗤦v""Z֩яɘNn9R|Ƈ~NlNdRljGo$mCku-=aBLҏqQ?=fü'u&,,(6_0?.x!}8[;q+Gd>hiiN}RgUs.Y]Ф6UǱO<酉_%?/Xo7;f~YHCZ:M,vOXk̀ïÎH/W=T1v+ڥS%/VMT]6p}$\霭gZwo2v}A%Qivg0(L)>r'ڶz;SIٞ<6mۖs4.!b}<ѯKX_?>MF3y!^^-FsE3ɿ4_h\bX;Gn9иƪeNA#d:Xuݽ)'J7!#^1Ԝm)X c'S["u'w;3~+7FforCsjIGwot)m:yz,KMT~v>(lqʺ3Wçv&/}ma֝)oNzhݷ%tMp'ƅ#>H][NnBYw\>´_S#'je tѣ<o>!>{?>m^AG:ۋ}֑6ɻSjxy,*~deIq?Θ#@9}ުUZ]*]ZCi6FCM|!n0unu`mKrQAImG*~{nr޻K&Ӎ/f7'
-Ύ\x%K/.^pS$݄{8-pfSd^֮z(}<ڵn$N/G~).fIeo֣ʖk7M}sۣ^=G9R_;譞l?;lXWgUҋ.m+8"[xOE+{3)cI4}|OKW}'FGؘN$VN<ehKf_WΝ>##;´L_lbd"yuG^>ƆS$}sϥ>Μ+rV/co%V=3k4㳍gNf*VY#V~w7OOڷg	GȺ <C.li>!?ؘo6;yD[>F]A:dYVշ@[}>N9:JLu`$*_{鱖o>K,x,޴kX/z>Akcy#ÚSsOe`?w|EńFQ]èwߗDX`Uɯo^8W I9fcyz"_v.z/14{_~zr<3)Ǭоk-Eon8.>l[V" Y~0E#ͷXpN>=s5iIQ'^]<r!CmW/o-,U?6ha|%&w+6%ڸ;Cl?V-{X\}߶}:BбWPcES4	&W};;rc#Ih#o@I̢Kǻ4_OCg6Sfo>fE[GmO7kq{˓FO#J|Vt}Xf=?kM?ymӮ;\R:账̧s_.ptrr'4K.L̘msV~F@X'b]tTg鮭Ff9=]4hh:k*EBVi{PPpɷ|}92Úx{˪3J~5:u/3\8`[*GK}TYO>\Rj5/c+>42BrsƜW|W~Vٚ8eMk{\5!A̥MOԍʝ3+MۏML6Eo}꧟3fؒe2y{4n̂3so+B6x"g&/ZZ'?9S6><-W_]g}9>̘gYO7xNz{sidmsW[Z"9ұUF<Z}ctpՑ'YWQpYǩ&V.=jO4S~<+Ow5!?*5X;-ǄSvkS׏31CAqoˈkdpo5Nyz|fciGQ|Spy{]bڏ}.xiȇq1sOL~C+nǨeeՓFSi^5krռK.]eZFדN,If^c|'=+_V|23?߿|Ƨv筵ϗ5'c|@|4wcn~6otD΀zZ9ρg8}ޮE/f{soj[ 2k֬ev}[<kLUDeKĴ]>CGS߲ѧ/]swW5\O>Prutxu'*]}-V]~y5eY5!ޟ~Ųvw1͵'mfk^>߅ĩM}f-?RgV/}vxI{TYkZw:+/:~ђ"U':Cv;N	zaAΜԞ8W^dϸUۦo(s9꾦~,d'{iA߅7cnq4H7/K,լ-T+)o>4;c}ɶecw|kp,@L78SYF}CwH3_{%.ro|`hyZR1By/O-
-9+k2EϏi_kO2iF;0vuc}>NyE.pA><g<{}So#ƣQCl<vˤ6cx׫%:wq_WF.඲r`/oi|iɗ'A-Y')xIse.q=2~\>XqOM{Wd3+{F4I!u.ߞpԴs8;jw+WlvU%_*nvQ]RQm_7:-˗ש{e<}mfӏ/"N~ٲwtmFs׭Z?n ]m[5coaQHnt/^1Hʅ<^[߃לy6G;Hf1uL_氇d(53HuLFiƆkEZI#9ܲw-ZCz'o^|}WZ)ǊKfW,1[IW"$<8|8ɬ3owQ$ޓlkewT9+kQ暴ICHm'nfV~dt&ieޜmNks<mrnHPs̬gY_\OX8gj*vكE6ѳ}L[m.冈>uW>1f3Z+?Go7OB}?
-88oߟ'ڑasSqyiVn
-V៣^6K8;$&ُN+y#3w~{tXWc/PKUsyjiATtt~%uK>@:&rU,mrc Qح+E:u'sw|tQd0_&lWӚ_<@wo)~^O};0KOGlL/83}=زŸ$g鿨	ͤ3Τ2GFDXNy_$QQ(xkWh늧<n\*zmmzi3#~Ա~͙9wϘ_[JŔgQ jyI'&^^/}02΀Xm8;^s̅
-6J}MM[bDzy\X/~ߔ3%nk޳(O/9ݲ΃s|yY'^^_tl,Q\#mُ)y1E$qz-^'k_,I|i}$I7_;̈7:_Zy[Ѻڗ.;[Fs%^fr4-(|+$g<]vUᏩWm}yKSxkS9d˵/:5ۀmW?OH2~Nۆj :kߝ}X4wBzRƜCoս>R ekKO*jH%.IZ<i%T}EzG]Qen廡pl٥^~<{mōk>gz7mGtݥI3VhFꡝ{/1νTs퐸_H1ۿ=ٿ *^};v܀Ц'gK%99?Zʯ:DkޯʓLnxX5G+l,ԫ4vþIYT0qoBjCgܟqVPm0~w'XP=QgБ<m}ضrʳ}rtޜ8+@~\hqE;zpc5c]z~.5,Ϳ^s	^qk嗕/Wڛ_e93"N^{$-4O䟛j՘~==s^8|V9gI~Dr1ig=X9*JݵNQ<ҹG/:#.ɅPQMzmqquo{nB2k7ǟAVKhߏoUH=E:ykSwkb,o\ ^-<=rpeǾ̿耖WSLvp자e
-Z%QaYÞmZi}mߴ~eN#gZxRqoђǝ{|T#eDwیA	%s<Wܘ+y6Qrl_=棵ɓ!}̏ͤ͑E	6	ŕ]ԸS#_1dbH7Wbux+pBw?FRۦ憝YҺ$O蘗6:c.6굽bqZzjQԣ_4Q3rvmUaJto[\ͽz72'òu^l*os+uikvc_0=OyXh4>*u^_U~IH=oMu{}y?3`^k.X9`~{:e~]fUũʆH!:tyE5&f}U~t\GO/&YVq;0W(szE:'	VEY5-ʽN[iokG#lz?ZQb@kwoWhKoKoФo6;?mog$u_=oP:dSv4įƷH}j̄ZJn╟81fC仳t*\>쮦YA-ɕ__ m'PmY?>bb|ߍ6g]ԗSc*eQ_6`nLsґNKGPSל]tU#uP4~^+CϏjei	\l#@ojUYK{mY=ԭ5ΔC4+̧G͚{^Í'J2q6`i|kOHcG {n)^jP:;Suaқ_;Eܒu~	*+6>gG:8n	x{s$$\W/	m).kh_g>sRf7gݱ1c]>dmol־k|&o7k\Ӣ(ɘECe?qdxR	Ngɟgyl˝5nnHu[{Tj[ˈ?!zęAlZݴ(I"'qIŮUں.%7\Ԉ(^Vw]Q:tшogN7iVo692g,cE/4GfBg<I}^YEIӒwŮ{ćhr^#煏L&n*ߛJvj]n-Ii<ِy(mv9}~c½~?.=*8Ԁpf<͋e[^O%͏פvn׎.G+" R7sD\1<O=c}ɱA2}X4S#iF#^ۤ~'+\t=+n;u/#k|j̹DcUoZ
-0ɱ;^Äzm5$#"7m%V]}8rfi\>quA΢;TKɜy;rYbC	Y#e1CWZ#zчxրA51콋g|mn2ܒK008O?jXce#FXCzZP3ܞMA
-֚iAj!ۇܾB51AU&^~:t\B/3#U~<>qշ;2:,uyì][cܝ^~6WP`ĺܦ>OMnɛy_jeQWzm4%QLO#|}[urM1e&VZNўrͽ{i*54˗G֘Q#"V7\ؿ)WmޒǏ}wܹ-9긂gJrZ4kY}nL[bEَvcY_M|KQZ}Hz؃a˪}?IIן 	! 4	/M
-R^R8G=l2MKA!2*~N'NՐ+S6Fo&mooG7J.r}-:k.GH_67_^B~tHYwrq_7f>;l\:?hz◯+iK?-j[Z?%><3ȌoW&Ƈ~?=鮟?*7P;rh_b9PC@zu,	'URsSZݡY<Hh3t<CN<hqFW%,
-Ӱüa%ͤtp~?EEB<.TQ])Y"b+Bq2GHpC8:r0N
-9\R9<z$-'e%HC<US@;)/*âjxCa'@b1
-+c@}"'eJę<,*?/dQ&LǠzQnhTNqY^ȴ@GM9*)*A\YG !z0ĕJ8X$i?w|HrqQy8susƅ{+E~S~[r3u\:5?TYR(òW+6}=\sua۫WȒ9
-f}yuܫePp&Ixb	T_,IB')z$|Rj?ӥ{?7OWțϳ{_Ͼ,zQũbW/7g//OyYI.n^n}=]]=PIx#`Yb+u"; :'{40QJ4iI-]3R&
-QoZ+Fq&G(c4CL0Y)r1-R0.#$4Hp4Y!q
-V$0C#,ׂVJ;\T+Ffk,ct3F`t˗
-L,l
-2-ךް|؝%Ohިcadc#d*	ĒqA]f(weN@Lmrd?,K4_)HUpub+NCn#%,Mq")]&VˌH8N)상@N7adrRR29\Q-{ldtfTřd.J7RJ/J8)X̒o
-QZ*]4x[uđO8hHz(\,ERsгTSSᶫC]/ERf9{1\MXnHLlܳ'~	Gƀ^ݙN[#3Ԃ	O0KJƵ2I58\MAmZ/iFStTr>	G1bҲ5(U![UNjfGVn8y4n	G[:̯W\HlyI(;J8TQ(HÚVBl'R~7NjduP)pRF t8hn9"|1S)K2W{ nhCaa-Z;Q`&Fྀ[0+3:=MD)-xXٱb5̮C#S#U>07nv*RhS^(|{aupt-pHF,	zj/*r]+#/E.B|Z)*!=SP$T,keC+"HC:nPyb7H%xágexhV%-`%J>.G#T(]ߖ`%S QG|P ?%/p-ai"$UdQJIǓ.*4i$6)<-[ikEbLYSXf
-O)ʦ'_Ktc9Tlx6c4MԋC&~@GsRl,26li/4#00\e/1W:Jw.6w)p$`O#xڜ2IxR2ryh'3'4G K23i8ML(:`Rx }!~bZPx?ιFoo</c(N@%Kx jm6VV֡]sxtủ ]?ݿtututuCCutQSUil2C҇,UXDCt&dXҕ AނeCQJ,X8l 8cW`(R(D<
-@ˇR44(4]%@i2P1
-Q	4Ef@Qs(۠v(GUD(%;47T/
-Q(DJFIQ}P 	 !@(5EM#PHtj2(̑(3eơQ(3eF	(3e&L6gI\`RPGSrӱ\)4JHb!3 | *>@@-|xW;&h$Tɀl@A,TyOy4/ f!uZZByC"/PZ JBi(-E-PeJ0aӵ@HC6VxmIhjd[-%J78'I,
-,[|@D8Xe
-oP~ ""43d*:!v`//\B%,5$otTLT!:+ j1s!T4PlM0 BCb܈F  0 !U@n]ShD˜HSAbh	{2AT	6[Lv+@8Ɋ"V44'f8uiAZ7$s}!ޗx#tģ/MxYĻ/ 	C[ 
-F|(4$;dpDdI}	H_D "@@Hဈ P5"u BH8BF!h0TEHHBFrj$ajD}1SpAGEUqB ~H LԈjarp5J5RFbid1fE L@(@KzHD#`N$S`IB(vLB.<A_$? !JA(/IПHz!!)X88QHdh~ k 0s@@t'` SJ/120C٧8LO fX I	E8C#p;'<q(ۉ341	Ib%bJvNLc{q '*ƉQF,E)-,[u%aoDD3$jw(K\NIFMAFF`Bk#l6`9SM8	cXNN$SX,[*kDCk`]{NDt"ŐM
-oRDvtp(=&r;	8$rgz5:8C?(}16.{u?r*ě,
-^q=Kf K9W?Yf*Q gBN%^4^J.]yMy],u3r>p(q,6fvpBZ8a#h"'_P*?J5ۿ3M>I},엃OεX*p+{ѭ\W®5Tr=`m ]kcƦ	Or߂ Rm%.ѷB2V0?6ޡmntS/.^ȝ=٫Aiui/dYrpLpC:צ=ۅ8u}q9)9)R}"cqO{vWWF֡?]mvYw#rOJt 8t7^:O©:/=p)G5(`pΣA8?YΞzN ydd;ԟi:tvyܟIIAiDW!=R!<`].r%/Im^ KC˽W {y*`)WA_g>Uo8pj{`+oى=I?jPq/
-_'nu&ξO
-Nª[qT:u}W;]ʾyy{~ǽ^ߡ\;~WypҲ2ϼ5ݯ?~{mXdߏVǽ~͛>z
-^f@6B UY]{.>|ԋ^.B-OZ5`Rpݫ7@~wG/B'((9A;BIЌDXrʔc'k[*F 1(;<-	L'P-.qj *[gAhɴdq1v.R,	}6n,}t_JlT ;.[LM&9X~qz2y>lLN&ikogktrp'Jcf M&a<B T%BCXtB74ڠv*J&=H?aZ\օbeU5,߾>3u퉺],< NXk*#iu7c*$
-4Sz	'"MBőu		5`ݍHBH0-k4@x&!m)v\RWEjLv\ $&Xmf]D@"PoԄ;~!@ {j=a	$İF``?`e&؆8c,:FHbII$r̫LjBL@X5I@끵)x$2t\T~BJR@ITL&S,WhV1!Dy͈U1K&74$
-pHɤZv_]"DuQ֫K:.4B:t:|Xs=Efp)XfpLn}Lnyr_	d6h[5LGV3OlQ"%A1Rw|=ji,Y`	!ft,s3.mYD{vXe@[X"T}0
-?F}CHur3;ϙ=Ιb)Yۭ`s\=r)2'{>V/ TˡWv8 3'%fy@F~!XB̛Io!pɊC +'7Qq@ڕ4E{.2mYJ<4<₢wZ5`ԸU7%-Wwf!h2Iνs9{:OB*5tDF%Ux1Cd8y[`|x.HeDk[`bo҄KED8Z	JFKȝL%,j$hrW\VkYNgI0OZqeb^\bl{du dryj*: k |A=! 25Hc7SVfNYW/9[;m*[˷=JRhkmEfQ݄E0g䚶CA%݈K,*$ESAwS.Yim2kqI2$SMvP-s#F&VXTl,'64k4kzC=1nKv/FՠY~(7],qss<Rx?Kڨp6bz$}%eh=
-DZ8sz*,ܶCmz fgp«A%;1\3)}oS8|cST% 2gd]sgeX JpDwjG[^΃Z?pJeȑxeX稄d%S{!$aGԥwA}I6suW7|gj/Q2i켹tӇ#a4|8Ր|1FDn.lJn-rs?B.$:b{+ְC 
-^KN C{#C*yE0|jl8rL}'?\?j<?3 ogG1Hts	_̞AZ󀬈iaOiEƁZq\Q-uQ	
\ No newline at end of file
diff --git skin/adminhtml/default/default/media/uploader.swf skin/adminhtml/default/default/media/uploader.swf
deleted file mode 100644
index 9d176a7..0000000
--- skin/adminhtml/default/default/media/uploader.swf
+++ /dev/null
@@ -1,756 +0,0 @@
-CWS	 xĽ|E7U=5=3ђa,؄eY,FdrXIp7̎4-khFLl˻{q"d1䜣	&L|S=={ɜSUSN&E,TV5JQCkbw67mJTښrƏ7o޸ydgunwmgNwN[c#h3lr0̤[(0vSj7_P6%L7S怙Yw+
-JNd}⃃do?g?;g^|s_*n=䒹Ok"cLI[voi-䗩$8Qh>n)l&1ԋ6(ٛI%~3PzN:3Ϯ@4Y3S4Oӳ}ڧɸ|X13i3{[vN-fuEv(}ʍd~wH *[ȿl+Le	3Qq֊u[9s`Tn* җ*8e'gUPÿTk#{oGt&.\pa#wf&ݟ?{VG"p!_h~ђԅk"BmMb"ϋ6Vi:ßӕ*ّS{T+uwD}j;z	0Nk]|,uM<~mON-7&Wld:W&q\"iemkrdz67Ll|8dmfd2ONOIɜMe*]L&A@jRޕÈQ;QXGdz,'49LY=9s~.4ENM5ĬKz!ܺz/00mhxڢ	Zc5-+ٓL%sЌlf撦2%DgF'g3iԤO<]gɞMFi;́LΜ9NY>$-453d[V惝!CqM?\O'z2T)&1Le>>S#pʴj&wuus:JAlִ2CYp2x_L$ĔG]
-2{HlNv͙-lJ$:(wk4NLgmVyg[f c[+`gMe`ִ5U=G~I,l|?kUvfPȋmw>lU7Ls8[op?Mr2&T*:LIC\&]<	sfIsM[C$mV8j_-!D$a̅fvv8L
-5 uS)˘43mQ0ؑL'=)3ΙM0R"r1$WJ8=4 Y3b5e|I2OTk̍b≄QeLDeN+|ݼ1k3'5Gc5#6+rБA̿īNZ$΄ꄉmXӮ~+s2P)_u	G䫰7drּ>Y:O`I	*MiXQ*0)MZ>M	ό-$mv8 K4Md
--Amf_2ܶ儀$-$2YJӣ{H* \xj53
-%-7/X~{9[B;HbaHސUI@|cKS?'|I\`6՝/鉧4K&rfʚLd,{^@917K/mȞͤRԕ8Vn}lل~Ym`05D*ӪơK&{Xkon(J.0xj?O溡o$h;iqk@q #.	x9ym~lX%STV#^9S)QewcLE.oлO[F}KGVMkǒ;Jc}Ix*%Ĥ|mݙ93XI7Ҍ(k)4KNdjM	3К}>Iv27=;'kO/9%28Y.Ѵ;[<-VJ!NA0%m)LJ7b@anc~jϴuLe	I7jy-+9:IU\JmEl"fϽjbPGܢ$hJnyK=R7W.d4yQ[2srI,;V$n Xs|`rXfΕf`d"#.Y#6T̀zXN8Oگ-)xvs4
-EҟSGZc1蝃Fb޵zgBCS+7K-U$e1Y"e3QFj,7+H<{.m#8-DR+2=M@Lf	+ߕ_ϑlVfeҷDFJSHTa0SUWDD({VgrEmuH5_?*yl&ODvpҒEIWz7|.̬`֒=3uCU63	`aV%h:aL}֛ӵm1iȐSv.q=q|`iS_-tru|3ݞf$42.oQ.A'aȶK2匷G>֔Xw
-r#6#9Z>{Jǘ MhWZ~~3sjِ׸lyV5	b^*ojdѿ艘m:ZcQ%t RP*XޠL[QjMυHXWəT&@s6;ɴƸSf^_0tkj3;aOE-&Y$*T_zx}sc4_DiD]螃Yңl!DPc<by_b5n~-u˝+ɯĬV*1Uu:LTk1]aifMl=y'[cѳ[QZҮ٢0up))QiK :HUk<[Y[Js>6nFRadckTÓw
-TrsP|Nu+I^J넑!=
-۩D$IS-d)k7eƳ2-YmULC4])p$Ob%J(pSfvvюpf݅mk1DQw3M)jW+j\фs3^>epӘ?t?_א" *=ٟPLݩL9c	E5$F2*W-R_ꜝ63MF1X˽AXrRv,IgHKΎ7DeD	eC:oW楆7S@Yh_l5N'7t\LSЖ*{5HiHWM^em<WNr]شUV#\T~qdE@Ĺ2WiYr,("fo9EuEgvѴ̼d;
-Al,PӶnԆUAK}&jlIgE764>jȃV3#9KNO'WN956$cQymZ'ʫpP?	ňhP6PUKf[2`Z&zbfyMb!K4C7P[g[a"sKLZ˞{|8Aۮĕ޸{>*)Xy]b3z`lV{Xtۻ*%l|"Kt̩h׌փbѩt6ÄLy(ĳRsHãpHl%!]$a/A}!WՔVC-U\@\e!SN0mnk9aeLf)p"S"ԓMnogn(p"&9=\W%`JjdX)T!R\⊘_-`,%U,vre1Bhbsi	ŤR*cE"%8ҢI!
-[N3Ҷx]-NUfFZ iEQ6}ִm흓ۧu^)JuYc}r<-B\6S Ўy٨@|~r`h(]掸UӮ)`*l,<߃\Ac[*љV	yȧ4ih]=zv|ƅ{d:(,N۲t
-{&ZLRG4S	P^G[g~RWش{2mys'wz{^Qg͗Q+Y?rWڼ!y#4]&DҒV[ةɴs#|JWǤ=qLa7#ci Tf	$S/ډ<Lc:*6ߴJOceƀ[RE2ݛJѴ
-Yۺ2{#+=2jGaE6"Vڬe󶤹FLOe1Ѐ	Ýz'=sc ʡ),ä4*mX+T)EBCٔ;Z)yfg
-,,w{I.-ԈMg%oY#~U8c4lxQnԢ{D-̬5CŴ YU.cBmMyx*GsX)A?GQZ4^nP%X7O(%O&Fm&#\0CKM'hc8h=_a+|WNJ\;,B'y&I42 SH^^Δ*&Df{fji6`	Fʋ>rY{Vcd_N'H, z3G:κ|uL<Y)l{Ea^xA)L@F3\}ܐW)r}[^8k岵T( /JdNIXLʋ9+/b@oY^yTdDh׮F&.Hv8bzmMN:v _Fuba7(GSXUK6D-tXG	*ܰcLˤ=/:8/ީ75>X5Dz1,hL6WTyE:'S%gՖ:3Yʚ},عP,[obZGEc>άnHUVCEpNIN)I)#BsA8G^MYvFua-sչe}Ck_MaF{^O(~UA!!AgڗT`O. 㔤.12rv9CAtvb1rn5Ʊvaخa,ٝv$Ҟ5`9mϩ7UFz2XθqVġA(Q<NMZt%_sÃft3[˱k{OܶI?hFҢ3u Qd@eoW2}DU:lh}#ʼiPqGDLlg}Fn)[WX=jݲ#޸1pOdwh'o.{M(N_bBfٹ4pP*mUŊs!+XwrìIϮۜw{FIiyn̜*Nj"d@|NESl]Y^:VAjQ&=1s*xc'}g&/3&xХ!V2uius<ah0`O2;S/AG!)Fǜ˕75[BrOMLFئ옰cS
-~=`-Z{st"OpNJ}V=#	ls,=4YU/.zv-| &9Uzꡆվq̑i)m<xe6'
-Rt
-	nk]mƌ-Ü`~|5
-Ŋә4XEs-`ߔƳ8t2X0	MϞR5@>ʿǆF* L\&H(Un7ýf-^.:eYipʏ`dUbxJa@{W5LLfvmk礝!EAzE
-D8W[mn;uveOUѶX]OhgѾ3OeZ;j1fW睓ŶBHAjL;)L>-2npfmۯ=6e]ZkNdzuB8+:m|1FMO&n{:i(xƌn4){9s??II)oFsI>ӽj.m֨ܞ y0ՆKiXl֦BAVvwN2sjlkS ĦtNmsߗ	HEEcO^:ۧN?=`]Dn0'anU;~U=wD3&`/pXimVv;U5=vE!y(𥍎{<䔈c=]P>ZrۦOk/Y,<kzgl6T_Δ4eWhe+9":s1&Q钮Kje:ђb+K.k<kʚNIFQ\|r+[ftN+Ԡof[O2C"8'ZTRpD1]+RIamSZgvtIᐘ
-'@)퓻ATօ!G3;]V#]_WrJWtz˅!nE W;ҞC#>eEM>cO3_4*h،3 ]ݤfvĈ+nRDTw2>|N&w)J~54R`~6gⷱ/"R hl)6l+jOsn$ /+ݹc;KL?(Ϗ{ߗH~VAqfīpEb΂7yhG[>ﵺyrka-,*}Kq'%XjՎ¥Ug-$rlN-h4䌸wֽҭjuvEI^bZI~ ԙT[<#̓ P5*PZW1>R$ĐEbuY7ߴ\xc`Cy"X.9过:}ZُV.gE)ʺ:[..۷1qki쐕dʻ~{Ԛ_14Biӡ.wL u	7;Wۦ2gVɰ	>}XYteyXj{C)*Oiۦ$%^TR-#ߙ{ʫCBY~NIb!autRʋїt0+H9CʧD;`MmA̌}hfbcE::NBנALZJa3]1IZ4b	YC=V.LH&yPe_kI!5(74jzMxZc퉲Uo v0	wkKD.nt* zs挀w7`No{2
-g&& -PvNV)YNLs<+:6ᙘyپDM|JOmNl];3C}	Q6h|<u5]d0:Eb	ҵk-tcU+
-8e!ek\vv#jE۵ҩfoV|Ρ̓Qnv۵9Kj?u-UJ&ۘSL-n.M/+쩵.VZ7EkvdkJv5n5E@%tRPɕqs~ZzYOBvn,DQ2Yd,	D/i&&~Da&T{S	idP֚-Oe2=I8F{G+0lHptakGaLњJNatO\|I΄n؄hmҿҵ?ш?jBF{lBoɃ4fϽS/}fqp˼BWfOov k2C@!Qj5%iݲn{id{8׊FEފwA}l-TWC22tPasP$NktN\#&*0tHig Xظ0?c}l!ArX,@o2RfTulƲ쭯b <1<Rf	:rNmt,=wR<A/7_۩9y͞⋷Q˴I's$`Gr8SD$sII@LyZe-<I)0N`u)U ׬r>|)s9?p4bFg@fZ)X"kZv$B7Dݷf2z4!f&#V?#{cU忭q/IC	I<+,v+_?ƽٟyw{9EY?IW^7_6QQ+-|QÕqk;29>*]B7Dí/%]N=EMMP42u@r~2mi$ͽ%sIS=`wwf]tyڤbL=}&~wn_r%8~ KYaX2`2hS~u >_?T6X8	&fVsϾ\D*)-c!vdEؕ	@t#_'{jFA>GSݓby#?ғ?94%/)opse<<P>͚C{B%\}8~Xxgl<?5FBu.; D?i۳});8z]Hu4%mlw%38wՅ/ҒVX>۱.o51mԭ0clܐޓjISI޶+*RFbO@u^nv"~:rcdo?MD2gL@m+d4=|,y5\HTK7j$1üK	}6VżIf'7t齧/LŢa͟56Iɫ.O9&FEx.#Mj3#$2Eǘiy'^\,5KOX>v	ؤh&MhE[;?Ae >ܒI[zk{!3%NБՂꜷ;@ŵdrq!5246=ѩ~K|ƅC~OCj$l۰~əTB^Upv)dz#OYt4dj4[{:"n4ʏwP.C!)]
-d`
-Zy^8R2_iUi]o32bʬl2YC O69ψ:\q:[;Fed`)2Rݙ 3e ^Iᛞw󴙑Y+,Kyө0yEިmJ=x$LxvEk ~-rԢЈd49mn!><h'L	iͱ3럵34kGoD*ca1HO.i[˯feMK$̎22Tc{%́ܰX'&P$3Bǖs~26d_.ӯyl;SUh[LRjiølyn4
-Z(R_2nCKҞ6fE
-qJ9V->mm'ﭠ7ζt6CX$}aAikif2synBUv'L+ϺHJpN:;y;d6fFUX_a;V|3e:5:ǍWǍ ^Ll7[sҦeU~5KqK@djMI[&? O)`$KgWb?k)yTVs,})9C[oճl&8!i:N#N;3~cKo@m7T6tӔBC*͚l?q#`4,zD`֓2٤C5iV2Z
-SϤ` 0la508b)DPokX>Fx菧2 y2Y:^rRmX۞bc..!9-~ZHL?>꼰ʜ'ۛԙ-';2iMbČK5 Uf}c9p`L[S*y|*m}S?TNA@_;5alKUpg;,QyiJCKsi'x6ޣlJZ.ٓ`sCg~'%̹@Z;x0Q03YmN P:G6G!fNx35Du$$!qr@Ͱg6s<ޛ]q&7S|vi>d$~CWœ9~p<d,Ox3|0s'˳Yn!<\n<|(!=&$Ssy*<s|n /}|Aω&$O9|>ܚ|h \L>Ѱ8H)uNf
-pk'<V=| @N=dx.Cjʨ8y{<Yx|<gxj_6P.O)>g<Si|@<iaplgq=pV<\;h	[lk?VCNXj:d*&Rsjn0=9d^,j.aB?v׸m99]fΊɳt}8wB4UsP<:t|.h/yO<?u;[/xFi"Ǒ;dD߸4N\Ud1v]8@h+6]dzYzZmZ6,XU%0.47	X9m'Nf-Dtف]θr+'87y_hy;!qzV-~|ߧ~芮c+YuX<&nyS7.RSu(hq<Vm<I?Ym<Um<]m<Cm<+Mj㭔~Ax/z"-xָNk]CZsZ6~5~5~B/	}5~-ՃS)t&P,l=Vo<W.5^7H##6x tfqUwR^4L
-4Mo?4h\(%U/xP+Mױ5FZ\<|715WMԦwBEM'5D|oصCo@kkDn"V&_s&ScwM/o޴&0i}@ӽMo@w~g:+gͣ5e簦sy|v].f0O\qԥrƮ`W5lFDfcc׃̀an`LoT+hٍlu廰[X W[v1wP;ˮ`ϻe=6w2~o}lAm}(كx킧q(c	YJ|QN,{m 9,0)e΋TK}_f+x(SKo"FSoR!caoJKbJl)[e8e5h1V&XƎa﹁X>cTCD
-LjH/BhBZB!F	$x`n%Xжlal+v"4VEhQǉ."`7BChbO!~'^"2A-BEEMeEMۅ>ED`E_BrMB[h3E,Qs=HUM]E}	Qo>Q?[?Ō2nECJ4hȈAphȊK4DÐh+扆aX4,#hXXXX
-8p8 GaB[ƌch<p"`9$ɀS NX8p&`,jـ5s  p!"ŀahpr 4kU0e2ƍZؙ}#7nCn5	^,~x_<0x5_4?:D4?
-O;W4?ԑh x*G"%_f^Co&o1msJ4x	S}DpzDG~/FS)?&6obp0,_ D_!!k~[wM80K4O1 K0WG4/0#@Gr1(xh>>k1pyoB>x9|lѼNE)pOR64$93_	z}&u*Bjgk}x!\by  p!"ŀKR.\j 0صqýUoBfQ8 
-p;H[!{!x 0 @'>$L< x	(jP"%\}Uxib˷ [g8r{\|' {k֟>|k7o[ǅ=l@\ &6?]B: KTa,{*;B#U8p"hUh7$COAiT. gV`v9*Di1(χ{~*/{	ʺeB^pZUS~*~s3`hѷⷷb(T.Tq7{/\da <0G>
-xO*&<x,` :fspA{/ ^x]5#ϛ-UL|]FАg{p|  (gǀO@9_&~	
-~[ `&qP,ŀ%8\}xhGBC'1Hx' 0DNBx2\i)Hw*4ĝXpWjA>vZ\ľjb% K^pJU `']z }aФpf -VMD;&ߔr&p^} 0S ɔ>x0_LB91x<	 O<
-556KMD_^	xxn}GǄg9ML
-5 }	&:քP7
-ob]K`0R#`<HGX8px	 =w9$]h'bS?M7*Q4 c}Ag V6?*]F59:|].@2:v!܋ Ї:#tWHw."pz]oE&̀uE7vM}#z$  |w'?.EBwU?AA^A ݯ~Cú8Q]	ԓp!@{~Dm &1yK ž/}M}m].p7R:  >|
-:C>s/_5oh8 .AuaX"bRaG YG=
-p42 N X8	p2񣮋i;= V<<<J*Y^8;`bڀXphC) 4΅0T<QC/8., ..1tgC4f34p1\ 0u- ġ7d?fz\LC1ʇ
-mQy{@܁
-nx	>x 7[G]ad~K٣<b'BO*xl sJA{؋(1-(`^%7kq{# "o2ҾHO>$G>F|J賀< c_ľ_-]@Hk8(,¶wypp$(Ў2"x	倓N!iLB:p< .\p5Z 7nXp7^<x4Y!Ngy+H"2WWu7ox}G1,O@+7 ? ~X 8p,x  N g]gs9<s>BŀKј1wGc.dW<W0Fi*^gk: 7n#(i<n=Awd}AG@{1' O<< @}q/ ^ثxFPބ-MlxCGj)}5<߀;'l	3`Et`)0"ϑЎ2v!p,8XN t"!lKֲ;Hq
-yN%tW|`%g]8hp_x/\p%*!rJڇS,Zu7 nD5LVZ2ײ##-TEJy֓NBw{y!qahe+Hc13%!¸E3[e%J:MCނ6F{%1ޥt >|	Sb W&H0Q?p`yMx
-9	 NX8#gQ;*I#XVqaj ڐqڹ=='d!l<NW悐X5,F,gF0q	_"*{s**c0aHŮ3f9fCoFf|u{댈n(bl,V#5H1dPmq0Ɩ5WǨ\>@܇ >	5WUnV]TPs5lPjŅjXFo ߆j%+LW ujqUS+>wƦPQ\cLha-ZXk<֢Ǝe ׁ\rZg<	x(e"8	X
-8p8¢ '?	ɀS NXA~3P"&n%V$|+[gW:DaCx~ظPk4-oeˍZ BEaO ik^q8W+Nx]Dn|4t	UwEXϮ"]Mk]6Aq,5s&#{Neͣ:Ǿ'y4W+^{L3V!zk%E8oiɶa	DfBg֑n|-l7oU^7ַٝa b`=:G6LZk)HϛBVq[JŸn<nmmm\
-TLSG`!aehS?x`*^e/2^x3liAol8_x8`Sh;v<67ؚqv@7V~eq㏚1̸+0ָ'0V@j`Z9h^P1e`f8/ҼfQXsQĸ=4h ݋#ͿsХ.#t9+]I*BPwk	.Ҽz)ɸ%B["1Լ3w6d_o+KN*ool@H1cqU^f$Ҁ8E2@AC0%D %Ԡs'AP(wr$b\	RUGQmz55SVMG.meeeJE"L5\uZAԩZtթZf#Oݿ(ua|yx Oۤz{0!\T:-V4PB^ǾjEaz# LFStuTx>ɒ0/7@1MNJ/VLweWw7`A%BLG%bDOwrf6擔bd֕J)I`~0O]EUSLs>aa|G<{{Ù^c#fwƙt[ؾ$oI]4/
-nE-m	ۄ+${g}
-yWz$ʏp*&)f>T7kZ5sHlQV-F$8\Q:l1Lֶ^,}CWƸ}S(`uQm)ɶ4iE1ZR=ۑg;M45P#yyJޣueۊhAL#U}rta~=h̸\<:Vswַ!w mGdӶڞ5F:_	Ov)Eàh/TǴ  wϖmglu^v坋}O/O+>N/Cj/Tr}8h,oTXKŔFP$
-  (&g] 
-ieđ>բ޾W&4ye_P5UUwWҼ</<r[-9#:_\\
-_Kr[[vmw?r"-s<(]KւO#	]y38mݙGZCp+j%uy`76%TWxyG1\E+WB-jK&'mm<b!Qt=ebK1EےP5Nvy[n;D0_![Klb,	'%Oeϯ+yo]\es݁m]FTɶqU)IUZܽW	%{2o7y8@ȱ&٥V#?6nύͯL'0Z`y0V`hChZ*$܇"'zc:կؚ66:CBAAGX)٬xվި'J`gua']A>\0_$dmWuu''#wHO+օ֕KTTZmJ:Ҁ7,L)F.p)%| mQ\o+Q-+=IIX3+97r-G.ok}_;"et~z+7S/U'ǷV^hA9ܥhUjKϔ)AeBia>lmti,B,B\j+WyR&s{
-h*mh[86Ӷ9,
-[Rfdf͔?}E3E!:BUJL1:uSʦOL)dJ))<`֞cTQqe럙_ۿre˿qeL));ǹUSen	ȕF+M}L7);3e|)9+[JK)0e4S~aA&T4dUeŔrLu+CLv.Wǔ=+:9\iW)qeQCZȸE@cQ	-i0G𿏀o_Bv4|Y@9q8hpOǃ<#~KtO8
-ˁ=	mӧ"84	#ؿ.PIA3`l%|Y3W2Lx~?C:W]o, k5Оg3I?`EHFv.*|;;i_/]DL߲ˀe/W ?ɮ~]]_]˶Vֱ_¯^o ~hf:-DV4v;|=ǰ;PNFf]lvl`>ߏ={+0:=ʶQN叁%{IĞÞ4j1=GlH1yb9E8|{W*Ҿ^C{m$})2KmLX޷:qPv#Yǈ>}k+gHs/}	+נǾq-[=,gÿ6#S~,\șr=_pΕKR/?G p;~91eȶ8NOZ$"q;O[+ײ刿īw.;[ة\4@ YW38JٙV ;)KV|𡷁'G>AzPfrg#XD.D{v*].y	HKO.NcW3(Bv%O81]Zuo8FsM(
-v3uo[VЯcr/xX	,Kٻ=w{/BAT|v=f0/MCHt{#bkg_Kz'aO!L4gdr:$ 9?g_3%c'WA:|7{VZ&-om^\9+w10KFN=j!?eۜnƣȽ}Wgb__ʿB_Ŀ|;g盀c?Y'PgP>`UA:-RiR-^*K{]lMBĿ"&#N~hlo~U/Sȉxs8<C?QEOru9'_ɈaoSA}3thP+y~&(/U */ΕFؗjo5Txx-}"GwH1?S~>b7ΕwU=PTU1F$BXZ_2c[{/Ee*W+gX5XpQ% o*;'ڕrz2jckWEu*U3Po^BIvR֪:wVS[Ԑ1NAoE]ϱ1^TPoG#ܨAҡ	]שwߠޣJa@F2/WZ}(0 ^>|$BOߢ>|,:uWC'vWP>?@BHc%qelW$_E1OoP_G'7F}9-mW~A}iR7?ʳjK'
-S'(|Uݥj|@Kʇ~B~*d砿>";̇ ~~5( ~'w_ p#WoFU>EEF[QlBM wU~V/ -"'2a_obRzI;LÁz9AHQv4R]2MUҎE^q_|vډTeˑl$Xu)k_tPW vV"eڙ۫4)ugtl5ikjgg8)]Hԋ쨋uv	Zwv)]frjSZBJ]
-i׮}BF(Z:*Iv7"R܌GkbK[enpvPnvWSLJwtv͙KP)= ݬ|>1ɡ%n09ec{w)
-?Q{h*G?=fq'@:C{+1R)c"ViOkhUkʯH_Ahjʳms^ ~T{^B<P^<ܭ*>5u#ko8|o}۲w~XH|̘r ?xf)icY'З5xןAkFs௵/@Hx9WW?k_/ҿ~K|=(j? mG?~ Te3?LBzCϴE:V}ї -^;i>ڠ*#{PVݺ޶<,X`2ìI 3mGg&!tN2~83I^"˖}Wly,/x}Ww[1W
-ƛ9un	L?USUN:7@5L`ʗl0eC@uy6CrB0-詌h	QFh7F{%J6J,:$돕I[-	m"I2~2(S f*i3QшQ1gzMy%ϕMZJ';6m*ikfB^m#[Y>]yiRߩ Zb6CSJJ>lmlh"1^%7k7rT1mJhs{h si3=6Oׂ hPq&͇frVS7~\Դ:%m/" V+Yxy,njt)DЖiR\)49]% b2W;H_ܢ} nܾF}-rzuOۀoRUfp[r_
-6p5o38]N..[{ =)^Hi~sn^;Io}d=@S3_"aґγu:K=Xcӱfi;؏st:B{jb ި_TY+MJ̀
-WO$wZ!5a9G{b6^?vp7'ݦԤpJCig e~(WvĞהҽ)5\٣B}gׁqUL{\Rzu@:_dYi!K~@:ߒ _6w=~܏Ӑ4丯o^+ܓz%' w|}u$W?׫K:24} M@pO 傎~J#guaև;HaHlrK>E{BR? rW1>>|i^1x3Ab:qddĕO_ɧ[@&L*s; gHf")u(gOe,'suσ煵ТY|*sy PWـy};0%NKĕ^`&vAkO@Lk-'umQT7ߤKk#DM+ a"w6+[tP{yVM|; \wBzb{%|?wnn\OOgrR(*x#Mnn]?w?Z~0}8=
-c?a`Vr8,f~F~Cr)ip8ߒsG} .
-i)`|
-15ɯ˘op㟃{-8KpېFO._{90U]^	PU~?ɫ{ ,AB?  A1}W T'AL_paI?2Ä:H"FP#(q jQb( )Ƃ;FwwW&	Co$;_3pgP1	ܹb2Ԉ)NAL
-l-wN
->u$-CE$
-BxEa.^-j!f1+EsQHX%@n`,6>p`_`gk?60mP]
-H(VCwXm'.Q=tXWO\ĥClHVlsob	4
-pnKY:iџm<%&ʏd+2F:,jAH%^G?&vdXA>X.	@T?~+`v8NA!#D\LR3Z!qOI7DF"}j4KCRn	\5 waqc$"37 G1 M19ΟPOsXʓ' ~HMjO7p/_+1Osvl΀o縮vSx\ap^/rL*;@^U*>
-7u0uqfuT&fɜ|	$es^`QԮ|Q|5z'6oB1u>pX'\UЃl	ޜ;e#oQ~B7JQwf9(l	Bl޸&N
-h}mzzH?l	ph487.,X?2x[[(;*U/`()D@hTAT6P*Uc$	TN1A"lPnU6N&z:MfI5 ڵsa˒fZRBg0g4OT9hA+tJnsUZuYjU٤yрZ9սGUuBteP(<SZB١*Tm1zG0˪ݕ%#
-^F>r|qC?|ҁntw:}@B5':_ـ?X6TMٌ:R-Oي=VmՂlskI|X*<*^P;Ң1̍-Y0pe^H^%}_v k)3$Úހ$ԩ$ԫ$, 88NѨm}T'no-׾EZݼYY!PKzzC\s &>ꁇ?遂Z%tZ\tY]*xhtEt^}m;4t֗"`nꁎ˴<@m _C~dz=|_6fڔ<~qq8	v^'^+NDRs 'r1KճH֔k;^A=? K׽\ӳźLgi\@$fQ/"V]d%1q ;ue[Uߠ
-wUe"뽛3} W]El2k׀LuFp7LF#M p>&;Vgu~/ h!g?W`>ĕ\R(I#
-2H(#2Qxy<"H6 4bN`\,} LHs`m\$`0zW阝b,-t XChUPy7Y1@#ΉK 6:VӠ:ʦ:0@pwYi@ij!FAM12e+c \TCID|!&@VI!w4H;edQdC1Afe?Z!VpchGuԆ5Pl1*y[LC1 n@m䋑$IL7n a5e;lA
-!M3y``
-O7LQ<dʈvL(3Ed(28EX(_uJj(vw)wLɫP"戮L0X%!nL	LUrg$2%J`J·*"LF!4G;LyJgJ*)dcU҃)od<;L)AƔ'0ҕ)OcS:H_(GXӘuF^fJ4@g5S=@sѡy)߾05>vR#cN:jt/.($]˔vx{̞ g;:3-A݆p"St9' ns2ķkbO@l.S~zC0|%'L?dJ),?bʟ2'LsX)cmLLp"a䏙_
-'S^;Q9UU9߿d3PfA>d|TolANBmwd|J5zD%lO띤z$i#N1L& i)|&;#'ܴ鐦&Qvg7m&Ss=bpNi;ǋL㱋<zt-=FHEY~RC"@:ëBOTԔNTASQRo_&AYI'NTdH)z,EWk,@$RNSsSZzY&q8uA/{6\?\bkI1oL7; =[So0tGO;[$yD댷$\gwhm,gWH Qb o%qh1Dm^`p1eA(R#WJr[!S[Zja	qd"Yh,2^PbeRCaeuWܨ~mm4(}8H*SIU #1`WB\zW 
-(PVJM"
-,s$OZߵ$BcG	e(ibXjlFbQް:`)%Wة89B0I4ddPvGoMjFBoOUwC?ǌ"ҫ@\lTn2"m6E:(хFh5:tATkm1[  %V~ba-!JL߫0jk^;;NC?Csiћs)IΡ{,˰.S,݆VPއPGad!AX&SӊETJϒ2	ސ #0\I+%|:1:@ODZ}t'pz:L X*`BJSɫH=|@̧>Ub"@(#YF)[zɣ@^E18H+sv:WSl;ԷFxil(7 IcaU|` `4$GPsdFXTe/	%UM'JCzFNk;/m'<
-56fטKИKؘD Fz}T
-<AXh	c\: :f*cH3b(3QFFQ	j=^S̱2A{>FHwj,M	U;@vg?>Fb5tM0A=Y4+<4@e?U"a&4cBeco ӵ1QTc׶CNQS&|$L{9Cb2oHTS bjNL$c4!g`>M `KJ<&S-ikm29g6?clu%vU%_"H'!C٣HQ`5!ֿ.ֻ$#k]PlG/`pN+.[O˹2OY W4@yW4İ6[4aӀI˚/!y+|UI:?wc㾴9s:󹲠m3By(ԩ(VsEJqM\CmbuNuе:;.L
-4vjA{WTC!;~QACUM??(UL|ץe{:졊IX9e㉔۠6Lp~`pQ,566Z':Hf['Źů-,P:~u݆оNIyBxYaTr(WѾjCi_$+1 K>o`354*:EZk\IW7:ZO&Ί6)è^sIRmېq^ bR6nYkh*lаħ-oxPa:ȓa ([YoWA;mljӆrjOk)4x;@*x
-x@OvaA~X95S>ɾNU)DgO2D&G/sG/WĈʈ*DLrt0a=ސce, o3\ J	RkqjJ#[<&G}#l=q.3V^$ek$32ܑY\8䌧Ȭ>,ƼY/6)&G?6dbcT{w0 G!*r?	JǠۖݓhR-~ =K/RinܝOB@t֔XD763eP)PƄS\bo}O۠
-rp!0hM8KZC*ӫI	/'j<[GTx'jk$s֣f	Ta6؟n""2fɓ1S(qU1VՙՄrR+
-+ruBoᵗTU!ΰ
-*Xm H*
-|4ˤz,25yBS4)X-C
-/Քi'&tV'"qq`VF[(FA382#V$6(㒖U
-P˯jJtO*:0Hr9qaa4hUS8+miΠvytj
-:#y~7_G+FaEqy/xȬ`eiI3%[Hl/a-WHLꉓ&H5!Rz(fb5'[ϗ!:oS=dF̥6↷᦮n%tJn\o(NjV h=ˀŤɭZ*ȖZڱ{K4<raj/AF</G=FEC(:[EN=ڄ68g|C,@X#rJ8W2:wZvLZoqk@LC+HH9		& 63D}ޭܔO3)XiaN&CNW6YO`2:@} 7X$,azya!P]dr
-!V7Zw>,4hDE>c( ze,e<t@TNP, =iʱ!?0,˂צ0LWIb
-W8ZZb$%)e8'FI!eC5ڌ0.aC%*jʐUh)Yw@֝ªZUQS֏eu֐81Zv֐U#4f,rEt,2VɳZQN(Ձm-RwT2tfe9g(?/me͗3\0&%CM8s!i\Ҿ*pn
-eE&?
-l*ސzzSv\;傤_;fW6FQPIAKSrmQu6YzW]91S*;Gp=9@%ޜ岠}ҖphXhA0%]?U>%hڟuxPGuLZ(= ,6){Icm&(IݤI#%4Qu8ƂQdm%RG!ڭF/  A'B>^QWS{)w h8_A/e)FZ^lc/8hrS84Ʊ`#"䕴YCi--6(uiٷh0}PdɺODOR8WXZh
-u\̉4P*| TϢ~(5FVjJ	EtFBǅoSPfw.Q_4'nQf7Ʉ=b[󶈗B}+LMk@۠m Xdׯd](.lS9%5K;Ț{51ݱגk~P'*|‣d65gwѡױ:5V6{8MB0YYitI&rŀkՒ9PC\f/V9
-$>j1]yX2v2'@0sÈߐZ=Wڔ8")Y
- w^RF
-]m >
-j2u!trHDe]5$0TA@&2ܐV~atJ@7f4=	cw7eH$K9X=bdO@D'r$=%H2|"пHͶ#lZmiPx'eF+2{+7S;,Q>)\,z;;hoH9%2)~u~-/r2J	ҜnG>|`Stb.o:k`۸uK]8o6d9ȓڧ]:q=1Ls7%WCt"W=@wŪ8As(k |EŋgTWv<.omr@˺K]bZl<yjVEéiFMkѢh+{`T6DaXiih|TҐWt1=F*M&aʃzNo&Eg*4O29g>{lZSjÝOq懮]K0Hr~A:fNպf9N		J9O]I'@Z7e9k	ܻX]yib#j@Y㑆2 6p+6a)۶YôDZXI労CzJXZ3Np膑@5f;ՐdW
-K/%q[lsKU\%,
-g;,:Zj0Hw${!vOhHWxD`*je D2*祔-xze@a5}J2~]v4\/xE|mHyUzuNGt)z,:FVK!,("^id$DnW<ҔkIA,mnF7d3m&ѵjZUIn:@Fh446@r"ՒY42Y_e`|3G4,E
-5Z
-
-y6/ܕ*NkM8'cm;m:	&wZ&TvBMBзU317~
-4*<nP.1a0$79P&+TwjJWsƱNeC+ ,HC^<}c Xr9,w}--M4*0rTL?D@D4<,_){}{=Ԝ
-[R<c}iiXH,9/~&-B&*ly#d!	udzquND-dl?670:{'r/C#Muf# 4Vt(g+H 3iVS^DCZE@;T#A0aE ;';0QPnP3utA3k[[׼%m2)o[Hkm36X5Ht
-X14[&} "iS`"!aRk<}Z앷F8l`۲IC,HB"#qHh[1fX5td7hѳ=a'ZO@=(/l$kzkikkQכݠVTv$i(.TFU陶hɏ/iIK&R/_sgph;-]M,o"<]	\M1𴥟 @<X%mj,YGCr@K{a>hcWN?֮ʺi:|ө:3,!&WPFALaqKwdd3`l:5M]=4ެ=~kB᥷*YqX.niݲ`fc_-%)&+SMbBYM@h{B`;[z]i㤜>CLOBɟ㩝H2VnRknL YGe$S:*MSQyTxGev0}heoۻh#r(!D<h;La@Sio"(W8,?Rԓl!7I³$4~N#8COSڞeF&*g	+1ѴoްRXĳ" 2
-뜴19ZgFl^(x/ӄ~ T'8FDRXM INcbc9Khd8]JK"wTR&}*խ3$pmN[{w+>k7O24U,v,.unyb@:ۅ/p
-`<Ì&,P00+̷!YE/ZZfXlj8bff=g:|ޝQ̳[rEQn!}!4i=6uO̰NK#rD[NSt녺sBݔnSLK6&Xl)K@Mi0_܌#䜧p5dPWقNa*'ҲO#ѠAJjnDA۱h"_PƤ%bDe0 lej煴ɘ٦;R'wf[sQ钥q !{j %9&O~Pe0vr2N15eGBe(.,)5".0!lrQ	l	N?!DҐ_؜4e]ZAEg$/"gimEHa6A@D&2>$;$Y:i-w(8:+:5phtMw4	mѲ书ahtLJ>X/flXJ,zȞ=9UuC>%\Cq6ϕ6j;۶Bǎה)/]64vIIJn!^u68MFY0Z[jȗKEi!Sۡ9e<<A}B
-^P( nhU\LZJg9Hap"73] vZ:ր%aD=Uw Έ]lN,w_	g۝0܉$.S@]Kv<;M][QNX^U=*'hVRj;h뙕 /G$-|P{fƘ-3\Q0}%e`xPyp8TdxU/\ۼ		]}b;ڮMp?.µ&`tufx>=ҷ 9WZPcd4fDHc([hB(n5=z{P>y8[> l+g+UyLZ\á'kx5Bg2}.vװv\qM98
-%><)Jriav)l]:HrE)wXdb37j}҅LSJc5ja5dN(1=</Y Qi8un]Suk7*C5<&XXzi7TyH2uܛMJOdO:yx)`(Ĺ{Nȍ8,aʀ"!3fMA:`s(=HiB^8,]h(xj$1	1!!f!~ BBB<Carj~!g̲W#nL/IIé3}Ǩ-I"HDDHDM3[  1Jj4doM$-MJ璔x4<gh&Cy Fu:Lu0ćWR_ C}JFw{<ǥ"jwC&aJL~x	mqJE8ДlLyŭ+`{h
-u?:=Sle'*x١CMx"eoB|xaڜkc@&^ (BVQ+(1&K^1е C%p\%qY呫\̕kh2] 'aa2>h U$I	Q{}x(Gfôfo=㯑%&sY0TЪ:Lw&KidRy 2&4WhUR݃jZvP8A-uƮM| 8>dJ+htӂ6sB&zv(VN\7ek1Ʌyu0m014Yo?sbQuA;)'
-e78Q11S?ʜ3|̤1Zhf7x+Jh"AZ섨_!R@hbx (	ihVqfQ;߅@bqBZbɏ>u	/ZZ|oIo-CL[R[o~EoiϪ)UZG>^/uw68	T}s-7~]<e1P"m^ͺIZZ K`:<	*^YEYe7){.d7pGCqq?`D0YI*$6:\w7Hn^vnr[I+{Ʋ3ni-|0"O\s$\uc=L{KC{6&w aIS'`>pp8؁ɭ]ªO05:0]X^ks[rk58T4@ /`Su;psPK\">D!ؙm|}ns_6^6~l|Wm<Iʣay$(e6	#ڪl k#7~Lo?\Ls1Ŵ>)64*тTb0:GVR-pNrP2iw PN&K[tGQ}꫁!]XBt_<P\*(jN.ox"5g;kJEJ"!*ͤґ>x1)Rz(O1.+YeTzW(t*N%GbIx2z2⹷eĹ>:V_)%Aޗ_msiSP_({Lm=f_^{ vJI!NJqMO:L2SvT=>ǧ,~@k#&~۱i4nsvr)f7)H>ГM}^ikة@2Tn%+LEU f̒=HMŽbM~)6MI%XaB<mrٚE\{4dMnZ//3iO`b]}崵B-!f9X6W
-[ĕզΘMuxboF.
- GkM,mnDhS[3"%c+B1f652M"JXSv·98&ղPd^fIHV^\sxgaZ
-ӂ-eP:Za@>@>jjKOeӊ]8.}e-(-Z30 z]j6ӡ0fnM|-&hie=pP: 2_L4x qu84iJK 0Oq덩"yWB)μ^MΡT#--"r7%mob:,V#I.K:v_L .Jk*vG!W[H^rICA5yW+tv[nk>iM3hAe--rC(3LY9>RWL`jl%kɕ%}r9Ӱu
-{8 {wC{ҳ`-\kW$ZMF{ai
-SM;ox#Xs!Tsi^Cbf
-蜈<fJˁ}]XcFt2}q㾜<M<Hoix6Oޡ{{\qıiAY}@O3 ͩ94)\zY~sysKxg8x-x{h`8HZ q'B]`$sdAVױEn6,@Rʸ}&x(-X^ؤ$oe]#Bavg<TFk:l9
-)iY%|)5'V!sm&k6 *V$6m0M(紌܉.Zָ8m;DO\.\lq?>I)oҩAK.Vi外=Q/ڤt6fMP~Z
-@V̮&jc7dqjVI&PhzUhd\@ eL3~3!x0{ozw<%Z{iL⒚I|F"SoeS[z#@ʨsӦWR'+]>5aI5
-C|ZyWm,<<_l'Г(
-J	1hiXXKaU2{X5:%_<+)޲Уgx.j5U5_ s͔HIl݊j6q!bJ>Z+sQfz{ 19&;ބöI#e×CV-L)ufh`6#4xMfhZauOl5CSIhnv@.
-5C;.31C{>30Cf(ef(cF3d!3:lQ3t}lO	3t2_CBL|T{|[uKQ)}KwVO;>/uYH(RǩoQXA/)/y;d6c1|KɾtLq\r J7yh2O<4'oœWx:<vUCx>{tB=
-VA҉f:v)4
-gZM/ 4X0>ӪUALˁhTG Mev[n@4Tr!|G;8R&҅j*PR.lF^dfov9#@ a3c/hW-N]IVZB]Jj
-
-KHޓ]2`5oV.RR;'!R}TI4F-by6K
-Zȓ"6TP%Bxr<9X,cEh%O$B !Bxr9<yƉP#O*LU"6\vp%<Y)bDhO!"'X_ZƓ}E{<Gd(Bkyrz'b"tTMVmylexr<9@F)bcD(œcPfTpyΨvi?eT: ku"*r@A.ǋה
-\ǀ٭"Hr
-L'ee?Քǂϛ~*8ݭ94DeE V,2c"!;sRyf@L~MMMcd"=cWUٞv8F0_XUDJŨGuL4iپ@>=L4gamfخQj- `lPeMUR<E٘kUzq9/.n>r^F*j*MLAy@Lk0o=v@qҎ:kkW7> ꂌZλBԓ2P͋yuKL($HGv@eKh'|/Fu	:?A92MoijS,dM'%UҪ=QU5sHRlMp% "Yهf|I*5RԐהVǨCYY0g@vHgP#.CqX-$$U$YqSE:<UHk>~~m]STU0%6@vgL;"z̖.A-S	i[9G1KP.t{D1՛(;Esr9Nhϝ
-jDaY5*
-tӽ`gbWX,Ywr+IsEl(z39Kf"%9Sf"6GMIA$ffWGN5k"6K<UU!ggJl&~"HrCz\;PqVh|^q󍎎Vhaz-Zac>\a(7ٮ4/xI$X1x9ۉcE^)Ii:kvB5LeW$_3җ|<b>>hKK[h;P~-q,g,hNjWz tjClۦ#|guj?yAj*&,K{+Jr/(`/yNQã)_sYjeW/R~yMe7*i(BtV`دZFq3i{'zq=ѓn+&2EjvdE*jwuh慎nd7=}os 7`0R|טJ2{5[xfh,S~|iN^MlxCP--,e^KWXmc_&UZ'Rja$%Xc4`X,**^nhLH*^솇Oe-lL鲙xn@,_Vs Ka6*zUda
-J,1Km2U^,Rd,zL%Θ&)ѪU!mz5^Uiĳft	=\E9s`mǻ)1l}.J;<:J(V̾<!W%vľ/xpSq/'\sͪ^%Uv t7񍎜pgCp*_ ܠ:	!p#7p3'*6ܐVHGw6*+%QۘU
-rkVo9+!_	UW JC4&宭&kEl(by"6_|\J7^JxKEg)}sK*Kśruu3oky30h;hPPWW<h[ՌU8"tzZShL݉ҬY],2bAˣYUj{_٩SOUdk|+렰&lf=/doFK\(uE9 ڹ5ɇU$ ^S_ST4Re/zˮ!X\$xF5l
-*ic+e 5$>CFh	ӐϨ
-{f<ʑ	7'[#sQk0ᐪin4>^z$weYstn	RvݴN/:F$$|iMR5p+_-Wjsir 71ҩsy|L-MrF*El"L2@n"I&*BcErm"AĖ\*bD>Ou"_$׉z(E^>z.BDr~"VĶh"bEB$W$;Dl"RJ[#B"FĖ\.bDZ$<qTՁJ{f:9}KhsMk f[?VuW<Kg<sf!>x.qwT%b;EhHDDOBw w_U҉>W82g⟩+ P& % P&/ P&/c#NGE)UW0x^9U@%guM.֧ji<A{*}
-rꚀo{G%+|>iJa/wU. ((FM:=+e̲yu{3r:H!Ss wTE~w/R} K6kYtKw ]l |Seg@JfVOH[-j1ݤvj
-&yIEJ2LZj"TZ>v4 hWT:r. U0vԇ0J?GlJY)\bIb;5%wXưdb,9l_h{hǐ?jޒ-U,2W 1Ť䯠Etc{mgb1L,>_VMXYa@ b!{Kb)B "Pb.@Ea% 
-jaln@Z
-\8' rks~WmOgO?3҃< 1 !F3 Py}3OO"EtHwR1E/RJ_ykL4a6LU9
-KU*{bx7^&; XtL/OdmzА$ۂT`(z_ULt) 4WaJN9o'r0_X]l!`0i* WXEC|J|3YKXd&Îj4N)k;C}$f	lLƠaN{ZVx#ڏYa\Zٌ7gȻxĶ-@ћ 2a[\wLAÜgcn^%eY[q	HD,Oh3Lau7^3|du#^b.2bL[U7_/G6ZYw^lȬL&V3y~1:4u,jJrMqHj"}o?]EF0#Zk2bw9a<>=V1QDۥ8Op`_W8A	
-_R1j@lil31W%LdOm/1G봈tGyNZd,}VU!lNW6m|)	䪟!^b/DQ6~JgL<g
-q>@<@!9*6̩bb`nds&v߮b]Dtf<tT\rE*[Z
-ѲxJos@r^6_sWI_ =@dȷ;u#>u.V#}APR O9vytg}0X%6owvש)̲1p,,5ݻH :rlQnr/5x?.<l<ӝwf4&0d5mr":Bx"5"○41^ et7T1s߄ @j[{6e@Q0֡OZEI`Q[2_!$
-31_HQ9 ?NPON<{!]@
-[ĢS$v?9\߆֜Bj^<{`_	JE#9ED=K`)ɠ=)EAͺ&g`>Oڇrgޯone#&ȈRT))-`OאP}Ą,DZl$'b;珀PWTؠOWM,2eC̴fBn#Ja9܃ǝ4gxnhX{68zEE"yz]ŧ3>xe強&qo87nD61oHyNVfc˂\)|zD[.cN-(kRe=8wXJq\^Um~َFNTtt2瓝k.Zڝ1,c+1ڛIU$Uu:w6mE-8sg{Ֆp׵WqjUUθ 
-"۸CUIʋ̳uμ|t<[ddddDߩWx!'&<TnVUt]S=G ܛB@	ʸ4.)pWK)ȋ.7_*1ב`2K?rR^ HJ	(fer1!Ł`r|
-u|J	i劕$ÒEw	ي	=]"	S~%:W'Yl
-J~ƛoQsghaOy^C.w(f4:+9+Wح m@Ǵ-'@ЇP}??o3>3t\[mf}~r#|a 
-}Z"+վbf񸅚	[M9-ze[sm=^_o!:ƮPaIrUmնKJG:|8q1	JT!	:mק-GoE'R8ٞëQ׭vnd-`- R)
-dв0܋YU{	F@'tعtjK+}>Qfgl}4xXN,E>H,UUm*	z3qr~<ynS+X'V'>b?+=
-;*KrZ$k̻r5Vev}L7,[d`mz0JJߊo
-* VV0Uz/+T뽨PBUשT?wmgkUvnpD
-N'>y7a#1x෭`wBGg$LM[Q7%6pG5Ν*r%^-%^_:+a{(ی' ڎDelTB)6:aƑGEbe"Os@)"
-)JmDFQ~TϾ"w+r,d,GJN6Jr(ke(Gj؆
-+!	x
-q裃t°	KHjmRÈ1Є k
-~:p-@"
-%Z!rP6"W2."WPɫ{Oʝ"˄)'MBf[ka'6~@6B%,wDHp#N5sjH$< [\) \/X@ƕB
-!
-!T]'hVR1UBZr-~@
-xҷ
-:aa\'LPVJBf5vкY?6d]#0\\#xkZ.#9.a&.̩u7ZcxB%I@CZbV]l}f񕧛X.^Ҹ&	Ob|x}#;2\F^~> IƩ_!%
-!g*B-i\UNVKtYZzj.b:|S>k~C}:$ŕ`oV㱭He<Geltbl}F$GW)P)\qSܝR޻\p/f Jp&{]p/}Sw>EQ܃BJTC.	aA5Q%":^N4+:Aaڑ;rpۄ1mlmU@1'fg6!sTI@j, ċ,[Ȟd<BSU-@+Uc of:w~xv/f9Q؁S!
-E(Z[WɌMVU5g	=KRFPUn~>89a`K9~uOh;
-pN_9fos#ǲ,{YP		ś	%Z@5p-Auxk6'!7	nRۆA"Cm@ɻ/[/
->g}|"Vb4KZ\W$W*/9(
-5B~1~M@Ö|,<d1+~}u~a*3`)J}A[B%".AB׃kW튅q#s(YuPw2\Q!^U7	>lBV /dydhf_8ڍl*-GQAvNGc#%{Ho'_8X@RُeKe'#0?#6^u*Ed;> ^7LKHe'8E#'JޖÞ('_7Q=ڶN)6SKХRtKC9k^bZt]<OWC%}_j{[ƻKqAeʢ,rg[ĩ[}C],sXF:֘<v}Wb\&4A3mӼ$Vbv}F)ۧoR+i|סॽEä%K@U:I}4CuӽG֋H	Oo{zWL>G*k?^o2nG0ķ]Y_6ޕ#ea-G㲱G/Ord?({lL\2 &[/̋[oǂ_#[~%cA
-"[io6Bl+T0JFo<0#]iUҒ`z}<> Odx$pUfOUt<j-NnGHۄ^GIP΁HI蔅Yߣ6Or802>Wet*Xvȹ
-f56HN
-7l>zx@
-
-X ;v&nϗf?hQ% 
-kEm RO2Xaqd6?!i2JK	q^b,p	tVl qRUwf~ZnEWx n1KE1+B|鏯Ǡ.=F#Xae^UA½"KVe@=>=ӖSSx]_nBu۸j.baO4G5>l2þ[Qi V.""֖,U{=Rvm"#XS*MJRCXRv:Hwcd"J"J[G&cmEse͢0~eqL6urd}H|,rCY_5>D}Z*}&c;"*Aܷ21!&gn9?+bi~ ޳y{țFv#x-媃GDAzG,?b@uExd3;z\9G-(HrFwvs<wԶg1R|C!fYݶXb?HµAn{Gofخv	L3ߤ˥-`9ڃ=<U+ξfH ?1A^Xlةs<] A01TE7>FǾp}qܭk8
-ʶ)xO-)FؖPуVV~vkq?k5vvi!uH':c[TbAG;U\M{pʹc	;cy1Q*T8!b5Fkv'J"tp~98ZAǭoBwEOC)vY-iѦRLv3CM :TqeyH'S_?Q O.=?;C_7\/T[Fiv,Ih+^TamS0fL{Ƣ&=!ڶK|bG!p6v$_BEKF0 Abۀ8t 9j&]k:mғ"vj)T-v5gD>iqB&[̚ $krȑ>l$0?wOnx^M{ꑽTCգ|W?V=#|
-i@Ї#wN4t["i`Ͳd~DňO,I쯸H7#8mi9%~ǨE~KL\ƞg7"+VE 5)6	3/3&UNE|iKܕ̙WyoK_}q<c28 
->HFm>mgNEt>}B+|~w%;AD9\<#()b8Wl;Ol=t*tv<R9YN-3]B~cbf׌'dQLo9ؤ0&EXٔUyÄtɞZUA%cj4<&0t6жBܼ_`-7dB wHق HH}KPXKF1D_&/fj
-Rf<pZӷ}%jOqΈ{	.?($l~)^mcWƗH@}y AžucTgE-g4?ƾT@.&Nת/4Ner.`A.55JxVQQǾQmƷ*Y|nQ<}j;5zK"KY}LS-}w&-ᕴ5,sۧP)ͤserH}Seڋ
-=wp<}*վ/ojڮPq0?RhK ݏ|dMjb
-oȪ%~>`|q Z6(_U>&#ǣUK7	%6{EphhPL即 Jܫ''KDL@[U8vU3nj)4/'/Z8wEJ/zAjNhNfjkE(D>׈>Ț8)0UdDd<I@`ݢOĶxaM}n;/JIԩo?EAH[y;Uw%!Y>f񞈗UЬP+[2L367M*ÀZäXàmd޽k yC$,Vyr^QSM\Y'S	|^_*SWnJ]b#HR.}h.fL>EQif2b? Z~ByݾmPJX+zt/OP,/|F$X-Zc|-	AS4DzE9W3vXz5׳R+29>\"ȭU$f	s.	ϫ\Hꟴ6Ȇs
-&}D~8iN	|"ImR}Z7>KJ0CN(ټj ^
-'clҢj$V.@bBh;Oc6mK Sl*)$]աLz)]U0dq9x|e)T/Ez_Mۙy-:J">g	5-d>mj'yzD~yZ"a.$ne$~?O=~4O6F3{{37Բ_4M.VMs
-*古׋lp=f	X_ N#7%F1rX6#׀Pi\#FfX*Fh,ۮ["a瀈hTS_[.=\|rQr1v=2,w׋Pk
-1L-[/Ґz%="˼-[PCi8&bΕpqb7>Fz۵D}\ ב|+v]CiH&bNto2vYY6#+^T:^$Q:6h#[D<bZq+*JǋWp}ܴ;{R"V[Jq/S.LK4~?w"Z?(UHh萏߮ӽÞ~4P})mRЀWj2e+Vr84|uJh"%^g}{>\3ckK|h$
-_TR_+., <<\BL2WUZete(_Y-Ϙ7Ƕ7/}sl7Ǌ9Vo~cw-}8Csw]ٿ,hWL/jJh<oL_Qq]ӿPf\ovr+0b.WZ|IMmHmWI80zOfs~dr^Id T]<4Gk/Ӹ_l[ĥV02+]<<n2<n2<3xؑf+=a=}Vaa# Oc#J+&22lilrdXeex'4rd QZi<ȰF%ll"g[=s,䌭|Is<nbEz1R{Yh)Eo3kh9(~ҰԗG˄O-TT	`4oP|
-:=&p"Hbj%4SZ"TN+hb"z+b&5ua<,a9~Թ vq%P[˵]Zg<.>:+WhXO4Tj/;{Fc; 7Z"јl^j7(!WMj2Y-rsbYRԭX6s,5uIT3DHM]Gcˣ.,}#&z	R/ ';m¾>F0>ׇ~i`6L?ݸ7o6ú5?%\-^Eam`6&왱An2i5BN1N'θ^^ >&~F,KC	y726˴=0̍D݈o܄i7i,gnƴM< B kA|""o%y^`~,}
-MpF1J6J"d2>FP_달Y/'}Z^	  HٔIV0܏p%^伃qUXS @#RH*"݌H^DYt3 J׬
-u"e;pF~p?/S5NQK>vz1sUS	k%26HpUZ2P;GeIRf<n48_UE'N7!Io;h>@im)\b8ބ*@C$<ȱ]@}>	a~cD5s?T_ݧ-a-W6O`nLS$MqiƓdQ$H>5ZUKy+ҐwAU;AU7Hw$9'$'[HVA< nP+O2db&Ы:|Mr]yKw]g^oV{aXg1srGY>>,_K
-o[~'; ژ9#?ʑ}Iϋo'-s5>9߃A|'i	|^m&"maK?k?BT~vtW\~6>_?ZJ?FZ?VCb:m8zm1c_7oH~vx>x\|+r5##_dg%p[i!,yۂ!vZ_ė!޵ ~%̞-XS4|֗L*}R{oď|/>*mgt|oЁG?p`b̟n-
-FIA vR0r]:]̿npw	s]O\)J|XC֟Hz-K}*?G	Y3'!kJnHxGiD:O0;2TT46͛ӺZ=QU.*fB,2 glE~/[XܟZ?ڀY,>so4h7\D{ix<d@KkXB5coE4ZKL 6f6Հ
-=%[!dޒt><[}jF4vg
-E,ՍEvLFI&Qe<hUd_৐I}}!~
-F{VBK,b-}S7@K*H>"oGbD*HhmWm{Dy?hSJuZl&$h9֤طT@pm5WXQc'[d=pvQxv= cwhzFgwhtv}Km~"o]O'<궷)eЏII?\]"?zX#Z{9{wkxvY;4:G#<5:SÃꍚGz[ܥy7ixQl>'һںߡ1{b	=@)g>rz׏Qfb?r&}>aOsSv?8ExlʄhP.V}ZBwwlJ}Rgh7d'9ҫF9 ;d .KeQvҭ/%("AI
-(*]*P>	MeS]giiܙq"WЁnщm۟?)b#C;hJ5
-@i-'Faz,$;e[-w:I*1Ͳ_gEF^vQ3h:Mʱ8hShҡUE[%zi|@.K0<=tO)ĐH}?<>)Lƌ&Z~HI;"	(DӽWyx7(Kc0z	iL=Ok<	yJC»*參~U*f֨Z^xäRi)4)z1h<|uvoo'6It{<_FzIkx*<v0DǠ`Dڈ-v#T#T@exRzY45M1Jċac`'Jc{fiY*>X R[bR*MSS~
-"r" Y7NwL3Z	MoqU<s >#'mh 6Hf]}<ƌIwu9cG"'nv&.fh3ow(ChLvn-K42:^<ɶ þd~.`r (I*.06IDV#*?Ka:O1Q9@c>cyJuX	&!4ߪӵQ ؞eR
-{6fV''$L{1qT>ԍz!WQqcRcc3z
-/~c!1#Vأצ/j@m|vSr7zE}J׼;(y:4 RjCe/<b95lf	d	!b<YsAM4Qu6Kn<,16%ɱ%KHFkֵDFʂ_~X:'
-ְs3-c;E dUyqx_Fc-|x}g䵫{}H?;Rn>M4{	z˰N<'l4jS	r(^ /@HXWDX+AnD'FovWجD\/lsb.&/O,6OtPegPL^5[6RQ3JE_%sիŃ!zG@?|TR=38_!yV܎@۝1;Cs%8c\:cǘל1tlZB[3-l"쏞ZF7's!5G?*GT65#X}sQ6x,Y#Wx]2Ln$Nx栗ʑXj;r}xcN+
-҈ۯݩWYǧ
-m۽ӛR6熰EHmEgVɸSj+;Q;ծkچl"mb%r?"*Q8?9,oZW=eeRt9e>/M-~dc*n	cw[W\Y+TT>_m׊~.ҙثpŷ?kh>~Dd2/dL
-NES;>GJ{QP]ȶxaYfFxD|(>V:e+\MZ8{<4-_lvY{Ć@^; KXjF{(刟=ƌn~CTGRpA	By:6\Zf*n^ };	зKkz MC
-?3fvկY^]yO	g<z<ҏ5<Q|w5OyDѳK~n=ht8~	ܝ`<KmKP
-#D>QUFeetQL/)>}foh.Ud}u0۠"_2P,S^i`}^b?i"EJc\D.Q^%%3D.VUJ2%7.S"Vg%rˑ!}**j?3o=O)Sc)hZL[@͋^<I=Eڋo:(C1]ʼ"i}WHKc荂ʚ8Fnp`7sp+SBC?8XzK	9U] AF9H 8t_Bz2}V_nD]Xrȃ&ޤJ8K\`y՝j-._2&qQ,0$"AFieQ$>Q@eɃD琰Hgy)ۤHUwe)R"W$U܎2'Zl~_50T1#?SS<C}|? 4^6+mt/R[U)|5u./dwA\![m~r|@9z~a<$DL̼f>֊PO4aAc"h~aF9PY&x "JԍPӝ0'j#_dH42E7xYTPSt*\Csi
-+:޶Jw)7*-O/ߘD)IZ)؅@fVXe^:" nM"3\vi׀HƕJ Zt	I@p1A/ &~ A9m8H(`~&!PU$wV_W
-pw5<^MT5}?OjS?g59M^_5%MYӷj6M/jzI˚o~MW55M]70R"ׂ\PRePbX2ܰ%PvXX~85jE.zMnAáVPHYx-|.|(/5u3ڸV\;N;ǫUN ߁|vc{܃)>%b?6O(	?Zޭ9/[05F%o1a{
-~?RGD	( {BO\s)xãS /$ c(E\PeQr^A+0x%Uj^Cb`X֯{a!4hu2]`7RM9u1G}\JB0x+a)k	v:J[ůZ!Qn#<xg0\Ãw5l&wc ã1@0,vbESp.G(Q{cp`	
->{>cjϳ|>gZ;"_s͸Z\/Ci`lbз1If^8O3X/c+5+MT p4MȇޏH&4e?: o`3Q*MÉMDK+f8m}Gr&$ߢZ!elwb;.50
-M}75=A+4-50BC!$CP˩YAHXCWϩ17|.[FB^V\+!sѿƟo+43Äj|G+y*4?7b	u	?`@/׋b?KCC\5T"+jbK	Bpf/̿A`Pu azyH";7o\{*
-}Xc+̧:NXE8aĮR|	)͟ixwX0c/K.o@<,0vJJˣx5"cn{#*z/עn2^>osS۾/g5xeHlM=Ƈ
-d*UN@o%>4'tV[B݈	mnbG'4]+ٱⱲ+'3Vbaz|ʞd0_P1H	e}¡PpE뗚cC Q	#9m; XJl%B2E$D_4b^<s\2exVɮLye;@+c{"_adCXAq=W:;DcRk\&T:n<ի??9J2j%@Kxq4M	M[Dxb7@n!VpS\h,W"}S"7*Je0cMW۔*E?W1V)[r%~Y/S"%
-Ї>
-@&	!B/Up_6E#2/RPF7Ob)ͻ%=\
-+_lrk6Y@*JA~f%<ⶣxc!<~@[̓0Ї2]+z5rm.i4oa^kO>]ܬ#n6Ps+kwoD|꯲{NxT4FҶ@Οk<рާWx{)|}Xx?Ѫ{UnPnmTAk390Z6o:Yh	VFX$5줛ܝtI?N4bNsuV(uI	׆B!4sM_o7CW!LI}Uh;ueNBva-ᙿ'Osююxg|^:Z/;fW$s3Q> ټ'^qZpgx<Yu/rο{3问{θ?uK=c-{fIL{No79p@gtce$'k7!?wԨhx<5m4׷t-Xp/ _U |^bGx_bz.87>^/ݲygq텞CwֽOif?>._]Sd<E]p(xacqs=|W)=ES)yaUL.ޑ>S9K,	ho_U.?}a}oHkoH{eK.-_~H_aَoߊ߿]xxz+x֖W?zro~3ӳy24v'fdqx=wΙGLu=vol"{/s<;'.?ҋo7?9?6x[/;OÂx8.wɧF6HSNl*楻:3Bs^{:8iMYݹl!2Ȏt*L;\GU
-l<^XfϬxw*s".ex% dW.]ܞ^*R=%5/=3yD:9#-]ɞ<AH:lWgmd+̐iJB^8sZvutwuBxZ:e]91Ƴ83i/P.3q-@Rtpfz^6_-jTHg;ӹP#y^[
-ɥ]=d:_r&PٰٕiO7ǓPEX|aQ{:_?u֬YNsT[v_ICA4X#Ξjlj{ZVCuqx.m9(7;?mL&V@f#GyisZs3HjXs&RQ:eѝjLlDW< ̮i
-Э`a9VTHGN2ަsF=um}Z	Z,Ю<y
-9؊!G-l=5`wTkxn^`ޕRia,#qO޸3r]\aT;YF:]iLavIQ29d5w#YR=bЃL"BG*Id;S+)Xp|uΫD,h3UGT	ӫ yԙ]/?OYc3ihaмݬ;U;eJO98BXɚ ^HXPg5S43әt+~x!Ω\+G/uҰfgONnצifHb;4}tadz=E5A ܙ!&YYw2L :Lp8D{:T`Ż.m`
-\1=N)?6F6sgf;Mh:テad{O*ɩEk9F8JpՎ1$>@/eZۈsP.5BJQLwHM/0S@#<i>L,5. ͂FW.8Y]Pۇ۩skDbTU3rN~ZlE 0ރv	]<&ͥiaP5Y1h9;UF3t5NyZoI$t9u\t`X&P~A{*Ʌ,6e gץzj$9Ql.A x*E'֙8P
-gvψwCE KX oLvAA`0	]Ҥa&'YN>L3qc֜m1pY-
-U.OwJlZ'@\tX[  9.~\
-"HPAK9:$,҉lvᐓ'T80M(	^z-B6MwIHÈ,vt˴3gCvȝ[:m:KNhޝuvi<(юOp)~X."9`K,[@r
-F2ZQHɽhy.bpxp=P2r4,y YZBk'4%Bd*3˦s% 7\t%Kd]|]Yf4ҹ.	CT:_7WI:|vxmuH's!;hD9htH9ю.?.xIBi6m8[]ˬlG7ض.eHR@fG(DS:SJg:_8֩x=Bj5
-	`⩮D8N(gqoITloPqd9
-xȑ-g41LDřOSHw1q\PbXOXGTrj`𸠝%}Ҙ57iG$9PКm(~+'2r9gBqj;/"0w\
-(rMs^4kA'ZtWǦq2(!ah S,:M-{zIYl9݁hohީZ[j'lVj$(BŒjS* A%0pf e|l.հv3T&ņl+&'=qQe^(687oRs@i{3ޜ ϋQPhЎvɢbBIѡ\^/Mv\
-7@5>ɔLoyaf9B($L0MSٳTSέ&.:ۍRSUc'HUYTu>ݱQZE}SJN񩦄M	ߞ5whAÌLO:@h抌0eSDG27dn̥W0tXN
-f0tQr];0@[gQ1-SaY5U;^h2Ny]x..+СDsu!b-mѡFLFd)X 3b.'"\`o:eR1p<6lNqj]NQOΡ9Dtѹlnq* {>jR]
-ԴjXS9tuSi@9JCr&4uv%]SmU6~| o-jw=}UE)1JêK>v2@}ue̹SAnZXV,Ku%6]kdh*6;0p aXK_98u)JT.:֔+Y Ouԁ\2gF F6xBI 3Ls>ܱFg
-=آ %su!p`uCgwQĝ"&}nv6AN]Ğz;k朢A4:Toav{ƻ!|&ې]`-8:{jJ:b1Z5AFȷZyR5:`ŚZԱߩu,gfyK
-D-Q_d9z6-6hsG\-_BPk*=niQjaج7M(Wܔ)GFv	'U2}Ӑ"QKf{	e#q+]z䩄x5YEC/;T1ҨSd-ԷݕIG~4X3{wZ!,@z|8Ӯ!3;Kslq3f?NjVs-rY-?ۈ`Z7C=Y5ΚjEѠK3>KH9*9$:DK:XCxlx'ü#L>fQуr);S괦Fؙl.p&sm^=[XT;D
-ت^D-JՃ<2hNH}r{TsCvxt̵hC/t;AC<@\4\FiJxPKe+	8t-ه#tKbݐ[esa2v۶^CGߌ5-{c˙Tb*v.E6u9l'wp"˷dNO{GlJt5ٞXB4ײ"R~
-TvwNqjhb.o.{*Um!>5,{C`R`xNu4$5SXu5쨃95zF%yt5&\e9-!y=rPSkZd҆J97$voFw 4ޏZi#,sP"E"|6ɟaC:i8kZ+H1:0#Up{*UFv9y9dI-xK	6>Q:K3ب()`X,>ZyE*[(2!zXޯ3
-p5W6D:|H_(tMDk/3ia lM
-cr9S̓ZQu3c)u:AV
-a׍;sx)wټuzV{|9 \Pi3!'IDtl=rVաKucj<%daေ?htuDe%4Ҁ#j5iϜkԲ^lou!K\A56gu`Èxx2l<\VlV ?X!<!(ڹx7>xQ2$\*% q8ҡVw`r"ZgHE:FX!IPl!;̮jˬnaC0񵟛2x)"esD>k#Pk!/	PRi5 [Ab,yVG-|~<:ֱSӍ94)fgtYfUgs0ߐkEᛉJ'z͆،=$ӲBut-1M;')faÕkE]-.J؍K=Yup!F`q0uݨrU.WNvWmYC
-Yg|Q[FQ4ufLzՎRey@dz4=e5V fGFv<]NdMCt&_W	t"jVz:,
-)*ַ:j'eZ񄝯)}Krzyԑfk+:jMAΪ1
-s]Cސ}ZL*EPpޖBLg(;yQu8D]"4pmv S&u:838DPc[FTGQJxbnYs]Փ$s9k>,1҅$9l
-]t LSd;!"3uBSnk+RkM{k;!;y6|&TrKu`dv\`3<?VvR6Obf2vl7NPe4g{]݋Pfl<Jɍunu>,.3R=M^n7KjC#u0&=Ȭg?32aJ4nӚ cBdԌ3{J6,bOIzU 00M?LrQ$taP˧\tM#7@E%X&TS#lHc RP+:3jU8Fu$wQMǴ.[Beq7pE*{=Ftmfw;RH$,XB2mxr\Pς
-=7R\VEmڢxG6I]0W1L^7ɣN$4$!({58K0k4尓LG^.\elY*cn<'!|79ÒvՖ,숓hV,\@ۏ lf2<]W]$T@gniCe=VjiMFM>5fh#ϵqcy- N*ՄD//Bb QEWZD6ŃTDB{MΟ"@+㾜)xNhbl q&pkKLy3y
-;WX
-JE~ jwԹk<-Z̰';V=8erȲQΙؚŘC%g6Ivގ;tƵa/2U+f_mgW翧s]Oa^GD>P`Tì5;Ay@Sb;xxB3Q!%z3XFuYiGUؼz׺A+8_!ۦH9SȎ-o=%<!Nv*xFAڶuZ1hVJQ~}Z`#% {,|F8|k[*A֙a 6S[&djƎΙ&e2=22h<sspwWBpW'R	yt#$Js8)ohR$H-;T8AZa`:4ΥWV
-I\i4ܐBkf
-<;6ajokMO;AXN-k[;aĐc;6X pF+Xqj
-B ax@EgєS!ސ)4Ը68zN=Zl\PK20lw{2l9vӥu4:BsXifEJ.:CbP c*iЊ@22aPgY-`Hg[|p~6zRVD]I (F&WGhu}u]ClW=vuh7aW -jljDxGjt2rs6B^2y-܁A%ȁ,t!C;2ABoG,ӕi<wg:,|l8mpBkс*C->~?|sun=eHJr4)	pFJ-PZG{]Go-5ʱJjLOlI\~>7(VuƊSL	t{!.wshpTsrC|{uMZhJLб#Cg}-3<)<v8gc\.N@d꠳`):d.<gG7L'L1dl.,͛FIdMn-D"crp,͗Üc~ȚnҤw	$dWm:4	D&u2Wɝ)v]ΤŔi=$9#YFfl<0LᥥsN>]:Yv
-$0-K-Ң`P]g׊6P3tҀ9M929eڭu>:yB&dr2*E*͗4jIam'Clleoe14B`$ZR$Ea)I&a=.Oud^!B3 eRXy>G@0?	!3K>RC>}f<e?r<<ít%LK#歩d:axix[@)}@҂bR3g]	a˄%kG!Qjz@~<]~^mfv8][Cd<ي[/֓Ŵ^_Xa:+g̠wUS]oaʢi1,LMsi}k*w׹ƴ5Htwn@Vae9EC{	HU旓p5
-3M>S'O>픹kh3\Wf#S[{4p|yZÝ9DUtM{Z'm6#M3krɉ{Df(SZ$'s	P8ŷ/
-X4*r7؝#2(ɡ"of|89gݩ"JމP~A1AJ*a47U"fF-:Defu+?5]iI<7f͞$xxboav)	tîD-uCsՇX1$/T10uch͎W-ܔ;*3rDzSbbhCFdYUU>#xEJf#݃L]M0m+DX2yюxYN\4i,="!7D6Q
-zN0&J)
-)-Z-<VТE-)L8	%5e=2vZm9Mh6yƍf  J&U4әQ%TU%]#ª7Pf!nI9q@vre%v7(kd #|U%s&D	1ϗ@R1˫bKaKK`rׄ:pVG-Zs~2j4ntsW&[%" h͝=1BQRQMoEx\X{inJ@ּj_<@𵨥w"p1")3Qs!dYLMW=Qp-f5gY{ő=&0HxW:5fmMx׻	XI8mH09G&1sLI>':T:KqӶ NbU>9x
-32ڼuc<oȑ'&]軆.YwK!tcs|%Њ#{/.4~^3,Pl	PF>4ÂQPu%2mgڧi(BAevQ $Y8lY@~GAѰ$nz_EG7sâu/+1.q|mbuJ3%F@<.k|dK5fWё6#&|lb5W|xY7\oӘV<L;H<s~;60ILyx`+	UyT
-mWBU^9ªgltsea<?^~F+MCWs>Q&k9xN1)`g8He΄m0|@(hUZ^`h	Hvt.r݇iTzô8]m,6kbWuJ>+4[qp	{fײsy#IH=Mv)N8dFY(
-i ђ |8Ǫ
-^VPgHh p8)3/mBDq9s$zy6MLFo/V,l8$w#2#!+3A/2F/ůלhh.T튳L50*g] ѤQI^q7'BI=[״á_=\_2畼B@
-+W.tmZT+,RBU.r$Tpv[EˆvXCWn$F's4L)D@gh*􈫣QF=8q\Z\0.e4!"5q1BlrQ7e5*E1餑hH5nzJsJr#غS"N[V۾C!+2@h?/y=z7z㷿~~눺VxQ6v**i#~!5a-nM3YUơ0GJ3<jV-V˘169	rL%%MD1r
-ZLmKGkJx
-=r\Ve1_$Vu	]֓y"REe$zE7Py/ܡeBh[뇴W;=5D]h]otpwlBv]YlSFL5 nC\y8]cDu)%sxY=b$O~xy;B
-a4E=@*˸hjDM!"0IP8!tK<k0\Z~A1M<xC*_(rJ\P^Pܖ$[*jb|{PF_x@wqI-(P4^
-e^U^YRc~?F"ܳ%{Ktc2Rd5>:1\"/-1 Eȭ d8l><)7kG]FARtr"s0í.IdF|I_&ߋJb?eWBC0ӛ+z	aDЇC-q&cD{"ߐ΅[BbNx4Z`,rEfOҤG:7Q'>V2r)h=h	;}zޑ_Qo|{~TZkLvϿHޘB-e[W4HCֳ-aw$*%TRE2bCiȖa~Q'MKqЉ9+CZ]vL'j~0#9](}W:0fD44U>XFq^k<xԐ/TCmz6׊ _n
-/hKi)%@Q봖dmfP{Gm2YSM*tKUukd	Aڧ_L&ݰ~Nѝ!:s7YSSE|EZ@}͆efI-c9Bi/2Q]a?<\z1EDꦢ3J>Uܔ锒\70e)BqzXFB&0]u6B\ŵIDZHg*o:29.jwX%>(.v}./4$KQUR_SKǠe%Xv!H))}BCA*m錓ҫ0rFh*l!/9MQd-}Yd6!EJ9ِٷW	;*p	r!!m/@JKt* +Dm2"YM@)!6^3r	bUAUsiXR+{sj[pJ#&U'S1^qo(PsbCMV6vڪ}ߋ?gG++;o-0ˁXI^y]OFZ.mÌv%i:_0%ǜר']1q>L@$4f} AFtŪj6Ej!<#]	Ǭ"T. 7oۍPG׫V8Z<[Q7wUW1VJaG[+D(pqC\ZX?FNH'娻9MJmBÂ%o{٥MvĔOd{:JB.2'_8H.p[c~)&74ԨJUA_bPr_ZE(ӈ]@iSUoϏD%5̛48Nic׵0*B\$`ab9:F61Hr`/)wl F)]ϕdWd|e7+hdd̱9mT7>CQOUdRb1c*)T
-o"&ǯ0_3&7()=~(Mϒcۇ9(/DƇ~y[o61jJ/2P	SY?=8(Xe"A+4$vJSHK`Q/tGȎ9>\qژjnˉ<
-.fѪ5oHcS_iu9:Y◩$YWz!
-HNiSƐB+ґΦ2i8l42f3b#Z4ԝ`o͘?q }T,ȆotO_*.ޣ-0 MDCLF:
->-
-mҤg4Lk87$#-yvFzFs%R&MC22m~Ym/<!u~8#Լif̴ƙeGABAƙ zLH$)PUi2s2:ެSu/TgofxfY2s33r3IzP3]mӤ\FUzK
-4-IYfPLtmf?T^U_EWFCMpxanaAvFZnFǸE2^Zzf#y)V7ܦ9fgh@\?d///nβ[4!h}}ggg4"Қ݄JI "l5ynT--d5lh)-,R9XVx"K/Imm!rUC=]lcu6h ~,;iuMydA!A\Tyco(˕<2)>1P"4)'՟賿GՙI9UּD0PA)D"lRrv2^qzf3\6J!4k(GYնuAlb
-o*&x>	]G&SlץY!TĈj΍~Ƣءo]/!65BGg|Ѳ@	aD/Okw$X-k~(&Ys2BY7e5Lψ7jSF@&5)z({vFnX
-A=޹YYChC9Z%%ވlOjxqNSĨO#d!dtd}}\ijp9S&hs3hXH 3W&47#7ꅥ5h)jDEdѤGc6Qh$e9IseB!p%=54kj3q1qZZn(BWMm#k[sFsB8QrbHqF\{SB$+Th=7j<[7Nۑ@nV3[̐Iߤ9gf5#%Dgf5C$,Rse6SӌKZ~g4Hd|kӬ?Fi٨]sR^'EvقlA$mM97v4(inZcGxIkis7ZK۔(eYMě7i afF7#;;+;QFvV0M33!vML	7Wwa1c;5G3L1'G2|e~(iiF2pn4Bwhf|+ŢP3k#騕xs?l͛6Z"i9M4ma]}H_.tGhhNlA<ge+ͱ7oV.v{z=]s*@o'G"	5zA9#4iC,ʀC*1DS?XZ&M'Q{m\E̤HBYbSIKƯ#Z}|!ek?|0+h=vYYڥFߋ>|BJ6H1*vyE= .ZNt+qVEQGPd8$u|#MK[&A(ꦗnXc32R.$_<:uvGK&͛XgoS.V"}ҕc.˝1L;!w29n~sh]T fefT1fI6p1;P)@pb6喻E?{11|X746$Pz#2c&;ӌ^lyLVtaV9hyd hPvb7{.&'2ڪH[鈶IbJAL#xVl$DoUu'r~dFeq1e$H>ȀoHR~vu}EtM^S[Qi^S`c[j][sQ rb@wt#ЛisXaQ\GZ+GW6-1(Q?KJ9t<re,0+Oh'r":lBӚd;
-3M74;W,;#Z%WR&C)]"EaE7W8[iƿR k6Oa(@I_2ϕO\ix.Rhx4,E[Z6䠉ˍd令ke4_(V[%\>2Ct~~qO8ly0m*y=Q9TcMlG,[E%唀^o{.*'OmY1knpDxwZBh,K[+u⍫MWIMaH ^Bc%[$Ҭ!TPa"Jω%>.mY$Y2ibZDGH)=m9aEs?t~:+n"$kS&:=紡Yf㣦ut*"::D튢oնRQa{Tv!#aNH+bnmw6_
-(JNu"5t=c]a+CTa^Jm?[	iSjń*[Q}DҢ".6v_R&%"apra<RԒ}
-`
-rXHI2|nH!4!@r<&d0M$OQKiTte4S4l/Ui-Ek,dMtj)=dR΋tpZ'2G"+IU$XNtdDX. (l%;c-.Y8V;yӫ*hRaeD]X.Ͱ3&'"M:W1[gX֠1ˮiGGtrHgA$s$͜"UhA"B̭TCۢ_O+7ҪGwQ{Źos(>^tBСAWZ,^A*G'U9*e#ϐӦhXcZ3yEO؍#?JK3I4q+5¢/0-,.--R4<|mIPlm$%sVdTQ.~!%{!wY^H^YOS6pPcj:OHyh(.u}MH)`(=TѕP+k(RXpD/akh>NTZF%Ԋ]-L>$iPfnF;No~VlB\>b_fU5lb^
-dK>+Xi[y%g^e_b^к ɸEV)RҰPƥV~*lsחG(kRPYἒktA0,X92J))BOD:u\rw#eUx}i3qH6kMT:]WlB;9o|ղW](uHo<Y3Ȅ[?(u D<Ű&Bf+zŦm)Z#tQ7R6PE^=))쑝/	Ux{QdqgZ^U:Z'`>f^B~ќSv+F64zϿN̵;џpÎNuM+Wm,wJRUFК$H#EHm)Rs'kStݨm<WvcYzlс{?锂ެzgr_MjgkA740_#-J[Dº[mO"q"uB<L+e#Hm fYDr3ּ(z9?MzE'"
-;ˋSRZ(**("[=/^ĥ.u*]6N|	115ȕK(u7/y^d#[։j믿{N%OMLSՅJB4zvɴtK-K(Ku[JuBU^o<M8X6-HUCΎSuINVfU_'(P1֖ENq۠>kf9'QrjJ[*M뼤\l_Ol.4)O~?_4ӷ$dӴς!5ӏY ĵ0-ևtgrl͈l ʢ՘tv1#4>d-ˊ!ahBMraRY]59\5Uq@ei6YE#uIMꆖi3TͤĭK2WnNYynnVS1FFA?b7RiFǤ*zNDOy"ek(Uʉ|f8c쌸mDa[nfl8-fHC{|L"#77-X|ՉG2%WvR@Ub ;J=c_ïh&AO¤PcJ66t6)=^~vff0͛6J/_$.ǉ79)9bCXHt фGL`zF9MҚ2zH(7&;PíLŗEᘩ]kOiRN3~R2?:-ѧqP=J%7>}5nak}ǨU9ׂ|_E}XJU"Q"+.̌*hM\O<xDIN)ElEf%p _k[Ut=bGh5@Aq˂ɝ(t`@UέǸV:M*K^&m8]n+oӷI fY9.GG*/84lgBfqD&B4}efɭcs:iじGW&R斵gAH\଴J˞<.`c+MD4 _qi
-R)OiQ
-5!m}?+B [SҬEZh^P&Bt(<zS>g"+ED>'q
-hWA~
-)*/ EjcaQF)INQ#5uIfdTu@R|V^RfR,,/m\95&ekzߡGTˬeVfi '\G~{^=1 PVPImY. 5/5B48aMR0]sS跒37u]N]iHeZi9n{WIXU-䕼+/jVʹ1@iXmBL64BX>hҘn+dRW"kDS^Y=+iyb]dxJ]Yet _Fӂ!NsSռpJ^HįӗԚNBԉ@m!Ŷ[4a|Jp%	6Ni$~Ƃ+t];E+kkmR [[D+?㰽LnpFUѾ6J˘R0"ڐtqcFdD|H򶵢ь?fit^z٧o% Yr|'V^Lu6mWJRR~QA
-#b)l+8k/[2w9-I^S%G452/(.Z!1bˣ3Zy\!BwĎ/Jʲ)ʷ㽣8|w)h1hfldiy4zu~FQ¼b|-98[/eb)t!jNuABj>Wjwvԇ5~M	-yht&^39$Ԧ0x=4^*UP.͡p;m'77'ohg9Β|ca>:b"Τ`tK-><ƦmJ^Jt㍌;ϥbHi&,KzJiY\+GW6Mtb@.c#7!'cLPnlڬynCTeh?z)QM)OqԖBX&t_Qôq2^eRF;譠4 v EjC~#GECgӪHw[Eoܴ4U7B-񣑝W9!*~bBhԬKBo69&Dߏ_ńN}ȫ^1iMfID!QP"{Ş~%_z'db>ɃTqVMrCiC*6"m<FE^1QF{]$imIk	*N!~!l޳%`8@|zF 9ZWuo~h)ZU)aE;h'튢]W푢=SlՂ`VMjsVĘnfڂsm]8i&[-xnްoڂl۶[-xo>ڂlǶ[{[-lg~i;؃N`g{=f#A{p=86m=\ol7ك[v{=xܮkW5{pNb,80$2mV@nXp`]Lʹ#,xOi<˂X
-^E@'-8INтӴ-8GӾѴZp\WjJт4m"#r-Xv^<؏kxp0T\ {$0e30Nsg8m	DEd3#1v<^!NSk
-w6ݥt
-$+xEl7WDɜ.pKR\sדfwp;#Qw;p<MKbo=N`z&xS	#sh_Ӿ.j_Y_9_y__E_RO>Oާ}:!~m_~m?qjIT[B5%p3.p+.p;.p'.p7.p/.p?.j;\Ui\uiܔ-iܖ]iܓ}i<#IO$4J4م4K4:J4:K4H#?IbO=Vz(uo%'t	zt[Q-iO^]۝4k{	"?%]AjUITiv&s&}t)IΤiΤI3PMjDITEr&t%QuLDՑ;II`/𫞓#F OձwITVxZ*v+RCyM*>ZA`!Pu:\TGKک}J~V{=<UDVjWo,2K\KTU|\X+ԕLf{ezkZutmV:XUuWfH!6el!Vuv;Yw;]dݭ%>u YzD=*<F	iM;ISiigsҚ~T6HKd^Fz]!7zK-vw{d}>ƏX}"M'S6mgKK{fu kGK'im֙],]CZ{ʛ7VGg2 .]Mu-w1BZũge8\>a쩦Hna諦QG[_*22a[*U`[qS`22"jJ*q4riQ'(Yٖ9W\7:8*|Kx)B3q+,Ӕp_bֲԢgRTu̲sso]%|*+!Ŗ5H|΂{R1gnH?Eluߕʖ||mZl.nQ(zi;@Q.&e(v%uERm^4XC]~HUY~SPrIP-sCT#^!zP<jQ_LWSF脅j%%R=*uzF<-,s"2G,jEwpz\#:.pz\Ng5K=U[nXM@NmU~E+LbT+Sm13.T	̞ cA%1^ٟc25ٟg9_befR]_c:o0ϛKfS|ez6s3s9iL̞c񍙽	5e,m\fll{gCyeXd|(`B>ff/b쟬`	2ޚ1^xrV3?g,L/mF
-9X ,%R`XV5Z` l6-V`v=^`8 T;=wDa
-q'^z(짧,p8\ .R¼o 7[mpW{y۩/UR{ԫ@';<3~MQxWUy
-O»6g?XC/)rvGl<L0{^*Cj0+A`s0%Z`(`4rVÜ L&xBu2ҜL}0g 0g9\}#p[,þRːr+v%TU}Xz ~#M0Q6l6`;v ;;Fnx{^~ pGuay`^:?n`V:p@QZRY.üB~suq	۔7~x <1Q_yB3<S;SZ@G]`vna={7>?`9`_Cv(Lxu܇#`	?c,앱>DM/dSOa?~̹yHo>_s\ u)er`V\X}=n@za;pt`+ۀw ;]nA>p?8
-p	yO?Ey489*`^ЂK/#Wa:Mpw`ޅڼZ(>#1ܞYv޾[QO@'+{v¯0=(<c'_oj  }>1am0Gm$F1pq0O&aSO9̈́9Vfce?j̳9VUX<+B+XleF.ALJ귰/ů/r`W¾
-a=T0H75I݈8-i{u+ܷ@/}'LVn`܇  Ca7U?
-	$p
-n̳wWKV\F+p
-küAo-;Qsj߅=> x?ܩ?3V~{)PS6V̎0;5<Nnwz7́0~܆Cz=`$Gثh}j?ncf's0 ,jMTاk3l,`5g4,{<χw@_~}1%-X,
-jJ]MyXu6]~~{#M ҩa
-  nGњ	~@^~/Da? !0pOݣ[Fi*1a?aco8o_E;엁+Upn;]px <'SΎ: N@g z@_Κ0RokaRыCaF c#xg"$L}2x 9}t?/S/Ӏ`&0  B_\, Ker`XO3:;F;sl}+v ;]n` Ca=bgcv@Si y? G/>< k% _X
-+ng!  w{} lGc	Z=xcK=t:]@7;	*!L߁ |P
- YAp0!P`0`@R8&*`00)s,0O:VA'2&3Ƨ0@`&0ЁٟX1/᷀1BxGb/gU):JZƜk:Ƽof`~{+lg̱/ {}~ 싃0k{8$X@S %~ˌ}\#r7ow߃K>|@!GDyўmkXj>5^[u%nuG@Ox"WtY_*ɫ0Wh q:&!D8ÉAd$lf1c).*2'h=Qc(Adu$>Uc	Tgi>
-:a<MY,$q#R`5K0@Ő)kFG** ek$C#m@l@mR
-
-cu' Tz."`erfB{G	 {Ɔ)ǈ'rI"&rY"爜'rEzwe"W\%rud&p!x|<8 t:]@7;	pZ_X( (_7cAA<иkDC9Zxe85^AH"f41+cKdvk<qL$rO"n2gSJdDfIdDK"'B",!-D W\YW J"8%fD6 ę}31[h+,ۉ ."!>O09D0TG;JT`ǉ;'Sd9M;
-FD（s`r6A:p,7"r8%="< #x>&	yJlu@{:HL'"tSWbNL"=SobKL?0 tpV)Ha%BH2Fh!gX$<\FS2㉛ $ĘLSLa	Yl8j1%R`R尬 f%U`-I
-f"9M&V݂[mv`Š٥qab0FpR<A$S uiEsrlaKD.v`sܮb!lp	6Uy11O|SY9QgNX:HL'"t!ҕH7"1=71}%ҏH +"`b&2P8eDZ@F94e:r3*A*dH֝d=H(@"(xJmR&;lJj2Hn%n2QQE_9OC<e.qGd>2-po(yBr_Dd$%(:|],u22r'K]dE
-`- 0u`#	d(bJg-Q;bJȾw8TlpPO Da'[)⨓"nr	r)"glry. KNd딫\#: m'!G>DyD1'D'3'ۨ@ߨLS!¹{VYY`b]NX:t#~N}L\ ݉WOxS{Co8|۩2 _ሜRǯaKp@է8)DF6
-Ad,>" L&R'ÜB0bi.b[[Yv_r]0ܮ|2-#y.My ]*d*^*[*]*ƚ*pz)B^@"0rb.vq	RdRdv1SrXh9RYAYY Yf,n=m `Vb-.C 	Il;-
-1`z&ƤG1<9AI"bJ,#B+rE"Ddˈ|(J`p1v)#m&0V]rG> d{H=/B T$ԛlO<#΍""/ aE6($9w$҉HgM]֕H7"@rП,2Ѝ*vCP
-f8H`B9B%2p@`&3SfId2!2|fC"N+ˈ@a쌲*7svnvJܛ̾l[anwl]Ij!x:SAvZ-!A䷕\vK Dhi/BenIn
-҉}|orG_Hh!G2Qd9@iR	~lUp)7,p΍~<)ߡ0.
-\u;$Uwp:rFgsTޟS9rF_䎛=P}"xEA<'}O)Uq<xx3a	=쑰tSXBg{tnXN6jsz bO}`CL@"&5!DFd8DFEd41DϔyؗD"<,q'IA_D4{m:,3Yl`0, zXguŰ-![0KerrXJ<ɮ*mrZM"kt,l$fDdFd;Dvo,{mڏ!0܏ Gw8Iw9}EuS
-\nxGpnw{uWy|<@G3RmOECN{@_?j7W@b@_3!3pF ;(VGXƒ#-xX& B/Zsuy׽((S4`:B f8"`1-X &`>n0{>`?p8'Y<p\7[m.px<|x_@ta.@W@$!P`0OcO"e  nV5H}T&c_}#o
-Ӏ`&0|Eb`	XV#k|qOb1HR7|h7òv}="`saM")_V/c+0w`ȴ\pnZTr:vѢxZOKr؝mlX6~l<1M}/&Fb4?:2:v Lg@OWO?"ӊ8dZLsDP?(ÁHʏ&ZwuSTZvB&B:ϦюieSFc5)& 'z.ZթM>3N>'G(7],iXo2`7
-o<xzh|uB0XH9u,[)|9svYN?Dj[UYMG3=~6K݇xlza%ras	zC'w
-8GѡIsd=Od3@E"D2Je*p4DetPd>d>('?F)]Md;)w&sBf8-ɻ#􁛽o%?0 O*/;duD|N<8I
-f6䒯Ca@wOD3HNhz1HuL~l?~8\Qq9>Sx{Յ?q?@_~2
-L3,`v\v,8$Z|K1XQ*x)+B-]P!
-؛`n6(>Ǧ6lv!^?ׇ[î8Կ'?.U:7 pG's$qf~8 N8~ר^~1y'~ozqxVpWzƂXz_iSSuPg|>> #1x]w/mԊy[<j1-Q;MFq|<0).OQKD&?a..D,/ PF@  t ~( |uD Fja5<`q\ B>o9R`xjW\	z!'cOz0"k an	lf tm@{s$('p'V O ^w ;?faNyT6$a2RP_n5Vqjj"55Q5Y'<OQ?)HA]
-9K_
-{/ya^@3¾E~"QN/"΋(Q^/"y	~/+/#/#x/#˨/#Q/^_AWuQiRys|xR*9%U>*WC?G+xt4S.^X_0zQ@Z_C͈7ɿG1POd
-̬ɯ7uVoETOylˑ.	 ]t#2ҝ~HsuyτWB]dޛ$
-w?`.	*lϻK]qɷ"sxW@`08d^-ڐ+\ _'Ie/Є_"@q~/耐MKy@_tka.Hd`Zm>b˵{Vd+{d>zZKGV~ЪoZDڨi|;0ߦ ROv8~םVd2$]P^MKݦy7ogg9zz?
-2KOz(exTxy˷yۼmޗO^ 0S,6q6ٲ F`n
-l;	leQK&l9jYH߮M|E2p-v?" Qp9%$\\o
-a)3,sDz9'fX.R*U;|rC6V8+ k0o$ ikv߁] z<HCwwh;|'	,}
-g	cM
-:oJ|wn+@b};t5Llm^pCN}#2<gG	 
-?b:r*2"dRH"#:`2vă&~131od,%:dΔD~)+-,$bx.!Th%i|0U <iHtU"4C4y&!:Jh=D6Y IH,ɺG[C~a3QMۑN`oD9H0#D&"ǐqH'ESd;-~Y"(?;OB"$lz `"$P1JQR}cT㫮W}1|{Jb
-\7ipHl
-Kӝ? TybKg+0;ŖH;=Mwe S"Itl7m2horh2hė;1dи|+~YΩ{axx(4MxGTe6Mb0`80"`T wd6&~/j U2u%i|fE5\a`ڌ4C܌Am~oj d&q`b3#Wg~8>y0g3"/P&l~\7Q'$7A+ VG]C4>|]9,eC~ŧŧ$g{ s<ߺ|9]u&[[kۀōYec秕wLM/ -{<>_yB
-`Va[C~Q__P~Q:1ǁt~k;o%_Z)tտIt.ae }i˚7iyGOSh[QC|20CB8Fk	C|5pix2c==Z?~>ds%==-x/`k)џ0, EVTf#ͦ"8-Q(`9`q@T95QTQDt9%c$ĸ]C|d?Nhd$	GH~qБܐȒ`
-&P'j5Mq8󇒌FJVz<Z4].aXtT#L`*
-Ø\*눰QQo&_MwPCB"	H&Kd.&"ZW
-$9by=j9?Jc*%'RJ>ZOU~Hf&E#sV>ɦU-<,J*!:DŜQ+&	YE1}Q<	S->_̧l}#'tZt㏣EҘ+OFO3=;ȗg?~2t**7E(CSV/`ܠ@ԗQ,jL:2%[zThTKH^,l%>xU'ү^%gl[֐bGDR'BpPNH )
-\LCU⮋v4}ч(V2dbԘJ}ӏUj}1Ml=ԏyO/}Wn#f䫌tΑiU-o%D]bVlO|#7[i{%lP54ázWo2j$D>tˏ}s/4zG>sr?``CU=RV	nU>lFݞٱ:pUz|\oWOv̷a1IZa*U1G\g"ŭ1qh6]S4VoYE_Xl~kJ6
-ɭ<zg*Q;_S_&RAYgDUޤෑbR66]Xf2*s?h&d
-9_VdX6`^`C:4TgB2fwԣ(hąYMs~/"ͫ"O</;pُ+Wh"4\-ҋF\"o{H@*%{U 4"糉nQě[w~GddZ|&Z+WEn~,ҫWɍ~EQmXD]c*IB?+8P?"?21/_XGR<m-C+V-bjURI{ۨ?pǍM!fX9)'FL9v$FL[Vi_bYIpԷ?oݷllIb;I<ř,N'!$NfDgf'If&D,B!@  ! 	;A7ITKY=}pԩSNU:u[4r"$CJ0{nU2{?axVY/8m8z/lz*c4WzwJȫw
-!_yJDRL3(W){Y9rF>\<0L 큓>,z<_=
-z;{bcҭu 1?` 2ɡ/s~u;`$>T[.y_,0	%ҝo_G8\=,B.$.u?څ#-äf@,+0K9t̯^'?pe;`{b{2￠sz}GMﶊW4OyOi[}oGqU yIЃ}#5ױAgz	:/᜽mSQ=ʆA㑳:#)xoxn*){Zv[_/!M7_qyH__ ~'>ȍ6c?]ƷG)份Aw{] ?{Eׄuo! W>:'vQ'C=@FKa)7P$^%
-Cg&ԋ  V5۶&j|^Hsợ}*TAЛYM,͠@L
-O4J4jji=K={c3{!T$#`?R/Е9weu7m;{gWͽE`p/1~[zʏIxi .<`_<xkyC7dջ,xO:/}~#vGmlݫ^arbRP5].sfrS}D`Qp(QI0T+9~u3>wvܔ{]X$MOB*W;ܻp՜7K4X$zjCR/
-޽䍞HY,x='?</5ȋGt<$N)9!,#G:+>Ѭ!![+t?Gui64~?ҧ'A#} 'r5b^xU-(æi9wكNwo?\'^3oݫxs/x^ãob|R߼Z=ш}̞BӧwbnaQe*=8	SϧT؝hĪ~끿~ T3͗սz@u}j=b^7<xu{pCz_
-~[#w}?V=^_|[Gz_kt}(.{8J>wzoO~	s.㋮st	zFe}&FmM=nۏ)<qdvC?Q<2GW]&kUUCGם;2g8(Bm$~Ivfjaƻ_a02}R@w?|(l'8\
-)8RtG)8Z3R0[(Xx'(D')8Y)
-NUpLl\,*3_(PR\b(X`__g!Od?qr{_`E΢,)GE>dWΞ`/o~!Y{9翕#ٟd/`δI|*MdP.S ,ς==o$4E` bw=7M+h$H}GTt/d6db8^JcABbϿb(35&dd2`Td>ۓQ頽>Lj . Hw#Q!xf.!NsA{X||dD4 ,!\2*gK#=~%9c}0,2Wb0V|_|_S6*{z7WPfk["xVl'#]°v _-v]'n]A|/([E`<$P)y#tsnq؇elF1Bd 2 aN.*Gуy?&l'b?[)PVӠgP&"ϒ9SENO4U:8#Hs#
-*_Ps:<fhd'IDޢ*@wY.9.yl<O`6?
-#D*h"a)0B<ˆ4Yr$Jwtl9
-p%FEm|4s"Cn	|RuH[17,S
-"/8SB[/Ivd(<O^T@CiBMh/|8!GO3P/W (JgA5|jP<(
-ja^ L*gS|h%Pւ@߅`[K};Mo%uGj.Qg_4W0.U/A  w7Iƀ&bs@ڂN[AZ!A|*.ȽwҨ](݁=AWЅOxoZcpsF #*MV>5QQ4(S,sPa=oyaqAI8
-xTCoONǕ"y$*?)*N-@VAq95QzE*mL\B'aEcFrINq	#eU+ɫ
-T7`Eq[^'~L?TY]ÀåYhs-!I4ȑ3Dzp1
-5hqB
-rf"wFd!̙ó<<^yR>iD|͔cI:d<O9:x4?w{An	ν2D3*'WJ){*iPi|F͙l -b(Tl1p!C2$i(jC	|>^]ylX "W$J-,/jy `3_,d9L,~?+0FD#`/"`IH1eaJC**56kA9 .2^%P`7^b
-AI ۂk|;4;PEm<r'(Ův^5h/uwC$ 	̾`4]6 2JA X׉CJt1l`<珵A0,6Avqn~}8~c&ZR` hnAĊ,] @#.jK(p)$ݰCփP\>zrǯ6O\Eg5	ϯ*%nHN&j,-X"nV;]=EKQd1y9g0b6ap&U<dMu9|9R{KGn><d(Ms|4(c(#y">Lբ$!ԛ'E!QsMCX
-\|`~$jy8m\ǃUNC\m`d)Tj\#U.3aaõihn3C!9ղ@ٰ%rF65,iZ%htҽrޖEŁbIJ /4B2@+ɧ%d13hf\qKe9Hղ휓Keg2T(֖EZ%`ټohJ
-m8#P!F\YIGZ4^%!h=]$ G%Zxr%Yuݪ)MSr;\fk;QN1.hi{԰XєE-N#UؠFhMxB#.\pv 6J6Ƀ,=xGzV?k*yeNjG>b"C!9x)E@Z*Nb\SN΀rC#Iȋ]gKgvp'k吼Q^p)2'E6=r-Lmy	ՖhyZG0̫P<RD#WP>I嵀By(DJل{K23QVU=KL]5Ԁw-\6p6p6źm;r'%/`P˴B`m$hQzO۠nɟWV[娐(&yѡgY5{YӲCA zݒcvnXE	,r\!dPna	`!Cj'`6)"WN~Цx6`M+j@(nmf ^{l٪sXKs!{6U<j2ċ۬Fm>ʷj%!59B oa).S")X/AmZQ^޿̐l
-iװ(TOhKe!c[!r+Nmb]U9>]FW-Ym&k`:f_6UȜ6*IDbTӛA*	i[TVk4ǵm=PuGDem`姵=GMh!;]j@*8c5ZZn*rVOڏO#ӚP뒶OP?H^fXK<d~ѬØ,	g^GQ{X=0aD8Љ[h<j'C)лӀCCgBi6:y[|6K61,9^ 96+.<A\Wd"@HKs	˘%v+4W0W|	k@C:=5t:;b|	!zBbw|B= -; @2t6w]6^gc~MC#t4G*(NPc5u2.j(RGLг:]/8eO?`tbzsUX)?fx&kUnu2
-\ED(CVkqSt
-s"=:M˖t [P3r p>KQ(,+g+BЗstuDN:_a!>p<"T8C:}.Y^a}(kR*HV:g<GEdK A`5%F.NKW_
-}V}9C]6-MK_	
-MMZ:fHoF`zP Юd$NJǄ4􍘁yǬC$3]f5[uU
-VwGw wni={.Mxjphmw:$^fAwwYN}Wmp`d}'Cp3(@e	J%>< |G@)	>8u>z)$H61|pqcXK6i2pZg@>"M_v>9, .Xa>C#~"h_DߦӽZgj2کOF-B8N:w n\~8|Djׁ7o 4n?Efx)|b.JId']4Y԰`C8imeuxp`1#=QwG	g gh+pxl[9g	Nx-hK#Is<PAxPBg@%~3<<]I롛dcjL=<dkAi ~=Fx(Lu್Y`y>Q〳/z*X1&!'UWC"//0CqF(`@O3>	V8(e1p]x(2p/eQJS0X 76b$Nr0J]/AݡF9\c(
-Ì'?a,Luy8Fa%Fe1SX+^6m3Wb}UX@arkVAXOY^vj*a/QPol36-hɐ[tM|{w?k65sG`XgGbZ݀=D;i^Qdg^~5SRMc+fFe5LcX6RoTkA4t9A4QyBxyp.(-GQZb<z('܎g'P<	|)-[iJjuyJi@dL^_8GկoQvyNy5]ccc8X>1LŞb~=tn2;IKڼ̕0VJ0בjy+LmZ杠]d]͌j ˡ3G4&]e4̑Λ6ʀ+RdCHF洙VHĊ6]7sgX93<qo0' 4A9"	v֜	ͩ(fNjN2g 2s,,7(kvp>par2"Ez,)s>`YIq7sO8"Ƴltd!3#uY6*2"C#@ϊH)4*uSXŗYd8VH2G\	-QZZT=^bjd)j#efGr<+R_ȁh+YXY̋F?#kBHhq٥ЉB&N3"bcID#Dl',8,TqO]G6͵Bl2R|epVar)6SOEjSqyz;+àH;f٩/C 7KKkUzA"tQ"dPtOt?"MD^g<㬉pFI@c{;FxQ5F7/F =L:i<;S?/{i}"׷#B"=;~mK=OW5>D+R(AՓ98cQECj[HT9nDz5	1cNȜ1"dߋ>:E:M+:P)Ϣ8ji3ԃ,c㬋c6|`4j>Kiթ*_&d
-t\u\`R/ú	<˺8cN!Ί6g;j@*xON}]085	S
-Po9tiJC`#$h$ݤmab`Srv9ΦYl,Gz	H@\3X3qt*mǜ	bI&Sj2U)MP/+(cY4I:Zdk
-k*Bk|k	d ^ʚ	cΆ۱DINoe阅;svۚjl [ŀ׬:kk!$6"(+)ZZxZbŔ?aU ^Z ,z Z|U	b <gVYZk [k!0:d:7*F~Z5kno6- ݱ^Ջ6%k`S.j\fḵ^Տ;ZfpUj m50k}o2z\e5^`nI[ ?e<k cjgF*3oZg?=
-c~:`r.vעeEQ(Kځo: XW&]^~Ⱥ
-d]utpuä/n^	$[j^66a/璻j83þvp;53=p=p=<Ii=pQQ9hvT;>`gGHP\,{l;08{<`:">H>(퉀cI#lٓS sJig3 와vh{♍&څs- 7מE\͍̋iEH.ym K#ϰvDRc#`ԗ .gW /CMrP6ؕxgE ~%UD[WC2{Į"*]OuoWQ47<A)
-[aFE怸Tг%6N4h/wۻ:DyZr
-o HiΛ(bTi6
-vC' mC
--jy}-VcGQ>h3
-5^gt	#>C?4J)"sw>O~jF-btz'h6ievd6BצR]Y|GЛ`.Cf
-rOFQt_Л7TSo<ar"sԾdzlRJ;
-ԣa3l=܂G%iTr9kj{$FgC8mn!GU{4e;	xlӝ{vEGy8K$㑹bO u&vؓ ɀiTRs:HtK3@^A̲CrB|.2#y"dny9%d:텀Rr.
-)(e/-s!7!
-+y^_,vaC/=Np|gYbN;h1Y^)pB^TRස5xYU}G/XrV[1ښus譇\ކ{T㝵Yg)#7\&:&4;
-v7ơy2ـzQaC#Lu"/Л-3*keq9.v6ZU
-GVBR(,[T;p	KAjUٌµ*,fnTVnrQaۭvv.w8qv٫:T|x7\iԃi@i;&{}~fke.StB-D9`S`nrbag%'FCQp8~;'4~ZYN+I<qB
-)qйhSJ3׮d[`wΡwĮ8B5^BzCoמuNp͛Rw][hmN 0[\^r0w0=eqwJk
-yF*e\=:xR]DC7- .gD:%G܀KTYDN,bLFSmXDp*̏a_30qJt84i;f5Q4<ҦL FGΉɻg(	hpǶmD#^}"ǦHgYt-h.1! $Jc$Js*J0.,آ((ʚ((ق(GqcEfhe,JsSY)Һ]%'$[)~1 SAsqDCt<(໢wF't(Nҍ)
-':X8iPW%.:r3"Y} xIV	F_؏D,Ggޡ,hf;sѯ̵ċ"JGtMԖ. .USK2:]TےKlz
-YR[? >][M^nӚDI&ORg+!JtUŷk k\\th7t[ʅ&P wE9`RVPnDZttww;'+.na1^Z[u<n ~*Z| rƖM ݋Vt1Xw?`lzuFj^m$-4W%%%Č]~夭S=6Wv SAA{Vm9y].]THĽhm(^m@edvWd\:XZ7Q½Ը]0-pj^`t
-Vv)6>HwStwpіHps ׸hTUn\{,g_ v84ԱYy<0u9j	Gf#:ONj䃴ٝNRp3܋ҕSPNmOsatgc`m3u]
--P,g+X9*5XC-En⡙GCG
-wHün[{eGԤsbιdRWrƀ-CޢW@pKFrF"ee
-'4jwsSGxhͭ
-ut]](@Vr&Y'1_)[`jBK]rW*X2nyvG=BLK3ԡ)r7U6:xu0q7;an[0iwӷRM)9u큜K\ń
-19MvA򼽎Z5vhsW\^YW(s@lTodoCyL{ .>;8;(}bxΉ 9	L`w:d{gVd&y@. KJ^"AGy_s}=㲚+`X],.+eMл1!{}nһCK!{xQ1C#aQ5~g6Qt$IS
-~q܇7Vx`VbJDJ{૽(F}F <nC^$,ۼqQ
-N`+|"JwxGq|MR
-N}75ꘇ9qx|:7y331Κ=V@YP77i.0JDNyb7ʞǊI)2=Y:xn1.z?v8zaӛtCڗ~WWFh!,bfaWYlqz覷(Z52xbq7/-*OGo~=/Um.쫏:.ӷ>t{}rjr4-zh%HG}c*J_kn뀹(}A5lFTj>gjd6(H雋>E55HXfHL}i>}\ħo|~O_uy't)WEբENt9ON=i>}yqا0j}:VsjtO>t0olCftG_~O_ST?	uh_Z(E_Eպ.AoW#CA:o黭`v)wO
-C1BO&a>t_F4}O wV-3>{kл]~-3:h_UwT߀YaOKBYӧMFDN(:M}Q:4D_h
-9>^VQNt-Pӷ}:.:4'X?
-1?f|4ȧϣ]߂w>?68#ʈ>cQr!q?	҉MG{:j^F竅z?`^l(^n:gZG<JWm\f.>28*Fbk1hipKh6+ XC'JƆ ƹWPk\*8gĮxic7AUB2w{AQ*M=Mu0Wr#$-HFk.6
-pJl4(FH@fz
-t΋ьLe7ob_,6;IvØXn@fl~?vi,U89ϲc $cQL,~:XIe\,6c/M	vybLLu{^Yu{sc&
-&bqhw(l4)X9o<[bEjDNU8`@[ 'c
-=bBw-vsKژVJ}¥m})2!XS̬}Et[E  (X
-ָlkYk!@l`Kl=W}QZX<&d6m<
-x,X}:B3ۂ.nwc;T_]#)?Ip=6(ۣz/j^t[BpuU{M)vsz /=vR+3vxuOc{}s/_#. `g1q.<:']=>80	;[]=s"Oਢsdwھ6~ߝ,ġVR^BS(:-Nmwx5ف&viЯjeA_v}9* Y1264>@CdjhF
-dn8@JB(T KC2&@օ:%@vPMԅC
-4F}PHӡ 9j  Bw+4LW==@FYqzTMy 5su̍\8dC2Y2cZBguvBP	qwa	&v{(?S=_kՇz~~1Q8Kp/˺L |Gz6'tp<҉a<ƋF a,VYS9lt6eXd.7*l-:;ZaI:fjڱjc{'6ٞfc*7줤F!!4xLڬNrVr(cz`Rx)*bQ9-1혽QvF#cÐ=ԇb0b;F	t!0Ix6v`vL#DQOmLshnhn<p6cGߌ+;F,q3`cG:ydyw(6vk,Q\4zLsp+F;WEPz]NR$\ƛuN,n.AFT
-1`NGK	2L3Ckr|wy<[ǷsZǏ{XxˉsiUb x$^!t%5h`2`6\A|XhM"aܔh*\^E,1q&0
-3n1557~loorX2+n%IƄ6n2;.廩\X$PS5m˅iB&}=&y e6bnv5馹Hr{cb'k&-.?F`n'\Qfg\~4juQˏya^tqOwK.?ّи>1'Q3H0'GB+.?M*^sjFBT-N?
-"lN-;Or("/:;TKyBU.Pڈuga;$+	vM9Zc-6>bVbӱAw;-@Mڑ̳.e_!=<~5Xa,X@7H< moa=)lMqnc=yu|y_.4~!&:u3<ĵ3,+s@W8qW<'kO58䑊gKb}mN45J1NpDnxLY	4/ooE'GYAi^]@c	x4b^! NϦq7l.axr}?^7,3az}
-xc+Ip'P*=}S,^pS8C{|kD;3^h"uv'Q$&0TaS|jc-4X>gIHZ+'<m6ZB*J͡#ztߦusl<i&+򙞈}"BC-vuǋ:5_[̫z!ao|]~|^ozsc g+%z@芘TۙRq˩{=&-U˥4$221!XM1O'br(ö+a c+|JeUk`Tgb=bNO5>˳y.
-C"c3	=D/A%/Cb̖b	Rs"EgiJ$Aj/sj|ZHcԽr^Z4g?4i\"}lRC?"O.~%!~	x;ҧWxoN،c	+Hlo_Eڷ!į!}9į#}p@DDlB!~s!~C.=.F<UG`CaH?:AÑ~l]}|?
-uXk/|OTy}rοOsiGc/_F|SH7!0Jc
-zd??&~aiDc2/ "Qc_Z`kek_=ƾ`iԁ_c5Nd_?e=Hjƿ>&߇3LfrPc߮4i;MƾgPjE[Mފ{Mކu&	0;ф/E7"|ҿዑ__tpIW"qYA$7 }{}a1«wsoBSߊtG[>2ǐǙVM[ M2a?/gB~Ulͯgpg4R/4oK^+s&-Hې~7#S?;rx'T>,/p2gbS2>)SmQsKk`_h~ _X?j,综Y|2"Y |&BY 9567|\x:84+h|(xW5sl-_GD7x<7IڃKo`̦ "SAO­ 3@ 
-4" eXc "@s>_d. x)W}^cOg,3c|/E1WX [c#K11|_/[_h?̠5>%8VKoj}R^x(De2eyl}q)	bOx\}qM#䕞()yD{w{\B-%]fO*Rf=}Oa%
-YD?)܀pJ	~S˞(4Rʈ/~sK@%j^M)5u)7#?yiEœє
-xqwp6w9stp?VOgovq:&_<}+>>Cj	HG]4kjٚ/Dz#@'\o4#}?<qHJ)oB3#?yoӍ@yq7!Wq)~yoTِ>*f@LgõC/&d&y#0<Xp1A$o%Kie!ݔf9GHQsb!YJ<fb-~M+R\,K))m-9iv?yT O^T3yƈ!;cCvɍJO>=~ /|SBr<C<ߟ=7h!jv!O5ZH@?8EǴJ>A'jS?~sC.tRr[/&8|PLfݵj{ZGVemJ;;*"fb[E^ {V*C|,5/9AT6Qk^}o؀/}:?L_/HEa-G+9u _g쵚%V-Tǒ^L_OֈvО~Q=AÙ>EѺFS(6)E4eV6(|MB)T5qprM,Xݠg0ZXCCn/Fu@3>xҔ6ޣa9tȈ받!SK*` )EOd!9q9{z IH9i1̏+Xr8܏NǄO-$	tZ,&?l>?-F*eԆvф^:%m4)5PJdS~j8Z$+b1߯C}0/z5?ɑyO3f<~3}G}{(?Յc8;A<Vtp'n+wUh??֟bx
-MTJ+e,jjI\xK7w5~Yq9JuYtzloI_/q'A-=kp%!{Bj~NN2)xj5´^0Iٛ PFz1C5Q؋ۣT>7M#y,ŽpVQ5PVWj"oj_vhKijTSCkՕ/L2W?Z2ߧd~[߫=>䰟s/l-xWE5M}+}Wx _X>XM280+6+)cO+[ځ|ޟ,xwݻYyZy/zZQ?OLϡ>OWt뮎a%0J$DJU}tꀹ/;"&[O'g8OsE^Ea+5pĪ~P/狂{X:tR$),J^3N	rJHcwS;P
-O"/~q:wtUޡo_גx_	Ǎd.d.IEzTyַ/Ɍ^K"^M*M܂O!rCN`5?d+C:=n|t\)Yox<=KʸgYt\-"Q <+<:	<䌟4<!CZ(I:
-!WT(n"鏽,VvZt$L<uDVD:aFyn[;䜟MjYjNuppSzY/;,QxgZ&[0[hl6Ǉı!QMUqjpT8^juc/g/MϦ8aجU6	6=i
-'7CF{YDZ=,iQQ=j+4TgG[Icy+TT*6Tቖ(Jר!%{k\54TkcQOۗD55{<%.9o_(qhdvnFd8G:+Α$cw*
-WI8G+ɨI d9u9:hKsVqj11ZiRK*~o]p>\"O-4eLƐ/(e(M}r
-'	%I^7RKTҤ8H$ޕx.C׻<\lQ?T.	Zkp	JzRB-᪌K*	JѸ=74B}=/l7+syq۬^퉸;$d\@Rq|*.4	>|G0^W̝w )U<ָ$>r(˝"4j0j=ϏAÓ{5|>pՅxeZ2].S6<WT_>5chiqL/yURdp,Wԅ՚x*6|MLqZ졕ЩE<	uO`P{g`[~:p5ށBu`:pM 'z\lXl7T5T+/B)'pMMj}n?PvHOӷR[[=ڋO}1LC.E867$" _4,hh
-"+>Ok}1xjߕm^Ser'nCȆƳ7({O*z{C:o`>oRDƾ+^}&UO2ؽ}Z@Rfn<  [C8ߓ/N!eJu&zd/#Ä&=iMA2"\SW;(뾻˰2EIL}`R.J sM߾H֚odHkL^#R- 9ί{q?^
-Wtc@0Nu瘨9(kc)D6<USTzYI$CnH3⧢SfIPloz3Ήތڛ8UbmNgyrp3.F|^U7󮙥22`(lU #eLZȶ὞̾7{i^ϛo($*	I@]bо72B !	о'ͼYfPe,'"ND8ĉs;L!Z$g<#NdDSB[,9|;ua֒RZ(%GN.`uIPK!ivI(	Yl$ Ȝ<iRVی6ONAF|ԞRnɚG3͠a1Y%ĩ"[o:\C:4hJE~Dr*6/iDrmflC|Έw_"8,-CSFb7-S[qda&&^7ݦM?R/IR:0l,#$89h	>]<Ъɺ"4. 49'w7elҪ)0r\K$R@9&ck|$d]\In~|lTRp.>B^-KyR,XvX)W@xoJ;xA0Hr(^/|rpO"ꉘq9%<
-k+e9n@eI#DȏbPnB@oNvb%;h9Fr:Xj(`"[m8H*X#Hl$
-XǜL1ϕXY-bYۅ2rZ.
-ҩctՈNA7N͠~+HQ 
-m.fH۵oo%k*d-0Jĉ:;֍(rщ(5S?r(Ϝ6]$Z&'nH	@jjllO4dL˃yPȨKv{@@)G
-xXT-C[#.recA8f\#QBK[,{7p6w@b9)68,f d^)?IuTFg\P-\x³ͻb#SsJzo*7hGLe)~ \f!C0O#ٽtg$;`)#=BviڷQ7Dl~3~t䫢T+|K.m/r@%7ȉW+R`rWwKk$^y k1!%ksfeT}U6ҵ!\3vXX'Ǥ1;MO(qnϚF+e!	01DpNA\>w%֠aH~=1NdPК1a<xܨzoGDFSУ:ߦ/D2_H/īRU
-%&℟H'h^5X-9%9!&:01./ȸh,:
-h-ur|9nC7qC8KbC"Slh7ԂL#ɮ	'06rB+zp7dklWfADda1C,)pΑ̑1Y-fLVq{ލk	Ke蘺3KTwݙr.YfFg6˅퓬7ekK|Z0wQX;sQBƉR	bqB)q^eWk\rL[#uR^WzԱXSŘ?8]-i@AޑZ (LQSTLs,nRoUί[5.nd` 8=!,C&)Z;`rViiU*r \"Uڣb=/+~fZ՛Z^l1%jd8㍟J<E$V#nDKMy-])ua漜	a+JJ[XI2n9[ƾBr:yrM+= "(PRyet^!={vzM=v 6c%1YOYN2&0"vݦ\
-	XȔ$*'"y_$'+nտXi(#j ijVB 9 /5/5)SH66%912y~sP(%Z7y%`c-oKNq[0aa(n7<4mxwRߖb%Q7WGhwl[<dԋO}?5ڐ9Tyri/"֕7Hg}!=%p~(sr3~%p[Uݩ6QX!v-EV(CC/C_-LXMcSigy#WƖ`!*"1\:qY;25G:NH$G4eqp04v8:Ʊ<y
-iQ΢Q;~.t[
-~]
-2R%R'TRhQRm!e,)C^hpLT
-1^ݬ%PJ1\4@M$P-ac4A,rmnV4fZۘn[Y@g,(4)ҭʵGt*I2~*
-##΀	#TAo۩Pr¿Et
-㖪^$DgNr?E?	y HZ`;:7SU".LJxr}YVy tEj	"CLJ΍ԋpJ#&{\kNUWuܜ[/UK?eП%4<cėJ_JNz$M	U|WULJ)?4^;s(fh6f^40J
-/xnTK0֛01-W5ayК>N}(N!=rr>^nklIrzҖsPUM-T2E"ޮqϋaVsh
-,˿G,-o)s
-à9
-(
-*=
-$pxAAt_?7+F0=Es77aDa`Y S^V"rSd>j1P.tzVw3eøM"y8ce3;hh?^,Sjz^eYEQhkVͯ5ɷK Ah6:|w-)mm@y販}y|tS̅Z:6mPxU+W^c԰_*g>*-lMn̈~(oOKɝ$$v]4N{"tB씅RA&Δ;Cr;k<lXЈ
-}-٪V֠>$:S+TI)|02iԸ5%OCI=j0K@d
-Ee!v-v!WN#Bul=k᳆LT9$RP*m<oH]]TِY]cdJB+4j5pDxչE=0hsu7/ I6!Fb)OLGC(!"E6u
- h.@C}-(`!ZP6PMt16){[Cl!~.H;2Be^Wo(UCoQL8cGIQTAj
-)R*Jv59M!(31#W$I͉'*Q㯈VVNn}+YqGfs#Js^IxaGQ,X ?&cڡ[[֞/[%k{_bjΒtZq3N+>
-}qinǍ
-7*R;'iȋP$ae_4ڡ'%@gK/`w43?40,g(jNd㝊dl3ǥH2ŎɲːaRiA?^HTҏsu6*^lT	^,EGQw[qA_hȧE/Np1Pմַ~}9}%#6ʄ&0v!TU9rLS0Ng_rRHo	Y#K^HCKeFa:DD*HF`Bk0)@LۻjTZf<v KNH(R;=vBӹ$Gb=B7ʠ Fr`#ǊC=b m	u:B4,1xۃ`yDh&xZ`o1hJMla<LD2qx^zEDQ.\6ϭo5mt
-;xtlqU㛃Pq;ٴGTv+ت6f'`No^1:AȌ٪_	F{#nTg2mA4 9_	:T(p!XTH)/P4TJEha1Qx*YyȆ^ȓA
-g)V8(k*"fXE:\kJDRfDߌP3@iJHo'1w|-#- 8yŰ\E඀(_(_js+>=
-E3wPӻDƙQ$dۢ|hE tuJP*6dHnڗffF϶ю78t:Œ
-qriIb!Rluf< ՄS*sk*jfWsGS~4F3vßp'7$)^Jb {D߉Pc^K?V`{	FMmh'sQJ-C$LB)e*NpR1tCikBb1:@5i-h\񼁂:`Goq7\㱷)V0	Xeף4E,HF0qj܁HY E#/\X,v9}7: fo J$[CeF5
-}F@"g# b1Xno5Z]#3#2*Y"^W[Id-! >dIgA{O#P[a-a#Nx4W4d (rV|gYɋr_T~iNlI3ş
-|!.{:X6cd"mf-90!y{Gi1Fo#6oxY\J#{D
-a\ì?:Oj=p'SnjM?Z\M1pm`.&+bX~̪Wz84$:`lu/f+R	DNᓞXo\Vǖn7v7~v?#7p|BB	IU㟩#=<T>Q%wGj.6bA;_Dp"8)킰?:N\-j9F\|ǠDxuOc4q<2NB}8/q0FamM2M&1:Vh
-l4JPKI|Tɶ:Tf##z>6߾DK9ȏmfca58ẗ~鱏Si]kFON>-J1"tΈoEa_v%a&B"KJ]25v}jj399nO~B&vNkӡ	Q6煕ux;0LȐ$=V)t[TlWxlQ|b𥲲k"\zMu5LO6KU_m/J`Wl+'JcG2{%ʈ.A
-4'zByDPy\~3YMA0L\tr$e$#-$D>O!VlM*;7k|z/i_\ʡ9L#(_i
-YqCb4/P-OJ)#ij6umm٘f@P:Qs9$!~"&-qF>(a<Ψrέ*/%ziiӲ*ʍa<(Q?	EuÓDfO/DbKg
- N==E rHDx$ÚG 1^Д؛ mbmrsX~|pe9Rnqm˺{K0S]0AL+srB.o(@սP>š?lyEu^P^!9爓w	>rc-8ndZC[!Zy__=j*^c6ukhD $g8qoH	\VKOUN̂H2*REt~/pa[ұ@FV:^S):M\2eDl4lGBL<Ɏ۟jna sY'&f&+`@F.yzCLD.Fr-V9R	QMP(DYy!jk\-!Z^
-#A(If"0U7Xw5'hXEWau"rE-Z:U0wBFtLY!1>Fgç08)/osY9%(uC3z*/\QyNvKbؚ׼90yg*W5x@:hV8
-w43<rx${L~3s{W>K%JU ^!;ཪ?)C8l2"1hHyH(clA(^d?jZ8>6pV~YPS3̀\ܯJ^QVy/pڗosYfڣ<߲_ [Q3 m o|DX-xVwZ6oHV2e{ynSa|тqYٞ)]ou{/<A&D.&* F%җ(H	I4%ɸogq?WԆ}!܍yO#A'Uŷ$Ft JɊVQJwl3=4yRek$bcôpr#@G暒)VK_zYS?KXуbnX{OZT9+x=3H{͋w'=|y4,·Tk_(g_O%l'=Uk ּhےwitֻ4OP%ys>wct$Op5(y%4WH	P==OV.Wovv'-LFt̮bgN(v5sjFq:<9T\Q= w#7%\u5	J?Jxh-0ڟ$Ϳ@3\OGd1[1ҝӤG%d/LES[^RӄrHuV/r${|aL@1M|FP![d,E|,92I?KIq҄~gȭz2&Nge%C	U6 fo`Kސ8qMPevq\:?oYLcM	l^*B'|YPPޟg̩@\	Vզtw7˪=PRan+٭{Ntݏsf}yWs*[trsg1M(8󌲼&{b:{<XT4:gxvG~ۛ) 1i"c[0zKy=l![+䱪U[]ձjb:X򊔆a=H)}b(Ki)pZ(?伣du.n)$W1D("ŗ`C1؄5FhQk\|s*	w:q?̛qԸ#BXfC1E|[4;eRV~ydQeSUnܺb#+~H;
-ӪeeiGY׎Q:	 ˌLd{+2k.T<߰K9tC*^)٥G)*3=
-~ϰ'kGj2'uVV]d/Gtw.L 	p0ˉ+(x3
-U'4XJe$GVDZk::UE\n%^%c4xrbWjsLN]\/VMMj'_=k;=/k5^Zh$>!ris]ZeկK=]@{Ϋ$CΫXY۵<Gk.&0us5!xNU<Yڕ+p`X~).8YON|9<Mk^esȧT3֔(fxLN/nWh 첟cLJE> WgjDoзw𫒼@?v_P
-Ώ3NvܩZχ6bχslm]>_E\6۲bэeCh`Yl*Bf*fN[&ax9Iom+BCۋǨchtG#@dN#51Osg"䛀͐p&Ah rp3 _ 7?LzXr2:Z1$*z+]jsf|{R-s'b(|*
-sű}s8\VhEVhc؊05E2iɗ	Ux}J|D+dBQ\MuL+yѓ>.OH=}?̡h@;tTVAJ[P%oA8XeԺhP/v	ueS5k@-8OO`&1nQa7s'eF'srؤnRF	f?סF9&|0vx|ğǁb-[-+aN?TN*>'%қNweI2gA7:2}xEқff"\՛8]^im뱑~I[*؛Tk](=9C!!v!2;c*d2]1Et{ΡI=Iu]&D=n\?Wʝ[OAy)5faV@@Ewe]1Yc[&j2TJ`}NN%MIn$$s7I9i7iczNbo)X~q_FP9yEd?y1~x]
-TΩ`Hk§jٻ]#,TTjgT7Y\]%ܷҀRpo)~*SpVsRQiLM:rxӬ{[ 8j挜|*gCCj);D,9k9$:tarWSEَ%Q)~%9.IJ?COOv:pBz|}}sxΈLAD[4/q/WχQLx9YwU!{Ls	?<	}oS~>Y뺯X.]%a{y~(**yE	VV-/תF<E&vpz*|[7xSTi \r
- U.~Ī*$<vUHʮ
-Ѻt쭸Q!ثCȴз_(-[{QQh)7[m8$87+ˁT|l7aMI4{kFe-ɏ]P#)*@3;̧N=7bk$\/'YKR:X{F8&T
-fTupZ<H]RW҇uaKIaG8DK ּ~D|([I)(ՑFKuW'gQs46:X&MRTAHr1TuIw?sh@yBXUd[N
-GՍ¡nu8w?$	V/؁,$k*qm[z`R[
-w8܈{Rj췒+MTvB=	KE3o:g̸ŋՠ_|Ig
-^JU'':X0sz>NǴcZge'ܚFZ>Jp1؀F)ث+d:6QiWa5Cr"nhql 09*.5;eq^aʺm9\WNUu*OM0WW[BY0UDO~v@%%xYq;pk.xZ5#Uam
-#0K(î;7(`[԰D~ (>E"oBC|nObv0B]Zuwx1	2#JD$4<IM|څ1X3W齑&p]uR*ڠօDޘLOr._̷?k}&	՞y,Z8} ѩD'\=L&HWƻBqgAsG]N]XhBu~]c)@Ã#5D͞J`/+&TE?{l~ˏY=
-}Ϭ*`0+K٪^ùn~TD/>Bdk<%x	4v0&KhЮik;TûTE`1,1/Qih^U[YO%ocr.fw{h7(oT~^ݘCZ
-Z=*$<#y&|$
-cU񞽂m^[J#Fs˹zEy1N:s~GoOEgaTvp-l}G)LG^EBkϦ"a%O<ミPBhz|
-
-9gk0JΉ$VV\]&'xL&ල]6uA'un3R0m4I号ayY<8ee)SғoϚTgkR]XkRݵ&B}qAö(T'8Yc'mBh`Y/ގb&;Ep=>!J%HS%ge?4iE2; },MNU%fj#35j6V5oܟXWcdToKBl2|voo yYSyٌ!v2 `oq}_UlUTd6փ}f1Eu:_Ⓢp. P"޹?y~=7
-O*o,U5y;apj/Ȳ!p'n,BJN_9{	Hxl50U'!˙縲:]S|..L.LwAEb#-,yh+wQ+gK}5y	\R{@(bpz %^Q5j/5mq%HO㊛=҂g~"y M[ԮMu	AͺFxbU:Ql]& +Հ¸ԦE@!=]ot&ڴBM4	ڮ4?dd{1|2,pmVGK6@:8Ac6y6tγ7ay3bMJmk?Tm*O7FښȁPmFTVY,owh^׸plȴ)
-<r`n?Ft:Bzh~m7*Q$ ؽBzΖp=MTB*&RU<UMqx@wzEw
-GtV`&S$QUG.äDj!
-/Lp$B}8BnӞvMDD
-$Au~CehN,4~G!@5<lޤtXD1؏n%h|D "슊K/F0,aVs
-5'-ctz%X0V1e%*570 cYgx	Cج'k	ɼYӲZvA/w]4\hh.$u.7GegL X]/G`2x>`6 t$c*ח8cX7{*q%*N,yaP.Sؗ~_?Q~: ؏Yة0y/e+|)r_hukJU|"Lw%
-U%A.|K>ر/E_IvBhQ㯫H쇧
-3
-M߃|&K9Oاj`OBjyAٷ:Ѫ*~ !JD!Tbp3h$u{'CaNq;>p\TEHv?T3یn6bM8F]l觵8'GvE\mDE}E*.,
-@cèt{3 WK"w!W(j\Zcft<뤱 SZt7usfU-ƄbԬ7T~Ew?(DSsPKi!ah032HְKbҴM>LfZ- _QNbn XjXҮ<(S!PE^]y9~	SFq#'耢cRS/} a@G,ҳharޖ>
-׉j0*{_*Rb~gՖس2T&o3T:TN
-ȫ&x
-n
-a{1!G;zլWXqk76UZy\/pR/b³n=CS;ٚ_ 	KJ8Y@YÃU*=MBx(o߂=&?Q^RXqN|
-ᣴV]Yu9Ը>.ke\+ZfO3mGd|>ݝϭl'4wǞtx#=Avfʡ~u*wG؞
-+=Vz*z螉gBML
-ۑ ZP֊Th뿩]0{PAyVc[G|/h+l0;܏I&@X妿&sm]mWS*}4RZAU*RjP^U+aI(
-}'osbSUxmڍ9M'&#U:[FVB
-`Tcu&
-Km D]VҶ/]Yڗ<m]r3E?xO]	5>?%Q&hVC[[X ։QVSҺP&3-@U
-2V5ڙVIZu!UJVy v^5ޫc7#y	~DOhlO(Y˞N1&AZklJ/2YÌ3
-J[/cĿ->P5[
-qs+&{~kׂפ ^10񽘎ŘZ+hZR
-$!tfOL
-/Gx!hӡޙkxI$oF^֩塱iR.7Rkj^Wwcu`{P(,xدta*Wuű_GcDL+ƞhc?ZgUw(;CcU/;#jbM5LA'
-Э_cpxpgqx{wXV,aش^5%[j5N!^x[XCM)DMʵq3|:ֶBA]*ʪ~aig僳z_>:\p~9eO7L|~ULׇX"ئ#S7N+`4Z>j-!AmYp$C)r~@]g5AzЮ5W=▎f8{{j|44ĠFxH[|`Iz!xN#.}AjV=_t=QJ*7>1R]Ę'ZX狸'mSR77OIMQ3tg!oĹe{xc})$/KK؛7eo
-4W0_lov:/ݯ_l䭥dsϩEsoXK]ėHB)^+U7O)>% }֊BNS#-~k&><@&W=3BM셦;^Uuo?K>Ȯ}>;K}Cy OxVq!8=%`}0<2[&-&:=;E^O"a7E㇔=^
-)馨okLM:v4si~;0@X<c0c+y3:R8]^Wrz89],COi,>}`@灁3ARu]1X	>Ԧ¶ j{Cp&(nHHT 2W+5A=MJJw$H
-*e*{'`rW0'U`0h{g!tUs:a3Sqf>]vb>oT}*Gpt6ԉ$颭N
-Nŉ:]<Egt\ݶs[ӵfb+Kav0k]WNC#xsh{]k܊K6u\ȏ{.Orhvb7iX7T+PXm!Ҿ6DϪq6(&1<;S)s$ou
-.|J]nTZ53Ċ<Tm}
-*7S^U/(o 4bjUu$Y%{4PW'Y%ۭ%WwUZ}P@mQ%O6UNUK&ݚ#ZLnSHm
-!)gc1ݚC\m6VX9T6vjc%6vx
-mTzq&S	/D֎PD44g"G	.pBTC샐dmG|,%Cr=P
-Oxj%.b|7w_-{s-wmݏk28~b 
-X}FJVMxE"+]E^ *}J_g++PPUOBג;яk2$9SamD_3bRlNd6Yu q
-ӵxQL3b
-1'fMZ5(-·2U-93&+9x!馺ў]:}|o½VL4R-ϩƆGIG<J֞U-ɟs Z=Z3G?S?XCܝpk9>	T3^w@{x/E]zkÝ.Z@W8	{{jSO{$|o$whNz.hZrz-As4)Xn,͊qU H53{`}t~¼J	K{o]ES2û>7}p~F{تŷj~v 1JکA3Qk~lacLkw+U~U1|WwOG2iw2hsgx6%Ljy[ϋdm`Jȩ֋gܢ5gh% X1Ek! 8[WU6w3Z}wI	0iN6Dcy$y^΃*m
-)"aZ?9mО_]3-.)07,ʈțAM{J5}Q&C3/^ڇ̼xhPCGDc)0I'.8*qB-=;{DD!<TE?2qs!#<>7*kOj:DpQ=2B<O6݆FpCNK')tMCsNv^]3A*Ъ|W
-u"(ceNp]?ZOSVr0b.w89XtHI^͵]&*axxbmЩTt[Sl-uV]Vp;9<Ó8<Cƿ`/(i #3frqhLiq׶|z)1#qO DwEnlw98QvU	/RP+~o*'F:f_&cq׉=i6ۧLڼ[ѝЗܫ%c=ߚ>mZ-}Ƥ$$N6[UjAQUY0K7UYp"Uڪ@gM~vͺ߼}$b=kE3};g2OMjuDJ'_hqXηe[_#UYUوTUyqZ*S)oRA Rl~46gw<%Kf-Y.x8}ԋ_iWǎQc^JywnPC\uBaZ3".̞Κfk&fG]nώF+0c}Z!p?JnpXJͼآNtlaQ
-v !9_sGyTilNz[b̀<:'TEwV5N+j(^@(׉~l:)=ʡfg^$xK+X!(v}?G6љFKS*Fq4#\[eޖh3q G)sw\hSXie+FU!eCHee}į},(#B(X[jQ_TY}E3&.ьfu皌z|yQic9(?_dL?teO.&$\Lg	alj	{Y"qhN'pZ!/tRvq:){qIiappї\^EqBz$(W`=ښ(]I9d	
-f"[GGl=e=w]Y\߽ᆒy1 <!"0w5v[]֯\S=.̰'R$`O{d{2A\{RjY5=4IEJ?EMuU4w0'J}5Tcj\{Ò ڢ&ꢏֹ`t]KlcO/SI`02gwp>ww*{ݭQA+ݳ#yPPd'sL"ه׉@~.͉PLV/T{^7O?sSrMu$G-@$iC"R5D=3F̨sϤCC@?dЛO{+E?eg0P?MG@`(IDh*P6MQkj}WbGJyrMi~ѺFb$UCH횮68DS:ޫy^]EV^s~[4V>
-e$QU[nLTES7NHt{I -&SNOk:I#Je@UuBBt2G?zV}ѐ9p|>]O3!Eu)5:ɌN6&R/ϛbF}hWFJM73+}tft:Lcftp:2یftpyWF:EFt7ShffI3>lDD2f#EGHHtL5P@QSzB!(dBfh
-or^=|_vUOо`?IjwrU^iDXee/_3XwzN5d>FuzP.y~
-v"~
-x.v`l2 }-vyàjh.s@s~9OFk@IxP5"oO3<Sa"YF+D*T+rW2*#Jj*M{sJVCt݃;|MC:E;rM0_f!鹺\<08E٧q&u&u}|Kچqi_VʧF`tUm]eU[l05dN >\WatՆtth*Gs`4ސ9	4\Cz~fnWC_;ϖ`oȜAU&mbo'bnw?k;)-{ )A~"߶_˵دo5ݣگe:77xeI~'	y>
-m
-~66Қwo*o~`w~NzuZpX1}s>#`?PMQ.w$Nqi*tYq9ATҧTbƝ̛ԛ_1\&{([fmv[=RL;'3{"%ؓdJzǴP۪ofcj=!
-b?L`Su{1\{H=ЩN1ta0А9:}G=>=j?
-d7쾫-}WXT@vs9[#KB Շ6C2n{Wv(v`lѐ9lw]h_WCs=`4ِ97>4_A	ǈog#Q<{'=4?|<NO7WWCtN5dI8a<p54\Mg4h=o5d. ^PԪܨZb}Z>ڜid}:Wk/ `zpxؿ3o7d.=AHCWCWC༯|cCS߇AJ7SB{`_W!>Px75d>>xGbFz>ܗpi(3^=Aӣ#Wё+=:Rޣ;ѣ}=ķ/Gadlc{|0/	'Y!\ӵz]Q*HWXũi^pd-|LMwgStqv.nц!xgw!%xs<'΁ajH_(G`oj|?!#S`/x [eA%>6r&6-w+z0<svφrp/on\B/753H\^ G6dt^B](nQdg=4 8/sz^o_CPz}lׇ~y'q>ҐPu8YǶВ[G^&#V=ߣxS̔a:sj9uL3S;D23:^ 
-b!}
-H?<ˑ1[2m@ҏc3W}tl+v`lېy v:a{L|-#G6~f΃˚o=ϴBfKgQ{uQZkn$ݚœǽ}2y^И*57MEaኔZ%|>_D>o=uEUq^am=o1z	ȱ?K_0Hz*hd]#__O%=l8ql` DZuCz#B%Eϙ2YPPj|jS4],k:nҜ_A^& MG
-B.W}
-"ٽP=YPX=]f몮LjMyxU&<12Bz_}zr)J'G/mzjgzCxN[Bԧ鸄VNcqstss&9g"::t(qt >_4df#gP\W) &A0_#ٟR>U\~^k~n2_K絔G+ZMcOX?/STuWxODYaXw2W4?;-Bk^:]i2mDn6uވusZcO|,7kVԴ5)-a[Q#qbP)5Xszj^`7~d&TaEp4>RWV)Bnwn?'t	vvk
->jZgF|y7>%S>%`
-mRcK%	+d߳:ѕ.ه"C]E"E:Rx^ÇON9m$:SvȜ2)t7)tȜ7mn33mf90$/h}!eG	9j$F#9@#3`$R謑9k$?gF3#22_O'OG)t>s>yB3}e/R袑HQq,+%uO`r%=7/\}(j2@yIKj2j_FdM~UX
-C:=4ֿm
-9Dߔ:\diMC3E=4V$pkvXڤ֟OgEpO׃xB3R>s4Q*ת9jޏ[y᪵σHZ6R-lXaOWcWIMALWa]
-݆P^7^7OTw"!::-DX^uvkq:l(P *u}Պ;ڕS=.~?vh^WQyT;Z5fv*1
-H:"(Q +[a
-R0U:ؼO}o|C
-Py"
-_;#fE{jnCj%R#boa'q%!pތFt
-*U%UUGU*<6>L?(NOWԣl 0}y4cيrCqE"DvW!mT&{V𗃠DT=`!zw;֏Ut^"ԈU޹LB$.),AUvS3Ǌ|ACf6C-%)/rO}g@z:Ia~{2$!L^RBIi:BAt8O]SjT N,"=z75x!e%PHo+9?R8r bSş{Ͱs]Au딮T(E,ȕ{p7TH\U"-BAC˧Lq/SÆvLYcRfb89!63<w9Y坨<Q;)Kvcwh/INf_ԽQZu?\<8w:5H2^!q:,?%
-%<t%[I2ϕTN>OVoK<DAyR8:SL
-'j3Sdݴ`\Lzs;?nȼgaXWh܂gM$s.	yW4O`(}vj8DLτ.g},ym}6h={'q_Fg4ZACe"W@!<Z\bW<!cF!dձsɞ<H
-N[C")8U0nк2 z+z@ 29 ze@ ʀfhh.6i{8),_8#׈Ȭȥ2)hLqۙyogzSzɞig2_dt}9}DVQܡ
-\TpW\@%2
-UDED6?7"2{޼ϟTƽs=sn{Jн Z@ЫZrs"mǱsF$4fCO;#`5nޏ57{Z[υq׳uzY$Uf^*ڏ4HyfB_^
-՗,Jev<$^K7TyʕYzSE\$/CK!2c,茖hKjϏq:oա<!ASz?[3}U(FZaU4a6wE!ܓHjɤ\0ZX>]_pwM|ޕ67#w)Wr>T4?I)1m7@̭Iv-3rVeniAny!;źPw<:!rvIe[m<>~\e=q9Rو}B}#͙Oy%0U839R616¿T1~&=U=ZOS
-Qp
-4@jgrggT$;;5-)ܩH~zu''gicii$\WjC4$*c#Ϡ__N?[::"jɩTX>~sE<U׺Uϒ~IYx$(,7m=ԥOK'rSS0rX^U{ϥ6$^gUz{TƵee|0%ozOHNK  Kّof/D#I )bz7=%qBT	6 T#TYcԄ ˋ'*%˥d%ѠkBX;74zN㳰6oP*He&7{cJq&ƯUqҍ7^oJyM)O(뙕.ܜ/ܒ+[S♝xm)9"T`*xVk_~C=K-& 	g^-y>lO)
-XfڱA%/ȃ-˓V~fvvic`vrP	/A>~fosR&a@ 棖-2uɠdfџ+}VEBvɌ fdloOɲ2;RlMXk=cǟD|GjX;108}@º)]Ź)$*'v*6kNCդ5pNT8WjuHX%dnHmhuLpطXc	Yd`jY͌/SO$J.*H	&}eLI߰)	cekiU89W_$y\h>xTON~K<3qm2qR<b.K9H;}1bW"ztG$~fC4^T~+fyycK=H"*qmg[Dޝ f-dE",ƚ(Y|!,P3wXrC)] \Nvz$/|eGܨ'l({R{S+r~ӚA.wk'{i=85HH׍knaj80yݽՠ,|%4.Tl>?4?i(#;D#';P^7-Ht|#_Ye
-fnM5S-ߗJ@SƖTڠUKʫ]L?B~!+h~~S[VT*5D8FlӤ"J		A5/ 4ul2j M>WBe}E<չՉr='!H/ōʦ0I_T$דMy)U\d4C+⺣VZ`kzGvjKt(,jE=]%F	,vF"Zv˾Yv,G#l-tlhʾ wh;4Oլw~[iiIO2eplId]~K͡h狊7%UeɊ%Yav[kjI*Ou&۱GҊMfٻ_A˰7>)lǬe3hhqТˁf~J/^wkf$D)gIK09\4-tdx[4stV=wҖq#%GiX_7P&)н5wKhsҏ
-S-p~-P~Y[m@OV8KIVg(~J6˓bI-?
-,6(FiTө\5>4*,#銗*rY|T3@U  TMn  HD6;j=Gݢ>Ȉ݇ 2°ϙq6۝}g渣m`dw4ĭ㸹JN^ ?`*衻2C`!VXߕZ%-o{/i絮Zey=wϣ;IF&⊉2 s ^&qc95|Ъ/*[Q
-6%h͕W*-Tse*H04J,ч$JD
-."R)}UP_ISRV ͏ksx[+'{7T_V֟R-*Vkj9e^1>{AHJ/(ò_S1_ti{Ox`{Pg |d	X̳!ox=DL;=`+j[fk=iu8ɲD;v8oy/cC4ᛀ}3p2mۗaQh#-ʸ`{]#*S~Ŵ+h U
- <~Sr}(x6&S44?a*^nWyC˼\yC+eV7W
-k+͕ZaY\Y^27W^
-k͕uUʰ_lEa#w&uzU~k[Zfms-^˼\Y6j+-A+l2+&-	{]Ѕ}\{3v3Je1(z!@~!@CJs3UA}(U|(Eŵڵg*v
-%'"I)+RT
-qZix*[fh4N}A+.Lrky[~&5W𡇧pZ
-S4S=ݤ-Tӣk-/od]%uWō0^`<xY63w%*ȪDq*x"!BuȤR@C19qҍϥI IU[53'Fi+7{>%]zI	ʸ5⣉r8DMB_՚8:CuaAMXGZ`sêfZqnrFH)xc3ƍ9vk͕Z]-V2ۚ+ZaS+l2;+۴.-K+2+{Bhkw̮;Za9\٫k͕ZayU+2+;{ZPs=XS_V9(E70ZVyX&,ሃe[b
-WA.]䫛qCkgo8<2+C#}evgee;*0j<p-Aak]윟v[vnwx#=vpSi(axc`llnF.\Oخsz;He9HO{''Cu:ҽtaߩng
-:4
-s>r  bq р19@I8FƔD~"_Fe`p":IwPD%e=+[(&ƚ?
-ˏ!H	؏E>nX^[P]ɽpux	vK'BK)fon+OzPQ&S}ϐ$~<>Ja4\#qg?]=C>uO8cϣfCBݟ<c!*>⣟C~1?Y?z~KW)X_g%8CR3dhe<̐;/z.>r KrH:wj̐Tf.{V[<rzb{eJ'[!q0C<jd:<դE\MxI W>}<.E79<.Gj~B5Ox8rdpsLhKc؉Pk}L<(#d]H౯AFu@\=Cy#OIC7wF1\h>vj6.n
-YcÃ1MkP
-Ԍh<	4l $[<vatzѰaN8?n}\$txY7:GB$'ѸS
-l6d+ֵL|HB_U\2+~Ρ,h22Sfc3(BT	|72;m_ꙄM깄>[O`:O_Drz}?_"S?,1Fxd#xٲzNޅ wܓ a]"?$0!)a8t{H ;@jQ((x}k@P=Qy;O@ lU%!8SZp &MW#^o0a\#!Np7ITMIo` O!/<21tK!~O ב5KwXX4B=PcoHj%/	wH5`f)_*pR:M+Bi5/ D5m29<mQ,̵`'+wH=̅2ބ2e,{׿ddرqR(&q5_f֙&f&7S=#N93`+̗;+e}9	WI;Iz6?d^IW;̭NIIkjoOdOͳ$?ep*T+*B!C+%1z'-a	8rPK|"_є)KB9MOB됺4uZJ_ /TB4YUOɨz*!wl`hrtHK%vV+(y
-WzTt8vܝ׫7ͤ:]m螣sCe\Fcu~[Ô_6ltSZ܎4F-~_рA篡_+::*::*: ތwlF!TY՚H8jJ-X.:+;S*O$W&j{|jd|N 7qp{d7G+qb&uc{ΪpKǑLʎDfsا,LCV5WnDp:D"FH9ѷsV6^8ľJ"!NN*6h.N>-YseV@|\@+|eh|;F+򖵋7me(nu؃ZdseVX˜j|>2_5W>{T 
-;ex>!cI`W@[/-He	YR~\>ެP߬[r>oo ^>Xڗ*O!~dI~3>TAua-sT9J<:H/ LLC]DzI_ձR&eDZiSH:E`YDj85D\U>
-3ATF<fEb[{Rr: ɀcUe	Ly#[ jj$CH=JOHmR5^b뙑]GH[ύ_O~z#o؀mlK#axaH_vzg;F[e%a^a+U^E':|}u|N	8?iDx*{Cki:ש#^6ӿeuT:٬`M*oJfOHʧ(H;|2'vĬMݛ]&78hPc&6rR+|2ʨ:eTQFibTķMµ>E跲L=*l-l[Y&l]ض:6 6rp
-L!S&RDMs[@.W<oɸJRx%Lwfg⣴]굮6o.fZ4lUwX5Rk炝ZbH`5#nd=NFszmjׁx;Ļ@lNmz~+sK]>rmoe˙-sa`cgNaH~Jrou!? ߊ~í#1Y?3Y\35nW2QƧN#*Sa&u2sq)q~c4W#Cp?QACd=n7_W\oԑԀ[8Tv˂?g};wB^=Sj-Ǘ*ar&=$Ri<ӯG\'79/t˘:8/+EƔƔ;dϿ'gߓ=7I\t3׍-7ڃ;4Hy}oȫJ.LïۄR}lG;HID{Sm4M9{qzkEy&q$~.4t%F,A@7MKۀdLt᯿#6FPU/O?9,M(}އY3jipoqkR)Y9
-4llL)>SJR}RҨ1Ɣ5P]BïV>i.jɖ`-{e9}_Y*2v8 -µ2C / /@m?tЕhU(W{
-G>va7Nrd$4{W4Iqq]:yBHSN(2Z1Qޔ ev]36#ʈ{G`سQu,,,Q&5)G)"u8]ޏ,Ri<+V$3Hgg#d4]vBan@31pĈ^k j2D^Tǩ>C^`)"IiP!H%%FRz,o<L-!XJ3וbRl5{#[bchH"̍&g~ܮ~#Dr(x*ZjH0<H&	LYF><88) Ʀ1"61.bĈĈS#I$O#Y'vYU(=^(zNks쐖Uú6R`-ʚsh]ψ~؀hrnDJDOmIa]'*'Nbf&$/33u(7q?~r> {`tv/&iyS<01T#$jkPf?ƋB|\8ߣrl?¬a_ |V~x#~?ɑ*jֿfN6E ~TkMg2j_M7t飃=@fö؅m`/3>5L;f?n^V
-޳F.)RCK]1yv.lNMCG}$K6
-?*ٲupPd#󾀙/ #)*ql4ţ
-\<Q2ߊγ!J#Rplr)+rsQ
-B5 Ϲ<Zjɍa$_~&ʤҎ-F@Tx$EH!;"M#ٞN.W:SFIsh<&D֏8%wONGё~t$'wjvVGԯّsFtaw5gzXޘ/e})De{SOj:TԗJzJֻ+9J$1Dq?X!EwKau^@/@Ϣ ^"!"^;F38E߁!&fBpp_</0 ܺs XV U` ise6H`{3$ۑ h&ahHs[tu͎hH]50Til:uKuDTѺN!S\	*IP-.uZ'[uuW,h)&aM\#ĈKq\?3$y*92)X|{LiRǘcJ]ҘwX:*]Ut.*]ĒœA#H	&¼`A) x~x`5/PFRe
-1]|;Hx6;;7o~OR|tVΝX:ǈA	ha5'y9HnNFX2H QƔ؏ht6^!2%zcxi1+0~"im2r>ꤑl RɔW-gMfUURz>?/j|TH0iiFC4<ˁ{z	ꂁ->.)$ҹ0)oRK~О;Щ]Hy/EK7s%gJ1_&M2czhk!v>kNE\#f;xp/bX#7LAq3f\l3ԝ43ELŬ4#<ƅq`߶tШ5.CKa~Oa.puIC20`.lsQ#Lb$mtVȝ57^GvouA]7ᷪ*goRo0qZCRA.a٠XRF-<Ƚ<L(.#vW$;
-lx6	?:ilA|dܓ [`]pmM!-cX4:k''ĭ8B ;mm!paյjCIpyhmh	.JG=%1ny?<!KJQk/=j_k=Hk֚6ZyE|1Zzhtj1fV#[ Fk]@pᮔ.Lk64h
-
-%<(̚\/K1И<1~\fq%.ҋ+G[x
-P_WkBsH8ߟzӂb [Q\]e9̰Ss+ LI=(T		_z$/YqX^<^d-zZܤF!GR alcX?I=Ix/9Ӭ؉[E0(Zq¿8Bw4W)vl|42r?C&؂CZ [Z0yL_4iFw:-~R?DG!qiH/ATGnY08ӊ
-	ё'V #<-
- f`\#1'42ز&GN\Djɬ7oK"uc\c-jL)_5ѿ(k9v_-VibW9(R-Ode?LD10FQJ,karIm@*%ׄF6ͅLJ~:lth|w(Έ/Ѐ/0#/xF||M :E|!7wg'7kvɌky8>|OPm7_t,X۴O
-<mpUɹ},Hm4yC[I1LkǖÜx|^qJa\f)3p)V8S( f
-a
-8oR&v_)I|nI!LDTMHvD.,j(OSe&XwVToH%PGs9OOԊ~?gs[Y݂ze	kJ~,~ś#eәLg Pq6t>9 6+@x{9<Ų#([˳I)mWcP	bVptikK[]je֥ңңC [ѥ-ӵG{~^jӏɦV<2hҸ%o	7DzXGǔǔ1|Z܎NmWuRbZ!pD/VO%kS	mCÖW7b
-P~5R&+PFPO8BM\^xۆ,~Wrm[1Zsm4Q4ݥQ$=3=Jƽ.<<ycKrXJ4MUd|gqi8h`1kMG}ߨH|>icLY_^;7ܴ#_ hb5aQQ25-^CȒ+$HI;!{AdZ
-XpArg(
-:<\VgHA0|:Խ8n7v35)bTZ)܇S}l>;c/J4]Ŗ%lH767VటGI:`(E!kDݣ$
-o*Q6JQ65JCG{XQQb(C|QҐo(g(ɍ-%(Q$FV9d]In[u3جYF3mb0Y`HLb0O˘gz"~,T?{:{!l c|	fĵXn#1cGx$-u`)<t2GVF\sK]cEc)k+X[c5z5p}lnss]CMa	Wgfm|dvk6JƔL4>L~z<OȄ@T`db̦QoBvrLWRhO`Mc<Q*:oFHXysb3;[l!3_ ݐbI۲\\$V5k5O2߲~>;2~HءExN5fgXvc_>BXO-065N0Vz`$-vA(PE6Y&l2':\&53QUتBFDD`悺nHL:K!&&#37Ȥ#3:.=tqTI׸tiIcҥ.&]{0)l3F&]bҥÙtp&%a8IĤK=ttLTLzL*TL:ΤIaLj^zaf֡LjsI+xp̓#Wfd0ma)︜-x/@9"g$Z O
-ߡM"~
-giQ|O-~\s&lrLTd䏼8#rUGRdJ	կøݺ<֪F G[ZQ?dsøqkXKL˨0!nWUXu*lXws
-1\wWV]n?d&#©A^eMFٴQ+;\$i@U=JkLߕ41i>t)oC[[C9ʺm5m_{"pm[%
-/0rRS?=efm׽'ZRadu.J?ȶY@{д˭Tq7SopRw]"`[7	'ZnG(IєᏈ-3g!	#`''bl丵Yb㗱}6E^UlWBf=80vo?i
-xKcrFx"<̢aT07>TIpts50[)|ҙגex̭|Xa;V+M
-鵛{R~ԽBTޓCJ==G6?6żVx]L_௾9䴾7<_ Ƭ^Z@iN	ȷ9?·ܔ4|+%
-J~+ZުH.;Si4{&h|3V^DctyfZծGJGb;|.Lڠ7yoIkT[7-g=/I3oK{_y====w=^.KL0	%sSyLN4w+ցhQl"ٞ{@xþU$xf
-
-+h29$K}pPasܴMqpPV*mCPj'ثS(ٰcL9 q b; ^t v@@Jg5%[S<IlF¢$}8coRj;8do1	x#|
-§+\xv~5V^%bfQ4ysw=Jgej:ϲ+<{nk= j)6 eIKl2o%lT;x*T`~tZȠ_<>i(]Rm
-MAwJ6鋺mNQk82w[|>͖_*b
-̖de=zXnk(8(|@ aSkܽi5. j  ׆}~P6q>8?ٙį`1}i}UwZ1.Q?7??inbGQYu<Ae[
->~+/:4^XɅDLZwyR%SZHҒÛa8[9$<͔ަ_6R
-JNj+̭B7vļUDjDi%vĎFJBL.Di:f(ݬHh^dK+mGWzTMO8/q"X?cj!m}7=	iM
-=oZ aP|O,I<L}9E-QrPTBnxRυ5Y.nJ3t]gqqp$!%R˽H/Ff*')sy\~^K;aG6	Qխ1,3[IfKHjvq# EEE3/*x=N8|D8Ŭ&Iwi?$[T׎Av#.H_7`\lտ̲$\>f`"4B]*
-{bʁиP84PmG`$<!օ
-'ld1[5[`bRr3iI d;AR
-ҿP7ɒ,()1j?X'/iЋthهHR;"[)ׄzpn 6<uu$MM\s(EE~s~Prawrܞ4A[࠽CXe5^JƼ7U64s5y؜ioH>R]Iv"iwV#<5&="DQ#f8[.C^Y'$IyL
-m]3˥K[HY	%)WBniӲZdSCq~NJ(܌vyq^g)=HⰏJI4N[x&8ٝV=IY'.ieThԗpXEk; ubh^HЅxupׄ^tp(,w@A/hۀO:>Q˽z{7y1LWhIѴ'${0<JRXZ=jßJXA]/K`
-6&bk"f)꒹BZ00 z4UlѮF 덚^ZHV&9ߌah#zp:!@D8z*_|ofH( ,pB흗 Q0lբ0+.C"@-0Z3$,I\FI\+,C/ǁ^#u[D f*oRi]/S\T+
-wRy?Ym j4lIRo./Nh-졯rLPs٭?0g(m;#TU˿b9m9ŋwx[G}dEj~Hɾx{+ S&2߼d_Q<s*U$O{Ex|E[x2)=suojbț-aԗ6}i$-HC(3]U6]zXO_e5 2\M|5H[*V>1!({/$_s2327sD $j&SV:ݰ*1ؕ;ɍ1Rva0䢸Sr)]$[&u突zԸ.P6kDE]arbJ՟B4XLFzAkIs4焒GźH)01Zq?U$"1B<ZI]jw$K_W
-ud>jYg9M"*OUcIUl\Mb0fj7WZn#B^0YOdQ'zŁ/a,G1?h)?ae&߄&ҝӞ$`IT7yҊ7 (M'<¬ciKkͬ}ZZUj2@kК	`	hڀ6$xJ+83>&wy'j̔JZab_slbR1-ꃩ0c$ڕ͞+X)k&ZVCN{\+B46n4Y͝[RX o +Ox0ֵ;"{?stW3%'aWL|"kqUDzQk78X-e应tɪP$SLª8"✁m!08삯H1kװkݑ4&fj'u"5 זFqnmg>N+DUMVuZlH_J;/=%ccb{6m9=1ħ\G]8ỉ=7%Ēߚi\ZZA]Ia­Y5PXMZYޘ}!᩸>)췖+ߩC"=C<Ʀc	 tT$zzx6G;/1Exb=vW"
-4*֤Rs)L(!P4|E u<8Ŝ4S}DT=bq2u:DHdh<S3P_R">춿^b;JMWi{"~Jɭ4<04wՇqv;f16m!qư}5\C~S\~Rkնl(k٫XE33Pso~T\yK§&h>*o*oP(lf_NK@<۽;$^dY"f.
-^YP3}y>veiG=WKW嫢HeZ-WU7Gyk' Jk+_hNQmt~ƀ`SpMG)QŚT~_GnfUS(cs|IUnDs][\Pt5*-VfÉp\h6 ]$9.t`;jG->FӋx%3`g~{~sUdGCEv4Tz{<(ocz.9_a94Ȕ*x4(wk##R;8吻0R2ʴQwQw՗QqM*P_''ܰqPLRsJj7E'
-ag'y$$4,ĺsFZ4{qt?WMW	^F:3n%gv=NC%sajNz(cYMi_O!^(Ri\Hu$-0dī+=)ޚVR5e;'9]7`m *6;sk.@ɯBV
-"X('򥖹]|kqM|>23gZᘖQ
-GrD+|ux+_iZrT+:Zs#P-JOjF5?Y힬z*7>JOO-L4p/~UԮ,pzr '}1}j]ŧ&.>e{դTyjvJ%ùAk#A?ҧf~|2={oPuJ`C=0؂N"7Fk)du;08(eNFlTǊ~fGXo{Ƌ kբ4}rش+,rÛi1	#LT0!*x~^jV	5@{JދJdQ13*MUwvM>&J)Ӥ,UdIN#-#4`z֪NBAnB~}-*&1V6^V.:.LFy*̹$<ui_©Uw1UN'v=bh$80?ܩ;U	^,*(1=I@twORIWtIߔޔI? iB-Bp}渾,!f^cvҮ=$~S'ЩS@<?_o\KY|>
-[\Xةǵ"FaG?=`?zԪ@:3 jaPC4᠂,5|P܊{E(Oj)mIIÝS-H'&y7]|w(uij̐qCv;Lwە.qջ{IM{M9[o$sSK~LuluZL#eN{s; ,h#;X]fkCZY^CaFp$r@,Wg跩WJĲޯe[iߪJt'_6KG{1bCڒ88`xgw16"𴈅t32;|6_1ଋݦhA-Q_<![~;xnqh)`h絾69 'a"S5|5G9D
-dJ"#13sD_.s<)#qr=&ssq;8ໂ,I'$ܯ^>L{^G	r@'VHfRTfegRmc73s[Y8~PJRFN~ࣖ}fBo;(ࢬIƦ:D7_4VF_ 
-9ߞe
-O_{TZ1G|Tg ?;E3WPOwHы:\0A=(xD@j57_hVO)S"ySy\ơק?vD>fc}8(agʝ
- 0TQ/ʳ3_&<qXtd=UҔlOluԞ*9`OJS%(}\էNw5vŉt^pn8}w7%!3ڰ
-,=\L_Vc\ߎؾEEPG">I/EokG,]b-iiZ<֗u7;3	}|!?
->?K"pB}oi9	d}62b['^D;kڇ
-؆}/f&T|,;N?6GeyPî'xE> e^W;+Y,1dگI&vݮB./8.@XjV6
-+tI*(>q'A"yϛ4PAxvqu.dyRLvgT*U8!|$=?#[U6
-~Fe J(oP'X/kVyZս*/Dj1vB)HtglO:^V/gZX-;+=:W8}˼G>_%?~u*
-o[>\xbUGr+t*\v*e쏻?d?/Dl)qĻxɡ»~?|+=Ӫٙ{+<D'	LI0`amʻh<NVdwtW9U݊^DUJM۪ƃCF .Z?5[BsZ>v}BOK$$%)CrB4˩v>@8\nv))䱞0$FJ9ITFWԱ0~>%=ꐚ;zn|{]T#eL*_ߥ.AAX$dzۛ]%|̵*'?Meظ5Z7~$w}
-R$/ouzBf"hB.M"2
-Eک{Kr]ӄ(٫f><C/1رf? dTp]zzX b]8Ś!+-(h?5-2-Wm*Y	txLQj(!9ɘ`Gx\+àXE|!O2˜ǓHZų+TarJ2})A1XyH	2qu{X\BB`W[L:2+slͺSSDik9ҕԂߟ+Z|
-C::	 "[a_y[oM@Q$9\.I=5iODH{Zi/iy봧IL{ZE=YOz<׷zBgRG<k"p8r؏#jE<|N֕18Nb`AM|0;a0ߊsx2<1FHf &zT
-RWm#fRE|.BD졺L$5j?%/!x4|.S2ORiY=74-x4<YۊaabPw3BO#o[j,
-6cK*ʪFAh	k#P8rO@W)7zO/ܗԱ.RjZORikUB[v6ljVh $WU}zM5Y	He:H܌v&%*D>D9qHP4>L$ڮLCN4UI"u@eUj
-dEk
-.)dWT}%.741Ƈڟ<VOf*va'#,Do%@giwx|)SBCX/HPVֳR%"_,CdyQa?z:eDB@˔~aJ te|S73>(2RZߜ2~neН!qFd\Kg<`ewg|Xd|2 V=[1O0)^L0FTt{""j=Z?bqBqTK\\c__Zn_AN[(%5ͯU*?v!XF[
-H:!IAzI-T{=gRZu`m}`և܆&CeOWqrka/EWH֝R2@[v/Ib+c'e$Vb<3_ĳ+BlwW[vj:fEP>7pC5xzTQX<2Ň.5;cqz>1ԷmC}`A(mꝽ5D`gCXe*mbe9#*ۧC+Q{{?:1G೪g5yfû'SOƬ"Ve݁Z{rSmO߈[#edZvr\r8f1nnL<YNqb]٬Ii;gQFRѤXA_ 	{SkZtx=ԎxXUtl$$~G7'RnFr%d.ͨYF C-<1#o#BL)sfGT	w&juJͮVIs`M(%VP2Ije':Y4aFR='`22gf9ckZ1[RJ	HY{g*b9Z5>46Hǅ442X7(zYz8&- [>{BeYWYa,Ɓt%dUH3:<Ɩ΅3ssp@;<VQ^#aZ@:rjwl?oT)LFXKN6#gj1 ]ˮٍs(:nq*n@:oOj=6'-qUDjlF	pNIX/FXF
-
-t+WRd!2	sQv"<X_SלzRX#&Cw{l2؝wоEi4t]u+	nƟ`hÒd岞^r*k,lM>2l $(6\X)wXV+UL_MvTr^Ğ#>φ4-EٽǱ:WXv?(ǖ0nO|<Q|:ωp`hi@԰J>#0'WyQ^C	W	w
-G#>aפr_o虑:X( }H8tDt=z>ibQ,#ߵG6ut#kK66QbI44[2@x1x)bذ y1^.ia޻OL"CBߌ,Cb0"HtT8i(L.ؘيqTth2MUv84==IiOr*<x<7%Z/f1jA@bV1,Il 
-rQUS);w"R.~$=.IwHs57{RxGQ4^BA9.}*лhNK.,iy,lg'm׮^ë`ӺU7_RW9ʔuLbW_bDbD_OQX˯ujnv糪vٗSqHڙ;qʫRa~0Rťm7B+_)pNn+iC_l˥vE91(ђKs¦I~ۣwx{D? jnڸ }/ 4wJg='s%)|^[N[8 [f~;Ny]2Rv:7^/dH|ą,#2g2V<ʎqmxl".wߥSקUZ=J6nK6__诿n[Uqrƅc^T#HCWC^.3^Lj	\DoD.'YU>mƓZS9cI<2)V8 jo8WzH2[2KZ[cG[2Ko\C=&w&{*spaX.,vÅ^'.wÛfA[p#X"ʢpp.O<^	6[ۓjIK܄/ᴝ1KssbXMx+}WDr{6,M]J@"E$E6'd>	,ov+Z;S-,' nwsB'6A*0
-yv:pOLOp'@k%s.o1HôR޻IUeyDxdG *լL
-ֶnzDQtʚۭ܈9Yw[3}'Moŷf4"*(af"(*qosNDd&5S=񓌳^{kk$ͥjVKõĶf2cD\no4W =UNp ͉9%xjΉͥnQ;n{y1$҂O;7bq;Q+R&}b 㾿^~k;q3í2{'5W
-E=ݚ_Ep`NLRf%4ܘhfSc|һ<~g`jHoRޡV7 1G%*Sb)="Mr\WY_sVEe=-
-CARE3}C04=OH2ZŠAzѤknaZ)s#l2(m/c9ԭZUeBW47Y#u-T)_+yÊFW1`>QP/Y)OeSaClƉ_;F/rܼÌ-0!Y3/I=,9stYN~AH8+PUQ{T+`Kc
-$7md\@ 1yKL0D)n
--2+>õv/ysobj&W=9S4,1ķ!֘li_,uDu[L5taz(KBNXΘDͯ-y9KƛuNmw9tC?&&R`'P}OGpFjü LlJPzzX=۹O-CκeB>'g
-x~wL
-I$ROLŤޘl`jYL3{H}1?&ḇNXz$=cW(LdL< '
--;PtS;X4{`.llz]xfXreT:BSWo)}nr/%>Jz'Ml~M8k?3&g2k!RZ7WR8m)~~gBև(Ħ櫅|nD>b\_c[
-Ӛ>ϲٰBrbVRWڻX!|Թ&-ti>t*Ŭ{I8"npg˭S"'2*ԁfy8n&oIM>yDnFCQ|lv6b9vV]:HDcK|If54qD)Qj]Dn^z9dlJhJ07x|Z5|xCHW%U'OXaUÁ2?+$^,x#0C$wwTnGyFe<cE,|4(~biT \sv"H˽rC#`Jͺx)mdcqI:z=6.~ÁoӋeªh}ԆևԼjV)Pó!SXRd7;#"
-,
-Z/R;	7?Yg]SV(e$15^</"fnNx΅Ɍ9j%C>^y),jEnU)}?GϩAwd!</ GRDU!J5UcKH)nlBYSKKU$R[cH|3m"XVckg#$yD9S{ҿ@*ĽVvRMoRIR&H
-l慉zq	KkeIVxqpsC;Bv_aTL<([x/k>b̯>@)֓.}bė_rUO&mCLlxd38ÕuaDӠ.2p68YK!ki7Wb*^%JXN qQe FDFQ*>=?i<LV;xD:bni4U%Dn+HtaBr%L}_Uޟ~6~$y뾓 OKݺ2,=?}#Benr\iՃԟu9E$-n-#.l]w3Et] &_eZH0N|OvQ5;"S\z^O0',&9t KdPA}o8Q#>XqT+S>W4%S}׋Vr瀡Elh{Sud!'a>.F+Ih^s>ŻiFҾ/ȘqgfiݴOI4K.ϡ=̰$OSA2]i}laH`p0ySb̬<h*<mTLQ83i=j~3T4+zQjeRJ/o>%ꞩIk8#Dx4KWHF_$W^_)&}sw P`BJrH+s"Ɛ rHJ9&!u	LiM$eU=߁JTb.tbQ\Jń]mїߦ7v?8O	 gq=_u8ިn=m
-ppk5@r#d=sKbĖbn VV
-TyvqxwxNOpЀמk_=#hUwم]r1s
-nݧqЀK1mCԳE_Ҷ!VF`k!ݤ7u}guSi7R*pZIutd(< 4m>m2;d3G-𾪊_ [~qsƹ`uXroLn`󦶫lXUJnWqvЈ;)}n#M#?rF~cP%mpT?-]jA3b;REE^A<P.Rx9efCI	@]*>T1K(eCT~M􍲌({FրŎh ;ƍ7~45\m4p[
-ճz
-&E@n_ǟ~):#I+ƺ	~B|9#T!R<?3CQ"(6b#(6K}	e~//Bߠ0|^^uE\[ɔ:̃*"zA#DrF:EahEW:rYCYꇕ׫^98z/zS^=Oiu_vChㅘlXgY$o:%;,B"ˎYvw}epWN҄B>k}`jInPhni%UNƟVכXi3l	t<#O@Z!,ˈ8ܬ*u=x.G	&gzSkTBu:55C_a)Ө_ZD/,!!.y1C|6XYi)4vЩbnfx#-5Ksz(*vZşiC5T\VN8D
-udC Dshߞj	du]4*OrPY7XMV)jML_ P% {U6M8[-%wFख7e'yCLPOo1Dcj<āXuZnF\eͭg#/U0{ևk}[A jd1jxEZvꞑR0?LU.zo]ڄHV7[4s_TMYWKԩT	éF~qy¼̳J{ݡpD	\"x!dlq.k1Qtڪ⡛0_PU#S1Nj0{2Q@x3bB[Шߥ\Bقlm$y7oJMKK}wCqB".Vϯ}D<#O߃W5x/+-y;0>)]|V{Y7VNQv:LaXjIJ5f
-t$t'v>~Np~h%mr
-6HRiܳGr| x]&kYV*}SJ_tW@h]IF
-!4Nиtq:1<Wh<BXZ2rA9<I$gI71Wғ%5ddp,%D$mn7u!VaJzuXWcBٺ6*%1M#b)5'w:Kջ	GOzs3C,hz5 원X9*UڮEęU5h_fdM*#Q+5{%	˪D\fWZi찐Ɯa<iv,6dlJ(g9{]qS^{!{pwyoRM!GH<f4Q[?/IJfpR^Oʚbu68rיa5|/~wenrR)Nzu9Rcb+JdH9hCq"64z#AֿJLx1V,qIL?)LyVYyOΖ)ˢrM,;|P{;@5PvES|"/C1.O|dʒOA|jާuvU{\mJ!n}c_֑hWm[B]n>_Z(\)B!ߊUT=ՠ>~#߭VYӅ]TڧtSt/yOpWθ>*,]W|sRG*_%'[V6zHJ=ݐbd|T
-Wz;Z)
-pAƤic> Ql%y&D,wťފMz+&9]PjwTN3ȕj*	]bBCGYY>&^OLmd}9XOǀ6+c:l?WXsݘ\)}U>G飘?+z ll%rQCjQH5djo/?ĭN,ʃ7,fi
-0KcgDqجo![r׷5ZNZJ]+CD)+Tj2'e=%Kkb?\eS)RpzTKC۫zoK5343<prgnBr!wE]/AO&'3ڷd+,l@%ݴ}WMs3IOGvL4}TIyaa<<t2mJR{HeF6ޏ0ZDZ̆.+` ɆzʃQ/ dy|^'t0Yĵ]uN8OԨl^QlwYfh	[](Ea0c"Aꅯ޷$Mˉ[lf^"e{ltEW,cM@&Ut(phRkab8Kd6:_ي~W|LRgܙMJ<B?;Zrt!+ӿ5t_~ vYAyB60%/X]A/9Öu8Ѓ~Uۋ7|Ug"w33CRGFHOQUf/ڏֈUz<WFw oǃW2#'?Ko\_eOM2PI} rWew}RZij6v@8=1T9WqR6T_ҹ,;>?sڂAR~l*Ɏ@$bxB/j:*_R)՟,ߟg>_bQ\Ǽ}IMDOl,W>JQْ[vGw<`t"^2oơE}zV*,l!rR1ũ)V_[ISʵ2:rh:9EEP!&U0+ߕ[ت呴FqM=_I|LRxC_ip2NB7^*aurY)~^Ν-Ζ\^S8y83^V vn+3foh%5ӟͭ|-D"&5HiqЃ|eڐ}B5fH9\WTN4Mj2	iV	l䄊:/<	E,Y mnCb+b^pa3?[?(%mhL,%fJFΠع#biaЍs Rg'|niUccQb`QO_WSqbNkjXd5*~UMv叨Rj0ͼc(뜽_ЦjBmozP4}uotjށ`L'ڎ3qwC(>syaKWk_$!흗lpcK4|F	PꪗsBp0Y"4FƋP~]^U}9'S4So1l,ef$t͆/S߽X܅/QkO&q= bDqD8πq)9#.%V4%ٯlZ1uAX.(^&P<r&F""6qF	esB!t~H2/5^;5Xa_jX)N8"Ҷ_Us3*&g!q@7fwN\dq!PؔICB}Ksay,/<g*nj䠹]ժO*(]Y{&}(>X=sѪ!#wP@[QP^AXީ$QVsNæhd)XyK(y9)ʩc}8SoI׫^Kd);J4/0eʴ5O;17o16ʍ^^W<0ӫ#rI#*paKE5h?Vqj@Bqqv4Fe8~W	W?N]qxue	@t)(:bsAA5=>bQYjw/Bm]ߩƃ'x8ߥJXymT'x"N@x$JREսN|q60ZgT EP+tFɝl#(ܹ/W[N%p_9?W^qʽ\ ŵ#"v:/Jg(L-VRuXPl]o)_E8_l5:Xs5l#%f[Zφ!Fk/nvp1EWak#E°?mBg"Næ .lc>B<Z33q*ǈqEc#0bLFp&Ol0R"/]䠘;Z,bA5
-SԱXp AXNRB.KkR,-Hf@
-6
-9nBk[(VKKKsÈWtHh5\rEq+ʫZ\$yi~٣/]'(So	mۍnP+n_f	yxr	yMvc\E_nNO.I `yNWqq&T(aC0Jq\FruEM%9*fËGI*nR(wWϩD}}TG9GɯhvwS60qP`N]Xy]Mђn  "ɧ:C1kZ/qDx"eM5*$vy%
-0c|Y3a{x.xGu~
-\G.GmLp@hsMSHMf<xAF>0
-GgM_Ք*W$0w*
-#z^NVo۫7+xWq2E<KqK_t8I,!׳\Ƚx:V^+ۢsّPЀ)G=JuzzS#"NELbI-MiNV9I}È4~G4ޑ'tjX[>'l}-71_)
-\\
-ummu8_oL+LKRXcSz g۸57qt-uqlĵqI#ߘ!Oo*OhNh@S/[|>*"~>KoYktWjت*v5,aaԚuQ9IBjfwy*U(w{8(eP^}v&~inqbe_]#{:&]zu#T녔y*^Nc|gd|9ӪRZ}r6P,jvXUn/Z[U-/RwEkɝ0Ce^)S,w*/o|qMUѳT1?D`ȇhۤ,aL.&<i]gPܦaq:mw^}x.)LVH`S(EهGE5d!RdW^Q9|sd򫢆?lX|y}l\ܩ vA
-rZx
-Q=J1.au%A_8tqapvbIӧb8{I$Klu-~|X>>]?(c}}:e@mKοOGS;{#5J2ICS_PxKw۔P$
-.FqpF;#bg2*0SB/W̯ĝH˨e)y|M1S;i@X%!Wn[XNtcΝa(zlphPu@!,Bkd_)uI)yܞӐZ+M'>:*D3}FM]!pFhdiA*(=	YTh
-<ː|Tī'
-|r
-(*ayXVP!mٟx((i}*RTOݤY^{8i6']DZOf}V"(#~>Ǡ(<Fo8|5LaAMhWPpI,g,Y&u4xB108p	l$q螉cnL Vtikʊā0b~	&,Ryf6Yt׍ƈ'JDi.IR@<QJ:{ sw-G7(3wųpЁg$Qf}p4!L ,xͱzAv4Os(UlRhfL?ٖZ[GW PNl gk(][2zgT\	-A	B#"tvBC8V] snsHv~rTiQ<(iD*qx+>ze>}2Yi9lC7$8S(g!		59iFk}tjYrRrv@5z/jǼKWlﹷ}ԩ?xFʣN&x\n1OpJ6˵Y#Ԕm#2sIlώzr [ܠx2C]nP<y +ܠxd̸//)|rY{WEx:鉟_u'etie{GS7rt90sE~eKJ9]ghZzvgw&ĥ(Kh	?tPJN|Uħzk)`Zl7@0ΦG(TG&/7p,,%(k&%IJxM~ժ_󦅊
-{0z(\l5YZL_0\Gh֗,_2ߤR-65/GV.}?o-Aկ!_3mX0Y"/hxD%3Z^/R.6$ BK/SŶP+b¼!!`̗k~г< _Yoc2VJz+w>;宮.wga c2&!DBc"&yl/&#i[2k (UD%ETM6~[Bcm{MՀ5`~m27achM(uKM)QZS{M(1lMsc&Q<t㣑61"oԮ7jE]Jrvwp"ߣ8{f@'$/r9C3UalFͱIHϱ eX)j>fWȕVn'z?SM/jR[~+ZqqY/3)]O=G5u%*O z܁N>j&qfp3`JW&mxIħ;"T\)W}(Pܛ   b o{;:A<HNzh!4 q?  '{j }YMhV#CuBNIأͯ(^yHcXk(^	G5MBր=_/ͺ￢)/]N$`d,<`@jͺUkT
-D#M曏K˿o0OUcWSwz|bK]14Og%T')7͇;1 8mɇXz1&G(\<HRfCd
-)cFyZSF~ʶmmZܽjަQ\~0}΄0>_WF"Rؠɇd9'7h]t-ᧅ8Bpۉ4k闈P^~TQ"<?/p7dh9.)OADAPr|@[ԶPǶDs`+Nų}<{Ɯt<$#2OʔSpY=׈,1Im:6jX?z4<9x	5	zTkqHRWK?["5[9>\-.erO3J)ڬMڬIAnLda܌qܒhftW`Fq,]T[XqhCNPgz5%wH7<jWˉ;DO3VT	v,E3~^>R흵		SYB`'mDmk&~L%	5!mihDܱ9*
-R!BԱ%~10~KHAq1	R/5ϕh%-ѝHXO>H3JYOl)d	o;4ڬNpA(_蔤RГZRs+:wBpfe|MtsS8qP=@ZGY?峣~o5g=0ENg ĝ >ìő/snA#*"pu%1̝iS26>65-سJ#;7S`LTYƃz)(NԊY'!Q۫jӖ#&rMLS"nܠ3۟\C$w۵g{/sxXRbdmlBۈЌb3\
-7Hܑ0O
-S\P׈%{1tmdY\>+6-&ظpD}XPyB LT6wb7P{>b-`j
-fRV7_Q_>fL:fH]ǌNh]ؖ(	=썡ܻ#q\|6pݬc<}9Ug!Aڳb[h!;ψ(£U-@UMAcqj{zQxp٫Kr؇
-5:EևKShsn8`W7WW0IωSS#&*|ͳMI
->bR֑qr;NdY0zh>mxZ!uO(r(LL[rvj5fL?E42/>œDI@kY[ХT6cܚ8m̻iK
-̀OܬQZ<Zrk
-g|282Nz'ʸoF>[5q]ʍ\ Gk\s-*&?Jϳy5✧"azgc?6/0l\7_=QP		á@+}Męq>N6Ƌ%&ptl n³ĝ72l,^1և|p\W(Rܦ8-~蔯{3$&*20FMfumZjpΎF~K4rOKoկE}i~[l֫k%JXdXȺP,T"?4)Fm	l.OV愖^t&zqVzS0n@ye0E?tB4 K2]LEٺ@O͉Le/Гs"r!1̋KI|Yr_fa& (9nefk=2^☓3ڮ3s5mdnZ(XwiiEBS `S׆l!4׆?Qhp;
-rB~ӆ*8̿퇠m@:[Xl%A'4Ra7zl/?[~le\\NVxc~cң4GWVEp~[uۭxO`k@C!x0DA|zrյ^)ȰCy(uqQ-בlQg-8Et,CJr!2>Wl9<2z&
-`츳 ҎR4HLs@S=!-^	[{, Vyig I?֥@ecнozt]t]${8B_`V3A̠yvREׄ[kx_`}q~(ܥ8~)R7Ԇ{3P@!滾SfZ/M-rR`j^G@;su~G%}>/4݈̑BB*&7doUGGDXD5a@PFqv'+U\zfKПy9XOksL)-s~CF]Y2oq΄{ojj׬PSfLBXdR4w-gӫ<	wD8 |1WoEhyv:N${Χsԛ䛚/?WG",©:@Zu_Fux(uiI: u'Rm倬4P.6LBowHLͺ?*&xt;a'ww|_B߾&%PVpP*T(<OwjE:ZS];U(qx^k<o V:^J{p"+mЩu2y+F"(-T&躘' =q򜺿	^L7$g4$,fj{&M̬Mz8Kqm.->];^æq(,b(><Ew$_NSMh	ʡBʥB!p/6q@p_()Er9ӿ:&bٟE}R-l-9b?DC%wy7/T߲2RщD17S$UJ:H[֦'{gӋngZςzBgc0[?ތ˭\l=WH>+~ސeH6:2Kø	[|nq ؔ*Q{@ZgC%ȜjL]t6?%)NH;%8ճap"X1GWͪ^	k>4#lQv|,8>&N4p0
-ۄIHy]6"Znlk=ۗ>=mcsɞs;3E~"q :0?pD4k8E.h{"j=g:]s
-GL+v|Up޶!'mO6%*0F2{"߃i92BOII-"}C$Lne1nQq`m jՀ.IP߆:EBr0V}J}bw좂88	B?N-}VkϟҟhNNΓX6"$̆wB u(`wF7޸zΈ}O/=z~3R=~zL/,3^=s/"TucoE/vqȥ}˼)OMEhuq̓}/%?{H V70T}#}<Js'N^QIhao+G<̀x݃LqԃXcrX㼜)A|f٫uuRY8j~_JxH'Qʛ^)OR)O<' A<Z@A%8A )bA Ļ6@Al#mx߃X<z[ {	b# >ar6jׄ:"V9}㌜?}(tܗ~qv"7hkga^ƟaL5PI|سI1m-rkR.[Yn<#=xȔQ!S;9Ax'('&Izjf)B]c~HO'wǥCA*m^q.	ysZOȭַzNR·>lP6iO5Ԙz#g/&t-"qMJowMϽO5KU4Bԃzǃ:Zp+z%Յnw
-mgLԃx]͔ˏlc2n>DGqe).(lfdoܓ_v_7AwUntG#De&0tWSAmQ+WhS_ҦQ!(
-nş^T͵4(OiiA&cgjbM#am,mo>˷\LKxx XTm.|yd?t%%!yoL\%˙_H!)[?'N&'H,lLlNjN<|Keg^x5.$3EpYs0o4EBok-(Lfw啰,={8'PGdZ`ӥ ~eBOOpo\Ħ_s:	xn_~U'BH	{ݦGs6*}8Q>[~N5|TqTAz- ]\-ByHCzt HoE:@H΃_ }n%&J+PveޕoĜAWsh?70z%Pt.;Cq /WD238 ,=VʆF
-ϘگONڂf2p]8@*;)+ue'<[3y`6<U`ڻ_gAM:}qK8T{H:wҥ,|,t	zix\qD{	%zi/ZʰhCRAC{K:taD%Jn^hl8qTOe|8KwktѨfqA84 /p}1Nj砃S4q#[zv+"V݇WqbJ_Ftn`̼ar3TC(G#bV!($s:y:Y,N|P̢="Ěf
-@W#}y$E}
-*̝Σ=D|
-֚ƵT"af;|r4]ʿ/ %k1'Rзp1ClL*@.<ⵏ/Q;f̠ٗ
-yz,;sŸ2##:lߞpZOT-uĢp=+bTLA3G(M*	ـ7@LQx| )tPj`mq 
-Tt
-t[p\QFW ?$\lcvnS}Bog4JqZ&\F``vZRdޜ{>n?W:H'_>=N7F}d-t~8dq>f):Ρ~Y4}>:3eF'0sX_̧i%zuث!I~k/(?moq_A8ty	+vW@+U`
-2Cw&a]]ы]rJ:dR'`2p)W"~Hjo0|5FL˧$yo|b3+OHcO3FKjcr3PF6ޯW5ĝR}DF)>z,}H09J\=̓zP࢘"M0k&s:;9yZ7Ccyd9xT]oR_^	0v\Kl&F
-+;h{u6N9ǐz8$8=lpg9]$qsjGeo%N%_9Z#UH qXS,7<d?~ds1gXn*%p0H5zfrhx)NG"xT7"ݜ
-p~&b#w_楸'JtA
- 8˚DwXV6O"
-^(PU;UۜGX(U ^vP~\5X%)$*NAOko5ݠZfq
-, <d7'`:~2\pdx|>WtZj|>gqM|^|^^yy?/\|g?<[g˿>[nФxQY0GO	D,>4چi9OHz}`~F{3؆AvqZ(Ҭ尣F8	[pV~_0@R;p	v8C++BxxtECi~X˜b{AmgzVw9F[~f3HO)FzZ5wBQ0P\l%H5Ssa*̝et2mK;{a5->)4	0Fn؆GT6po/08Yݏ7:Wq6t°l^DE1ݸg\7JX!u?J!,%gϒ$Kiyp4\JjS(L5>V9AmayN/e^x]>HC8+i7;o:~&mVaBhTBϻ%d8Ehz6gK2E#%q_~%s#_C&Mcz-Lc=Z{)B̾^N[aӍywD{#b	YA1*&tZ&'gG~+ߗ{keIQ7@)қq)Ko%_v\<jiTX?R
-q7C"~a7c!TE.4J+3m?/߇\ꛈG`[LHr7M.va'8-iTcMl)p)cq}ba/9HvԴ3T_qJ.n0rH`*[8K<ÝՒTmsx9`T1(& lay&18q2(2<U&}lHRH$O:ExϽx$m7]u^[Bf9B?m3qL0&<Q4]nᓔjØ.&aZ?-wַwC7kzRJ踑9Ӧ/16Xw+%F)sAB6Q9U`^?(gzBnY>2;>	&+Cpz-5>0T/Wpa;F!@s~1Cb=M߈[{!^۪VD}
-&C%܃[A@%bTڗWIY,6þ%lw)e2xpɝt@=1=Ʈ^1q~Nk?u{.ύ5RaE4<ZUBIFY_KZgug=k:	]U%PUrU8a>zp5<<,|m>lĝ7cY#&'F|).?x7JUG❈^Yfa7D&mH԰	ܑVu9_zf%J33p*pf( ͭr6ν;FuVQeðW4ܛ"j`MΖ`ol0y@Veu9uGnBG#nB>z&W8BKڄ8uU(vdAScyH2yHC2Gj-ɨ h"m$h.ɼ1dNd^R$b#=k$5I支B2|jH/  7D2jy3tQwg*NbX(a{'O eo1sf_JlK˺KjkN5Q<[;=Y㬝I]cG2ƹ'U *"Y
-@; I>jE/V5d21(t9	j%I=kbb,@ԥFh`<Ux"ϳي@Lf xuDep}j~%5U14=x˴Ɖ	).Z 5[oA(nV.0=lCmy{ٝ|0J=jt'*iRXwQ2&l=Gc6d?xL՜^$s6(@C4~{{nVZ-yGZ; A>_1P=Ͱ/ ģg[[{6_8C~	Տ;QsXu%$>a-t߳~UEOՓ?#yn9߃Ô(H?NeH?ƒVbJb%V[Vbv0Jo>}ӳNPޏ"J7w[JZ|Jh=VbwPZ+}`DoxPnK?iTliT6m9jV5@DS/.r^R3>B=D[@ΖD+zf)'.Zmf~^f%veV^+>/ZamueayBa6'BXn(`W:}~$׍o֔aA9?mla+ҧ~jV%^ng
-X16+[3ڔcQ%>7r]Pt2]b凌Þ;1һF3<fOYMcƤӖb҆}}e5P~2XǢ0si v^iO4M"ޚ/~eQRGw3ƶ;_oM.#]"*sq uڇgPN4a.O5	_WTwnMx̭ 
-i,tm	#m1
-vtF~y
-}7MDobs3NLTfԢǑsk
-,_Rnࢁ'1hjǛd*챽iǌoy:W.(WȽoAzEӥ+)h;hhlb5 XB~OCz56RgOzY@y'	 AúEKa	ob쾠fU|&,D[8+Azhqp9ۼB	rA<;x A*4|&5`D'3(bXòXC9=g qA<x)w)̥U7`ު#<׏-0{X>"276Xl)Hk*nyMʃU)cOM*f[̂K9Fj=\Zu褕^'=M4:i0.؉) /aO;n0-0+m7ۍ֒캪MPK<> QHp0n#{w*ioaJz0uvD4akgpqm0Fv76z|hdM{^nROLP1/WOU?aڏ~j~>K񌱮O7YoH6Oݺx
-/YV铆"b|cO7xT<͕|)BvndWuL3azG~?P],g5̾ǗigVMs	?&S=Hn6IrW@ez}±Ʌc{2E3}w0s7E?KA,{Sr! jx\ɝr\cIbݰZԊ\:^+BnXh}T1ݸh`ɫe=6P	EU*>s
-\O <@ :kɟѬnhZmײT>k`U\I@!l)
-~@\HsF(<;cO:6ƍcM%K!:+Пt`KC0ק`vZg
-uLߚWbt`erB=^>\+@F}V#Րܻhbv,Nпɝf?hb6%>Nkjk2aRNYjX)$6,pA1]E`.;GhV'wwqxL/^z2:w&T;Q;6˖Bc"8O[Q}¡/s"j/㵮 .#r<N@4Ă},$+
-:+.Oh_C1"4E>![.VATc^S<] >*,g	G#-1ݐ~*	6#{)nL+ (d#T`VLT
-.̴'Z%:X0*tysϪhiBgV@t<ex佔kOZ>6P o$	vʅdV\UEm!S+LB
-kW2hgLu	XT54W2zc=_b|ė`EwL/cBO9zUzE
-w;ă^OSsz}8au8kV^}|Л\OCOE^P,%5x˴ɘdIo2#I-6HuA*$o8z\6W'bRި޴\h7_u&
-]5P=9J?d%Y>+1/﫜.4Ǫ98a'KTE(8d8e@=pWr3v8R%kɥ
-:KwVrٕY&Se\T	g퀎Ю#aG26_{gib|12JwYIpU*_~;uާs}T6E\l<[05+
-s~ FMUw.uas*KuUp+"ҋ8nQȉ9b
-]J&]5GJ+oJ2pr`10yZextw6D5<j/J(tp_'9R4 CѼ]	XAXAhՠBՠ&iPr`@^h !>T/]鰕g(9:R6;x+v<9Ioծ|BlvGHֈxuaww/=HUHw&N5kƜ
-hWb]a13<Tǯk,T}U|5GOS>,#E9u&ry_yX/K%!yFL[_ Sd"5IHE*vBt%|I\/-VUKB,j0S$
-)KiG3s $9IlL^e0fK hʷ`%֋`GTH-&}#0 /BUxbUCo3`y!?_J`'`y3I	3~2L$צ['srvG0d'S!ZS|XPK85.Q;&V='^lsh/YhG97ԣ ~oq8DAEzd>
-ps/%&]Y[=I醠N~ѾT	~
-{IVE'rQ*/bAр6Zv^+DMs{¨fld2>2#$=Bq wDSMÔ#n|TeLt<v{6us:0?F<?WǙ^T [(xq<S_9<KY0nȩyn97u7r]*j4)6,lRguYu٧^$PÃhēݨS"z7#?{2`CZbLof!qRX)6k",Sbp?N	u&Լ)ҟa
-5x%f	3R\ |
-D_D0,XjY%~DpGFk31)2-/-L}}%7e/A-DKHа<Y 7p([Szi ~hb|?Yh~3EC|2Yޢ0##r	h񵧎rQu,Wo[)NXJO1|z{>:aCv ԯ#nSrٶRh׿U)!YYYL5o&GĈχn:^W\BN6]膆'葎.ǁU44WBZ7@_4\f&&ͨ}YF9$RVmܰK	1$Y?{x+FE':,=&X/az8NtX¢="ZCL$Jix	U*e٪a*e]a!RV3KU }
-k2^S^$0G`) FZJ@p<!
-+x%mT<YʣLEyl|H?&RDZT~@nT47	@YQ-TPRA-WA+U+Mw$6nׁz-o#Z1ңyLt5_[j	w#K|Ec) kW}ArD=Ӷo^xe@h 22DmPQd:w;Pvb7g22n<֏rUcsUy!]9Y.i;ˤTlTǱvIEs峈@WDo~tpANd!?J\e`sK9|7<yiEjcn@
-7DL/3x9F`K`R2G>ĄT6ZG!x}f4#}Lĺ:R=)LFr2 etB+	lCh"m"*Y1!+Jm:|U4~m4>E+'H$KurC7g+Y|	QR,jt+ѣ)'6<xڭJ@9jĳGfNҠ}5K{I@f^FN3(eOq2{8s_Dm?qiGKudIUx~fJHgL9#WntBvNFGRmP7hḚh@<᲻5#ISxfGF<vBDےIOm )>AoI?j+)׈rêGbd23?r݄çhQOSD4@5 g'` Z;#o`&c#KYj-E"k2i,Fɯar%2$8	Ə>-061rIC(LSͼ4$uDPz3dTbb
-@fO <k`%qzTJ գRѥke -8
-7IƗ1	Gu^;WXm+}8&PPG
-ˣMH-/Sid`tZmAx@8m6kV"1!ޭQX'x:Dh%hb;j,V@RFi9	Cy\z҈n乕%i>&T^hZU3/p螒G@gK#c74OHMF=K}k-`ȱ߅J/&#tiK70޴~ЮX!>]v
-?*0FG3eUf`-[";hD&.>HgޭK#ЊEp7zy4h0lej`@-0w߮Gӏq&[1JѕKQ>OU`UA*T\mXǩ0Jq9O˯L_G$xX2()\Zж*R]н]>WP;ipD 0>]2ߜm܆,yXs1©WFڮ|v%Cj:V|::zo[1չ{ƪ\4s'T=M(xwuL1ޒQO)t#xUU2Rr; |'<5iZmh
-94^d	Cp>if-M>@S,ϊu%Ya1rQsC["G7Xm%"9A S~V7gP?Cv>A@HiStюgbB6NR	PlZ|mVUx	!B(T³&nv'؎j hBMƽE`O
-4|ϛ8ј05_q:)=2b(6虌V r63!d:/DLkLkFF{  G%dW(n`Ph=Bb[(R-=?
-QvqHT)*qϥ16U	"prs9oDqޑ>Bw@!j5t,uVu_2SJ/JR)E̞V *LIB35 o>tG=K<UYqw+0DVR}JtکTw*
->ߋ#9UfL}}WIcKNEC
-4Sf<nXq,A*4'z~b[?
-MrGY1KbC}D
-*%n~K-c!TP\}O3
- |z1G)E^L&$8ftCO1>Oc"?8q!~~#	Ǝ?w)!)ȝ7LfPP&pC@^AcQ༊6C'a`u͢>\Jô~V-VSH׃Rlld$2=xz}>	tB&hQbxMc!:<"+$P]p?uO0zQuL=ԁK*:Ѝ
-.aM(hbҧTpyӌ؜Lpwqx)W3H/I؏J(1^I+@tW鰲@XݜQ+Le ?[	P"I0)n۴Z8oA|f
-Pg1 gts00m<T,fcYˣĔ7@|EGW:pkSl:69L|	ёi7)@:׎Q&ҖOoȉl(b߷ :?)k|V+T3#uLʷwbL̵%gHn9)pRhA xL@L+uZ4KD$h#4@($ݸ>;WT )	]Eרz 	5j /]iM^Ys?&v1<p?
- 
->?o(hz'0'74655|iMMmO_mjh$oz7߾;w`2 
\ No newline at end of file
diff --git skin/adminhtml/default/default/media/uploaderSingle.swf skin/adminhtml/default/default/media/uploaderSingle.swf
deleted file mode 100644
index 1d3a0bb..0000000
--- skin/adminhtml/default/default/media/uploaderSingle.swf
+++ /dev/null
@@ -1,685 +0,0 @@
-CWS	 xĽ|E?3Jrv q8;;q:Z"dr
-iB!{%K轄{]iWV33gy晲beܧ(\i(!52E36e@*mM@cs	͛7o]f{˸]v	)vӹcVo69Kf-dr3)5ћ/tp(E&zǙ)sLq;%z'e^T7Nō՟3/>ܩ/WHHyr\ܫ51[-vJ(4t/O7{lof``6EPBEVk(='gWQRެe)\ŧC^d\>,ϙ{-nǖ]Ə9VQS;	 @s+w=9FPlh0'lW2=;eiTb]Vjjx%SI̝Je3*X(_=7#D:}LSEV.\PyV\xOM>#X/\X[hI`O?upb"ϋ~?>u|?N^+U;mrWsUqįqw|~B'|DQ{>-X_8x[8[O<\	L9ͩtLJDLŇl׎t67Ll|8dmfd2ONOIɜꐃMe*]L&}AiF,Bܡ,Ʋ>:%;d9d:əsn)rbEl9ge\X<e|iC=fMxoiYɞd*nhfd3f64t/u$:3:930I&m|XKl2
-L+idrPwr`w  i!˔<'e242\{h᪮x:ѓ_(0H17a*aSU3|٩xV*bʂNe"`g"a&d>T9%u2\&4gCpehlmnf36W"@[㤡t"e:n3ʣD2Z8;l*CO6h;OgI&gg^3D^l]pCaifÙ]|y!7iUѼaN2IXU43Hk"ilQ4¶Wm	t$&6f.4aRpԭA,;Dz(LYƤiBLo޶d:I~plrń+%:,UȚpSg)͜L&vyZsend7?O$ZD,f"*+uZKm݌^[_XMi=>YN͎`'^u"GMw&T'LprvXl|.jHkN8
-Nlf _Eq&g&+yp*hչxHB&O(WnJ
-4TyNMihՎHxfl iCn%WhYm3$% ('$)0]o9&ɺWCU0S yV(i)/x
-1ݢlڱ_Cԅ|=NJm[9K*څ͠M>LO<_}^2/0PLk&gdJ'%3dLc: enY!^ziCl&ƱZvf&tgTj,a`$RVef0]2);gv(4Z{sCTWrSH2}#'a`9@[s9wqH ,ƣkgâ/
-lUyJag-O*vc*r||o2[j<jZ;4a&VK6OSa/Yw &k+$L5ObfD,Gx8-@Y#H魦Yv"H?`}PkzL؜)WD֌I٩>Y]~%aL.7,r	iQnR
-9LMv
-Y(in	~HAgR2Р
-s+WCx3f.K?H*Q;lbKͶh/]IWnn+"'d۬1{U:M$@P*t[퉸l\ttIl e͋攙Kdٱ"pǚGԌ46s\7cF$'1w*7e!h̤gw}&ƹ4|~mIiǳM%gԝQ(2:BFt7v;X%^j"(9ͲI,랉4bT#e14q8^AٳDummi$*ՕXllhbrk6KXzfdk736-%'5R2BDҜ?yJ`LJ"&B-XO:m+nGQ΋g4A}"ʶS.2O*3m<sygfm1+P"]I s*A	dkޜ-]mTNFlǜ[\t#+NR-oyK<t6kΦ AeG48%V|{rHg:	C]B(g=ĺSU+	hѲlFT:,}h2Eb*vSWˆƅgsMH̳V$Ikh`4VaS;4HEOlӱ{j,RdVƊMdzrWhz.tDROΤ2YM0ƍ2"Ld䄙[S[	}R.j6"8W3s"RL; %@*'ggAn 9㴮w[f;M]M_8H~ug&fE?˰RYcu+ױg:Z
-H%5#hb[dF؏>9߬Mpݺ2bvf cN!M	J\٨G
-򘯜\Yd=?hRrXqNanP*!F=FIR:<Y|gA%(>̷TG4EΟNi6JD4<Y{dzSf<+BZ4d,IeI 3髴g;1YykfhWgܽݶK$ezW'0ӴIϮvumԢ%9+MAD7ET{7!@	Sv)zo
-_!Mo	E)Nޝ(:>=\PYSharE?IW2lRiLo06ǊkՖ*t[eHj  >-Dt_rvľ',-%L&(sЩ{]2/5D/Czw0!Cc:/TE/L[Gj{p=mɌpLFҦ7k\{ JVdD;)sU|!IήB(=&jSTGY4o΀kyawM+O0mFMmx[d|O'V&yVto#Hƀ<n5C=Jtr]^!^CjC<y@	
-Ph=eS	Un&y!Q;0=a*a`,&A3{1wePϊ*>I<ɤ	K۽wc_{mK\썍[ۮ
-©x55ʻMm':-6cʩfEۺEM޷r*^ΗhI-DΜkvh= Nm3LTڞXO<+U:]<<
-
-L\bERoװrUMia5ТRUe
-U":@94	#ֹOVd'}}0%B=}F(]W[A!bcΥI}ڐZFvqZ%PM9(A.߲6rXXE)a-Ws/ˏF 6PL!2V$^--%9#m`4K|@E^lFnV$5mgM9}Zw>"Tǜ5'ǳޑޢ.ea3r
-혗
-K'*e[5v=ȡEJ<o	oK'mVz9q|(OVеi=˭8߁
-gW{0o\^pHbɲd3L窰si'J-Uy}Po: UnuZ}B?+w)u'Ӷ6=qyrwE/{tb )w27;LӕlB$-YoL:7'tuLjHNPv}32֐
-B@e@2-=*pk34sXroM4Vh%U$ӽM[+>S,F>2qر6Zd#bu*\:/L{ḯ`o٘0)wcO:<	rj2LJCkj2JR.4M9ӨgvvrrKx_y6^4b]Iö	O-+N Je10X348XL:UR=j[4ĉr2Eo.}D*%>O,Nf-\U9/lRdb&m2e	/>o(t6vB·k}ۊĵ"t'tL#S2.MbBt`fgh6fJz-,#żgle^ϑZ8FtҮ[ϢkҺ?s+}WWaõ(uwth);Yugy"}g3\.[kOBDTuɤO.U_׎ELvQ{<adTxi#GFİce4(sCr4
-Y(o;tockJTKuk31ʹLZ29͚a{SՉA?_CςvdsE[Zc_{2YrVm<.	uV9k~*uy[=C*HTUPPl5tZ
-+购2;"T\18O}dՔogT20]Z٧:V<mmti{tFL8-}K=NIz/C)/g'	9<D+;D7lW &#Qck;`vZhNΒiG"+YS&z1ټ[e'Enۺ[_'o|.|ϯoEz8i4(s`=픹ܤEW"!
-67<hv9JW>h,%ƽGmf$-:AJZEQfnq%GYÆ{7J̛Ȫ+q=,L^/4%c
-+A[6{$7!&i՗.T-]vǄR+h/f.kV*A;PY\NSEѡ+XOVUn9'_MP!W=jiygd-̩b;;o'B T'T4Ai5啭ceeP.9ǸO8x7x	aR_>c]"n-SVp>ӡ, ="|!m}]~;aD*_p	\yS%t7]DD[kmJ[l	;1SɁޢ7G*d@K礴gU3"O@6CyU/.wmbb[ꡧj\+
-92;egD]A<Ћ!9m{pޘ eOp?ωf'8XIZHo<IU4Mypn<!A'E}!(U3mЪ;}lh2ΤeBdYv36RrSV{Fϗ0^FƠK\.&ʈv]aJzUtlf6vNyS~P@sUŦ_gWFmTUmhu޵*z;C
-ُ>QNnܯc9{u^;^l+vm$**KZ~]Bes0٤h>)'MmֺO{gurwt&׫wRNYimgs8OBnFڶv7u}O6tS^չeOkG3ftD'vNyNZOLy3~O}Ps|nF^Ƀ6tp]Jrdֶ6
-uZהScmO{E~Fh 6uj{MNxF,:-<}ꌎz(>u~[/'F'b(Ծ?2uu/9?	smn-#J4{y2Nkkȷ8ؙU^7֎;-
-ɋ@٤/mt!DT#鄶o]貄B6}Z{b䙝];c3gʈs)CB([i6ἔhjPt]R(iwݵ^Yry\Y]6GPvJ25'H*3_ٲ0s>/]}3+(ߚM}"y/=Ԃe2$"Z)L燐JChk:[LT8XvڧLi]fb,.A=mѮbXPu[K}a.|q(ܽ_7A(ol]َVaTAfLAg( Hdhj&4#F\qז2&tm>(phWtR6MYW۱-ܖb&hk~?sP}~)fJyFcKa2U{$p[$$xYY6pYcZYQ}~D}-<p3ާHϊ6!^%+sF;}o͓֝[kaQ{ސ;ɽ(R,v.䤬J?8k!ᐃeslE gO;nUF/NjײNΤj4%qeto,U}b"Q=,Ceb]OorA=t}r9+JbMٺψtl|vQݾPnVYI7Niݻ#kO#6rNkR~<pm*sf:zhEOSg^ދeNWf5ˬ<d,@)mLRE%բ!=򝹧:<$h($E7)kd/V2-N'(}O
-;챂tL3AZ|Jd̨їfv.61q[#o=/thtʴ<05?M 5c咹!X)Oڝl?UXR2zpGV70۔ԁ<QꭒA=AnM|yCCoΜCn	\pO@FAN*%҉inAҞxEvf=<3/b;4ځiЖOU鉠ikrgtFw>3ܦmU.KLVzAUvAh[l6aStSntS{EQ,ؿAvMˮ3zDͲhZ:q:[-ՊB9԰y["-9.񱝛c[RT@kҼ9ńvotYaOuR׺)Z;4Wϵ#[Swݮ).]/5*Jt"<0?ÖΏC~kW!zimp'cX&}I31(3٠ڛ5HMC #ly.I:1zcW.?Z/CӦC[;%dTrv:}J` egLv&t&LOߜn'-F
-R/2a!Li6{5<o7Ɔn[ŭZ0-X}- x\-3%YSZr-;eFHXy	;~n]x._tGB{5TX**,Aר6eKP\yFw995+a CD-/}<6r1
-&:#?hvOU'Lf,:/S eS;+gF+Hҳ}'#n.rc|%?i((xLup2WMZ|$A<eNL2ZdyUvm2I xl\7MPz*×1G3ϷJ#itTn%|Ϡ`gHb.${CJo}k&\OCRAэNYl9o-<b8;VUk)|K>_pO̳bEhܛ'{|Q}pzq%}s}	卡n=\I#q5
-)t3KI(Q
-[2eiqZ(<#XTůH/SG/$'ӖF[=4zwm%MM*ӧjro76h񕁰-Wt6/%&65WuHeh"()if<Eb2ƺcGz>[]p~D4R|Q~/s4=Y~/&8(=YCSP;
-7wZfӬ99_>'-D_µAއ_7>'O$ώc_v;~K۪m>es`׵,RGV|񁔜l,z.0i5p:Jd?7ydSxO!f1zY
-x_jx?l=zFG9+Q^],L)nh$f8ToGg*"ggTN_*.-2MdoO$sԶBOKrcÅDtoJ}!F1d N?icU+ev~3n?F{:QaT,N/oiYhsdsڼ-ork
-Q|]GZעgGO]d쐭eZP{˹T2}C-cFRH`:S4-L(nNξpK&n1[AWnZz[,wK*+<h9DwlkC*g:i{S%6ٍ7#)0{H6a3Clmql:諌\/idl%2+i0uDviY֡\z;Ct}&fD
-TQ$pd?_6#$Ӻ|ItkKe۔Yٶec ֡lr>uλ\57)3?itDvVIkύ #/dQ#2Rd3"tg?!@.7=koi_#`XSag	;
-{Hp֒k	AZ䞩E!is
-Za9 >B}-x:^O1:Қc1~_24;wKgoz-ʱLmᗱחCNF2MU~YfG	Cv]iÒ`nG,`ȓxJfc/`!cȹoMo=)-Cq)dôй\KC<F7%\n~yl۾%iOa3"uI؀}+,v9KVg[sE"VB,} ?_}4^3<7\!~MML󛦕S$%8'靃Ea2N3K*Z$ذSapxFr/mLk|_qر$kkNڴ*ںsT2nɟ?i<LW)I9}7 e|2,;K{q>_x-  %O
-}bo#vgZz-?Ou'$Z)o	tgcsS撒uvChHeYw!n(^zRC>tpJYKA,}!Me@<:;bX,%q|\h;OTF$U"O&KkW[N9`Slk>~>Ӓ~7J<c[Ąqギ;骲9Npus~Q*۱tDL̸TR%8='7>qAΝ ƴ5<_b7C%%=Yv*T` |OlۣOva4T<\Rg=ZȦ\<=99G=tPV7{Z3 qmzhm`Pq`k 7SCTGRKAbG(dk8{f8`A?ik<9<ar3ggCK,79tUOZ<A|Nt{x:S|0{<!ޟn)ns.ˇ|pqcan!Ad<5r/ΓY>7y0n9<8mOdX|`ϙ,sͭy|ɇ\"ys4Rd	yb.iney0<ԃQNO|~?_0j,@X'=<qǇyhxe1z.$sx*S=<@dx:	6y|,~Ϧyv,nx.sXON5NzPζc5Tʩ鄥N&b9)57ЯjnnJ]Ѓa~MU*
-ۢhZaZn%2sVL3ŹS$-ɮ⩖^sa6@{y{2Qz{ٲ]ȟ5J˿ᾓ~lt7XFqn~s"Ӎ怜ŹB[ٰ&5#C5>jӲIf`qŪ(`I	o=q:X5k	$2rƖ[9ZdDØ/ޏճzި7o^u\ZYJXpNX5^@5΃oF?y"PUWTRcS3BmNmAި6BS')ׁ/Ԃi4߮5>5>oZGZ7ZZ'qR=x<Yo<Bg ҃kstRzy{	=LQB/덯药S=<% 4 ,2x} xCq}Ɨ}ЛƷ<"u@@㏁ƟEbѸDP2jtZִhZk4m4c4k4g45F5׹ivH2D;7AbkM}[7p%?10]zaAoZhڴ>tG@ӛMM?34ƙ,Yeeh}ck٬v.;.`Wu	lѡAײ@f0Nc3 v7RlM:JfV~nhEvG+.YAxvM=&3v/>P['ޡv 3!:{}\æ=B?cv9~\F#`'))?M}4Ǟa@x<s2F=og"w},2%0^%k번T`XjX ,dob-bo'x[ʖw1jYd;mD	ٻn`5;XqU>5p9 ?Fォ,,2ZPzDAQB4	,hn&["-Jb;^vEhG$"<^DvlWFh	B.CD&=E|hIlpЧ+(?	!*t!?.6ST5D݁o>.{D}OzS٢_'EA(fqc7.Ra@4ECF4ECV4X!'D\0O4âahhhhh8D4,da`1`	`)PaG 8	m3cx	'N8p`tJU3g 8p|E#ģ ЬQW\7j5c'.cbL4	pz~N{7{wh~5? x?_~(bC`8O;(ؓ>\4PGyYvh~Qx^LT	?
-H`	)6F&tLPO1c8h)ܿџ4E|0+5o Cp@<ƁYGXAXXXoѼC).F#@||&E2;ބ},iqpsxd;٢y982lHr+ ÿ>18U p-#B9p{sA:p> #%p/\phW"fSUp`Fkw-⮃{=h7 0F߈Mg!pALAp+60#;NCZuwýCZp? !ÀG <O}$?x,PԂ=G'0^
-xҼo)6pbwhᏹ>4-?|KW 09;. Gr[w
- ,QapUDPv*?px	-Wߢ 3Hѿ>QV RWXX8?9*Di1(σ{>~*/{1ʺ\;_	
-p5UU~*~s`fhѷⷷb(vMTNTqܻ\da7ܯ=܇>x *&<x` :f³p^{//^
-xM5#MUL|6FАgp(gGA&~~{? ?Mh^?3`&ZK K>p&6pЎ 0+>O<
-ᣑC5qc>qpG:a	/0x5$ē;X8Հ_|ĵ9p/ĤIpr+W\Ou $$hI#|FM Q-]vL))1MLpn={`< A )}`rʣB!Ly' O<xj
-jm@`}_
-xA&o}`#}z_ɏ		O513皘%+ ׈=YB݈"+݋ua,x.Kus#	8
-p4` wuY޳NTݨDЀABXڠjt׃9ogPt;ɠp/@2_ ./\?W U\t^7!f2V]݆w;\1_T;.*aYTXAd8cҾ{dHv.GGtzBRO)!F?HC/ {U]TtqۺH} >|	0:  |	Wp |w{]ԅ3`a@X K KfHQ  8p`9DIƏ.rDZ000C+1 gDx5଀Ѯkb 	Mc',.8.PsG52T<h"CW|C&34Mgh:ClBE .[rWĿ\5p\B8_~p1(rDmQs;3 ; {lw){  Lԇa`/e(Fy=xO?ysya/ƴ8 z đH`#%A<	O8}{7˷qU?ĉFAgpfK8K}(	׀# Gvh=,8pt!NegZЙՀ5\p	2  \pVz  < x1 q ϳXHh`lFW^xm;w| o?D dA}ڧ_|#g 8p8Hрc N 8p*``%``uPL<ڠ899  .\pEPƜ;sq%%*1MS8]\p6AMy'w#>ڃ<x$੠X4 ,xs{"X^Uk׃L<o-Bo#`#]{ >|8(VO}J3>'|I&(b"y ?Xd@%aHCaGz gxB'¶d-[N	'B:|ȧVU3f .:ReW $/}a<B\Я\p=TM`%-;:L	XQ-[g=y taiBa<o/^T03Xq)"5øEf}0^ԯ0DMolkQ"J> S?,Fs|I+B_t>eKCЄ'8	p2iCy&e_I34B	k%
-AfrӳCqBtiU8idTrf$#n#%!bZR=2Bk0hT:øynLњ`:Tai\7㚱Έ"Fb5Y$CeٖGcLYsqE}} Ps\jq*H>5WæUV\VЎ+$MxI6^̄q9\׫Z:#QqZqj16jk	-EkZء:@3U' L?K8pdXTwqa'=	p2 +ȏq:"s:X-[00oaLbjBg!@(z(psV8h6ͣyA+|D\ 0l#CM7~57U+Gsyi:^q&U..ؕ w5k(n;fpAk6cYhcαo)7jI:o8UGW.ӌU^kmu6wv}B7Y!u䃺n&-n-*Ub=#[l=Bg@fc=I=qirqqlh/azBo1[h[@&!CpVX{LxIo4Z)<x*^a/e+ ^x#loݼؼq-8-8Px[am3ۢln`k"@7P?7P?7P?7YX0Ɵ4cFqg`qw``Q7QTsѼb>pny{!#:q[ ha8/EjbK]J2BЕntWjBZG#wmyG|GR@cqs7GXڱy'd5>5/7
-4 p9VBX<e"<P)AVUzHp@ բ2Ytf{SΝd@	WPʑr%HVELZQ4:Tj$⺦X)A0=XpiRjm"Uj<uѣiVFI<oSIÄpQ b;X@
-z]qT(ǃZ2sn0QNKQc$K<g 49)5X1ݕ-_ހ[NZc
-1ՖhJ%?-!4tORYWb($Aڃ|>9tAfVM19٧Sgz&gҍnfB9
-htҼ(%읭N)f_喎(?Tܣ6tPA욮i̙"EZ	jF"@pE9舲-Ƥ2YVn'zѲ]Վr
-VކlK˙V)۳-yDCY!:ש=QWF-D!>_o_+Gƌ˥ȓ-c4wny`}x{Jqv@6m;)\a dR4/1MuLrqlvF̖_ek\ީx"oҽcq|<frH%ЇìFP[LIo$E0AI49P8L3U.#)=5+Z~JŬ;{4_U|yOغn|"ZRxZbnR liA\Z|Iʋn8w$퀫\aT.Yxה1y>.(gӬ;%Y嚷F/ZjP[2l`=m&hڦ=-=\
-n]4-=Xm5in춓LH%5&pɒ xRp[^:gU˥P6mx<(ɛem^ipMl+WҟT?ݣxUP	Xῧ+y	{gϑ[lBx]
-ae1bk),4tb#mAE
-cƨ6-xMB(r9_:jil
-:TZAJ?/n+
-}Eh͊GY
-xzOaQv|UEJVHi~u[GJP ;|r2R{i亂o]m]ɽHHI5նAOK٭#KD+j9GRܶ	uƀҹ{"ޣMMz/>3H<o~.7rjv܋}	+\F秷2nRur}\o#]6[L_tZO,&,6x/FJ""nHbx>g+(erv*(;ՈJ~ic[<msި%*afDf?L߷G[T/SXc T#WbT,ӘR6FfJy'S]LLPtu~vzUu WB;);)=++[ǘ2L)Ε-zm/SvIpn4\icLٱ)LA\lWZRLu)ۥSr6*s!*-lcʯ\ib6s<6_.J?2LI+{[U:Jj!ʁR?,Ƣ?.iPCo	_Bv|{Y@9̱8hο@J~l%@À8O' u@{}ǂ6$~2S}*Є_ʤ M\P@SNB0o@+Uv<C:W]oL k5g1IoEH{#;\4|/ .^r~1Qoإˀˁ`W ?ȮȮ^]öTֱk_¯^̯~hI&:+͌D4v;|=GQuFf,v7l` >߇= *{Kia:=¶RNᏂ{{8Y	Ğ͞pj14=҇lH29b<98|&{	
-Ҿ^E4{j&-$})0Km.X޳>:q=@vCYG>}k'+Hs%爽}KW˾1[o=,g6? G$YV3:al1%+_>%GVvHNseːm5;*9H4Xv<Ta7;W+v2(7Slߩ|+e;@$9`s/3@~v&l5<sCnO`k}74C\wBT]d7be /~].GQ7Q
-gWrb\Ue-5_k׳bsgQ&?f`7K-_nv|=2~;'v'w߲og_28y^{ad_p(_ANg¿=f8cO ͞D)O"tHٳƞ>?og~}iObt4.-u;؛4[Jʳ9WNa``f?e#U>9݌G{1/Oψ) ɾ ࿐-Ak ~f~BٗAy-T%8HIx,u?NvJWY7r~2I4''n.@;پzU6L1?
-㕊f>ĵcs??i?G%>|9'!O5~*OTAyDW< :WE&b_䫁_gP3?H_d G\Oy:W/PiCwAQ5W_H'Eb(q~	/Uɸ_)?ê1ƀ.Q/y;HU8^ծ@c+W^|zUWu ^|zJFMHVU֩,rܬ
-}P}q%jHzUGvPVznU
-=}_> | UCH0,G>q'hoS'U}
-fi[gש]P,:ZwCU9~y u,3vc/e/d,9
-yJ}x=Ϫoʔo6;Hq]PQ[jQE)+w>/) ϛꇒ_1IrlT?o!0_%WW|~(~>RʗHÕ^UFUiT=FxOG5OO}gg5PЙ"r!c/X[6}SjKڡ]l\'	Gh=ԠhЖirvbPJ8/N'*[Tgi'"r$ĬNN;ZTM._QMNN	.h^I;sgkg_P[|GkgÿV;G\;y ]OMa*7^hG]ѺSKxR-Q[WhڕH{v5ՔTUAQhRWNԮڍv&d?J[i7_"v+ir#ReTjX˴l\bO&4!WM'p+j#͹(ݻKP	ڃZ{ӴiW<1pTQmV>8]m,՞9!bƌVedyi}֪<>xP{~yGNEģ%]ˠQ) ^E	^<|h&%kxj?TǑɨ/jF?u|;
-}YÎ	)l>J/}	"k7oPG߁=OO#,GX_CohHJ/! Oi"GbÀFTe~8b?Ľ	x\Ev(|n[uo[vwKc,@X`za$Fɣ3IsՂN'{?$/e+[-+xMKa&[˩SNUsji6r;r%wp/sbrbrP?6L7z*5u8ZB;ō^&FRGj$?c4ce8VKw,`5A$m+'aJwLj4bbt^SxseVmM
-}Z{/W*mĤ uvbwj' ffAO)[ s@[1۵9=BWZM.{L[6%m**>\(\LpkgA:͓j$(T(=jՔ'+5)~I[ H?FޟiC޿$K]
-7e6Ck-MEwzI"?B/ آLW!h[Q_ܥwr6 rGi7A|܁p׶!vL2NWw@x ƀ+~&H|OGms' f_[Nd<YOTׯ3v_tl{jRc؃t죙zZ{p=PǞg%:97jUJFi3 Boĕ0VpHCCh~X#_$Q׏]M	p'52F~nH٠Jŕ]:;5,t/Ge(W꧐cu`e~"״^xNסrVG6BlosҨ3$Dpw#489k/+
-}^		<__|*e咎M n>S H#C=.Ȫ@bbr]gt=R>RG/h OўPߕ{b#9qWCL?>^LND$3qS=WVim	!2k8|l9:12+/S\] )ya-h\^{|@,ԕE6bl9|	R/X-8`ǭ 	|%Ʃ*;n]SSZqK|3zzCUf7RQSpk
-Hk7C~,^i+ൕowj 󝐵=|7+p7 u	 y |Snpw஁\ʧ21y[x3!p]w.Lc)NBD6uX\=<? 6FܱzJǱz3:=<n }p/{
-:"aBq~bn2/8^_|6:Q~GW=p/-~+8}~ ?}W{CO*p^=rOc1-|EF1Ub(?Ua\XR0`1 <TJ/(%FCT81
-@G+-9ߕIЛ,G(L1b"2GLw15b
-S{S+: [i-j%C<1{xh&BIl< q ¹"AhWZ,CJQ|V[,()!M%Y,ML[{D=F|`6.V	k KDArTφ.]/Ab=$q8Rm#įܛ!yX9\[p{nnEZ'dO	?I#ʃb6Q`ZPz3f⏉ VV.F1:$⏟3$Ż9S?) ax'1y{bAW~p?Ԍ֡qH4pSMC5H!h'[gM+ȇqG`(GG	!-6384Q(mq GecycpA'j1DeC$n	Ry(59o\۩g39<"W1y˧\'l8>P @iE &uFe]g0qqYs]c9xYl2'_<I\W5afߧ}._"l'މк`Lz{6oEb88f>VI:mi!|U) [7l'[ԺmMoTjN
-a6ۆABodۀ7ڼo_l'Å`;&vq2R菳=x+h6Z mKq2V菱;0j?ʎJJP.UP Th՘(|:I"ƨE@LP 'Gթ"S^NS@jv\鲤"֨T}Y6SgUi{u4vP
-R\գV]ֻZU6l4BGu/|(QUݪ:]Y 
-`EPv>U[m9~//̲jweH}x сq\ _;t[x763]~~dG k?	N ?d=@A6`d#dpA6cdhAbd_ Apr l'08
-T厪l7tLsw|ևA"L\{d_A zbL9	°7 sI!ujI# 29h,΢1NS4zE[z[˵/$A7oA}vH:,.ꁼ:x^z0糵+z{z`VViE1W]ic
-x|vZ:]khA΂Fbz2m j<Dh.ǐxdvC.vن6e4ia\<}8	J/h'9\+iA*oR,R35嚦N׵sP@Rnk(u/w,y,v!YKoD5ٱwneL)N]٭+V7B]k٪zf9k-,poqW5 0~&MH~8NYoC ZAXq02{;¿
-uD<o'}L^oG$҂8*HX>dfA-E# X	~0A(ǅ^i@U:fiq4Kt:31Zv^ zV01s͆NC4"h::]#xPG:zCQ}SDXGa">PQ_	UD"*Nl'c1PL@ُ wF>ܘ>QjaFF>j̀J:Ph2fb1I l[l#GsŇ6FC`.byBHvuFE#1BG:0S&O1%hk)2oS>JLJFL1NQ25JwZ-J0]
-S*T3S:VbGSSU*,Lɟ5-J%SQ%i?E%}x;*S=J
-y`J*0e|S
-71r1#teʓĔN0 Fj<=V#4tR<M#5|fFF<n'5rP{FCtFdʷjLysݿr"ANCtr
-å:@;:iwW02:(g!28? NFL |Kt!Ȕ?oD	/0̃+ m皘ۿ˔$8=aI	S~+R
-g	S?bXh[9S~1H)1<.cBɔA{=A !FA19o9#; @8: 'aw[tyB͆ѿ*|CI>z')&^I=aI>HA
-ߠ=qI'7m:@ԯ"M	i,DF%\Cا<4'?s<y7x"#]KRvCߪaúȫP'j</5jTԛɳ~PV҉S4o Ba)˿DQj;-PE).I{hT픖rI\dqN]enA˞$.1)X dZR+HC-D;[;?SIC":-6	Z4C+˙,, `T [u..Z}$\LF8}YP(
-f%4Hҭ\wHgZXBaH}7XYbxPXehݕ87*ifb[{8JC"E-$JT~zG1Hƕo=׽U?z7Rӷ˜+S4w-m.$Qb:J~Xia?*#([cXg7CjN$6EnAUi5vjl>-NΧ`h$FRk>4Y+v7ћ$|(#ѨSuݐϦ1cH*?54(["hd U&C{yF+Jto@DMΨ)]hbp[Vw0HIfXKHd'*,n0 N#POC+\Zf\JsK2`d@@: !T5}iQX6YsHI4}c*h`$hcC鳤wLo7$c.k vWJ@`{	Nx! Pӂ$f-V:(#VJ!؟P*sŮT*R6}i ODXGi8JHC{VFJGm>#j(P(yWv
-ܳNm{!FxqJ`jM'HkXXfk-,)e4),UY`BkqxUIҐ^xAc05΋v	*B2($BF`3y546fGD5(b9ZB(N}"%05Re   LtQ@d!DBcdZC(su*vjQom5] ,uSBU{~莇= hX$]lD"LyxCv3Mh$(,yA `Hg	͘P٘t-qL')-SԶ	:	0$ĪDuΐL!q@S'(4	>MgHCOɪr&fZiL@0nw"|	]}	<H<{,I$g5FurCMKD.ɶHv_z (3`|k=rzrn%P9d51͖5Mr4`i49>ǲ>ǲ<As`URO/-qyNδy|,h̲?cr
-?u*'U\!C|PyX}E] tN.ZUpE.0_GP`U J|Æu)pٴ0΂C5.{"FuiVNx"e6DM8*8&h-KIN%jqnkkis(h%1Am8/wRw@Du4ʕjPW%J@:{"v<CmJ{tdN51Wx֓M0Akx@W\T{[6BXM[a@JCA'384,)k#tr0~dV9./(<)ANA=ۯa-2ړZJ> M0:u>l(2PS?]aVl͔@S nC"9Q,վ2zv?1b2b#h붿
-$]51Crؽk7$B&HRnh<+ZHV:#ɑ)h0*[2{ˌjoɤe=:wdDV"9)2+1olя ިAQc"p1(ƶe?TKHҋ}&w2Ƥ]D5%эL"*TAi
-1%[6h3gڲC5R ֐J*eRB10(.	־)4-\٤j%c2ƮȩY)cdJhat{myu&E9s5Tʵ
-\]Л@x%w@h3Bn
-j-k
-/B%2>n@i3Lǭ--i{@)MEJ3 `K%oAK{5kɹ:>Hd\і!C4:J8AwLhq8%LɤjgDoh|U9j҅m
-m2'ҫjmqzuX$'Z- 
-b[i3g^AHב(:jQXQ\ +^. 2k1XYZpL,`"KXrӤzIb$z"JX8x	eplQ's)ͱvkc@A 9U< Z2 `1ir`$evl"iR"C;y&*rKQOQurs{r{ߐ _ѱS@+n6<z--_5y:ֈ%&NŕL9li}ݪn"[\Z.
-RNBmB	z!w+7eku
- A#| eGɰ3м9:tV;EPk>">$+*9	KX^^Xj٩9`Íoڼp Q
-@lx<a/li26&)aOr!wH;$L?ì`G*L)Ux38X-I'kIzdΉGRGHCP&,6#KP
-Z2dm$eZJuj@esԔc`5dE?NL5d> \UAV!v;
-bG02Fu`gaF29zDKF_E6F;t%/L"6|x\`H,o
-۲Bl$oɏ":"7^"`*N Wa΅"Q,fsB'mҬ\[bivM#,z;rVf{zWN.5zOb	7'f,ht/=h LI}׏fO	ڮB!bC 
-jCAǠ. !M^gҰX	2
-|Re7)|e4z,}(w{0ET; h7Y[I1~v+7 @@I(OiTU%^lAc=$lW%v6<`Y
-+D7˿'"Z."q,y%mrqyKKJ]ZebF-Zw.h0Yo_&ְ8A9/s"1
-4Cn2`d2注!JM'}d8-rqal`]4m͉i*$$"M2/`-eo
-SS?36(!'+Yʬ[eTNIR .^MwLfw$$3ԉ
-8h%M͙"--he;Dt(uNM{ >fcS*LlŅEVZ!`0A\1Z$zs4GAPrp4ًUa&IzZLnWLBx{	o-@l("" 0"e7d8}Vb6%H
-s(WGƭ#e⪑mWn5Ozp+qE$rݠ~>q\?=>DbobdYWI&UA̤#7tUe_crX>.ƍfspYpy*cOvMmR+<c!#0`ɥDOI-Ho&R-[ıq[{Z!^I!w.
-'}@EMTs )='<K|ԂO% RNɆ?d/L
-_&FK\@0_4ۼߑ026_~|a6nR"cFC 8[q#i`CD\OM%n::]<N@CМ=J tQՕ a[<ppbV%nE<|Qpj`DS}F|)Z
-+:&$b)V`_"4)"}LxmJIؾ򠽁ӛ&cA
-SLrƙ(;~p'S7=kFq|5ܦA&wPNyơ٩S.G*mYƦ4|*RΓ.tF	f`5zZ&.Vu^څH=PVx
-a-ͼn@Em嶭t0-|&`"-Ð;ጰ'adPjaͣa5z8vI\V?5ƭ9Em RaUW	+#x?"	^k0:QE<y)%>@j^yXmmD"M^gR^ޤtr-R(xȱ t.!.Iq=4ZRK<ͤ0LbItZVUq\Hd̢xV$uq,6_rQ5BiBB!D%D)wSZή(IGc-Xe[+m'NۄN½		lP$m0L5C͂M j5mfJ'DL$Mp*Ԯ
-]+՜qS
-def`zߘ֭a)q6-b_KKtlJ-\ O9- *W^rO45B햔3r_,r8R-D3I=[YiBc!!ٴgkc E(~&ϲͼ"䷽M;މK8ps]%:hzbͅʙ4s
-ҟ>oL@:.AzV{)HzLbXQ,ɳy)$dgG#T|}ap]PZC>*5o	A}|F Zی$_>GVLVIF4E`H*uFFZ&jD O߭V-{(.,E,oR0BȽv4ALVjb$ZlbO~h؉S'PI4x⚴ZZZ~&7ﴕ&hKCyլQUzm4l#;2FohFҒ\2|>$aK@l[+OW7m)ph9'<m'?.<V'gZ8Ǹ*zC֑{^O$Z ؕSǏ.ggN/3-tjGF4|	FQfA|~\Gdل1ٌ6>77u{SW7AdǚPxJyl[Z,XYWrCIxFJd<Pǰ}lhV>;)xΖb`8)ò1ӓPxj'9۪ڵo*:S&pQh*2TdS1) uT3Qj*rLnbz.n`q,0}Ѯ<""%yF7Tbi(UO)T0$.ui9	c8ģ0άPfԅg٬Ik yJjL4훤7) ֺ%l#kH':'mLNDưYg9
-˺:4bI6NQ?'V@XCX#z(R)=q$Jzu+̱	An[v{-nKx^PvBF{40fxI$/%J mH'oq7;[Z5ξغ9Y뙎/owgT;\vQAFq_H#wzD6a,aMo?3Ӽ=8Q9;zP7%.RM"	rJ3gnn 7H9)hf6U6eS
-ƉlAz`4(D¸-rv,5ZH$hT1iX:Q&f0;=[y!z2fԉ Fݻr\uFdif0@Id`xEn"T%#.F~*!uLqmrّ);<?isY!1Kh-s
-xHy[\T)kB7ŹOw 46g;?MYVP/ɋmE[4Ҷa@Mx!!a4'ѶL"IV$NA4C3NﺦNm8+]A]+(tB[,yuX3Z==K0[6R,KEie?'0fiNuݐz	$eeecƴs<}M궭б53rFs
-K33]RvHW5{]59N|hQ@ L:V =eҵDQZvhNm8yPtB0T'
-H䀪Z:׬R@DfDRgX7܄Lz0멸%5r;wxg7iOEU4H3bg4Etx8%?WYv'w"P&ᒝ0NSnWVև!AjeJ&g2p {{Nڹezf%" KqQnC$I;d$Ԟ٥1&r(~T5LuyhxF)X.Th"#y Y^8Fpqz 6rB0)kf؎gk$CS>܏pI0oƵDa$yb25@fĵչض:C.Ͱ@6`nXb#*'m6|OΖ( JU?-p/k~pGCCsݰ5ݰ?k\SN-έ:B.OҠ\Z]
-[WlQi~]h&،|!jt!ӡ1}t"ErrٻJLO EHTgC/N [DJ z	vCZ.BqU.q{f'l.%q^
-X
-qr9"2K#~2HCAuYSpd<h3h0JcwK
-޿*	qBLFBLH@>+!}#!zPa_ș1UȨ[%ӡKRispL1ju:#i%~̀,(ۡBӥ.)	znR+,$%6͡%Bx P'{@FDz2}8S@!aH}P߀i!Qݞq( qݐ$IR"S^BapNs04)Spqkè#
-BcAap|c{A쉧9^vPiHٛo6m( qԊ8Jh뒗pt-zI:="FI~Ay*:"sZ=k2@Ii0y~̱b04ھ{h(A{=R{nm{+c(Q0ۃlkdI\Vt6a,ThHk#Ll)h=M6wղԩ9DZj2jPKk%4,="6=]Ŵ\&?!S(Mc@Z1{rak0C0fl.o[ C9Mvnp-Ϝbwݨ4|ЎzʉBEe)ţ"Nr4xALtLԏ2̯$c"3)70aL7GZ䄈;!WT;Z 
--uBUCatnYqw!4!BC9hn'w}B[[~-S﷼e[o[Z~!jgU:l~QxKݝM=1u@bM!3OiL5HWtnR1 jOBWVQ:npM
- P\LV3yפ݄M'RVRaJ㞱[}/Ab G\50W!X7^l+@aҔw	؇}@܃N>vnrGb*#L#v(LlVWZsN>3w"\iE\">D%B}.svfns_6>"_egdzzGªhFXu7
-c/e6zMo73@an-pƴ>\Ls1wvi}.6Mʵ0Cs b2Ѳ>diC5LZ:	Rz7呼in?aj`w/nOg)59
-+Ө+HAhE%چǪRѧHdJ3tdFO)^p}o#JSKe`npfE. a*bE)dɑAXA^^qF̠xmqnխ5pv@WJmWf=<\<,
-S[nfٗ@xtRR\"oC<N&̔:du'ȷI"rv|1ۜ\qyA
--dmmhhiv4[
-SQUe%*$D:(d4lrq/XG|l;jnR	F::>AXmC>A|$yy--n{ӰKLZo&??XkaiW_}9mPKHt}#֦MUqeh>3fS$5QAbKZ1K[<HI%@)PLtrͩmȥ ֔ݤx79B!I{Ү\b#Cu´`KGV)4ZS} Ŵblmi*b`_YJL^ZC=th-L{D5_K	5ZڅaqyG i%̼*d S+?@\4})i".* {'SzcŠEbzP3oWsh?HKKHMIۛ)Cت4rR].婵嚊,{HR\#vtM$
-)&zĖhOZL>ZPlxK.P"wVvp~+T.U3[IZr%qI߭\wή4,D幭eN!H,q+{|x"V#{߱ev5x~4x%)BT3}fF{H98\ڃW=:':3rtm/7]Lr_\ǽ/'fO [Z(ިwާ^A/p)q,~ZnqVg.SHsjy
-q/\,6^^K$^l68@ i;	P5اl*-Ydulni&2.oda_z0JK#փm?6i-4IGc+F׈PX].Z5ă$-.[g@AξBJnVqIC:=_oJMy	u_Ȝ)gڮ
-U?`/	keLw9-#wF5.Nm[Dm ?=z܏bjJe#t*kВUy9eOu56''mc|~禂j9ɤ2j5*x	vU=%p,y ~$LLdz`^5fnQ=[V qG^9'2ib |ǉJOEqXgm-Vq1sUq?0ϗ/<ǂ<(RB@,dZ9R{X?aV7ɗ J{k7hZMU?g3+RqlmHĆ`J\aF*H%E|ΣIo7mHCY3<USJhZo6f5^'fhlfk-fh:aX[Tf BCN36C{^37CPJʘf5f3t}h#f#3t3Cf3t4C;Ɛi50ou{C u}Jw;uݭ>»Kf!4~/oFqjFr}|KXL>%_w@/9C6  M̓7yM<vFCy:]1<yǮ8OiUtbN삿|;s4M g~6Y1jD .ŽϴjUy!-lr ÿ79HSݖ 2'9!\%ߑq t,Խe(,9Y]aH!a<~#|pWRǵևPWҫBdW(-@TTET{k/y'"t'G}͒yBd-<9TF>%bEhO;<4'XZɓEx=59HF.!bwyhOq"ȓDJ6d<9\*Eh	OV0ƓDlm!"Wd_Cx<GZ(bD'XU"vfm+B+bDh5O"'GJY*U4\ã3*Bzv3]OuY+eZ񼈊PK5l<1`vkH%Ҧeiy,Ch @IYrr5f&t
-NwkM yY X$㰈sr16vTw^#;_m$l$lczOa{=a|rUz*1LVUl+F1ji"e4fx |/({)=ąmFخ`k.o}&DllZ.g9 X)0 kpYC{SwT-Oe'}Q6&ZaU^\΋Enr?eqPml)?(Zey;<m}Ci] P\c ( :F!|"t{*}&
-*/ 	ґ%*}/P"	x@{OP"jNL[dT5;nDF	hyGvIjOTUi?"R)T5[@:C	"B8ĀHqVg"_hJT5$51;|yY%P+}b!x>pI"=zU#>I}eyTOځOhG[ULk-ƶ9H ^ KPTrVNQҬgk=QL&D\49sQXV3A*0Gt/XUqĩ"sr5V1KV*抧w\%LHI٢hrESs٭USMAf.R=OUUC5é=zP'B}=h<@q|#f Zd^<`ØyFWX1J/|+ F^|.	V+<^NvimsJRN꟠]G|t'zٕ;F}ce"19u<o)wyì%%?--j ]sڐ*ۤƶ)YݦZOm- 
-	^5
-j'+%wihDJ)#`ָ.Z-˾_^vS~EFn
-|ʾPj=]U- VQq܌~bڞ뉞pc\OsL4yq5Yg
-]<rݴ6ڻYMk*@}1T|_G5^Mޫ"f}9=%$ehWS&fTcKK(K>b y[ؗI։ZII0c&𤱊/Z/&>/Sf)yb|/vl&1P6K=&keuR^hBz~*:$Kn[&L|CW*Y!|86S3fIfjrCuGg^Wy٫98gBb<g=hh?NXnJ8{߽ˆ>O R
-./ODk5$_gs2^膡<T'I1q\W	p} 9l 6x<;M|#4+ܠ 7xB`	x
-jar"7$9ѝjd3JcAv6f[
-rW{FU/P2IEkk(Z'XrE$9ͭ-RzYJlRR\x])Zged~0;<zGz<9(UU6V5C]|Z~*79ewl4k@cm4GL:XP|xA6h>vV6Wv*ԭS7g- 
-:(I0BYKY[|r;e]QHyq%罦v{MaU)I7ôה1?F3T^q<+&d~?V1,IkkJ6nvZ4d3j*|F%᫦z@Y rdBM&<Èi\G/CG%0L8j^3I띿o;7k]7m-	_Z_DMA>b/W`#gt|_2DKaQF,B#Er-k<L>[<m"IĶX*bDhHn"t'*ϓDlu"^zy^Ķ.bkEH-"4Z$j"C&[!Byr<RֈPH"t'6m8OUu蓮N|_-|ED; /ٖUhC6xAEc`!>Ylng-6YA?K]"4U$wN";P5@.݃toLYDgj
-+j*Eɫj"ɋj2؈S:ǑrGi/xg1xN={d	j]SKZq:dJCB\>p&Q
-x<OERa]d JJENOn"lG̫R~T*>Uф%KT|7Ͳ~8ZV% uW-TՇSA|3VZDgLǣ*e7Z¨IÃ}^R!yp !2 /"շG=@]>Ra)"D-fV%@@%NfMdɝ,VŬ1,YbKbۗ9Z1$dڶzKp` HrL1)+h,2)X*C[!eL>.c%E8`AeeF=1ЃzA,ERXC<1ԃsbC-$?)Zsj})[P/{ªW5	7{U*  (b @@L^(j_ӓH+}0RbLыp+ӂ2MGyUR*GA !M䇗 "Y!4'ɶ:,ae]s
-7fjSEI<bp,h[/x
-k<U *p:1a!Lf-`ɰg0/@PIYlƧ16?=1cӞiV_82c"ffaf6͙a>n#mP&LG8px3Fk `0YXWIYBV|Bt(KS{u0ߨwȣWX*KV@MlˑF֝?62k=#SxpɬL_DoMl\bS/|'RZ H_wWe5a$Vᵌewsu=OdOf5U~{Ev)\>r8|trB>W:§TP%[Z%[:L/bUr	`aK}o?:-"Qn!Ӹ_UuU.ar;Ur_6kJvv0'wȲQkeCS/ϙl1vHs[0Y*ɰ]fWQ+*;O/+4zѯʖVCl#Э\pzuW 1Yk"NHOmˮUx}t6|8gfarVɮMi|9۝u*aJFl\<KMD.|c$n@Tf[n`hͻ&""m.t6;0LC9YxM\΅^FH͢M0f̻5Hͯ UDl7ahv=l)~`A0ږޮMY6PdTouVQ@D(zw(W;LRTN<S;^HhT#I.bOw2ia5оp9OG:5()%Eofgu8`}v)*oXJ2(noOJif,:E3*ϓakf+iuو	2bCJJ5da7G17Ѯ+"ɉ$N#  6d|S*Le(D3н%RXq'M=zz֞M'N:xB@uGH^@=GLcfh^f~9mlkz;y;M(Msز;Wt/*.<Xds
-G$TY;E\q0WlUjx|+dKv'eFX|1Y{0dQVTΦ%spgs\*Nj{TDEEqqw*v@Eg.y:y2##Ȉ<
-/^ANu*y\W2z|=T 7@w	IiBR !/aRu\oUد#d	:R\Zj
-P2bB$r UI
-%")z$Dp)K(
-?uOhkOj ޠѬ"ÞR]9Qhv
-t,Ws0V'AۀXO۱{#lxf1?M۠M~.Gnu|*AWq q5s#l[r<NWs[_͍ʶ+ۜWs{n:GCdu]aodޚxbtpq:b.Btu`r?/_¯O[b߈J'OK'p,=WIǲ"L-Ђ[d0WcOW!#_Pݏ?^fUjDtBW@w.`iU;fs 2bD@MJw̍*y)! dOfB'Vcձ7`LbU΀}Eހn{-^5vh=9vPfEe;V}L7,[d`moz0JJ߂o
-* V0Uz/+T뽨PBUשT?wmgkUvnpH2N>uy7aCqx෭`߄H֒)xoJlk1@;U~xA0~H?t;h8_ю>snJwf*A.yqQVƏ
--??r&Rvh@X0{4vh4mN˲~l,GʲA6r$d$G~lVYY6Ra)EB\(%  0,-EBB{%+$U0b4/
-
-_)FzF:J n#܉'CpȕBɸR\!+Tr^ᓢr'
-cZq1v^hVZm@BX_-h	+$\㈸Cܩ1 pJ$ x<Wxf6~+qDuȸD-6	վ2aq\#JpXAW	<yбI]%oRρYbWh5>W@W޺6A3..PK	u9Aam/˩+sjŧc*^PА{3yZYu|z!V
-&4@%7Br_%!P'W_Hq꯽WeHC>y˙s`2.E!hE"znv=@k	Eo8n|*uH( +'"X/Yc_>78xʸ͉i\]LltŽFqwByt@p\pCwn{q=Op6Hm$Jq
-)Q!^"ABPj}KDҋT#n|Ԣ{8ubB|Lw*&fSC)w&z7	[}[}[z~c8[MBPpY '!X(4=%p'ȀyZ^]W`15G@dL<%^j`[uh7B'<QT`!)>hj|xz|0lqr0rڀq0/]3<TN_9jou#֘ǲ,{IP		ś7	%ZT`p˖[~ :[\õkQtvL@EmCv N6e݊q>_GZ>_w!_%\oH
-5^rP"
-T܌L#T~T},up\#Sec!OhV@L5,}-*q	rG\ݸ \SrlW,1׉U VeՊ}0]C&`BG:o=-\EB%H(< 0.hzdis?Ze4PVcvQI̏#ȠFWeaCǃJ)ن ll߾WR[|qbHå'6J%hsyvS2tfrxPZר]>'clކ^,u-ݥ2eQPo_[T-c>֋.],#Kz_׽^p>d.wgMlݠvy+S@;Av댾A6I;oT+i|cס᥽Ye@5:ئ)}4u3~T=U=yF+&%5Ckc"kH['ɑl#;e1)G>e9]r}YD6GJ&.rR{^-d/!ݭ_Ѹ~%cSA
-"[jo6B6!F[W`ZD`GKkzl͏2&n%a`z}<>$Oexj$pU&OUt4j-MnGHۄ^GqP}H)蔅Y߭r802>WCet*Xvȹ
-&56	HeN
-Glzx@
-
-X ;6.f?ckQ% 
-+EmR3XeqdV?"5iJ	q^b,`	tl qRwVAznEWx n)KE1+B|鏯Gv=FģXae^QA½"KVe@=>=VRx]_nBu۸Ꜹ.baa@4GU>l1ž[Um V. "֖,5a{=ZvM"XS*M<h#X[-!;jaj먂|UapooF>:Ƿ;i,sNk	WFdx'GX'l|"G>^#dwnܷxn1!{r}'c$Zhq)6>#3	}7Kjd`k<b>ǀBqx:xX{C^P_]LP1{IY;<gCexM77yjǛ¬7R<|C!fQݶX HµAxGfخŶL3ߠ˥W8-`9ډݝ<U+ξfH ?1A^XlxGEy\{q	UwG00qUN7>JǾp}	ܭk8ʎw`=xԲC@c[BGZY}*7ڭL٥ "k0km){H2=|G%,llXްG.0˿3=g2PO"Vclnw:a?!BG3e`IDm}6)t7Sbm*ń7y,mP"器<s[$}VI/('LQ!/BI.P-4;K@$44ЕX./U@0@@6kxuRm&e=LcQSYm;%L8PLJ;[a"%ci  UL1m@:cx-Z6	u['	f~UJ"ڀtʎ8^]fM5H6Li~;}'LO`Y[=@^χ*^qQFy>V+Fy>}U CGqΑ:'540*sƁfM2?^Y@"bĀͧ$W\P~yzψv?Ei|s}N%blr_}!WcOƳ]K.+ՊF՚̋YSjB%JKg̫Լ7EBpGOy/>8gI5 [hR$n>g۠i9AEy 9j
-_F	NQN?D
-h2~X4;"]ˢ
-"݇]OBa4}b絑ߘ٥u	b[N=2i9̩@V6ej2}0!4?o]ombM@%G(|G(	v9<n,/xcP*fKo+ 2ƓQ9◉z%Ci @ Y!?7y=@ɾڦ㨄<z<*3@/?
-	G:[iR||3v\ي؍t?':^j	T+^WJ0Fjo*yXT
-٢x)Cjl:r4qZVxmyw$(vrE|نFP«b8l3U}Qcߩk$\r_%]
-
-c	liG!paO^MKQ2w|F
-YL2W-X&W0U*Уȳ>jpS^YM;j=.G1-Tpi`/Qi Gy`8Z^'DEg@wDh4zf`1zͲ vRy\a4}  RQ!	D鏻#:$[$wiٽ1	ha!r
-G;b)fJfVe}>=RË:Z<Z'
-?5",,M
-LU $-**|q!-&lul[Nl7`#^)@1	:X(BBx+y.ܠ$$1,9jbj^|K)	r &&?Ce0^kx	4ûpm@`c`x*:1_J׼ռ+d*rAޥ^ٷPD딉՛Zu%wGKY2 3}id>LGOG)ֶR	/q6T<>2<]
-"sEx,5_>F_|B*^`[QVՌ]1^l٧CLFxrb,Ie~\ms*4G'4!BD8j&$NbfqAR& ÚMJ6Z6A}.I(&ˎ35;X:Ҙ:-B2'$[jݤ:iP/B1rv3.F,H_[7i;s6?Pg\MdC,f>LgVSjZHq0-<jnHEèh4[Eo _*ϓ|OM&Ѭ43t5$MӰsUS{j}#)AB<"1\~eGȵbɸV\% TW尙3 =+ŎH'$չFlFVGnˬ$R}7R]KÝ"gbbJ1Jc4~	{(,aφ#qA=2ol`AZ2G|%RzE	3% p,q3ص"V,_+zv-xŮ WUc8J]iWP9<[-(+åR_/l|!GvsIb@>l|)%\~i7Ğb75bF1ZK$:ϟ<JU/E;:t̰g5}e`ּe/
-Y~ΏۙC^a/jcAp7SG&BYu֗3ȵb>7vN55Z /Rp!o3e$/|55g1UPTϬ~sl7Ƕ7}sjc%淾9&ОO}ܰo0o?Dy<KxQI{
-؉p)vDry?{a?4eoKeE9.a\m)7#NK~E˗pZb܄vT^GdFm~<SK	Qϟ
-vU#5ښ<&hz-x8c3p'fXaegq#õV0uVxx92\oe323ӸۑapfXeegq#j+F22liltdXcex'4td QZi<ȰVG$llll,g=s<䌭|Ks<nbEz1R{X=h)Eo3r+ai 	[ Ai=ߠAt{TD\Œ<FHh,.*%U˵DWůЊDJW$M&9l*'yYN=irsx~K$D=+>`k[6&WL--DӪDcZ{܅[6iՀ٪ǈUgVAaX?lP{	M*h5&=ΊaƲc̮K!'DjZ-*h̰<RE ,4PX[V%FKZ Sh 	b1` Õ00Lvng.^f2^pq>Xbxkwl=ظg߿
-|_:֠
-;:1v8j5}/X/e';++4,VÐ3ju- p]cӮ7-r5}s3.ɳ$`J#WmP|W!5B-z*L	{"+}">ű وMD`wA[ƚ97T6DP&DB M"t%M(]*|)	m5^.VZ*.Lk1b:>FY/}̍"PM$ո &+v:NUiPkng%	"EHv|E~O8aPZ'mL|NKN	HG?XFpx  . v$|^5ֱk(Q}vmnQvWo:x{udZ(oc0$ӎ$VVB	ƯѪZϫ^W'VW#VW+:ΫIx܄w+ޕwwjo!qZ#󐄻?ɐɋ@8UuCt& s}{Y^au<͓ˑe#>O3v3x~	}߷o/ ?OqF#{d]x6N;԰>{9򝬟eysj[k/&M<@6BmE^bma%İ~6p2m8rmx
-]Ghԗk1od;x.6{^:<+;ZoX1>#_1@Ʒbd7F#{WdMK$#?Y!ޱ vnxׂ؋Y{b/Bl^f,Y
-(~>kF;Cߨ^#ߋEZ-Fz3Gd;$4߫80XޗXcYAӈ"<3N t`WPTK5_Wv1?] i+hϱ?to>Pzbg2#!k&R<5vMɍC	=5Wcp]ӗƵߤyo|הKGe$ƾhL8@0ٟXVVe3g6p'M~'Q^b-uhv%K}U:Ӻ:X@^+h@޾Aح2or:Sj-DX̾5#3"Vj#?{e&qc$nfǘ2Ht)iSH̅Ⱦhts>c#=+@K%Tоi ХfF$r/7ԣ
-^[	}1pE]&K$܃k𫎝}@ݺH}8B4h:-^sw4HkP[Q2h
-6hZwk@Mc'[g=rv}V{ 7AnFήo-vۤ y	REf8GpyR-'oSʬY!SvHgE~v-vF?rv-zFg׷ktv}Gykt\}շimsF4<ިDQdWrKvk~(oJ!}uH9Wk?~Lb,4-H=<3[Ď{=--b}c;>X"㹲)ޯf@lZ]h> AEj+AHW^mI_H?(Jd)p_.(5VjIB4l*tYSpV6UT'J}
-˦ΪS&D -ێ?)R<և5dEo'$c'e*? Y7HZEmN$z@6~QTyF̣h6)㬢IرNI>W]>nPdca,t3wsM?CN 	l03nb6 0CJ
-I@,&]ƻֻAU5NHaByf\	O^ϓZ%׀(R1Fj-j&OiOJYOJ|{d<\ JEQ{Àxd~o~>yQ3gأ}250_NZXSqGCtkW"F`evCi*hj.uԣr(NHMXcTkg$@&}ƷĤTQy%u0EREAt=n?JRyFgA|G("$~AmO);%x[0tvEN֋%M\nPgߤ9PиszZkdMuymA6}8փ\:ĎJPdT!clȉG.H55`$~&t2k2Y/ABs>#}lf) <"'2Z?MCiU+ѣ =ˤbwm̬VKK-bk/&J0CVU;Ƥ;g;gn^BbG
-^G]Ma@Y_<h%$'q
-zߤI䓀@oo?dl`y{JF߀.	XFi@q7]l!g#5sY3b\Ԅ@nU7htC1<$hS8;y{Hdt~3;(*Y6#΁VUse{'qz,>!4OjL/RqooV"`2Vvx}uRʝާf|/by	ɞgeZ98iy}YnRyB;Tue&^	r_ R=p0zfE5zdd6w16}xru*;"fI:䐢՘d|F*Ҩ*^uG,诌8*^kW2?zqLh󌔹9cDAg̥3䌹syc^u܈ki%-n]d{ɰ?zFjٳoKȳ0>J.2GѺ `Rۀ֌`ETpfD_AVvi0
-B3l
-~$/t:}Vj5j>j*Gba9(J#n.u_2_7g78h(ԱoNn1VK[v uq@\kGg8 FCv]6lSY o3*3a8S菈Ywev|к9,=(C㞓)9ifle {4.S<|K!Κ]dھozlVjWw46^x$G+qPC`;4%"۔yq&~eU7@.p*UɔrPڋ_H`\;˺43#k=G([jU%|㱴i?d}#6Ըu"؉ 	^R3:C)GTfTm5xRIme& Zʣ"pkIjeyTcRl'
-C)QMh~}37+ GϘW>H؁'׾
-;f9xVv=l	l=Dϐ~y$#<jyO|W@D=5<AF	#Ա025eTƚHƫ*Lѱ4MR׫h2\JWPKhk 
-(!eC2;Oif'%S(R=yJ%5.P"Q>/J|%\cD.R~"%g%,V"+aѸg_gFgT:`<%?T|Ё5M	?s{3	1ֺS 2hB{YmB'q#(!	}K%^m 2	|5v_W0pdQPY(v.mh:ʔ2CxG>PI փ2<u!RBob#^" t$R	zP]/"E=sߧmd7"B~.HxdA,z#^oRlg%%\lN4]/VKE	G8g(~Y ]#KH52@ʨ`e{ԬA"\sH؇D<ƐيϭR){vx%*nywS|6x-~yBP׎k`a>~bCRNl+{يuH-{YjB[X:vHh26: Ň-6	Ej
- qAD=}JE"&fU3hEq1wB4̃V rl,Vsu
-%1xIk/0m$
-sǢ,E*SIsKǿSp.\E9ٴ|eiYo[$-?%r
-Dkǡ1B˓}7(%)P+E˶{kؠ[^VIDf23ɸRiT@N=@4# S&e ZdDPq<ކèg" ~QE"qgQ|	 wͳG4QML7k?OiӚWMFӟ4yMA_4}o4/k6M!ME_4uMC;2%r%ȵZ%}PVJ %E(3,Aa+Pr8 eU(=凃PpZzInڄ>fQx)<j
-@@B-PAPPyc+&ԩ~yʽ|{w!_6ϧo>wb
-~A`Ir?O0S
-~(?0~/)%Fap7tKտ-P;~O1?`G
-?ap`AK1x&`xL/Bl=5 `21
-lb"
-^K(x	/^+(J^kb!a_A+Zá^}%(v aW_(vo$7af
--p+Qp^(o=Ń<xG0\ǃw5d"wan c{0x0,`EQp;v){ap37cq
->'{>mjϲ|>kZy;_͸\\/Ai`lbз1If^8O3X/c+5+MT p4Mmȇ>H&4e!? c3Q*ÉMDK+f8m MI4E
-Cʠٮq{ B*4uTAwG~HOD4@7?2#} F^`}J-f"Ecwa!_ѿ*u7\<f~)WB?2W4?hfѿŁ߃	OR= !ޣWdU;iT	OǟH?3?g29	ځDs?;k\DV`Հh{.y^L=S0@#~Iwo߸^_5BƮV4t7% q]tVRZ?Ta<v)0Xr\RxHuY`J/8%c5jE.cF;T8ՠ.Eb</u|'v|_Nk1^A{ːGٴ6vPS5z5k}Kh(OC!t`%><Nh3Vcq+ce;VN(fb>}`B9b"P*RC\ݚcC Q	#9m; XJl%B2E$D_4 ^<sh\2exVɮLye;@+c{"_abCTAfŸAyE]5.7UFi%neX8Zs\wO_ǂVL"<O1 7v{D8ϩ]Ll6V*|(kMƵJd2qZܤg+MJdkJlAPW(q3<=#}̟1uJ1~Bq)v^?m,G&	
-^[mB-	nRZw}-{UJbW)˵j5Td--B(ZQ][؆:kCo5^S v]?)0hKʥ=~Ѽ!zI?w!rR@ݍxPz%? R7_fQG9*i
- moV'm8TD6r_U
-aM{QD6U6Fٿr͸psw%rhvcd'ԻXkb*ckswV';)byW::iINZ4@'MN"_ү
-WkB5}EH6_ү+C@H_WB0%5y
-U:5
--؎8
-=ѾΞx*^Йv-vŻҹ|tΒ|!5zx>@>oÆ7?Df0;5"y{?~񪫽gLS3~Ŋz{􌧿;ξ9=S}{6WGrpm3?+!OY<=}5?ڄX!Ws8v5FƋ7o^*0f{w^ǧv_7AYkp/-z2.8GA7y<0ԵQɾ\'wԴ<ƃŻy<Gybk=!֭UM91ƿ@	>wtKtŇv+6lY)=[5 `o>8$~5lMo>(}mVC;{/Y=c߃/\SsK>e_/Z)[yFҀz{~1=55yoOwMa飦|il?=;~K}r}>9w&/?o?1?n;84<^q/f:yT6_"d#MLǻ{ ZRNM'q$=G沅 ҩl<4;57gzr]5n*`^p|6~t{FOAŗ (+${r醶bW	i̋'u%9͹lkIBJ/d{ۦZaLcUJ/Lw	h63d.[)A5̦ǩ|_grɭ}Ikn;JS=݅SBnWCJ<۝΅jPH.%Sy\luT_g5:.JK:sЌt3*7/JBr=PNwZ`;вZfώsq}Aمis`2xPw 0>JKmN׆[F=VkĺS)TǰrmPFw2`࿦$zXf,LSHnkα-G;(NO96-M7`hJ`vO_樶ev֩(\A֎<"N+dks 	R挛ٓ*!XGكzzӹ}: stP68l/d3mjH*jFB!{;	/CT$v7iXp|v/hD,;@$s jyԩ=/?OX3Zjjcмݬ;GU;^e2bumC494n5i3V* BZ	\O^amQ3='##	-惯MHڈ907ەfNhEt7Ș׿m\ OBL"d 9txՙqt(wC'[szqog6-Lg+/6S~Xzl*-#43v!*Ў/vg#ξTS9rr/bX| ۝-d# 	_ vʒxg砡t7]jXQ.b_70Tl0^d1ާfFxTBYk\353S\?p
-tSz S:t'9,
-" CS	4ت` qhxX]*K*ϡ*	YU1]nrSa3u)dBX,wteB:.GMYddSsx((;wBzdR=}	Z5g(K6 xwM@<S.\LI(3gĻZ!"ۀ%,n7&H! q0w.R2}SL5Ƙ5gG'\G8kU˓F00	:*+`.2^ H)<TgҪlxN<	2c>xubsŚ֮CB~fh%KM_65ͽSf.{0{Eڎnq
-l΃7s[5PsIc	҉ͻ=#ݙ^ 4Qs>qAuaŏȥQ>8lsHpm+S5YԜ)&GlI߃% 7Lb?u%,wCP *D8cl6GXX^rC!)̟AHYB/D֓7fO"a*4@uM֜I#V컐ukpG;+ىG#ڰ`xA'Er	nwtQ|㏛4J(?L| $lwhǁDudzAt)C_2;FQ&НWINuSZMVsQ(N:EO$P|s̯@Gw->:xgȼnRf|#s 	\VhN}@l9kl'Vі`ea}$8-|b.Fd-cv઀"(k@rsVh,qD欹aH;Z'7A8\F=9ɗcٟ<j֎s=}yP@Hsl:XXM3tz=в:6K(A	<pf#w bAoBnػػDZzFfDs|ןEN=4R?L>a{n"FmTS )lf^/ov,h3.csp˞b/1.6lX15Y苓,8V(ưYŹ98P|CܒLۛ\O~^7FDMvd]&NE%M犾b_xɈh{_RKdZid|%]h/֒0DH7NfρS-9
-+t"k+o7K]NVE UeQ;փtFkM)9ŧ6%&~{Uь-tЈaʦdn*p#ܜK>`锓Za"91NZaDNM$bZާ@ui9*kk/uT:{ι=\:WC[v0[ڢC8L-0EȄ/Ro l/	Nѯg.-]ND*Ϲ^5%tV(cyz}4_mNpjCNQ7RP#"u\67s8Nٽ5)ҮqclVkZ-)s6onω4xMr!q9|:;ג.Tǌ*s?P>S5loA`_5lJҰ9\B],EscoTеUK|x]M[57
-lN>gS@,(Wo-E]%/͸J13u`5W̙Q[FX϶=(	`aG:(\L![4D<yF!:lP/:qn5nܹ-a'6kgEӑOi)4MV:&kѼmKNak )8p0^( *a3jڋH)SΞ+^\0`F5fփ떪qQ+עNc94[Rp j'͹D5%YAs|>ʞBEn]SQuKZWsfiH(G L90Kh_8OsgZ25K |5a8[9mT|&Uh^VkwݯbQB[
-o+]t&if4ﴐOB:YǟӁKH]9ͻCl'agv`Ǘ&g.~^}Z6z<#'9ʷJZ7C}Y-Κ꣕h%wq銥Q$;u|G&%aZ6g?ڗMaQ&	Ř~)t[SY#	T6SBaNpMkS6/ۙ-,&ilUc/ŃRm\2ʜG*f=䁴:vvN7h!:lnAK\dl):JG(
-T>dElnPҟSAג} 0B	6z>lC!am~<DoCpzR7_dNE+i^dSgö}jw'|[twlFLW^%ď9|=+"e@Juhyǎ!	8s^s]#7&-5Vs Y?_$wJڨ&dG\ͩ3*s ϧkY7*o	
-fs\{x6"yHgsTi{b T6ؽ] hFYTD+!D<2ZtmD?9r#5DuH4{-7VL;b+HsuaF?	T>=r1srȒںȗl|tf.QQSzHͱe$"#TXc{æ%f0fo/;j6ctvQ(隈^S:g;9U.AؚhUGr9S̓zQu3c)u:AQ
-Sa;sxpŔͻl^:q#uV?VO-aE]$["vj%EMehVRQ2Mp4_}V"1y
-FbnSmgN5CYL׷l.:׳P0;1[$$Wu ;v.Muk+5JƐkSq$G[:t@nYDLIܼy\먟4>imW>dǜڳ(_ku1#M9"!:_m+,R6Id#v92 :i%z	.^DS?(ƒ'(kmݒzlCa+:8ݘܼSORxAknЉz
-MǑѸձh]uVQ=[kto\XSM2:)ە-ԦzNyݲݴcb6\PՂϘάԀhPta&0H`2ؓUBip7'	țЋ.P5 iqEdwY;꬐xvΗnU+1Hg/[,5)PnoYJӮo倔(;5FcoC*qQfQC|Ǡhu7c18Xuh02ɋ"Xev9.1UZ7Edn<aD.j~QnCo0M=3@~M,X|iU5Ga}FeE(;aڌ"؝,bQ';U)imT:~.1Dh'_b686M{HӁ)=}P!q{q"Q`F@MZnq6ڋZ#>&_B
-e3G_}iJ2;0>cIcsq<]HᠦLg
-:u	9:HvLqf.2aIoZ.0@vдcZظPg^`aaRU)G\`UکLZ!zޓJK<)X4Ͱ7-JވzB] њ-I.AY9NS;<F+7f듸dЗKφ"HHv<yyn,ȚGDN&qOZf{]0ON"+g2 `K/w3jF_%?
-G1+TZEbz㰸Jtx;uIdئ0Љ3jZ{r2"E
-AdE9΅1v*446e`uM\^Ogcál}ݧr= 	ֺP<9`A<AH8zqWq>6cIw+.a+U1'IBrFy
-l	*wa/l2:A 1ZQuZ|_VƜbIj[
-ovIPU4mrXZ+JIZUx.]mO 6Ql})Ö	yyLdNmP'C\áOz[2Ya#'HXI:Ш2NՍLpe'jV^7;ŗ !1t"/L)m*ݍl!]O"@+>8x>iblq*pKMUy3y;ӓX
-J#@[y[2-3aNZ{p(()eE|3==d1#9l}wɎk-^d*^;Oz\HX|`Y_kOJw/"@ME7gkNl\_wEX+C<K&6gɏiI!xmk׺A[첫8}!ۦ9SȎj-A%<Nw+h Aڶ΀u[1hJQ~}Jd#% {$lF8ٕ*EVs` 6)mNLZ\T5cGHwG	CRnp_`dm9+!NVy+t)ÄJ<|Np48VJbЦ|=DrQU,QVN4jsduBW7$0dʬ<´'t:|&U:̆u#F;.	l3Z|SSy[/Ɠ.z,?s1NwHC;pni׭vV`R:]Xa	<C=Tk,ݦKi}]	u~g63̒Eߍ,!:5aW c*MP@Բjpa_S:#I$}=K>0C,+Xr$#Rk~n:É6ꮡl+:Вtd`e5kzI-fvl{-"tR:nY49RpݜƼydoFVvmB	9rj6"%~,nf1,Sx%j"4~4Nܜ$dvvtvHsc{N'E AylbIHZ{oh{Xc*#bF<_qv+bUSl*Jwr/'&'35L;+CmZb+W$gRIV?\l=ILc`ot9Ǒ?{ D-@_tIun~"H)+w&0萅&/o1e2<,@6oZ5$Ey7
-8˝M[26_;N; za/v\ $k=sze0*0$L7Td:aqo3GkSSH;M"CI3P;}F:x2ؒK[|6Gu*Z8CG`Fh9[E9.UGmdfK#&*mF825eʎw>:~R-dTײ庅%j͗4jISm&Clle[heqU4FB`$ZR$>a{-I&a=.Oud!B3 eRXy!G@0	!3K>Z>f<f=?r=<Sĭt%L&dxjN!xxkG)mDҢ`R3(g]	af%gG9>Qx@~\]e#mWVv8]CT<[6#6^_Xa:k6f̠pwUSnaڒނ1"Npڅk*w׹4˟3Hټ)	q[▜g"=VfՄk4OΝ:-v)gM.F)FiV	:enVHgaQ}bvmP.oqQ(eܭLr9 ~璀=uQV;|!AH5x<NWʏ]28dMzURJ-N13
-hRu`5*3d]R%WHKЋ*2Uk$Ssx
-ܗLFw5ji>>ØwM4y9\.JkvLb@RzsS0F[M-nvEMȟeUU3E)ht"K4m;FdFej]SsD"+.hX5ExFEnYkFK]wYaLs,S6UZ`ZxEٽgiKRffpvl[jl(k?o2/W p~ϖMbi;K@\9JF,Uofl:Bܚri竃|JVnKQ6D!ר#D&jK!JTSd6HcWfX`1@#,66i?r'k`Sa$Re{vML'5DVփkpܵϭ>4]Xn4?g`G.LtuM4%{-{67Hp0+dk-$V#l79g9`r`219sS=A}_'xN:r*ϧ>J\~\R5Ecl6,f2}4Zbb)TAT,RԇnF(ǅf5/̇w
-"4Ε ~-qFؗPv*rȽ97ڼu$EL;^doJ=h$j):8)d3r%bcpYIAM'͂?O(>/3ia!-JdOҧim7NO^ersԯwIkrq<<PIiI4s1#	"l$E/6cNVbg!7cVn~K9Lxvu]`oy2B28Ue
-Œ0u&)kjMsҢr_
-N0mwqt+A跣A|Rn
-S7: :*J#Gc̭2kT9-Dc@FCbQ48rnB7^.K9P&_#=&hXBGBSǨ3EqG"'彈F0h~LJo.IZ#$\hnjU4bjJD!Hqe.3XTBIY׌4VZya!eBј*+'.GىV\唇!<'292w<]M"G(Z 2s [F$GL;M1QruSP
-,Z=aWe>xLZt@vWDmG%eETkJmՏ]Ð)ڵu	(TZըaXiA#vA$Tmiѥ6UFӚJrG- %>3ܡskB" 㤘ȈH6lhҢҏ&xZZ[^K$Hn<ƓNhI+U.zqsHrߐyVNeYv5C!+2	O?-Fy>z7z~kJ+QY
-[t5Sia6.gbfa֏؆oURg:<YuKetpj-sv$a,w[؊fu[jxOU-eM0NYRrls袸udc*.L4\4ÉU7	mmL\F~L5yfaO2r;6- K&Ob~Ĵ2>ȅ=A3ԙ^dXRѰt@63FJdُo#g{(Uٌt@ULD$"0hvB0,Mw7ȯ9(zX619	g|m"HYV+qDEaI[&l"mvs^'
-4M*mWqeϮHFhtџl_ž3WOn쒭\Ϛ?2;Ƥ9ѽtH:N]c(Zt+bSv)q,Ln͍>$J>xV3!73"dh*/TxE(8!gPK)8$ݘ	1!',,I ȻRQ]3*I2O
-JbцјdQ'ҍ޹%V4/iL
-"_ddWHq?c!3b<+
-C^ kw#UD	0?F^H3ѼX?(+k	Lv'1YE0Q/>;a®HP*6:q/>q!G)⊏ecc7rV-u.БI[Kc9?OxG?ehޢUB'*H*r^+",o'9U*`PlN^d#cv#׊RDͿMz.m,I}R4NDԏ-&W/U3А<cҜrM.nRiW\R@3p}Ņu23Djq'S4=Ud}XEq&HmXVשe	o҉$E&+={3f$Uv)+`ҏ7p:dON.-M."q\iB(Iѝu^B7N{ld$a=d0;#)+cB;,\ޒL/myF8?RWȮ0ߙƗAJV)tca/(_C(OS+ڄO5*r,a,j2*+Len:y6őuwdhK$J`0jd;+C!zdfd_NwŜ˼@lem[R\*%ѹ4}'ԐY7E=TOE*٧FU^%}{\3J5ǟr8Gh*tы?,^Lbϊ}Nj|S1火uwyrn+}[ʋ8H//t-v1ˁXIYu]O]J#5af9P1R*⎄mk4TgI>yLӄTUQ4Gdܡs_ǭ"V͖x)o7ހ7ðoOxW3p4K{fP>#>V7-6k(K"A8j&⤃Qܢ l"fbѐ9b4ۄ~c[LtEޘNqW)EJ5^1vrڹE(6:%Q-/(g͌vQȂTPxnr~ICSS~%K~'Q1
-ʪcc(%[u@FFFίh?&!fcvkh<x-K̰a1 ɎerﰕbBϖ6UJbEW6q퓓Of"~{/IX=-DŘQj"&ǯ4_*3'7(*y>ʾ/t+Ȗc8n9(?D?>|Vz[lbT13Fg)Ngup9qTP***+j%EIV*dA=.144/ʧ|vTMj=ZAB|"><MRߜe>.~ZN19KyP:䜬642g3#^:G`Lgݜ?#cT,ȦOtOXP&Ht-4+ ]ZCH_6Feeۋ?.mo;s227oj<'3#nVF^#_DT$iQf[1n܊)Lhџroj4iV^Vz23iy/+mi?TJ"<Y,n#)T]̜ܬԭJ~o}@	M jh,3'/+3{SfP2&ş:u1ϞqSx٥Vfu-[ffyﳬ k3ڄ&x_5gFY3B9Mt8Py_xe<x|jrcdڤiCb]$3M>y7N}qԃuآ	@h<''i^(7)5ho%Vʹ7Ve-eEEV+]@DT}4VXڲ-DBQ 71TʚƸar1sv!i,+$up%jyr2X34G@ehTi5Ob椦cZu#KyRE.o^*)4{h"Qpŭ#i6ādRrF2Qp<Fb]QCFOruY?QA2Ƶ+xd5e/raw
-0PcwMF_iv)7;')YMq秩ml`)(6UTOGtg~ֲP	~D[qOk$XEXD&s3C6e7ȌPnSFMO1U_ZNf.*pXGяyٍCC%K=7Y5=\q!1.,Ӆ:Έ>&s#TIaV(N	hKd7AI[%>4GDw{Yy7KQӼ.dK5!)DE`פyGsNQ($}?IEuBg>wc~5jf;yk==/C"˯ȡ5KK歹NE@ !DD4lcTUTa>DB˧؝רyfٹhϳ L(MO&^?;//_!O)م/#8n+$/'_B #GĘ(_fZ7ko7lz֦M3h232sP9n܏*4Ykr/5qtɨۥ
-TZnƍ퍲s>n=ЧCٍe-e%m*
-@Ü&F͛6l0+3Ó 3';D_.YY|MLaƍ#UԦ$dۻNoc͙x.cm6LT_YyKf\.M3ߵ`fAo^{ysjmq%2+O2Cmؼi*%Ҟ_HtwK;TB[LOndhxe'ftΡW.5oZG}w-#Xj
-H"xjVPȮuBh9*2Vbv\ .)iT@xVɑgg'ҏ񅼛.OXЪ5YYjgFߋ1BL6H1րWcM"ir*+GRgޡڼY("nc>TA7.糖&wD tKa[X1x޻M+)쨈v8Yk#$3#yKwmbqF^_lbW~d9Mg!&
-浨LN1gs92ĜcjF.qǆ@qd.1qMk5Nx('xx3bF=01'"yR~B3XV3nu{tѓ#%/37n<5/8_2FLfOť$RR|ς*RWڣu+\R%L޲:6VDUuUwmKDJqy$vġXՅ+~MېLyq9%l芝ǶpA8 6"!tkWwi4QVT\(Wh֫ǊaW-ܦ>jWYqw6VD|G3̊G49zrCtBsқd
-b.O~2V\feWhYEv0Fjji.=H-j]3]cxnHdD]j
-cjS_,KTih g|-HCа-꾥p@]ܿDG("-äUrEڢ<1&cь[+'ͫDiilȋiK8k4ڡrWbc>JeY..S^N	%@V
-{螣"|bF.wQޕ^PH.KJR0}qltu9}5o"TUaH>.kY,Y<i{ΚS&Frڊ
-|D}t~Vn@H4O֦4L]955~fP8P'vEfܑ"kZ+dpXkՖU=ðG~8Ƀ1x]#@#F>TC#:PSە~.}vҿ0UqI[Vil8#cB-\(iQV..2_&Z08EddzHiXkL,x0I~9^z!4!:Or<&ۤ7]DO:Qˌ]ju4Xq:-Dk.hr&.srϋ4qz;2G"IUDoXTgFX +l>w)[MqޚӸYVO:q_k܇ʙB7ƶObU69xn:]+ڶ1Xvfd7Oc>أC+^=7X$׼#fHn8ZlfVrV̥mѮSi5L2bwY؍O(^?,<C탡X'b(2\rȟx6-DŒW[nsGi|s)]\5KՀ3gJ=TcJⶤ_PHM6niA%wKaŝ)zgrX4y/B?/wr1+#34򩺋æl[^.gqmyS9R
-'Oc%Wz*/p𘗞vMv;Pݥv6NGIGnUqJ	;[Xlo̦CYyMBrOZ׳M\K6*]BSX`%UIHvHZ~ _X~Z6rKZr9蠈i-#
-\Z?kUɉm0e
-K>)P;_~Xx+G:u(/J8#z:24yjHւ	JT¾:odIW`DRP)!fVUWT8mIⓎO։%XGvq:{Z)m+-Es%~#ܦF^'NOV[/Ibw˶Kڔ'ܠU*K6}V
-dP s[H4BMD*TIH̺k?Q%!v7
-C'&	}:Z+׬*3zh2ǍZ&-|0P%%vH"ZW>V_܋Do>U4<AaJph1Yֺ0ղ,\h<j0y4ȗRq1QE$ƶz~'T
-o͋+S"!|QU޿؜C`}GEIjEyjRYӫx@dC6qI*̳Lk'UD(mu79)g|[Y*33lnk)M'
-'x2486{t+n6Z0Ӌbz691bZt42ԉI#`ԉ~+<ْNj%w_KS%K"TFvʸKPRb.]JS}KVj(ʣ|bg-ڴ -~v9NPrt6~.pC1	X[8͇(E}̘-+)k~*3W(MlUebjARsƠ^N|#f ſ1,;3ԙUXi&.E\NG oq)2<*#=>kYQ^_RC})0J@&]e1MJ)+Z<UkZ+Oz@ j dT"m(0qcЦo*Qy^^vS1D%2>_nqFu*z2Of=SRn ࣷ%͑`(Cs2K6 ö&96q8LI}Uq]0ݲ{aLJ#N2+xtejIg~Z|h[%MyV)@jνFx1'*ţ?Y?'+Pzf>Mg*7B\q|yfn^jnf2W$2(C A^;4.YSFIz2sB_X	eӬ[jUr%=CD\q8n5PS3?icVXb){̒^Ӷw7ϴgZaja*XwS_eJ1htCswFu&W-'<?U(&)ͲJq[I!ڭT􈡎˂k&dh[NDR~qIWMۼpW}1W<K	/L&q+o3ot`*Ͳs󜐾CE/M\b2y38"t!ҳAZ@L);'в0$.dUVnM]2Sob&MϓRT ?*kSRڢ0kjC+-V~_AY|Z(\\ke(C.	6g2;U&7q*zE/ӖT:S\D_Na迺DGSeXJ88{$<)>&Yyv=/˷h塽c1%ћe>A^8FvUtfm +VU'?Sn$5~T[E9K*:Wiv5/53>"T8aMa}`(Pg%h\qڹ-R喺seVsΰTgZ4/}K^*Tp5eD3Tt
-UbyIc0SXVsFJC믳@tY[b\GLYI/zI=(W<}\X:w)y_NE
-Z|S_uS[b[ɽA0Ĩ%)	CsMF!7~Ƃiэ%J:䗷|\69-9ܑ*H/0U&0wR֦BwsWXJ²36#+C-F4Y)2bIζV4m Ea	VR\ƗQNs-'2 47Z^W[/.Jt620%ac^ga8hXs{3
-Ϻ˚UW̴Ah}z$&b_XR)Bb̖OdW@zSYr6e%`Phx(613kv:N/'bʭ)*bdÜ;^?b#[Q~	ݐmNqx9h无|M-KRu7lt$&mhf9?ay+oSJ|s_I2nnsrL7@hCmRrX\zIuÝ?qy_qK}BaxO֘(-?f>*Ler@IL*FTSlڦFgEL:ȸS.B&Vm"T񡧖ʥ:rFF@!Z/.iq/]/"T۲6kmַƟcpԨb?kNX&oqvq^U|TF=詤# v UaC>#'EEgӪXnܷEkҴ,-8hB.s8@:?S9*>tVEIIqTwf'TE1C>9rygcZ|XR$[!
-KŪؼȳ7B̈́X8D#GP:v+6+Vx#u<jeA]}S~/tuUjn!-a޷%w !P3D %sZu~h
-%jjJ}Qc~RѿWJ?PvF
-SVagقlp]8i&[-xmޱڂl[-|lӂZ;iZiZ{iZk-8ZNЂSagk-Zpءwi5}<j9M鷴tɂsXp..fb%eob-,dXp/gL?S,xϳ,^c,x==8Kу"]_*=^neܬv=>"!rm=؞ a<ᔁ<8ܮa~i1H`#8,G`#8.tl-MD9L#x39~"=ws{8a[9KrO{> vr|Wp+\*WpK_7\Nr
-w{8
-wu#UW+x \`owaH2g\bbW3gKп&wU/y&_&_&_&_&^Wo;N>O{>}Oӧ>}/p8O)~[d*l}d]<@d*rC7qKwqW@H?H
-t;H4:I4H4I4zH4zI4P_gɣ	zDXj%o>NèY7y1z2}@j6Hjΰ%ғĚ5#cM~5QD\0KTrkf%S٭9ő<ݑ|=)FlɳD'SM$x*TFO:T&SLR	c]]ɇ`p-3 FHw2?\%or(]aSyVyByY()^Ziu0u:B~RTGi6O%ח櫕R]ժ	u4uj}<RU]媲Bԕ\Vg>W֨Iתשe_m Fuz3Y[7Ⱥ]!vu[Z5Y{Ⱥ_= o$!YQJ럎zBZOzZZ!kwU=+z^ ]~~'+Է.G+d^֬dޔ?"m.Y>TIkXmg֦-~n YZu!kWK7i};Y{XzJkN/XyjkQY-CwXB=4:2¿%?,}!9JTH|<"JKMS=/!+-eae罹UXԤK%+i22~'X`[Pԗa22jJ
-8e:jgY	Pu%ae<DEMoo
-~uZhY*꘦K,pSe"{&PLWC²Ҳb$rV<UuڲsuX?^S6Tr.@-PuoقzRك{nHʶ87Euo;ttZ/ڢS<{,&R.':"}-~7J!_;R4TBدBfOSYWPt_XP*GAJ_z¢<T=ih9P'%5i3sH(W>Ny7TPRʿ)\)΢&^|}岅~B@&Dv(-${ܴܰ][rJ=M~U'<MfT+Sm33NT/gZ"Ӓ`,dƟdS4SSSe<c/0ELc/6^f:K2k~_3oVy~gd?1-/iLk[Lkf		Ӛ2[64c3i,9ػL{yg7i`IdZ>Z@K(`B(bbY[`fߌ3f6O%'O)^B`X,_ˁJ`XF`lہN`Aa'*oUώ<V*?(Sip8. R/ügׁMpUس#yګU|N@gi]Tl
-(
-O»6c+hbBajKe/VjVa9A0C9GDj/5Za~	h`caSD>`N&<:qN>3,9\`dBĽ`)`~,񬄹
-~WC}-7&an6`;w ;k67SAA GuȾyc0Qj')mOgLZa^ Prԋ0QJj}G2<%ߓ\yq\&n;=;!{[ t:.wzY}Pkl A0s(ap%^	(ؿFH8`s&Vk
-Ӂf?<s["a.|)eA3u%
-naւ_6a7!Ͱo_8eVkN">`?!G8'~qYjEؿ	y+0¼\n 7~mΫu~< BǔvV4q('@'3],+naOIQP7@@YLԊja 7}(01~F@60GA%Fcx')OiÜs&d`Ά}isV>ת+X_dE
-[Y%R+{	%*mBUR}9~}V _\;Zan 6hjo;Ja@mq{i;;`	Rw~R
-~n`yOqaК߀?
-	$p
-wYEJ+҉RwV\!+¼Fo7[Qrj߆.p7i?3T~1j w	fg]`vd۩@O{{_ ` d`9
-ᐍ FGG_}ڧc!?O ?$aN9~QjҦ>^icufsl(I6>Ӧd+m&+ ~Z0Wr`U 
-lU&f[ Sw+l@|uw S	6׈iQm/}p-۫T #7pGz
-Sau<	{,p8o࿃y	0/W_7-6p#1NC|t :@+ z@ C05s0RcihaQ':8=;D`0PNa`Lg{ =nZu: Eb`	X|,Y
-+Uj`X6 MfV9i;5f`!0p8
-'{Jc-4\. Q\ i.
- Hk5 ֮kƯk
-+"4E G ߢ01V u	(utz =^@o "tfjF #/`YR(_1X`0@hL`&`R4`*Ҁ℆[Eí`bf B`CÊ`	c%蔩Ka_|匹W;RW\cL[X:Zeik-92my3	nkǘ c  Gc ώ<diRva/ !D.WK
-u+܆R>Dc^yD~ H;=uց;fcѮt#:\	[/&>~@8 )@r``0È'O#I#;!(|Id413qD6`&3RK3?Mg:@f#1lu>Q]3m!Xg]4R/MJYNd¬`-tK@0	1l鬟roC,* en e7qt_C=Ġ+;@A?:D)!ReVAJ +Q!%"T+|XgÔoGcq^>i"g%ry"|K"\"=w5"׉ r-$p GcGt :@+z>@_QQ7cġ:F(GsX.xeqLĠ6^Dd"SPSFd:~q39KEl"s%2|",$b"K,%WDY)!"ӎWdHdm!f+mD#;ə5,{#""r`s	"g)#Nwi"(W8b"C%|21W\%g	a%r}΂ ~HGD~ H;;H{;1t$ΰuHLbzE7D}1 2A3`De$v6Ie0V)_
-c(8"44	D`0*qFӦ'dE3f#3̦-e\KuK!\,V HkFQl"f3-6`;ŏ."[M
-W Cǁp
-ib0pb@["E!;#p$Wv r[sKvWAЯ܃> xn@W)t$ΰu@ӋDKD@bbFd8$"|	hbKdD	dHd}6]`4_6rrR7DrȺ<&̠f:le͡f+l8<+|)5xh+U%DP=,PDV JO1,PV|5/)5HY`u(9boe+{N``K(c^g-S8RH;:
-[R9NDNi[-⬃!nr-Dó~`Dv\n8mPnr`oR:@[@D9AH"t"ҙH"]l.feXw'ʶ*, =9QН#*П "4N$P`Y6,#|)Mf{rX [8bb&d`
-0^Ri26<ځ,3<Ks.ǐr;{mW߮,&nNeprTT-Ӗ;eu%TTTTT:Uv(B1UU𽜘`0hU1T1L[p-+((# 1zrDX6QR6bl'	"l$f7M|Mq2^'ۥ 1sv  GcqosS`0bM;Ӵ3HY\ ["|%be{\&B]YӮ*kDAd|*hX]Ns1&?<$1 4az$?1v.I9a#qGt"$BẐ+nCdA榉I^DzHޗl'2)8%00ÁdbGQ.|Bh;XXƑx0T0L&c
-̩c̀t&YfMKby.vLYHd.vZc!2򕋽t&N*a[blV6A_mt3f"[\̾9\PmB.Ŵ.f*NM!a8^}s#U#BcrND9DP:J(J&OwNVD6|0ͣS Thb#HD 4^	#)"(,m.vY9 \rŮ+`Bq~ŔȌ.n+]pn+wCn]{$FcscV>#U@R!%#<&y;7Ҟω&/GkGNu&҅u%nv_4f=,=
-Kf~n*Fu@u(;ک_EK"!28"L 2$"L!2~:t7\Ed%qId7ï&f Eb`	X| Vܬz`M݌gB5MIm#^w ;ɲn"_ك{ᶏ, r!"Ga;f#	$p
-8,! |\;]j_u7`t-0;=7 >@$< BxjG0@+z}~f;-|j "<#}R[@ &G	hxCXGx"`Z$ZSBSaQ̀e&0KD:z4́ޔޔԴ<`> >/xXu)ˀJ`X6 -6`=z7O=
-p8	o+5p v^t@g+Jo/}`P`0	I9	D/ȝd//@ (Sl Yu5ji4Ë,"l:ǋ6m0X ,KeWr`
-X끍f`+K$vCN8*u7XCaGvc`sIbN9e༗o7ƨ72-E ;۰/Kk#X~ |l-ǎ=%>|>-l:M'Т:!t(cJ7D;/Xci$k1Q|J	ŀA?}@?Oe 0c+Ce8DFi/*6Ќ:·8#`"It?͝U6NIԭNgc:mN;v!4sNGL3,D6ulR/9"Q"b-!w`W*`5Ƈ&n-Foe	_#Ahm`27ڗ]>9Lu/,(}|8K}|Ḱض|;vBԇo|lz$,#<􆾅E{E|_^&"UNl;A=CDi?'w;x';Qyy72y2{yO2{y/2{y2y_2y3~>``02m FlJ~Z;Qׁ'<P5K/g|,|
-r|hupg$l:ՏP/ g(tAuϥ2r܂Wz %|B`XOqVU#+r"JHLdntnk?WR|Ma ?>~,~A@p؏w~玒*ߠxfO '>4<gsU/GE;Du^gJ
-6YX}މyQ漼}eƋr#av#@^{sH@P^	lڛH7(0;1*~DJ@6~PMDKDKCDX	 c$K$M= ?% qׄWqD c5Ü ?$#)0
-s0tbA>,`60~GnWρ "`(0!#R`0ht[`9@𳁕G\s5kKZ9M  '0Ws 1[>p{z~}Ѱτ/	a2Ғ|H@Y
-¤R<{
-7Ox <#=)?C:42iY*"JE&"TԑRᖊpYy~gY<,~s}s9ya!sȐq!yn[	/A^2_/ /p_@yIx^wanƀo篅8i<II>	x~O%{$kY0$U2|Џ:t@g]@7{"?x-`n) -)/N[mZ_SZm~FSkL᳘P;ګ|{Z;.园u,a_}iKKD~DY n(q.XN$tD^y(0RDwWu`.8^{}<H`%0:`/^u3lT9<H/ccHyK|I2!v_6 4+8ٗ,ːP߯m`90aLL`zmJڞ;Vgigy[=eV+?dU&|uXhӑ%xj~׃VXd
-	úRϳGlQ=,6CRzh]!L+lw)+&ㅿEヹ-#N.a~s̽>`?p 8JdS-юZ!AΦYS~w*g3,y4m=@'cI0;,IwRzu*3,O>r}O2D$ɇYL5eʇiǠ-HZWus@g:{Hy$A"a"A ^}KGs+/CʛCқ|&?b{;±SvN] &>VȺ=I佁ʛ豾ɗ}`}p+0 ͱT@[:8	$Fd8^GI:cʟ?!eBBa4R1nHBLeꑅ-LLKdY'@lU-#d]H^~i<CߙěR}$Բj"kඖZ0$1>LfQG$tCk5oK&aZ}"IdD&|Ml7K-{Ⱥ%rNӧ|9nZ@GRcD9A$D9Cv!+B^$wg|O32qW\M UM< H35L0fjV|7_TGP8qd4䷒.p BF'LtFPC-t@P/t$Y'"-  kG1;uE^{}@??0 V|Ҕŧ%ey<Yx,<_Js ϛ<g!Y|#??1}H:&9~bmO63636gmҔ7*)͘}4 Ln@9=,`@+m0eNTWSoc6ھ40P}ﵼ2Է
-,`ur~nA0ŖSr׾BzЩ+ȅGYl!_D">y)?W=lക6	wށe'Iv?~~ߤ˗_KerW\Vͷ?ekkׅYcEMi}~QyG:EQ z>?oS\
-?zs}/7~:7翡py+_.M)7G3`l2cL.&-x$B-bMN	^l|O>&XwO|ʗ|1!l'g?dp e'?2msܿzJ>*|d>ǘ;?vHi[d֒7)
-ZTk]۝mFnZ"66ntZP `jaq8ATgll&"X/p.t71Xjqra_$!0.?="u#!_靄dI& j]ǢJVy<F8Na	XԨ6#L`j2Ĕ?Ֆa?!,E2BD]MD{ka_+$9<=<ESqG#M*XKK$F&$|)||pQOj":(Ҷ*$EOTĦGl㊋BvQ~L7W!z$2ML8j$9dp#+?7c|yG)riy9%M*2D}⨡ʨ!Pƻ7bNJbEM$/D6∯K]:"P,M?r˸Te"SDOJD^1%jaKqW9']OžlC|A1KLT޸*6RUi<ƧVˑj3UFHj׈y-V.1u+'؟#nTGq{$lPu4ݮrWmO'ҽ󨶪UBC7Se'[BO&407D/+:n>tVp1hkWtZc-*iՎ6,ݤH0k#yn<Ag"[uZHukc+lJox-#_SI.=FS,T?SјZTIU2b<%Q[Hʐ#KXFmPF_Pvע[1Gb6#@SӲ4D	?$z'E45T)%:M\5tG"|3a,Ȧ]?S@0I̛*Ȱ ji_#H=!:>2T$c~SOK1]+Gp0x>h0ŜABlI#\I_̽	|Uu?>sO6$Cl8,N'qlv'$q7lDiIMV @!@X" @,b!M "EB?}̙sΜ93sf{>~F:]~qɛHwkWO1jz",^ݓ<uU_PC<t_ş\<xLzб&)Ā\"<Hȋ]K,@Zs.wl;>q̈a"!+!pCF׹gi=cӝCY*묒k,98׸NRGQ˄	z31ΊB#H)0|N.>|\fZ8[:WwE=W=pO;rQ|\(tꫯu-7~: Ax$bУzRd-^]wNcO-=f@\zX_:MRN[ٙ߸pz1E|Cyp	toWD߾=x=zA^7`U8_ФB87e'?r̺ƸoWwN5+Т ^< {krn%{e yILׂK.%ksF/NՓ}VZe7FC}y'fܔ=a;=GNs~HA );ůFd1.T[HOi|0ֿj+֍f v	~HsHkl/SSwh(v5.V<:XJbU	J|(Fg(S+~tBKmʌnd=݈*um'/VI=(|KAol·S hp#vgg5i]o.n؏eΫu]YD-ao]wvY@kD[܃z]8%F=xL+ 4?d]/DWh"XݳlSV%<pzs|-8%~N졁]rxCxG`ы	ЕDru<#ϡ^rV)<b(=A	B *J='	1Mg^'?tB<]ncJxL>zv6t_UUR">BCƍ?x@kwV m)c۔
-/E=\b-Ɵvy8U}Kx@=c7珌CS$+N<Q:_u޷W;^ngo"CGlTBʃ\{j\Lq
-CTX{F[z9#^R0ɑMSiGsheGuCaŞwޟyu*%{.2=4ϾQ?|E?<Uw}׊E#e" 8zu,uЀvp^HW$eCg{>߭ fg/?bw}2z^ S<f,9y+\YtxOo;yoH=#vfƟ+^xy,.ϻn/teWw}*qEyןnҏv}o.7Iy~Q^߄|<OG^GSp+yݥeO۪5$z?gՅO_(=_}")<eeb$RpS:DzlyВ9].Ec|0>tR-_l8ovEb*P׺R̔(d7twMºc^	twOEr,*a$̐p#$̔0K0[H8F±0WI8AK8I	'K8E©NPIX,	gJ8KK+a$/	$\("	KX.O?LggŌ7"ÿ쓿RX`5gRaof`(#S_^Ogo}8SSOFIXCA?),={$V?(C!o8~'_ <9ʤ9lL %%4x4hJ$c@b_QƂX<%_cQ7&DoMЫ}s/ S 3	ܯOi oLDۅT |:?("3~Y@	ޏg!;p6 3 KEoKIB@|RO<dߔ"Y(I+3CMkqx[Ɨ
-t
-O7JGO7`Pw@قZVu65vr6lUNT𔲛G{PeRؠRPK3Sԣ
-/m{(	%IhF$GW!ӟ~N9QN1LS򕓠lPl~%6+g@gACi8O+h,._C\-.sځa
-"ʹvi6WU]}چ◔(XϹqU[dMC3V=G|ҎOhgT~"XP`Bc4Q$Ұ_Q*d@̇NnW# WW37)Y>ZeUFCZ<KQ*Qf '\)9MJ"\iW&^TqIȍW`h^+uELQ6Ð4>C
-<OCQ|>xzQ^VbYUfJg)@i	-(>̅J)X{Cl_S]Qe#_x/FJ9e쁥eb97
-HA+tUYYY0@ip^!H*e#6U(R6R6-he+H6OZw+.0kwpOT+tSٛJ-~} v"W+Z@
-AeG Riir0_FuBߤ8qc	7~2pSiTIrCl=?/;Iۋ^SBErYr/UZF+[E
-\2*4SAnrdpC6&[w"U~^U; E=|ig*C"Թy"p2<yx!{X^dXܑȝUFA8AOaeK/\s L9Xeæ˯`8A' kUƣn[H..+7QIν2/b࠻Pg$^d+8d@öne*iA3t0+ERieOEOR
-CYRh6)%Bΰ90n<jb )!w|f+PmL/2mB&ܑbH0-? ~}4^i6lR7c!;BTZ|1|Ua`
-p,kmւҨ\GKy7rBy#
-U+6qT0:l鸲-h(iaaFY%\	;A٥
-aw쑶V3DԠxRrw^hԃr?4  (۔1ҾAD*9\:";y.8Qxl?-qTݮ*~1~*433!zh?ࠗl7b ],C^/>C,Ǫ[ϛq)-ZуUbZr󇯃6KiCi)(oNW>J,qLIU,mQ9۪nS6aD`o³0a(8땛@l%fp`
-3A #YȕbQ8RJCdL14-GEX
-OF1j:VJ>E*;oTT'}-|:	 pLl-#aiT^LEaiԠ(mңl"QҸZ̀61
-b
-n3U:wȁ;b6#WĜȤ<s
-Dau`Z>:#G[EOSQ8r6%I,~ZPD]j
-h
-ЊՕ*q@b4f4kSzԆhiƫb#4b<^%[	:?LRج'>[nU劻Mr;7VEN2bh3݀K=۫/TkT֢fQµ^eUAIPrF%A6CS>q+Q;a~JKW8e	'搘|>ˋ8bj=
-UO_3LURρrS#Pi.KYJhdu#4\).~S2Aeb-,uc+A7{z_ׂ\چč@BVq[OWoBCߜk,[}7[H={r;dd$=(iPIj:ؚmb').Sna!jF'a.
-Qj-Jl#B¦73!9go
-1*u5;pC}B#Ա6. j$r#_qs,(Ah]8j~HF]P;adǨSﵯVթ(YNCsW@Aw7OuCE Weg a>>6{Zl"KۤAJu.[Ґy!z7?,.*JHV$"Ry9еQ-d/.AzVTY1F
-8&"DJ4J~^1>`Q㬶G]صZSQg/v%2MFHlz34J]Ө}
-nJ~BΪSwN𯪻 /?<nBCՠ_PCiZ%Vza/V:ܠ.A^,}n^4@quJ5egeujcPA$ϱCCH<d|Ub;tLb'B!IPNQ䆇gS5LL:NS! E{%r1>FX3\_!v<*/y@?bm@BNqW1&am XCXu2C:C
-;b@^EYs!67إuX4zFt ߂$ۀ, @r46wxe11dS@QfK8ZÊ}1ϦkT!h4Jqr,3qN
-ZFWR5i?d5-O# %/X+&I$GTSdn2Ӧhe4kSa[lNB	k4C$߰ZXt[͔Y0x6pV")Uhs\Wj
-n$i4
-B<|(pZ+`EC+ܨ-_[
-32BF*m9MZn$C)j+j+@^zm(j]9൵j OB`{k il6?U6fUCF+X$Xl"mFm֪Ac=IF2?wŇ
-sxxtgk GkuxVpDp(uhd*(lp$]TߘAͱca	T"!D >|j(ԕR>	P+شISgO;)|'fσ^M	7A^p'@^|6/| @Ra×Ane)p[/F
-nwn
-(tMk 
-_mukt׻x?kClIIPECA6귁	^~*||w uNʪ߂8ׄ2T =<(}DQZ8,H<}p6{ãׄs O n
-EѨWqc\Л/Lpp:&X[x"dZ'A` d])wB&] ll^Nx:"{ŠC+ }J8^x&(9,ó%sE`zs>Bڋ	~-U8},}>.գՂ]F{v" p[h΅Bhr*lx1Yz9Ma%POԄ烲-i2P@9^8 חDTI増@}`)PJUO'?aeX:`kÎu.>l+I?Z]2LKFWIHM
-5ͨgE
-oT`w wJ.TsvHt¼3d;+T1O`0NJԜ֤+sz|^6~.@gK6@9ƿr
-_1cM607}-eȵkQTp	TPaISKAQ"lq܅9KEaeĲc߆J*$wl!E9>$~ϪL$C:*#DٝF+):
-otaF*k7ANCͰ<ܢ)mS wG»F;{aUDlFN!`3ri5RSYҸ(6\` <nd6 tqиE	J1\b:"$tc㐹hB
-1q5& bNY#x1	1 ɘxʘz9ucUhSenk18uɘKwE	®%`sdG>,%\n·^0 o\HêaGObȏ1,,%\(3B/iPPD)1IJOryRݱ9bez1B3\ZnA\B-͕(dtJL66 eRs=|sZ2܀v.0+QC&O3Q'Z7u&yBY8&[:HΗ=*4B^}f%[@_kfyܢӇBK]mnE2,9br8nԒ&߉2]:kfN87{Ф:c'3ke^ZIHͽPwҬEvO5AOtzA;N\ɟ.C6]6I1kCoyl%5PlAY=jԖs&=}hti䟠LLlCq{otqz<4e^3[ LJm5#GdR]7y蘤-SU&x5OvjgjY}fȘlhZi2YC&#44SY]	Y_;jiG`]̷NF[mATʶn· oNo݅80Ϻ8Qcu kMq"oA&P	%eQ0C.)#$̔1sڲ=Ip4hOȖ%̑pL 4Vf=AqYq YvH<#Q#qnI]ǘ
-LbR%c>YlIbՍBD5-XnпBEtV`Ul`Mf _ k5|GQeRf͖Qzw.ۥ<|VkUpJKZ
-xZxZnT ?o bgl	fk5Zkk=5ktCT!sxjo<nm5Wm~nNh|!.[m7{@nUY5ҧjodе9k/({zَ5>~Z &:x:C+ [}xj8`u OoZuu
-14Y댬,9yV.P"ºú,u&%`pf*몴(ۭڀn nޱntz	!.to=5ƺJ+xJ3^Ϥ:.`9v:3a#l{8`=41# GζMf N N{G \o2ٞ 8֞hxa'o Y
-cO6)S' 3mۅ's"iI1b{L{&`=p=p]"e@LcuD-}<{.?F$чͷŶ2E%\Qe8u\jb(M90e?R2諷CV
-{B[>{	{5{융(^{)mWp.U0l	jۛ6B
-TRXzN);A|m'P~; v5=hd]h&ߋkU|){)c`6JBa4WG)E, E)l}jM~:rϳϡƝ6y:n7/좄 uھLjl6[D@=QePPMW(=nr.ɾFS&U69ZPnMfi}/
-Ծ	JMw-9n]譶۩&g7C jѫ΃# X4PCv%C悝d[>%d2-d&	M&? K7ۣ)w_j1&IL%U{
-:c Ӝ\x;vXgg"'ߢs$mv`3ْd:쩀4N!]{:-0)ufX2Z8/X8%9A2גW
-LGƌ<2c@Bd:,ZsRKisAQ!eWVY|-_\W[mrgzС7&;kp{3uZл>yf:	79%Ǔ^F9U|*)Wg8EC/WLv赬ifXl3E1ۡ8|gMr~CLu2{(qYPء:\g28c+NOW9;햱G%GT@:[mpvs16뀹Y28!f96K2w;`qjZ`~g/ީ~ió愳_6 }Q^>
-CE!Pt@usxsL:nQªeX	v9iCS?>包0خ(:d%!yi?\/i|Yқi:-4V&*`ss=8I#nIq:~%ǻ%uKz_Cu8~1wn:2=^ֽ<uסyn8^svv>C/rXۡKvk0݈y=iD^##:YH}2b+ uX."!|u!-H/"" s#6Z[}DzD~<bRd݇DFJP2G2,|ωYP332pVd`I$pvˎQi	T"c "cmZIxmَz|q	6ME?#m-bʾ^1XV͢-rT6Gh̖Eh<#4#4BUJE-2MU59ďqR'&I3
-$|	}p*d4hd
-624BpO"t"pwE7*@dAp1q"3Vpd6 E#9C`ACH)ʝ<gc|r\ʐxX5SE(r7ئotA)pKm,vd9tF*ꮠҖXiJl;5wMPn-l{Msj=89VPx%R	l\6,8VY 1klraw'(7"@yܶw4ͥ"E Gv'V45Ǻu3ܽn%,Ju}CFt%X[ &w!#EP(H#``7#ǀOvf' x]푓 MpOvO*WX;oh<M1{*Ft7˗l7_ҍeY6 mmE:*`{pK3.M2:Wm6}|=MP[aq@]dv[u;PB7u;4Ň84GpAh[7H'ڀ
-tE0
-b#Pl	,n6G:𨠆lGZ3Rkѐ 6c cc=*U&w/xN Nt4*Nv.4+;5(1jP.aQsg˶g:}QwS5ۮ1n#/prH|Γpu$2BXxUyHޑ^#}㊻QR`_tE]r2ȴIW݂r*t].90(+4Pt]2dnPz44asW5 堜`@:G.%i^;80Sa30zP:F}JzDtt*MmrhތC-\bG#m̡!ݵ=p}KvX<ܞVM%qo.cB	z}q:h\X-w;ծuSu2P	L>
-,C'Z=O2;8;;8ǫiYsEyGMȔ{s.%z{͝mBkW)kAA[.n z7 H>4dcGw倵C`w \F>8
-oHDa˽c4"BzKP2LP[y
-|%UFE$[fFKM6&q+	nuDz}ʱaؽX < u9	FpIz<N5tI)ZoF1!êY(~ܛ)'8;!JC<u.,:-2ZӜ]HqLO,kCyãK^cTbٟ'> z岃H#d-Mؚ}N/&+""^oZ}S<çJ5=㯑u~ʧ*e>}Hקxѧ5m2CDvT	>7Fo\.ۿ	XWEIoQs/*:׸o=MB(mO_pl)<߀~3>S/r>S>K}nO_]۳L?}#rѧ'>݉Z#;;>}qȧi XDc.t
-Oғ.MOew#|쪿g}6cOO&5OO60>UWG-l_ӺI>}G6ί=T'!w%o0@}gG|
-0ۇr>t|:-o@Um_.|֧Gt|٧CC?0 Zo<ӱ~-+B]ǧj>O>}1ҧGE>$6'Vt9x`Y}@E~ttxOS*Nt+pħ/#t\aP¦#0q>tXV|zo3g7|fntN`jE\9/@=":ÿ*(iװEDm7s5̊t--Wx56zMq=Blt;1qQ݌NBj'DoEoC&7|qܑџ Ĺ(55zs0֢C\x_%9-:4ȤMuz4#`Gn죶Y@*+r$;HFlG ΌEi))Qhe6ը2G#O`3*A^ȓ׌-8jWD\{NڵхlYt
-5ѩZceTƔ81:}pWD!!:p}t
-$GMy7ɸ]1pc/mt'FgsKDH:GAJbT+ZD7y; -^](ahsvF:%,p:;KN[dX7a;UCh
-1=UWr$ڥ]}ѵ Qc}.ӂQ%4SQk3n<
-x6͕_[lwi Bt+W]Ȝ<MǄ	XbE ^MMI?GP=XF=7ڢN'[oDH%2s(]vYQPnEI@d2ߋԝiQ;g)rY4>Ͼ%&{#9%wˬ^8C0Eخ)^D\t5'K\qeF/)lȵQ+UWS!uC2Z4n\;K?OcT(1MTeDrU[.S`UF;U~e";4&@ƅdb @
-(43@fȼPY,
--	e*6@և6Ȧ  {B7/àb=:Џȉ 9j
- i]Э  Z&tmxdjd66@r	MwB\MtPc͏R=M#,!XfQQi_-.jlkj:P7TBj/.k#<_m2=?Ԣ]M0@Mk-MdL&eyvsj	
->jv㬱 E^
-a@8*S:sR\M#*$c۩o";ɯz.}l+C[v=ݡoBa;)i>}"uvIzNr+vT[^&v^ǌުc^bպ'Qp^x&#L01-S$Y]Yѩ+4wBAOly[8TcBNvM*;ƖxuK}.LvpdWq{5棟ҍͶc72_zwO_1kbr8X/X۷+бzpd5VIA'eD{FPb3h=+pmASPeu;{So39k4:~$Dãz'jSk=7xO5pfj_YFW ^VdlB Bc3:	T[Kim4@]nmbl]F܉wH+e'|`s.6X퍍.C\^i!bMm.%;<-l`?na=qys>*Z$/Q Uu廍pjF8p}\gG06F48cˏ{c`';Aϸ9"\~lxZĸdYϑEW\~,&OӍ6_4׸fXK("ӌ3sd3tnwy3r-=LD<~H	"]flqQɜ/5uB3d+B	{76SNva Q	;w:t@[q4JljM4MX1V\--f1^XpeR׎x;9Ⱦ	x!k&`x|mS<#blĦPEņLxb!a=_SzZPtTd6x7xϔ'
-'ޤ5	t_Gپ/	hIyS(x$JT5F
-&xi6,fGؘDnB7VFfDXiBhQݖ@wFؙPS\BKȍǣ{ywN}u{8'x}Bvuz^7I-MHI<{__ߓĚU {}_;M!/ƜFol>D3+^[	"|Up$cƯ{p-3ME,*wM
-7.!Q8*Zzo'vxj)yݞ`ͧҵ&>kᡐCb(j>",p6?TLr?V D=w਺T2th]eFޠ0K݆ Z=?a2e	<n+ȴXI&6x|5aǷ$j꒰XC]"uEQv0!},L:tdn <$*nDÛUUkTW⽰]?ǿ2EUƿ Q^㐈BdBhKːEBY2sTYs^7TQ"U^Խr^V		HCiҤoAдoEל!~!~c4~hWMⷐ~dgFњ/pdA`#s,!}Tw {>S5⃑~jAOCT{E#xƇ!?RH?o<@g"4*LNeC*XeHS5}fƟRgk*9?_Tonj|;ҿH揩KcüǇA_^PWօ9-u^XOkKt6|җܨuW뼟^=Zd_zh_a(S~f(oʾn0*&_moF]oAz_GoC&gEH<Kmɗ!&_9&_tBAKL^4y7#}g1jmȿۑ@L[&?'	OMɴY:
-}Wer	?}[e?~>S-V~_ *uͿߌwT
-TV:|ms.vu5Hp'w"!id0u34P>93d_QY__Vp5wDTOGK*"e]>@\D@FC.Ue9ˋላg qnG|ԁSx㯫lfMMYGTw{|I=xE?LFgF AЙ2bOR8TY5b>KA}L~@f>?d6@Jxj2G% s(Gyy|nDe(T_G e2'Y7G*[kHTG2 1l	?+@XOD: (OI)*Wo>h)+VoQ{R*]Px_$z-M/1.!_1ǃ!*!/Ƙ)RbU.SMfXJB)D{+f?Ę`j)EDX17N)%c_ĘSʈKN޹YR򪟭I)յ)KHUn?~v`̥HJ;BrxtwU_K^r^t?픋+lvivo7[gN{7;-1ҙtEJ~6?ۏ$o9罂G;]^c70^<_?hdo0ީC~,
-c$݀܆}u$xS`omA;|MkCc|
-C5ZAU~R*>d)FP(VuUb`hx\Pa1pOK\#1pT`_j`59ɔ9b`x*Y]&'d2K%3FO'_1O>9O>}~ ;A0Aaɷ4_)OcOf)jj'//eAPLJM
-G?sN+ēN+c$?33|魿)h$E
-zCA#ԇR]J!V+(eTIi%ߤDs%RyH*jRPd0}6rP2OT jgk1ODWzƵ970QK<k⌽Z]jog+ٰgדbPJ
-
-Z
-Z+E0,ɴŷG5IL2)#ԷYﳔ$<O@Z	ǓDMjQolņqhpFt6 Mi16bCf܆Y٠I٭jw32g׳'Hʞ'; h~-Vj03H$Gkph|BfY,~9QCqO'vOȎ1G<5}Ŧ	g$q%dZ4Pm=3Euq<EW|	wl+c;WN<oFj充ּ)*E]SÇ::Pqn3R㥝OҊǉ)DvObweJ~Y?&YcBȉ\!R`"WTNȫީosRziWYOYaH~+#-jMz&K8+ԺwtdBI5BUMou)~h[=th%]H㴮m	2EW.W=N07+EUxf(+/>@uFm$?W5KjXCk5h#He#Qp6gH^!4~+	5;:zCܸG`24ބzj<Uީb</:5T&:U=<fb, [&</Ju^xFuv_JWJTfn=O3/T\G%]IIT+fk;k:n)"RѨ>s DB"&ۏ'_p<%YVen+9i`S{^wi5xY5)͋fv`)%1 C`U[<=(A/9R͌7:!TUeC㿐B4Z7$V=R_mE.8$$I3K59,2`Ux6]Aòk|A>JaǃnilYm@̠Yx?,=OqKdiW%Ju)dV	<ڿ<Oukí+~rjjuJxީBJE`LHCH-		L-jޯyͫp}фtOU*UȬ7su'ХԵ	-H6.R*ELdzzxTx6B$%HbC\
-U$QnKTcxixGIb~lM|z O>=ds-GRĨOՖh+C5l؛R%xD+#I(@MY:))ߐWKfi^H~V>5~(=cH;k?k(d]p$߹NAy3}7=2nG\b8վ3.1]q6ұ;.mcO\tT'D:j6.
-..q$%NB$I%
-9{^ {@},I*7@pS
-D"LCﾄm4M=-L7%U 䢁'+Rm^7RePS~,NO=صM/|J<ròG¥AX#%_CÑX@RJ]56h"5khE@Rhď{{B_NQ )GDp>'Ib )]+>K)rOSEٸJrsqŕ~RI'vQ|>.)nߑ<@znԨx=?ORxeU41KPqSVѥKRŗe_<5SiAݘEi3PQ:
-%J:PY\)P󦏓Rҁ5n{h&\{5ņ:է~4(Qt$Jx*FYõx0߯QP+@d=9RY77ڋ%ŴܔRq%J\.t%w[I5OT6WyJNTw+wc١3y+CUڧ>LS
-퇱 ~Jq+:Sߑ#myz}3+|~IkjCq:L>ޢ=Oɬl-Q=BI1bS#^*"ؽ@R
-EhExӣ^<9^qzLQt0'M^F(o&UyF$<'wVeYaI]MUժ)(2Z퉸DVETufzz0yf&A_P@D
-QY8dB?؏^{^kQsQ/,bQWw1)@ؓdUTKrK%9WC/J:}7Rn^s!H.+s{Sd㐊'<Ϊ.!VuUCcS^Pc}@cLg//Də\P	|1.ȶl6*!bw8Jczc`TIZ{5F~.IQ-E3q'2irkSBb":l!VJI퓓%+BRgP$U*:  sjN|kRNی@@FBԞVnI|˚܏e?tp?Y%ĩ"[o:RC:4hJʾ_"9`;qyu6/VZg?9Aqh)b,'_&ebuj25_t+.Mn
-nPlUj/`apm[)q,%$'A>yJWhN4_p.|hd]h^5fh)ܱ7el7ҪC)4B#ܗ
-HrL9)* H()۹أSQHM|Bv,-e)K)ݾk㤔UGD(VI)>Mo+Yr/IP2SkNh jY!z1ԙrj9Jtd[ Wr(+ڈ˒F Š*e^GK$wBstV.sP5E>RX#`
-t#%`(`bs2HƎWĚfPrf$I Y(P-O1@ J9VoU#:\e{N7,ex	/ޣCr߮a~+Y%Wt9F5(y:;ֵ+r։_+o|4$P;\Qfyx<s6"!1=Jh2 59p)1QU^M-d2])^f>J_(G
-xXsT-C[#.se?c\A8_a`A%-C`½p6%QPBɩjbJT')6IILRR%Α/kL#/k!<'zs8>.<=kY.tL7;l#2s<`
-.3!|ayBv&x!EkڷP7Dl~3~ݴ_r(Jx%\r1o{u7PTr|]./ͥWʸ:C\Aj]gw]i$aX[4coĭa+BOp
-ڥbAW`|!ſ \qCR2$&~v0$r=/`A.&yk؄i>.?pQ'1\*Sg"o7Rh\orIġ-K3ϸfHNa3X`HIe{La!2.#8ā⠎b0ZUnCN!m:ng7tNvqC8QH,=bpc>"'X)R(lmYY_dH4%Ne(ȘTܞwڼxBFSwGN͐qޝ!Sejfdv\(ڻlm1/C}g$g$d)e(FG
-Q)%աXv(&!61%dVzԱXcŘĿ_!8]V}9 J|Wj0]MLW1ʲ>rI%FW9iㇸ~Wh/ mvJKQC,Z`rBiiS*r \"Uڣb='+{~u׵׵iim9cJsK̉?[%w%6nDK͒y]NiuqVWs?UO8: [drb}u󠿕%z ȫ<H( j`QJt :N)4݁v@`Q~RO~$ɉi2ˉCd=V>r(㲧i%B"'9+i^]*)#ny/SZzk:4
-ZOfcZ$ZzǇ"FKEKnCc
-eeT3x<cEIS2y~^qѳuDz9m~EDy#HFZҴ+mk>#>W>G4(w"ldԋ~ťajŵ!su"Kk~1ny,QFz>)Cij*تN* WP䣰Jp(ldfjNL }=͛}0Q5!"1~5#.cS<f]ee\FM0q,OCqÃh#[0_B%ڍu,2?9S-3U9M֭Ѣ:J\/YR<nskhpLTËbbkB)I޶hevHr{0e4ˋAGԍ\rmnU4V۔nZFNj*Y}uJiJM
-urqN0"0U@Od#C?8a$}!~?_BNND~?$0nZE2JPQItk%;8YlП%@r#QOfJх)iB0]xj YԼNO~+:jJCLZMԋhZ#f{\[NW'&:nέ/Uˬ2jy1Ľ+FVRwr#iJ⛸hbʧVROb!ΐ@Q4EQ4)QBUb-ۯbLG;03i	rYKFa]i
-׹޻Q/޳,'g\NZG:j,=iY@ țdD]QVshs.Y,X2Z3qS؁Jk7GAsSTV(u~z/v~5,؞y0k35ws#H_9JL;
-+aܦA\àKwɡGM!*Ӆn\wt7I$A}Ll&`GWeuZ_-5/Q}Qښ۫" F|4_4:|Yp-imM@販}_ Bl{+LKd ) tluVxU« W^o̼SiIJ YZSe?ۍO-WRjɶۈ];P4CM6+6:!T Kڎp9N4^)"r82r}rKSM-`40N/B|q2D
-Lg4L5.qk\ WT:RR[z"K@57}e1~{\^:%^2deð6ĸpvv6WI6RWwU6dVgw*ԊqMZ^unQ|50K@pMp|b.BJȳ"RBD;oPl6B B/D1mnPMt1&)wSC!nVڭjJʾr+ń3vET}yvxlO!({*cN#IǓ듏+NqTP%	_~L;f '
-2*-ٹB3:C#?w
-k?/%k@s-bjɑf|}/vǔvǗ俬H>xT܏UKH04ԭzfvtN]tۻ"7\K,qa	>C⫡]Ht)r~)F[Vo_\Yvw8mZhURG'K̢5sNbfZQ(i/t{>-G@!.UM;n}X甘S+9wImޟnn7$}J,s+GT?AUA/*K5%yP,m`=#	wbvpZOP1RiS¹y0&@NH(R3=vBӹ$q~=En0F`#ǊC=b m;,6/hJѰh!_*K6-jbpvk풛ڨwu`&.&l"wDD/
-EDQ.Z6ϭnH4pk8D'vAUQHl@@1[d/ݼ鴍ٷ,Bi ~ dƇl3plSG\?<Fu&fi%J#$:'q<v-$P-$"^BR^HBhi"jy
-S1u4DAdG6BS-bQBXtopQ"_5b!|p|bjT*|#_GN)!Ĥ>6)p!u˔-ġ\Zz媰,DlCn֧gBAc
-URuM0qf'٤7)!Z1  ]8-yCFtHuf9m!5<0q(%#RV^Ƥҏ_t8WONfZj)Jc=*#jf`jUhOGAF>f?.Nn2IR,{P:@0{-sTvWh$D2}Fp[p{(%!s&m4`?8KboDߧ)P	4{TSЂV1gFG 'A */܏w)f$b]Q"UarՕE?h2:`8*x] ˰Izc#`:DiԽ7!Am4IyJyFy_7=#V7BJE#$Ї|0B5FB}dCFhDcc#Wx]E%'UzFx0GxK$9흷G̷R[a-a#Nxr+Oh
-YgUi+gY3rQ~e;QΠG,XvSC]tlzE4
-ZlG8&cKd/oxY\Z#;@"t!֟j=?N=hѦ7FhqGw7)kF~}4Hui0Yú0WgV%ѩTrս[kJ%9-~xbmioPnj,[VzcxPiWCXq9x't
-*~>
-~
-Z5z<K#GO#+:EaOv3K㻙XPN7y!&OvA"W`\H<)K-c.YcPOdG\084NBp^Q'w|ap. z]/4i2sbF<OY
-yJש;Ѡ9fſͷ/ٚ|].
-c[eY7NIF}bO(Ϝ6\7
-}p
-9QkF5bөy0О`EhikrniOiSL{Hf[j9m{j!grCL{6%"ti?thmB{jغi<w\LQA}pZ)kdH]6_:-*+<uNlX,|l}TUˬn昙D+y%]0/	l] KɑcG%ʈu0Z#JrL!<Jr
-~`ř=&BY.I.GgIH%|Q#ؾӺ339JeީƧ_ec5KP9txz!G46)"3y}shN84<&I
-x)fJ1#ig6(umm٘f@P4Qs9"!~"&-y\͔0U9OxfYr ^&cj昬b|rF?|;``~W7<Fd NrA$;tBĢǷA1?bD. 駓?3+D̆$0%&@ض$%;XwuהkJ[յ>)-2	<hZ	8g UB!$a6sӲ뼠B-%M8ɻ^jQMLSd7V}8#y0M34J"jlq史{K8601fm: -抴ylxu` mWұ@FF:6CW\S):M\2eDl4lGJLyeO50x tN։>?&)΀2p̛
-OE`*`$zv0ڨ/ZkʑrWjHG"*)?-X Rq©e0d8!SYuGk.O|ATEWx-Dn[R}-Z:UE0vB&t5]Bb.brzOcp^pY9%(uCz*/\QNvK7aؚC10yg*W5x~wP~4+t;~0Df㏘6`z޻_yANQ"	2z{uΟ%xl(!l4[|@LH|<:dd+A&ǌ{uɭO?IsmJf{"3$	
-8Ԧ
-}5k׬B{T[V߈9~V1@dg"/3?#AFj"[+%5ezyמ(4Bó=^8upMB](LV@&qJ]_rԜ́H\{$ɸogq?k5(Y_=ES<*Q;*Zˣ#')M2Mv$׸Ca6CNhmiVR=t\t?zpC,]u| nJw4^3x_qy¤Y&V"|ODf|jO?]Bh=d׭L.Z97Dd{%(.#%yslˁt$Op5[¼+f	'Pv|M.9u	Ԩ5"CKvSըBڒ98txre'\- w#/5%\uJ?Ixh-e9?҆c A`n=1[1m^2ȏDZh|>)	>n{ҴzB1{h4&'%cd$BpMÌ6yb_iۃQy?Yjqˋdzq-kJ/%M4ޏ4c .l!	jYi\JUkʷ5,4v˹k9'2s;M8._o7lp&jp
-L	l^*BG"YPP_`̩@\	VjӺ;LkMP{x^<gN|8̆Քɯrnʅy14B3֘\lPu:[`Q#4Ulo
-&$賾q"2!j/Z ѳJ9MͳU(%Hkxv3ރ`2_RE 2y)"47<^˜w.~2LfЎD("ŗ`C1	؄5&hQk|pwnMY;Ut~7up5ƍR
-~ I>kzY$WɰɰS.EdW9YU6LJv֭YS3Q(Ke];ʺbIwF_vdy1vŊqs;Gm2;K4s:=!G~!LmhM<ʪٟlʩk|]+\>Jlۣ`VqWVAQf)"*(
-Phc*UWZ)^ӱuQV]r:Fg))FyWR.Zffj'_=k;=/k5^Zh$΂J!ril>Ze%E@,=Ul	UCWlxY5<7G'k.#0us5!xNOv*Ny|A>%t'qI7pTi-lJu&6%6Qoخ9$mЉ:ԴS.V.YTQsRp?dlvH};@[eO_iBgq~"Ta]RDh_P,RDlj|qn
-D_
-Bk>Wx!pJٯэ~M~S5';>rUC|W8DM.ԜB͇|n$7Uc`wm͕U'QLϴ~iN?*uv%]M=F=	\}*~yoϣxT<ap[|Vs1,&<`j$
-dgiTx}k.%0Yc2Zc^Ϡ'}\+uzrF
-FoD@Jނ2#xSh7geԺhZ/v2ygQQ;xp1s'e*Nj5?UʾR"uQxNLig&407o"7@~m(mTn:|(HzsJ7H|	[ қC3<1OzGw
-.調^im~K[*UHh@ˆxՇ/PlOP8V5:fl3DhneJ(qI@,]:	Qcivzc0㮬βTCR5Y;6]R
-k-s
-0E)QlN&FNZ&@,NzM2sETV=+~rG9_e^6{ܗy%l
-F6#[ȫfsSolX%;*vw#l7aQ#e§ЋFw^qYze3.wWpgJo	Y9w-Z½K^?XKXOYEU2[wm
-^Nzm{<?3r
-	M2@:diIA*Gy.f;VDBĻ%)$1[B/G?b6ӹj}sxΈ.L+AD[/q/χQ\xX!B<yr~y	}oS~m>M뺧Z)]-a{ky~$**IE	WV/ӦF<{Uo/ 5_J;Ң!A\jg#ֳg#RKށ~!miiI`?峪-[{ZQh1?{{aqH87*nߨd'm$N=`	KF|벖.j/;E'Ğ5ZoxyJM<Eji.ɥuYUMqLuvp5xJۥedD"s x -pB軠[EQXFP|&QTG-sMC_Fm'[Y&MSTAH5x}T܏_{8v#rڡ'uF8nw1SS;Hܡ&_P/YSIT6E$1ƛh3oqo%W۴ƹc7FgtPϘqW{A+
-nmV
-^*;O|!1|P?xVx­I]ˇ~	.0(clcJ&ksY)v^8$9.pC|WyO!<VOuq}!,ՍV]2CT֖(3Q~4
-֩"WNiA-ana؉!(퀄KJ,w"ܧ:LxB5#U/6nF~Qa QF]#5ӺmSÂx@Pe}~:ETA)Obv0B]twx1	2mHQIiϧERsh$0<vYy&oq]uD*1SimDzMQj	"poL_#'c
-/kj#pD<-A~dJTI]hE榿ƻwu5+W`/,%Z1PW	?:s=(bxp$+QWx_5K*Pٯ!qfkꁡ`:::/;MmpPW؏DQ~l	8!q	^ytÚ.DsI5Mbb#]{x
-m6JN~R^Dt8(ШT;l71zGW]2(ozT~+Qݘ#Z5V
-ZMRw<k>,x^6/έJ#Fs5zEc9	7gj͢ӎ#0@*;i{|+Wv/5 #HګH(pt_$9l~d3>\YGU*4(0|HCL"he;OpmvhMCKř]iM}6۰ EꂔyfɷgM5.I5ZNQ a[XDB'mBhWpoGp}@d1CxBD$8+虮DYM{̍y;H]w!XNӒh#3hX1ּqS;0.`ToKBl2<%:N)wg_"!/_Tބl3k; 3w\_PVEIVz;5Q]|awl;^#,QXxk>~/$"_]9<:/w[ǵ%Ȳ!p8 n,BJ%;ٷd*W!qZt>ǕױTFxOvڅ]..nF[X5&\+K}55Od"Pvju
-vg@- kXU5Xvn{+Az>W<í4m]jɛ<UurMtK[%Ū_uމK"M WqދbCor&'i${.h!44庱3+e{|2,pmVGIN@I	OM1<:hݼf&Nl?tm;B֧L{ysmM݇Hү`%(id5Im#i5xX# щ|tb<z]v3OG]. `3stDA=h.*IW49ԗ"j[ +S<Ì6V$$я*n5(<0#uu,Gw#XŴxMD\
-%Cu~G24'%rE@!g|OEo:,Az؏n#h%xZ.h ivEKѥ%#K՜BIX9aI&/DIxjsJ30 cyXAӰYOLxv'd'_vλȿia\Y\i\)> A4ߏ4p||H<HAU/yR-O!a>/_<8t pARLb_2GG߃5G8`?fa]͜ ,dW/~W
-JfD#&3-zCKO<eX툰c@п>'i31EMV!kO7~`_*4}3Lr:\gY54G!lBͽNꩊ_HH*m0-茆(7Z"I~!԰o'ޝBqor6zPUW^ɼad
-aOfW? ,E!76!Q|rjWdM/Q>p_ѯp++:Bt.C6w̐ts`P7sI]JR.>?,Xh^5ehΫ:i:)DnbMz%SPAMA/q.'_CkGQv!<|%jmRdJe27A+α4i_J܍ˡq%㲴:qTsn~]9~v
-S]F=q#gꀢcRS/a@G,ҳhar>+~aVٛoTi|b_1P'U[[[ϪR3|}FMРMuW@^52bCt+H48It_wkqW^_`Azt{LAol"^1^Ąg.24v5G -CӗʕpjS]76,]T{HAlK,zIb.9q]x:ҪZueGxAapnv"qmj=t"t-/yDne;Q~{:S㽦tx#Avfʡ~u*wG؞
-,R==tĳ@&S3 ZHtd뿩]0PAyV1תm#jꗴp[CG$Z lvw\[cܴF-mVzpPUUj«z%,Ie \aŶLשI6sF
-윦͓]jl#۪SUDBu}0TtR-B{vEzom-|kK.]9^+.눚x&A)Nh)VC[[ѯ.խխ#*jZ_VdsmYEگx\hgZR$mB"CoQl}jO9vFnbɧ#cpۦ1Ē8HS[+xM>58.HDzQ'mP|*=R([0aޓ3}us\^b*~x2:a^hJOkiIWD*hY4&̞(^!VCZs}ѦCg93+qI¤`֩5khR.{7Ajmw]Mvu`_pby.0eC6bW}B0cu4@Db쉆19:c@ɦnر_{D=~w'쬻Zߣ&W]_Q)-v8reJ6vo;T}#Q,Rt˴WUS^8RdkVSEOڟٔAtk;Z\8#pʭNnm4'T蓪: G|&fz]>8b.N>L|~UL7FX"ج#7N+`etah
-I=Vǐ ,
-k8rӰ~` ծ=hZīUWVeqKl3W{_=s5wbPcP:<6jiH;*ӈnc_tРLj^]O9$:5ڍ,?3P1f*"ZxqO?|jKar6`M C<?))Ct	'6E q`X7GV1vsDm$^F~][JJs*~x~KٗyKe%[*g,%o*%{N=ZYOUT谸[p-INb$oJը{SX[dWBg=WF(i{-9mVa`jJ1;~hZ?|MWU'o$ C!ȫ~  yœo? (N$ FIKm3S֮ұq4R)DRx)>55K5sfzD_	z8?ptg$fl5FW#+j@!;C~[E<8kJcami,>e`@0AVu]1X	΄__jl`[5!87$=DU* 芕Lf%v]
-$N\*k2&vbDQ=tMBR,ι*~A\vJ83+8g\s&qSu.NUsqt:<)H; -sD[s4uvy:k98Xmh3!{pu#ǊFU!91n$\@~sA}E-8%NڡX:j	n.c*gɏbó3<П>I]¼ߡRw/."̊<3lm}*__R:P#c?&V{zZdR+4HvvW(JK-b-C-oj*Qex_TU^2^?ê̴&8v)f1oGfX9_-췱ml{PoqU+%;f7(fרlOʴ^dNGajK6iHX]	.h=#TCd4:X.K>R{(;]v\-|CF]s쀖*~p#L9N!1h	_a+UJVMxE"w/Fw64	*M
-<C]|CU?[ ķԮp쫚,I!VX;b{Q)hd6_:8Z(YT1vQώ_
-rx`-a&[]	u*y/>Bg9x!馺\:{^USk&H_MxF)ĖUV\Cz~[&_(Y|}Zfɟs Z}ZC3G?S?XCܝ5ҼsG*}8mWQ^yP6Ylt'pߡ`TYcwkJvKU13{Zjz-As4)Ln.q>U 4`}t~¼J	K{o#Ec2YG!7}p~x&{ܬ%6k!~v 1RiP98͐_:lf>1[zSzYħlUisZg^y^zNOjZҤwFI&64jy<MZKv_ 0VuU	/8aw<g|$ ~&mɆt?ϗ$P%>QEAE$lY<ubC{FluҞ_]3-IxKi+Y)7\3<
-rIld3 ۇڟ`//̂x}hiKEp訙"{tRZA{*=ñd!E9Ϗ*itkT&;t[!gnC#!'s	x:MCNv>Re]*ئo{G
-uA˜~jZ-vb,xH,/ǊO~d\lee/ģ;iNE&ZjEµgpxgsx6gqxL%%-`sFW.͟٧y93t-%:^~Dib\^BT|)na(w^n',k
-ZVNIWSSf(wu`Ϙ-Y6opptR;Ze;9gZڤ$NN6[UjAgZ]]a
-o҄A6
-0g߲Yy[L.[Z2bߚL#hfBg56"x󀉯xT4THMW۲{"-mI\avʪDlD8-͕ʴہt=C%8-4O&ûQKl԰~gtDKxEU9ձ/h1K%?8_/Xg=[Z|b}HfOXߘfk&FG]nύF+0c}Z!pԒ8Jnpge|3/%=CRp$	uG5Fd|)Qyi6Cн!:h5˻ZSzE3+ub_q3R:c'84`vvgGxmއ'bgws`S[h$%?z}++E[8^.x;8
-֘]L	ӴkB*jL--[1m*#*](CcS~NHkz@G
-CP"*g"Jgl2͘B36:tIZk2JKY|"ci(+sLGpy0!%b8{/{X2Pg nbn37n)=x(
-mSϣE<JtTvq:*{qQi?appW]^EqBz$)W`=ښ"]I9d9	
-S;^5Sq	;=;5;X@׀<"I)Ujkr{F}wV}ʞ]M4(_i]}?A\q[j	5n(Rl;,7Ǟ1=C~s3^cW+Ϊ5TC6phGFnShv Mj>nubZ);)~)5@;m,m*%g.<+ OT_s=Wx ߨR[7=HRh59Nzi{]dG|f#5/F1MA­_|(P><T_yon")+\O2U>6+]%?kkxKdWS/mjVpc}\>"y	;4f.9-"uޙ5D?P'ho!-&@?P	} }M$CZb 4I)
-5"tAjZSk+M%q-H)On)4B-/bH!Tk2B&JMmCujy+'+8쪭DˊV*)O/GghTM~BD;ɻIf*3FUo^22ϢlfI Ep)g7-·҈1dׄ#$TMgyxт)Qgw/dj
-!7^sc#Nmow}z^L;NZJU{읕r]i?iO"=<te^rNw6G@EI>4u\j:.2Erlm}c(]v"lz4_
-Ash>Zclh4xP6,+dk?Ĳ)943^Ca>{=K'~~J7c^KtDË;dp/k~/txw?5a~I-K_WF&>7G/5^dR}|bp/oG[)`bUm_bU3+q}j0W4fO U\WaKcCL9kyec$\@s Lmw;aA?Wѿ1{
-@EM#'L;i~{DM{'Eo`7%7(rf}΃ol?Kl
-ܴ2۽X=}Џ[|*RmO;w)~^gOǕ>o}`58'b~ZY}$s }K8J)ǸWw}\?'tO&W߈}+S!*[tPL!{մ'43Ć|nOj ېv{h2GS7US9eLT=jYhn6%"قJTT}SM4s s) 6{=Ha0tl!tC94Nn̞{ qa7ٍ Ԣ_dQ2ʑ<kg [au.slrlƖܳvG a,\
-E|m4wk0i̞hzGh/h@xaVG91%]ME^xsNT'\o|y'ncktdџ=à{)4{/fq4{fScOZ[<)ykBvok䷇ؿ5{˱75f#]g2&ǁ֥F;C^9 jW"0l4ؾ!6c{͟Gc.=3py+c3a>0cW;8\Gfl:L!3ptrχ˛T.M4b]fl{ɈM1b_FliFI3Ɍm6cF݈=h:Fl몋gľk"V.F2ϸjkvsb扆ēr
-98BmB>
-P!jXV0ee<eee`9?cc@)F|U94EE>GG/գgC}9G?hN@zt4pǆإ=vlWmKcv"=$&|l>wo-N}v)UzlL%Stqv.n҆!xgw1;	]<9Bo^F 0HԼȼoʑv05fH0ҷI$&b3M*{K23G_G/s2o.!f>	zY'x}c}xN,0KM̉L̽HO.Gz`G6f'BQt({w7!zy;.4]l7}axR}<u>N38spohNAg8[ǦКNȿՀҽoΜTg^3̜?3Ttfn3/;@a>w)]yC `91;H ^:Dח`>R1;.uZ:GlB͞|H5U_;ٙzz>fgGuګϏJZ3ukn֭YZ:zMYܩ{:ֺJ͍bc&jurEZ-~N!~CU-je(ԭ+ϟ
-Stk^c&,E/$at`~Q2]_}J ~5P'c5\\ӛ(*k/)i	PtbTc\3젡x\eM=kȓ	HQy'P+1Z>ɕ~'835فT.;W-=kzkV.@/Vаj8z`9 #W~̡p~81]lƔOlu<Vn%QÜ_>i>m?O;gwLZZ5..cLݠNti|sw1(rj*%kM^Q6m\'D)]NɟtR=L'E)]kj5Zyv1aOW_WCLYA*A]ğ}EIi-ğqB0K}Q""`z[ItM>[a7JkyZSOE;kiӓXFZ)\ĉtuߨකl6}G*,ꢱiG^,R(MUTwn/^kŏ5H﵅o&|C79&S>&aIR_5H%	dzzJ'{tߣ?H>أI'{tBxv'sȞ3R[j̖YJ;kdS:edO:odafg==Z@fR	;adO{	^3{Jfvr16N4S)4N6S	
-hȞhHɆɆ@șٜ:E_Wi^S_JmXb&WJgoM~UMwU'/6%XMGckh,WS:=46
-(Mw;q@}cό&mP̗:BQƶ-NfKw=iepn\I#A*d+FʵiN
-7mQ=z<M>;
-*)jX#3̷Hkxސ k橃NWdCt!tbs0>!8]&~q:\QT8:ՊJ_EŇ<{z-mA;$RuPB[7aWSΉatyt4Z
-Dx0&F$1="(;lZIBIHE1ҝN#Ur(``}]WԿa<
-ƿ4cن-tcq쏎E".n)DCLAdA{&zVp;֏UtA+Qj]U޹LB$.i,AUv3_|16C-%)h7G`@Z^褿0t?X==n?dVl.M͑O'A]Fw<]>.fg
-5V>BֻAix](.z@~]qii# DΪ.kʏ^ЭSR ãe¹.H1wSp1W0p.3.SjU/{PM͎Ʀfgx9w!Y]kgwSfn~'dN?iN(!=Mw,{%0<z0N_[c^]I2ϗTN!_E/^Y̬ꢪQifF]wvܝݝ)y0VmVNڽzu~{ʫ}"<|
-|" *TAAnٻ~teD8qĉs&']kۨFI|+ߡgk;˳,-=<bR~B6sȰ8vR_
- m#rvplg~6:֊砆!BclV.u!}uhܥe[Z_.Bml&?l)e{qXdܭ~EtT[4 <ٽS+-Cbn :% z4@/j7P^Kn zhָ:@-z7b Z@@ hc zMPkQjFb78{XfߔlHNlrCg%fZ	yy7-i߉}94G]/S{R){h<~(uf`Hi^6;6~1oWXCb_+ף"UYzRE3A6鯄5!}}h\:hkjOc>Q|-tZH_z՜1*B卤	))%/2K$3"RgdRvY6g,ﴯ,UlΕ67#15"eh֏nLKyS2)4k]нC<&5O[/и6yw[WRpR-2vl­ǖ+@I^܋>!>emUQ*HL\-YZg616GCk<EZ~vT?ߧ/k8	}	Y*,3e0[+|osгkczKkh$\WFˏNS|TF_%uWseFҌdifs,VOOu	6ocByOi&e_ݒpD*U{C4){{Mkk ~>$bRKa1󛼿F$p!)sG_.q~'.G0s$JJHagyYIQdFJaX&WJKR.~yCc?pkVdtg$%QafqZo+*&yVM<ʮ'pΤ'x$ޝ=IWܛcOnV.ٯaS#yd Q<>/#a6Ir\<V!ypfa{{P3۳jrvر'`;ؓuvrPN-~ˠ_hK4j	}In0l ш^Za;lLKy]jU<gмkFYEIYCFtM	ah´HHONcgK$ QXԾFeOSMZkHM:P2DrJ3N+BR2D8mw"csW]8\]"DL~BDɷım̭I=[6ayo`Z,HBU'2I^
-)%ħ43c
-}?olL"mo XѪx -al^*h6!j^ѕ²"f({`/!N8MBzI7f[c>wD"FXmeE,L{M=<Xqcm*UcebԌ^%ր{d΂1yno?RWcQ	!*YZ,-N
-	Kn (O4Q6}X4ի7OlƩA\pu{8;#|&GüƟ}e~5.֠,t*8	[tN-*_<O'i1&ʽXhXivii_XJYw'AQ=5T)-Iv$1EUd6hUP^
-5>&+!!C0@af=_CfG4"bVQ-14 fl^'v8&1`
-~S_\+˸Ph`^	
-eA &WJT'@0 y7K&'}QMD_7dLzƎZ%x̪~S*kP^4E~V-̉o.6Rh`wBUђq5I=d힎ɞ@Mݯe<'NV$S!HP}&_C.nfaKM-v7WrLTz(ٞh>AJ+$hXkG2QOG-Ÿq@m[1kY%~1.Z)Zt9ȯ[jBlKZoBi@Bmr?ѕjɽc/yc`7JMJ
-xR@Y٧T;BE"eOe=b-~R~з*X%H_ NWm6Zn$Y,#QMo|Egpi*f5|~cBT: z@m8Qپ h5UyJ 7}bagwowz9nwVFvo]q)u ~ꡟwJSZ~~7hW܅.^봎:-~68ݱm Mb# :	q,bY5yK=pM%kZkZu-bcu{@Db>0z()֗'I}cP<?W&'+]!j#]ÊR_ػO'[|>N37plSzCK&@^R~CPˊWzY1qYJ}XU}{kS|=.WCQ%|[2V3gFkZwTN`u
-ovd˲A\ұPuA]%}"AEzl~0Tڤ	/eí	lߺ,oF(	UƭۿU+118eWO뼚V P5 '<*؇&ٴk}R+ES=wx9|*wtݾ[Zz}c--_o4+Zү5M-EKoh,of-_қUpeVzF[Q-q ^S샆kkbPyկWK^-UKXުtoc_ijcOo۵6-Xކ`[a=ۙvIlg>AJPMECT!W폄!36
-)BR<YX$69C!{5!vYj_8X::/&W^Z%C%Khp'ŀ]i-oK/''*>4NKbQR'-T
-ֿ-TS|lt	%
-SW(a3ݓȬUUɉBTDv [br>ie&I|ugN$㭒'Fi
-+7].bݤe~Ej%QP"}&!JUOg7:8Iϣu-΁VI];iuWzMKFƭ9>Gk'.-K5?n-OKXާ?_6?i]-G'Z@cC-߫6jZxcy?Xۜʯ*vJQu֦?	K8R{*U{BXa}W3F΢
-8X,gw4{y̣`X ߧMaw`?aNn
-4;d|5pflװbl:ئ^FO#li>:3ҏjH?`cdB:م3#} #f=5SRFhI9	G6H(??p͖SrX`N}EL+3rLȱՙ~8:3C|EbgB`/ca2)5У/@ޞEr7-ޞ6".piTH8{5)/Ǌs7Q|TMo3oHd?=|a4\#qgҡջz		t=ZnV|D(Dw}S>R4>W`%
-D=X(!cnBT(v~nZPzJp(Jq1kHB=h~72WluE(Ǫ-7$2;':Jr2D1\ɓ!IA
-$}<Ε'+I߃WTJr*yRĕĎ>i\ɶ3N*V:ߓS(v*Z"vf6dMxpׂL' lZ P$#M|F	%GSR$(Rf\o#BǞ'@O*0LoP\wSG@g6F)O)3C3!H[ !9a!*-B#֋'9I;?Ƭ$3(>P@@c587v'xoyFb`Y#,.Q`Ԝ@f+zYkUЭ2	E
-o)Q!e6<ۉeAQBk?aaLvHpr~\I\פ?$ҩPD=|*;w:)<'$z=t/a
-1FOy3aclu)ļ:{,ԝ07$HLW	Lq
-yXlαDen\*H ;@{jQ((x}k@P(<o@ fbIIK?4CNq@?J&QG|ٯJ 3øJȯCHYn㿛eJU*=cy*-T@v 1tKj'~oB	k<P=08S0:ǄK*.pTTn_{ItpE9͢F}yFTtEKFc^}1 -2v<Tl<\)ca9#d{? V`'3XaDh8Z"3̐$BWaN޳`/Kd<ݘt*$^iҗ$|iC%K'B@t{۳o$\ĤմI+qog3o&%=Mq|a<E>B8K҇%D.a)z'Kh8s3epPڤq3eoyLz)/-ph8U_vqVU)2."u uRrWvk6C.}iśKPX,lNRpy&p͗|fiop9@q9R=GwOʲ⭤&nS~ONiUp;zXz*c"fBoj$gc+qb2tPZ!0_hr~6P)_=P~1Ǹ42"IZs!32owjYϻe|'$ge,fS7FV82})nٱbn?G=TF?[8(;w8k5}	$wz
-=Fd5ntj6zF<'v+X@:{	tp1|ˆ}PKj,igZacZrjZ'R~
-%,P<\KOʟk#ZzV>ka Vr xAS(u>+c{G@8ݯgeY_%{Z{joնi(4,Rc7|~Ṗs@jS<_[#yj?/[$W­ɏC1jQT≡DZ'HH+H JHk]DZ'elr"2"=i[H:i-<D;/BKߪ_jUyơv6J鳪u*G7 9& 7ȖxHHqcd+IzAefn[~7Y5+!V`Gåﬥ4\{KUK_3\܀- %ÞWK1Z/XoobK5tkC1F9%,R~t[LCw7E>W젾گfylu 8*.nIfwIgMS~]>-F㟝1k;vvn3rWl`r|2攱elwlCv z;mr{U޻6v8Lͳa[¶Va(ꗉT&j2pAZ`ȸDP,js6UO<ruyK鐗]h2k$;} %yo=#4m4ioSS>A{8{VorW>ullXٰpa63oaH[*oy,gvDU?w]fwI<[qq)]q)e씩0:K)c׻_"l,ٕ >\c >5hth=_9|vKN8o{euCy,k{fw}TS~7k7PVk8Tn}wIk)tRx59\7n;O{GѸyE120#S|n'{&s3	9n0_gkP\#M|C^SwX&c7>?<EJ/0#)H0<ōG덮y>u9ylЈoPi"0olFvXĢ2	؈A
-Z:=; r,M(ޏY5:ipw>Yųpe֔p@%tQ66]l]LP`(?ő.+*:_tXT3,wkjz},g>'r|)-#H˺pIZZ#E>w}\U>@(wD5T	vʍ0#Zzh~q=3q;mץ'H9~EHϒFs?4b>2N}+zO	=Yrr(i4,AXε0K'<֥Ts`H9&8pPc#ecȷ"Ly~9=#Z_`D< #C^h)"AiQP!h5J5j]X! yWKib\ jrވ)֎0F;*ch{H",&g~ܮ~#Dr(x$ĵAX"d=76a2hкj͒M1^O#b!s#/LM885M<31i.H015b`5lŲ6ڛx)8Y@n=mrjqX2CEYsMiuAMt:a''N56%H_k&m!-n6	~Na[g'%3|	~:O)b{
-Ǳx-L*Ap4<ʄ^Pc8?CL3xFxʇq_W23$<'7b.3+M=TX*Uiw*hF`ɻL8oC.P27$~eo`J{m3o@]PeZ1vqGbs\[;7ERjH{3fI#9Z4SӐ?wP6BكdgA#zt?~cI%V4ʕ&B#UjHt4wzAOʭrk9H(YQgTn-䎰?o
-AZ?Ve҆i܅A# Q8$$LNlOgbj+53FIsho揑&r|Nœӑ~t		 mAjj=UwAj8t:\]su^6f@Kze#S_.M\.Y/dIEĝU"!tCJ5){BZ"N1$,
-ݗ+b""(jDfǋF5j)11yф#!~{	 jbY1W}0!+KL!@:'g,;A̎Dse#l42e-fG4QԷNܺԺuhau)Gqt;k:ݺ+w7ɰl&nib8_<]1֩X\88jtmtbGGqtG,t/(;(^ҪœA#8(WBzƼ`$<(0Ui$j^t2p7o~o#R/L[7N鷩xNֳvM,gf&ha7'ʄyInNFX0h&H]SFb?сK;cJzqlFH<mCTŬ4|pk4
-&8LkQ&D]e`J^9&&k̫q|1r܃QG5za`4:DsuPoޚXH	c#	~N@$-̅L68KVdGӂPCL^0Z,_ngI34w?_lwe40S, SlCɸB3.aVuF"&bV~J[qˉ).Ѩ5.@A#&\W63ab|&>%0M1FY].0ZuT*c7b$~K:> \YC%ۋ
-~㝃dMæA#2F"w3⻌]_gs!OaMas#힬C4B=lenÂ؈^-=DkzB̈#ӆ݆1E6V*Nk6h܆V|S26\@C8lʾT-vR5Ҟmi͔\5RF38ƈn3: !"6F2DX. G⮤.Lk$64h
-%<%\/<ň~Rfk'屴%..ы+;x
-^`Wk*BsH8N־O%3bo O\e9̰ 9##Ry=
-U¬iiR2I"M1<CjE"ǠEMjRp䗖i]cb1c7B$&㥔δb'nah!tșR@ٳ[YZ0},ւO҂õ`ư-T.D?!_UHƯJg8
-dJdKuU#;H!2鏎<"*QpĜOgb˚x9#Hr3k%20<e9Ѯ1˶4?B7q֯Iխ4L1*v92v2l "ZuNMX#(%H4B$J6 TkB?#B
-dEvy[ lph|*CΊ/P/0/xV|:| 1YE|!w0ϊOߤa)gŧ|
-jee=Y,Xی$yړbõV&9nfAj&.`,hf_#>x
-ۋ	Ƶl(a&Id5 ;SBkF|;&,̠YdKSi52!W,۔&nWȦHvD,jTd&Xir
-vۋ߀wԏRP>7xd̡PG~1_#9>V`-,tYi-Q'X/#nәe:.@
-w2Ms~Fсr\8?J:~0(ǥ@\L4"PKw+N6Y]\fc.mF?cԥٌ.&hy+4Z
-_&4#MQgEm4b$)qؿNJL+cj?S`dm:A8luR๡ns2RoFL>NzaRlDP:&"U?l4ڏz Bgn]׻xeZ	>op(}t*b~iB1hv[UK#H1t{<oR7$6u11Ŧ
-aɁ#h{vw06k((`1kMG}ߡH|>ilY_n;7ܴ#_ hb5aQQ
-5>XRewȒ+S$HI;%{AdZ
-XpGrg(
-<\VgPA0\OF^h
-V7뻙ed-géXvi6n<XMWceI/ͺ͍"8(X(z#Z:u{DG5JCFI5JۆFIe(dk?*JR`7JH!Nv(9n_)&(G$A\pkd~$`󆂍c9u`sb`F4x){`ԗ1%Gs\1b-pY]g2d10c/П>aĲ[k=l$hsLA&iYg?7^X[k(kNyX{]qMXskXo^6X;54ޤpLl~mfGf]a47V(]l0I7IB0Mi6?!Qɒ2F	ѳ]JղRa>O U1ڏPxA;^`GzD#aωf/RC||A$m˖ppOXW	`"W<UDbN~B"]b~Z	&޸S`Q2 ,t1o3t;i9$1CE n#I]03wۭ!I.AqMLabU4b{& BDP0s8&ޅtōsN+tyILgͤLƤˇ0r.LtS=.w1L|(0m¤ˇc^Z:L:g&U\L&k&]L*&Scһ&Y/b03`&9b̓$c<ARՁ`Fj320<w\gVT~e>&g$Z \Elǋ%{O&qL}J*1~-Coh<-;ƈ|=C)35%u=a\nrYxkcpM#XMdQ-(dq/kض3+L˜&aPCܮ HXbfs7~΄[Ώg>nqLQZB7R6od]eu^('-r%-OZ7~*)Mji)*禥5Ryf+p]K9
-\REV+ZʿģCE8!'9>U^ll[;EL>E qֽXdT-U܍V]j.KlF/D֍%Q:4qg`bz;x+9dy4{&alڬ+2u-*6-q`e!3Y	z=8/H/K'㴯{~$?b[z_im_~*@To#1 J~@b9ޔl#<Gn,V
-鵽J~{J)=Rzf(c4(~뫔춘
-Wcg0Lûb>'\Vƿɞ܁9@M;m𓝙7w
-Jn'ZS;vM+ݞ*ݑ*J?Ʒ>;U[xiVJ:?̴Ҽ]JǝbqleڠwWޕ7"
-wݴ'a=B\)}-2ޔG羔?3??zUY
-%04u駼RL4*ցhQl"Rl.U w0°l|r6ZZx3jL(Mߦ>8#JGaAJOPR)QGU*3NiPڋa!! A|5n@u vn@s 6g_ەvC͆aN*$z^q-MUT'hHp0)	5OA7cg❣zs3KH.LyU\E7sz쾚ų',bRfQJb\3dJmW'Ys*7+D1Tu|MC.{OQ0N	֦?}Q7M)}Z;^ s/⾰r@whT0DK^כm󀂣4MylVڳSʛ\qQan	C0uXa5=p{Q'kv/)-I)mX	XqJJ/8q_XnTVDEPuٷ^QpoLfW[X R_LK$3ahqEJϕܔj$[aYLy)5ɦ_S
-JNj+̭B7dƼUDjDi%zJDLDwjf(,MS$i4~Mhu.IVvapϫHS-"N_Z	XB_ϟg4mː:V
-_s;EM2Fy*,J؈J PDV)*-noI#¶*+/HbRٷ)w	88k˜{ײ_V$JXe(TX336;V,iƚb?$V1h&NsbF^T`E	fs"@YI(n~y,In/)m@\.=߀\{eI8w}2DJi9Exv*)>b矁b$1)\8=R|M$!91ص.,vV?c#c_ފ9)S.gOK!bҾO(ʢ!"C_(+H3&JB%@Y
-/mD7~rH&F=sؽY#ibnYE(J(ӯ:0s`	ZTmkӘ|C\b!/3o{#.P4/\$M>Niuv~Vc"3b!/%$IaG<Xlv0侓~R){wa	!)@nloZndSs!8?'e$G^
-InG	M2eGO͜TB'qqG=k=V&98?ϯ8IB	+puU$Fp6\d/Xt?p:Cc#.|]zw>(c 㣕n>lF	}ˋYf߽>|Ly<d暀iZ\yF,=V<fϳzÓJXA]/K7c
-mDlUV-%ZY)Fw4~آ]8*Q30-	R--&8wߌah%zp7!@DX?''T`)6Y΋<"RX0	"^f';/<`تE1`PjD$50VӴ<V$q'y*]VXqz@|?)TޤӺ)ZDqR]X(0Ec!|j j4lQbo.-N۶(%졯rLP]н_<(rC/bFSZi^T%nwIe;hEn5oeRBɬQ+ ;zP|yUrS~HW6<}@7~8H\˓Tk*Đ71[hi,MIiABhob:"/i`ؕs<_W!mjK?	#D% `(r<DM^$y
-JXOV:U4z8VJ U 6}Il JPi5|uA QbӿJX0'NOr{A&e#Nx{؊U_i	s4焒GźH)01F~HVͬU$*oj%uڣ^ۓ,1FC1QM чSf4`7~Rx,!k0MC47XWX_r0'"`,L|o)hn\8leIQFI90 c\'y[0Ib
-7yҊ (O\yh]s)(KĬciKknͬ}fZlV2@kЪ	`	gڀ6$xm⁁J#43~&y'j̤JZab_s,bRx1-ꃩ1c$ڕ͞_SְMVhnuVh{oKa٣2+qZs90!g!a^&9qubB=뀘XO0'-*-.YdIXGY>P3m`T#ٿ]6f6s;PiR=sW3>Z#	IQUUҟ!Ԇ̕Ҭ`hb֤٘,7ٵ)CJ?M69I,i̬KyjFw}ۨ6*1K3<2<<_k3Hp@eSM~xo:[[*|UP6Oa}֦x<a}@]d`(c^j
-*֤Ru)L(!P4T|E <2ɜ4ͼ$W$C<!%"CC2(rqa2E^qJ&-_昺}־܇aPa8xc*T-4=T><>2/]]0	0CM5&I'-' \x$Q=Cr\U(lf6$h ~2۱X[/,3CPjqg/L?PN]Yablv~kQOn<yy-e_n(RVnSz/mqZIVef'mĝ	pݪ O0m	J|B- !w&ܬJ%TW3qeabu5or}b^OU2)Ywbhu}8s4I$X3oQs8{b]MVCPtCQUu[W!TXv<(g3IN>77npMEF>2
-]`0c,"G9#T_ZF2۵->/5XX@_ADvJnX("(ԮTGG,>W8NHhXuhĸāS}^1-#~1xT
-{z`1*˺`jP*z/.)6/).G|c
-T@jHR5$B2APeoJ[3e%X]&{xbsF
-`bS#x>zuRro! xkɱi-}V>'jI)-=O+_k9Zk-Bk'6oX+63\jFV57]7]oUW{wvy5<UU\|jC^	 \܁QM0W.\f] =IŠXoa3U3J5=yD3.P7V[;ۗ^Lu2Qv3ZE&/wr[Ķ!:Syw4LS%VĩR%[Qi 5jQە)WnYJ
-p-7l<jPBFC-ZrSɅliss*u^Wᝃn
-w9S.(1QN&e Mkm1F)o?ӳZ9j/Y_xuhiI,}7s1V6vŅM)jy*LSd(c X뢿֖	Ǝ'4"Wz?((1s$Ը[R-ޗ*
-+Jn[jܶ@*lO"*tneIkX}+*үy-ɢ-=oSNJeJ@nJ_d)}Δ>vV 0l鼗'F^
-VP] qWxCV
-nZnKiw{=\:՝=74QUSԘAq
-ۚ*l7U;8TqR}7VǩOR)x<]m,=wDnt>uL_>uYj>\-eV<Ĺ9AG,ƮE5Pk!"s`}_V/k#"j[AKJ9%߭^-byDNwG'a1ih7u>v[/FN g?G}əQiI4V?!}tADZ&uTPエOSF 뼥uxIKۯ
-ɝQUS7Bm}$w#b11b]Q'4ZT?|`ԥBzA+׃}ԡ&VnCz#Sp\5G;N̡یǆpgfH*=~ҀJ~0V!@z"ABwtf|tiZmn߃Rj.
-$YiZ6J4sbS_a_ȇ	g!8snP!Ԍ!XDq }bS35鵸RmR`ē`Tj%*0bGKf>tqGLc4sW	tU%;q Ur3Qbg^*!)5TW0ʓ53Lٸͤ,8Ԟ9igNCjϜgN3'왓yߞϾu1wmb?%Kg)uRo	q!Fm˔f--U\fS\6\F`\%嗪k])/UҿV!Fd(/9{s̄E%C뽤3}%ݢ@&,B 1%_cM(_ Os/l>C?=`Kc\UagDʈ}1u#'#>IE?%ڤ.G,׾TZjd|2%<~_Pk@O=M.W&)W&OG&n!m&uXʔ{ǽGo&UkkalG,5of%5}0l	s`ױzglQIb>홈W&'\T/fYfgz=5O۫=Lt	Ck$ۃ	,ឋ7+NfcŒ@P*oPIQK@B~2wi/w^³WOmUJc(J1Ri[`N.NMKHi转J_VJ;${TށίW+wZyHZuM
-w4!_-';ʓӥMҶONW/2ћl++--_r_*ya!8r~kM"D+op~uu8/=.;QW"Tɝfܕ}4= ѡp܁V=_T=O oj6]6I,LS| f5CӬWaH:MiM5}53'H#| ,-llm6wd6v;ù>HDf>rg, }<z(0]3ǧRSc=1%H'ds2V5g-c5^A:fr{\W=f5~67U:UX@+;s$ i!o}*0Fa8#8{"	T.ӊi*'?e~7/~$xo!fKv fzxEϡﰂa^ԡ`8LF4NKVeQxt@M'iցw\fB\co̘6߸F? ZdTT3&i0Qh(fX0$Xl֥umBGff'ivZ,<MLQjI(!9Ը`[\/XE|!O2˜ӔgW%9eJgfF`"a'b~IVEn-bG2!$"kuo8ͯU	\^IZ>So l-Η_Wy+L1	RH<(w_LfOPh)͞	h=Fϴfynn4h[=QskLoȚfWh(xf6{Bfy*89N;b_	5x,\`1E?}J{B%1
-9_L]|][q.~v?m=/_~<7q{8lrx]ȊAJ# p,ZQ1ER(lm T)5q$0DP啶q7OWvA[=/S0,^;źqLQJabpٖC\r|NxJ|[5By_1EPek#HEd'@(O@G1ӷ-ag&R:HӿTk׎ؽMH[sT}s`~f˽U*ZZ[}Gr)C͸:NK4'&gCZxg!P*P_G$́'UR:HSYwume5k*.WO2"3=߿,4?}&ZK7I̦Dbo%@gvT^V wt~Qb/V]Sh,U>=,{NڋH\}d_}t>AS2%\+Hi}s2>RqxȝqFɸ,]x;
-q#e=G}'/[;gi\N\.u^_#j-Z҄⨤W.˜c_V׵zS}~ijۑWe^UsZZuci@gjh"t3ӨcAAG5$)(4Cyӫc_~g+na/%3]@1.lTBS	I٭!L<ĥ¬./2Q mu:-IB+c;e$V1IMClbwW[k1%nEPdOٱ+y#k2`XTezNYPBw}GԠ>v 
-۹zn,yR`_C8YU*0	x+읈/{oZ޾JdsSasoebOgswNs*ĺofjkbSim_[%edjfF\r8j1nnL<pYvqb6kR fhT4)Vi2xWxX̼_iM4iRzIH_ݜI=ʸTpt54F1 V[In$pdyX耉Z;/F\7Y#6ͩ?6#ZmVѵ*ju,KѶ	&9XLZ扎dw#eCMزX-3'TylmSk:ԊI2iլSbszH#VmSR`ߠe)e#zoG٢cǵ,+F.Ӻjcv|u X()S0cDzhv6x>u/_8kmZGy&KWI
-0ѤSTewA_`2=;*#l{1 ]˻ٍ(:n~7TZ6-,rU:DjlFuBh8K`uǢA0B0d5TtPjv؛uEi4tCVk;WX16"8?UgWO?pMЃ%IܵrM1k|&tm
-Ԡ $(6\X)wXV1~Oّ9<.{.H<
-@8p#vfWZ6vN.P.e\.:/Sl=,2٦d?QWe[SdF$e+@onyQ.3\K<;&˪%!ϫ[c90%lV)aߕ@Hap	,mo>o8]K}brB?=e@i	H@o	o#}e%{FkR/]|hI4[2@x1x)bذ y1^خ&ia~GL"B/Cb0$HTT8i(L.XيqTth2MUv4==;IiOr*<<%Z/e1lA@bV1,Il {rΑY#kSؑ;w"R&~$=&IHHҝ\f3<\ϽJt
-g/l{YgJ+ZҽKwZ4n½ļUsCzhSvZWuк["<<g[.+3}H!i鯨7QQI
-ҦNܠfvYovƤGnגדma~йAťz7B+7@ٷ9^^#֟QmRvڅ
-#ToͰ9D~ykܰDُ};| V9le_K( L5f|Vupڲ́ BL6qo!0_Z
-ڎTB\Ⱦ+x"͐^^6L/v.c%<se𸋶	O[CߧSTZve_R%~?e[.-^.Kn?*xJ:ǶkUvP@zi@1\?r9睥73̬ʬ>T%@-b`xc{x
-q{ZϯjMMf][534:-$,::Ё$$!DW	H"3%|PWFċ׋/"^wPƩ<:;k+Zk8m律l
-dͤ>ArԽfjjrno76Sw]fݸǴ&uyQ^3!~;aVk*n<p6(Vn`z<ֹujjXjMRrڶHEw}>RXpuM*rϭU=j[~D$_>5mǱ}7T[0RD(/q>fmv'c,}kkxʈXC+ħ5xDa uuMj[Wԃ~7TxZit6X]n7b=4XŪܩZs9Wf&ߔ&ڤP;ƨMHuc胆S~GLm֥#LM^[f#Oǌ`^Ly<48y@f<I<A6wͦ[k͏GoD\v - s
-=k%K^k~DE<3Dj[75M,-zJrZZg2WaQ+VRmoUR`Yu	qZmel4lrVhpqn<RSԩU߻QIЀ:4KQ"<f=0U$ԽKD9\*ƛ;("Fl[QOnkUrvY֗9~uFWuY'Y*ḳ]sUGB)(1(Yiu)N"(RmFY:p@:?@(
-`eOJPF:HnðM\XrjA(ԗ^SaPleDkueݻn^rkIl $Gk<R0wuΔl8=N~:C>H"*r(X+TVsS}4eҨa͊R݉FRVJuœx3>9Кzd-o[熛K>"=hR
-Z:o a3+lBNvy4"*QKujxOU]6&]/Iw1Ec<T$䓧1.d#swZ0/)95Vn+m*ۄPCz%<OJieTRoVE%:*5Q{,*Z(x8EZ>
-)u$(&;>lM3g4_P7/]8w09`tèM7]42p={XIVE"l:;/t!x/)er?mI,P=/wC$LRΘʔ*u*d9w/ƴVقP-)2
-j>1`U\_+cS2XO
-bn,4(Mv:П*DkҥЮ2JI&({yQS4p(QDpGlDOTjxT*d|g@,PԔQH(j"ۖ	F1wXo0	dبvP"y.%}<Uĵ4_mb7qmyX/JV^ݩ+~/;X,ci!Ug}'GUbkGIfaCU2?($^,x#0?凡HlA܎~y|bG;hf]S̗QUW/"MK嬆FSu9	厝1$i	UfҽA~ˮg/z΅[[ 5	5eҠ!)h} h>s	W
-כShFքS'e$7]Q5n</"E㸑P΅Ej9C\^y),jUU^=7ʑ{=3%	JwS5d!<ʭKDhonh:	њ;J P	eM"mM'zUO${7K}"7ziܶ'1$yDŲ%?_"Vt*]&oϕ7J]0QOX@=?|Ai,ɪt^>ԚΙbG(r]We<e#~-n=Ęlg}MXO:~,_|y˽fIj$f; 1OL]ے0"M`E+3_
-Y+T}IAJLnDB	uP	Ҳמ:69*Hoհ!*Cа@ kEGFMO	dG%p8YMc>[ڮMU*y&х[]_\*j}fw_?MqyzP]N¯Ʋ}*-c;-Nr]TJಿS+&rª.M>)IFхMu1{9SDWzЕM	bb*U4wbO
-q\*}j{us*`YMGmVڏ`?s2~3l(Њ,8*)<ժ6׊\c0TM-L>Yw|nC`S,޳$-5/11,௙hh_@{A)TZAf_f77gە
-˛wlyDkɃBb0*GF``*;$Ȩ!̴]ҨSke`m5r)J/oܗ>%ꞣVLsߵ8#D[x4WWHFU~qe>lZΝ}@?i+b#l^<6C
-ʱDBIh+`'1y:17T>_.4@pTif	Kix;҃5Qahjmv9L 8ފ$9kpUD"p7 ww
-q6=PzE,<H YB,B D[QQp' vQ$@ԅx\	y@<B<_^:<_SrU.X#>
-`+t& OcZgAԥ-Z(~{x65MM>Z'=O3*W1,5j57T[z^BBhmF_6FNUTdmm2VO[}c{RaQ͛:O~MQwأ~ð)i
-|N3]59,rpQ6FN/8Mj{s{Z۵bYEZ3y[%fr-v.n2|cJ nt(0Sfʒ({J&mF|d4nd۪(c]:Cg	TFPFm
-&Z#N/J?ϡhۺ1Aף8j?!+SQsğ#Q?(b(6bNԗG8UJT+ZO7[͘zO2qpD0 L5RfFE9P!<KkU-rb6!Pi߰vHlXo>jx~ٮP,ޛ"#l]g$~k_ h}Hj$;\c.pĚ[DLbX#HS|Y??|'YY׶KUG4$4KEB]Dy&@lb,<qnG\C]΅x/ߝ[q?W:n,cڡL-թ2eInfw@0`gy̝'L^y?:5^nՃjPwC\VAv"S?:i<4,v|`"pMLw: QG& @'Y՗69$@35v7a*|kjcڵYo53Z| }	5Od'A>%!̛2ړ^8i&`&fȧaA|0@M(7#_If	3_KeD}/n C3@*5YvTtBj$Ǣh@葿9
-t\[ aHPnv43JsR1e(n}..D/P%Bv%l0/ L;(߿BƫAf;Р
-:%5r1ەeW
-[-1ٞPT(}:XhO"'K_I~!@>.S?r!2e*"ყOE?Hqƕ`6+rhnlEW7xo$h'e_v/Iq 	NЃN;`,Ƽp?gzΕrqғԌ#f>ݮs9s/}tex:B/#4qpq&ƙ_`_@h	xitaDJ<up`Z|؀|3C#^HmK	
-,髒%%d@,$$o{i׉}&
-Wzu<1@H;[D%Vt<!V=_!HNqbq4Ygry+:'tJ֝bfZdFK~-D'oa߄ΩY7Tw7(8_9Ψبė]D2۷L8cPQj	-Iď{BDE)h]1}Ǝiӕƪd{v6+gpZG 5C~~/5T}D5-M.BgFC͞B+?rJǸ9I4űNk*g`=1{F_CwJ>zWIk#Z
-'Z3R|-5{iP2&BBYt>CYt7\[lC+:>;dj'a:'ȦXZ$3Y*)~ZgKR_/QVFLۙ
-(o8vf_ۆo:'D*r9_.c>WdɿwdɗؼHc/Eo&6R0?UlѴUۢkת5$!; uCS*ꠚ}>-+\'}BxH\U]ՠ~#mVYӅZ6ʩWb<'~wݔ"u|u7J _3Pj;etլ&r%꒬B}uݧr!OŊJQQM8ܟ4*U
- &_:>bq3	gu?$qK;ӃOSVn-X3"ĸPuXU^rbWK\6+VQm+F9/*k.JuR)*|RGǠ
-;bRj<+Z Ll?xSo|xHfOzroxr/N,ʅ7*Ma:M?!bbu앜BOjo@)uSѯw7R'B:OhW
-T0|RuTbc^}FZ7k8=lA{޺I)I-w!@/Yz|_ke<FCS|M['=4O!;߃5t}~5ѯJB\ϻoO3k"K&Ѧ$,P D([b ZHL2)	,YGx^ϱ>ʓ	^䯩~dQL+2v&8ƀ.	UCG@,nQ.Ӌ&C:La8:I
-Wk<+ˉ[LF^´e{LtEUo~>1'{&Up[ph{w_Ku;'aȓA]&f+_ѽZۼ2KWw씘pK< d,/{_atӥ i_M4a]]|g#!^r,Y#dqڋxwDޙ~ƣ{F5n7!䎨<7ڋz<[D gb]]ƒ1`K.)4y\i҆7[*yo-T[*Q úGXCSCz+:4z^#+zPS>q{H=1X>WRT^9,;>?Y`uk0ׂS;[8,Ɏ&O$b8j@Xojmu۪{Kfo~FǼ}KMDwzjV^O-9e͌vTīB8ʈ'SKjf-չ_v*&38y_f}}1p\!*ivQaT.w
-sdf%6Ny$mۥQuR/V(خ_%lS9bYȞh=,dOs^űTǬ.¹R|xRi5;;NQ-.)o?n˧߉k}u͞xW#/B$,YXadbQ	4=;;_QZ&Z9]n
-4LBӤƍkFNa|EPYd"Y^ %r@~Z1"ls<'tE򺺉
-5_4f41>kXT;,v;FH]XΎ}aЍskyⳂ(4]:~'*N+<=0LS'IbNjk5J,2-:JUSR]5>ͼq9{OEvG_B큦ɐj]
-Mla1ğH+uk>jl{1lK:_km& .ombl{P+6],$cJ>M\P	4;I"Q"4V1zU1`&d3i%?T32hHiPu_w~£ޥVi ,9| =u jyU|01'&%ƤƆ^$bUv.IK2PGDc7KDdnqӸKQ;s)ڿF$_|o4\]c{/	u?!
-v8"Ҷ~fŚ5I.
-v!̙1_ݕeN0.,$x4hHo3cx	}<, Z|~R+FAU
-4+(Ylqrr7Ϥ/ ;|!Z1>3^.!7{ (YaH ڊil{{jF;T9UGӄ1)Zq6K:Q}Є-k\Crj[e96zy`Tljzk|=L2ĐdB20dSb4-y9y[A8pWGxbWFR(*GU^ႜJ3U('s%eycڥ.>]WF D7<r*\1gXTũz2>fX0DwT	#O8|UϜ7DlK~~FH
-/F2 J}9mxWMa%\85jS龄}NG+QYeR\"b{Mjz-fR5XjPLMg	_E_3L>:X/|j-zJ4Ck2)(	B]Hk/Nvp1E!#EՂ0?y\{,Nä .L}>B"Z3_cֻ*ǈ1EbZ 0u10=06&Wl0PܯݬAŜ(b0+QXEnd^DD&i9AH	DCK,=>YB"Q0r\X@1X2ֻCWtH5*rc0vQ-y[ˣյHKx{+iÛޣϡ]uvP6F;+NWl;A8A~9Ne;"'>;b'6xJNN>*_~҇>tA^SjwӞqwYwPxS{cSs8dL(5rqQlP'䘊Ԣ	!98FJs nn8 Re%_ڃ>N@?BcUgcJN  "ɧq:C1O6_hcD)5qJPx;ISK{X1|`ߪEv6&bL9Ҧf8e;aU<?,iC`h3Aɯd|jJ`]$0wbʨ򌣇#z
-NVn+7xWq"2E<KqSod8Jѵ,!ײ\Ƚx:	F^ۢᢆsPЀ%Gݯjz-zR#vELF{[0қ4	U'mᤶam#oˌ5,?Xp6dۂI<FJLHmcq|{|Jq_ӯY&Z/,K~8Ʀtΰ׏qk68G̘&.um`8&Iuy)$<i8 MZ?Q?3(^1Z8]~JyVU>Qk8TIj\R3{/(S	(/q?ݣw@='GzaSN0ޏÏ83lwb>eOM#;]ڃO*RϰnJu9Vk#56]nm7+V+)w5{͊s-{̊]ZoR;̐eأn
-35˝0Kb/^^i&r^ʖ'?a!6(SiZWǅ(nې8;<L&QτM$Oʌ)qhAC\ޚB2ɐ~Sy'n(^1|cxQCe|&@,>~-nR{֠wQ~j:CefLwFvF蠯\t1k)Ĩjj#Sܧ,8{TI
-ΉKlutpP^۫s<fngP!ǟd4v9
-5%pPA	s%5u^%$w9Xq%(#
-.5ջM0I$ߩpbm'6S̼EĄ0Xt>Ʊ:NzRk<\LG3kf.]RybA3g.#DݕCF!%P~ c$$q7?//DKA!Q]7P>`ѺbfRb
-5]K.bKݡ:D;4-[m~qJ駽M[_7Va_9,.óCe+Nթq:/VeH8,)P
-tra&kxV)KU
-焼ZH;b$uNNq<NH/[ tݝ.
-AX=lF*tHԮK0^Y2s%fCFB(ntÓ^yǉ.MYWt^&=i7p)B(ٸM0䣾 (F;]fͣ1J?跡3>yta%T;86z*">@ĒPcV-jF|v?X!g?RrAl'1Rkkhd;ʠsBкY>46?(WCsD0daH)+̨?Co-D퟊*n6^W5yi"|8VV2Q{<T,+{JO&"@VjHKplƱqxCSۻLE|TŃG!>j<ZtRtz@>uջOǼKWLﹷj=ԩJwȿ?ry ؁kL	N\b!|k2#7xjfKQ-Q/A;Ad/A9Ad/A~KNP95J+gKw?+y<;VX{Ex:YwR=X6Gy@Srui9}عH2DYI9Sr3)7GKlMB%p33|11SW^!o@M>Zi؎>am3Qj^m[+隇 hM^Xb/
-S-㓳P,*KքŷmހjU}|]?RAyq,	sDs4k8L_\ChX,oP)C {AH?J%{#xPw˗_#Q|K$}/ۉgHQ|8teBxY#?HᓀzƿB1Z>{FT&|P0M6zOVXr˝OGOWa c{}u_ {*
-Ғ?1mBQ L[(&~
-BVRETbFLU"n{u*/=J_;ʛ;-WY
-ԁ6uCх3yec(~f)wZED)G xR:罄J\>Jk8U)R)NwO&Ns?)<SŐ
-}Ԩ&6	f\8!=>$ʳYNrQQJ4k>kKkRv}3%zV˾TY͢7Ĳc֯feӗq61Y4)}z|a{U
-9OlK婽D{'C0	zܦY?B@`:Y6mhITȧ])(#Tjq]CqL>wtxjgSrSI u<Ihg.@|B!58B q- 
-* mPGAlaEg&g4A3<x;nm`6`o4mBV=Zro0:컶`)/^$^ga,<Wg=%6ѬۤJU AM櫏]p[2!wPz~zTY0 8e+3gKSx|fˬ0Iٻ<6ߒx"|rF_/Ȯ&o^%TlQ)\ 2pQԚSF˔eʶGvkup&vkLwA05yW^Ha^Yήs[4k>RzB&=D{[D(oi7?Ϡ92rxJgvJ 	 rpfx	zSõurWmW@/'"
-Nûu<dSZzLyx9y"sVm&QEУF_tj|=ɷ5)yXk;L?Z vj`vuoNYҰٝ0)ܮMخIAnMϊ&_'^!z3c@!P$FtoJۓ1,SpD/G~TBDCN r%yU*%hZiUwh`k_uyb85*Kh죱m>`X4ZPiL4ǺOܶ="|:0M
-DZ*?*`ahAWSAs|K<*K~t'6C;߬tO'uΤ\Tcw14Ax=!NzϤ~CT2]KrP&~*6BoħrS8^򋿴ܬ5ы_>;Q#|֣QxntϤ~\3JzOP	O0<hD$ND0f2?{R-1b1I_NkU)'Hܹ.cRϨ4׋FIvRVh%`A6?<A<DlD6A#$ncҜسor -k?/sxXRbdnB[Ќb3\23@ܑ0O
-S\P(׈-%1{x6b뵶\xy_\=  ;o2WcbM`iFfωR6/W&<+}$|"4DH8j6%$dφ8csu3J6|푌">]!"Ԟmw(-dټ<|SՓ<Z[S=o3.WIih,Ʌsc7pc1ej!ĭmgѬ"	7CR0ţej$~PGԈq<E1q=IHH,O;O|{XԱ亶\~~;zE,9a[h>mxZ!5Ⱦ'J}Z}մyE&|]<Hɓյ Njh3Vnfx 4(Ȋ$|خE15֮PzF&c.c|	syBetoF JM#0]JȑKkI晩.3u}"▆Â~mea0<k8Sν{a_-	!_+@";b"8b/ùpq' [, ic#WxA:#3fK#:k$&H_	ƈ2A<Ԭ MSvS8#VƊ ܪVoFrus~St"=Սp9zq^`g~JBsNE]`,i8S;ؖ;>OV洖Zst&qV]i|bn4@lt!\W	̼,&ȻuCi.Гs憥YܰOf~x|3a^70l	%OzfXSyک?zf9=O3ZO[hv
-"] i!ǈýC6iv1)t+w;gBkl~۰iel&b
-pyϘ]*ZK]K9_JKJJ&w̏Ξt8qaGwAN] .@C4:?]'f8[}p;Q-.nV -x#jC9zDsx|{yR∜80<-f<-_YM,=wa5sqS6XlF)hi.@˭T
-Q|VyU?I/{LP1tLaa.Xtb.w\E=<cg0?tX~fļQE7rpݳ'ύXD\إ	v$_E[g!5
-5m
--ha*HOXˉB.E&_;t~G%}	>oiÁR)5PHl$V/6UEram6q@T߶2{ ؝Tq]ݱ|_-Ӈ焖>D?jc3CO~iԕy3-}ҏv&i&)YffLBXdR4w-gaJ@jY>ù"AXwyZd-t<iM<y:"X`N) j{SOܯFGP0i˅T,dR	7_ahz9{Pԃ<]XR0l׆ws7`ɗ QreKmJWKmvZVTժQ~%N/x|KXaVo;ꗌ?r|AVt:]a
-dފJoI& .$j-4HE(Ϯ1M?g!!;t$(fjD& 3+A~CġR.uXm7hQp,b<>'o` gޢJ+0ZrrF\_yZd-0n-թwOrI%hh.27m^B
->1;)P.
-2bq3J1SC ɏ4bHڴw6R*\qVzvEgsg^k[17r*~	W<S% >{crޯV ӆ_ZfI{>nt_k}<lq +ؔ*;Q{@*ZgŒUdv^LM)l˙B.bglv6qrgCD2m؅-]K̯"w"z!q>C=,	0WL}q<yQ&lB#eÕZvv_^y.s2'qΰJxX@}f|lo(cR6mg_"4?A"j9yIw)lyd2IuU޶"|>lo9,lQ 67-
-~H
-	?&'(O,
-R=Tw%L)zؑc#=PZè=T7gAY(uz3sf|'#vW.ʟ^#a'rۖm)ӧNy<r(7$wB-@v7Qo,XSVzZWr=~zt/<zz%ӫPh2uU6vgzT@3ǻTMX5*Gc{	M`0ۯq)]I8~NϞ[C8:t6
-Мܭ s;b qNq҅X]x96붟+%"Mp}I5KxHQn)/R)/.ąx ^ i@|B<MO{	b/ >w!v v, J.ĳ, :b' n7.V@Bl% ,M<DfhWsg4[Z~󤞧^ϾnZOm0ozOz7:PIra^\ӥR_P*=rd#02"dr}'}mG=22[xb@b=mlѓ3H[:=9KĤ:ڢgmnq{Vk;'w~/oΒqց|!Yzf^MhVH#	V'XBAﴥn!?k3./:Ԥڔؓۃpv(6mғmh=\_eֺevU.1Q37RZIwwA`K4#{fTtꗬ4/Εp4K.ܿTHt@OgZM Q/TU7T		ADs-E%ʹOS9-MoYfXcY~AE4CqNї>fW8 P?1D] s~H*%9<M d9CɆkO475Ɵlӡ3A/s}?HApQu`$EBok-2)L4߃`ybK:3z3~sp5]C.}yhY&tDl=/{@g=t˾~|BH	;{;My/6=6*u8q:~N%W|2\H?"]atp҇\!Bz"H!H{(~W`iI(c49M%@zax*}	N4i}~8q	Ճ[ѮL (ikDɗq,N[LMe=Xݗl.ueyz;O>[pFm:Gۃtw(zUa%'֥,/q|O/?ϙK`=nNpP b]-cQ̋~(rϲ:saU*`W=_@FqѮ<(@WzjqnA8eANblC8l3zC5lg5܊[W|?*xgX3?'A>_@W?Al:^G?%yXOn'laxB1u("SF$'BfT;G{u(}5ZPL*P|ݟ{0g;=rM8!K7uM='0bD
-.#6*b\ȅGQݼг'L)3ec!݆ϲǬwxUO6)g`lPpȿhɣ&GMYA".43ҔzS>td7ጏ	 I@E"_H'<@;%Jq++𮈄m,nN-}u7bL*3&*
-iY<WtN=5ET?׍7	Cmu@oԯ~mo^Y)[U't:.Fg:ýf!SL` 0;_x_U4į:֐$u䭿ʴ>ތy£1;\D _RTVHepV2C>Mu1묳!pZI&zYjCUYv3"hڷ{-hQb'b|(G?sGYsGe0w(A!3GeEn
-QEB豼EO9JޘyR\xPAf-}dcaӂyiN面Q5qގe߉B%u	0z\]vVd#Pnp}=oB6Wu:Dͪn0b( k(SZA{x;xKhTi"aN!cq&sԙÑeNm'8:C)>[Ҩ30C${1ZT
-㺱D#ݘ!<w+a߶TłpʎS>;`'^%̓"eDI,kAbY9J48.(@dTo(rDQl-G P] A_	VcDebɿ*$ITZ
-:A/hcly	زNOp~2<d5'XO_vdU''U\BAeLCJ+wйsmJ>W:qT{tҵKzK8_j{hRo+	vɗzGv0҆~r(&vnr:~ц8x݆&oXAv(<9,sIJ`N# DA7HA/<1P ERӆ(&@i~x9`j+WMe=PKnn(5#ԚJͤ4J5rBǁ|Fk;hx\VH5RsCy;;6;Fikn@\YBf*kBNSцdFq&r:egPONHn
-'"ot-mZAosɸ܎)b:q
-odB k #$$Iiyp]E꠰2=q6[`˄A9NϷO^]>@8)h7۟ʷy=oiz&BGzPBg#\P{nu.#X4rPb'7+s9dw{ڎd"+uO({"Jd,]v2Mcй_!"'6cW=b>Pph*U!5plk4;/~^Tl_>CuiPILҙi>?MixiXX?R1闃~a8c!TE%4ϊ7m?+ߕ!h'{Q<.C!C55dJL	ᴴQUz;-wsBE:+BփQbmVW(:_u*N#CN){C.&auY-IߧMrb/gX!B	3gXIyv8ꄆ3}AOzvI%9G:Gv<ssm7uG]kP-Dk?6i#ɗ;me|~я-[D-(IՆ0>a\;#նB7kzR^?v?sizк~օXKPVKӿG&+}Sf5H0ϮZٷR6QiZmCx5>F\ƅAʘZLcša(zE?=M/=!롐x%:dq)ؚ,L,Z'n4&%QDJD--ԾO17C 2OXKBF(zP6>=黃g=6'ʾ^1*̾>B6]k}xkyi]jrKJE&Rd-v-5i|^/kY_?LMb"';x	f?<K"6)pQhh?]$8)f%?{xRbgc2jW ^u8xQavKxDȨaX.mL_;t0=gfFzEdck+">3|(_x
--LC6='V۰|),%YgM 2*8vN}=R.w*>vȮ3zHx*kfIL{fdԋQd7fjQ/@2$]d$9$s%.ɜ ɼHFw%4dLh8|I2'=eSE2h7,,I#F:k_-SFt"v
-"Ʊg8P2A<fʖ@p'\cnIm׮fYB_ZF9Z3v+{N<u3붍(Ws4JDEX!ST_?~=%5:$5UV3//d㻌و~&>v5!1-eԳ%F
-tM]^B7zLA<نgl8 
-Z迓UL2x>55TU14ڵxX4ǈ	觱),Z 5S"Q,6.0=l-1nv>TUEE:tuv)tqUHl1sDE2NjY/1wOM|w=ez]zjY+Ne$.zUY>o﬏;oVlŏ7GTx Pc߰J@h}Vf<_ۮ4ԕ4!9P ~/w˹H%k+3n3u,a3Č@?Tu~TO{Oנ?"~e_G{L=jwGr3~[nVFnZJkfjb䖡2԰WM?qud猫6ikQ܅Ti\:tcH>;+˜#הB%%ц×[쟻'Kscvq*q@wwbyzƂ'.{n#kVFnZeUh}Y巛Nϰ/%Pf'%Cuքئk_9/qh9/<ҷFf|Kwi1k4%&T!;'B7q6Jw1+*{iVJnZkעSL`a1n(kHl6(9IiTM\S{?ԜYM<ʽJCָpJP^߮P%565mTB}dsF挶֘f֘xތܘטu0dÎh BMت$[ol9}P^Gټ˚;1ubsԫDS~v8<{3&0[G<#>e2};WUr*˩ 4T46m O76vVdJny}C|7;o8[`<O-z9xZ- Y& { .9QC8 #mYgO;do
-Ž`w\fO>	٘._I|G{GsffA3e>Rź|XLCɒ7~g|}dY"}`_ ҅.'W::|tE/(e	=n#Ⱥ;JGЈ&	r[:
-YBx/(*_uu&r
-[h{ͤ?LVfre[NrQ
-"G]<Akzl3u)t: Ǘ*:`5'Bx<K`ւj"2.]4:7c$iؠk+[W"eu')f%#I=QvR:II]x!p>Lu/q.NWnokאSC-á2cyU g
-Ҟ&--Z"i4Ϲx	 M!̏[ifMڻR^7L~a19޵mf|EUws-0Ev׻|hdRMynToNHms֖@_!6^*
-~2z`G/S_[SQjjY/u'n]<3}KpQ~bH@oT h `)RnÞ꘲Q&Ju\xڲ^@PC4t3d}'{;&w2%[C!iBڟxK<yk?ܟg?~V+X^悿NgO:o%{R.pvr.c:"-jXr'm$^$}p4tV,AL'qq2[ϚP^vfeΫ\_@x@tӔ;Y,Ѵ6J?X'|@Suy!
-q&%c0*p P(;gO:CMLZ@MX%]j)ԍ(ҤCGU&NzZ|>j%v$@>{6IR̾>|$/䥪YĪ:Uȗǩ-R
-B)6UM+6(f	"0YXGhZ/S8%/K^ +4aZ/Os[&ALԤj!j!fThH? ƙ(¡NHotZ[]k "3b;Íb';yL=~8ć$MP={"fHj{h=<ӮG;M'i촳$agJal^;c7igd6F?$Ŀc0 l]clcCzs}+d{Ϲ{246OpHW82$Qt$KCOK>!>դ_nQ;E+Ɯfyt<}d#{Z(4f,۬qXJkN`h[{bp:Vy
-S&lԳ4yc@wo^|l C	
-4 \c=$6jM9[aG=N&1w*FK <*e=K3sAp>0KËtvQ|.xt!F+&`TbU}Ӄ67S̉4D4jDΧ6~i6cCr5v&_Hu765KFVo1;i/D+-Qrg7y' 6)>L.{W̏`r62u%E{mĦsꗅn-U&dm-.a7rjiX~zwuQvϾBagoc?E |@8/fv`-kZn-ͦK!N68Ȯ/֥mC߽ݿwAaEUu^zPsuw5	G@x6]8٣eFS!F/pfGb	o5FV{)7(=Ou`!.(Vp/\.PB1|tDZ JXg|7(w|l0(_|l4(C<+g*&Gy֒{Q(~X{LwznyafvPk^](nZkQycPSka1b0DdW'BĞ**uچ󜥤[l?QJ~a2cOh$ZK.I@rQ@IT'U~E	|{zޯ!WH*JKt{]zj/D8c1eTAgX4^j}UqQ_FSo(+1(V@m/S(G:8bt؟$Uavg释&37L8?2[9c+2$hN8TH)ڹEɉsKC,ٹ%ٍ	LͬOnm8j1?>6@q j|:	0O'ݗ^X6V聱8cxJ܇
-ùΛe<NoT˟v6Қώiur?jw_]_wI۴ >'udI atJL>c;STs{,qIUwm1rZ)Ya.fzSD;>tBA!(;Lb]ʑ?<-+heF'Tn\WvyNeZA'Ivo	gH="="kH/*R`H-
-٩p)u 4ne,-psR%:qqvUΚisĐ(\G>?7MÙ ˷i~#uBuzR;#F7Q/iJB,48KӉB1Z(%Bk"U7NSBT
-!WBO	K(%\&Z+!}b"a#*yP@Z-SN?zb
-ZQ'OxTUHJʹZT̹1k?4J1qH(jӌضc'wi"9hO4aڱ!
--TؾX ǆx^./Lc1X<4掔c;Be|xi獓浘~/eP`6H>,WOII|s3dScJ0uVLk9Η!p..}T?@]Z44b1{I_)3*=7sLWŮ9a)7)WYnPIRϥIsOKcˮ{q ~z<_FX16}2He7oi(ez
-{AW;P)/UPpTPRqJA+xR7j'^)H3%``vq\0S)+jkenK]Ɵ)h&2o6k?-|F5TyǜѼ↉)+ -T*hExժ<thdlx} zQѦ8+MF?[U/NM3`Qc\|(JUsV@4˷ S6>  Gj0KRmfaT{fq_dmKʬmk(0;Wދ=Qs%cgzd8
-cR8%MіȏfrROWy?f9;ɟU$;#yeEɪ 3eI;&T~\rH3،Rm%do
-%RLVk
-Q4+da=/p_#<n\Tak#l7\.mX.'}D!˦%@(QWQVAlŕ&[jm>xJqr筗ӱJEA8@f`3osɕchMnگTm>xxCK[m;bO@0=+yZ|^փ7T|wyiJLKYSVY<ZԯHYsN?UOg4ZIiy^RG=3강x[?ӿRRDrPp!xpmu%#t*8h#WQ-
-w0\auF]}ȰN9i!PΦV\M^xjAk2s%2Eeeρh\2uqQ͙xt3*gBLt̤YOѫ" N>9)['Gzp$қf^+k8
-_# <ŭ>^-Z090#kvFQk&F^Wf-)j]L݂PSW}V)nO|:IAIvۀdNzT:C52G7R+D?0>*W*aF2BУJ侺(j~6,[q@.)L>_3!sSҭ:&:Tk %',(Pu kS^,k5츒AU|2d$UOo3HŞonQ iEeZTJ[hza[c!j>Axi<zB]Vpeo\Tss`i7jף`>y'IK9t̫,BO]lPCQtj7	YT~TXa9Kj8RQh`S#
-Ov_T,jh]ޫ*ژBP	k!/ylΑR&3k̼ӛyOs2?`uwͼyWdZ;ewHpa,g]Bz1&0d92#M.<*N'X"&,gWvd+˲uy4.a5=@7큅D
-Ckoo)CQPO+P!xJP|D_;G*vG`ީpHw-S"- ŽZ\vk=Zg{ڋYԠs խ~چl{kz{)&ܪZ9G~Jx'ݢ?oE:cU[{㖌^f:';|f4Rg+9WBAF y~4<ی[8{o05Aϝ0l>}ޭdNN<iaa*RtHA(DV<RÜ<	# 	tX.آ:AD[ѧb腭
->E4 \UEF';eĕ.m-ݨB`:=_xI/0A!$A5rs,m{P.QVCƤКx>Ɓӆ/?/jY44Tsl!HG0GB0CCr҇/d1DT)}ʮod􍨔S)ةw@X-1XG#:TG:dձ/kOIAP$_pȪs7?(BRs+lH1XR[% YRg5;qVSs4./ԨSAB;5X<߼_QtzPH~$=~ZWj}ڤ>-}@#y?mroi>O`X9^m҈J-IŚkĘx@1c632G RMMĒ4%6ͤ*wأ`ǩeɺ<e~|j/`$?~mz؏y$ʃMɃO̅j
-~p#]ztMZKl(\Šl򍗉ʍ
-מ:[C|CX'0,|]3ocnct,9ـ` >O6*?zӃN~Gt1[l:I3p>M?.Ro׾՟|Kr<:o#{}hpuD)9ث%xQ3LE~ӴڔH]X]*|fp3bRO*:}DP ڴR؀IMYZن`@ -X>%WREb<q扵MaS-B<g-4Y]R QSYi#IQH,XH3)舿#`y+o݀9Y19Wljzqsdyٶ]RT)OnEuCāE³;_Jk!kǬvkl}JUk[E]-myĸ4"UO*'}ZV '|9W:]sT*DjC:ڊIF*fRHq}N(tCE,bQM5>hZp3dB !D|(t^pe=L=L؎m@PϊOso/x{gϚ5jhluWcg5gn/~9Y1sȳn;n*4*2
\ No newline at end of file
