浏览代码

Merge branch '17.0' into 17.0-mmi

Mathieu Moulin 1 年之前
父节点
当前提交
adcff9e3d4
共有 100 个文件被更改,包括 7707 次插入1515 次删除
  1. 356 0
      .github/workflows/github_ci_php71_pgsql.yml.disabled
  2. 329 0
      .github/workflows/github_ci_php81_mysql.yml.disabled
  3. 5 1
      .github/workflows/stale-issues-safe.yml
  4. 0 25
      .github/workflows/stale-issues.yml.disabled
  5. 15 6
      .scrutinizer.yml
  6. 344 322
      .travis.yml
  7. 151 145
      .tx/config
  8. 5 5
      COPYRIGHT
  9. 526 112
      ChangeLog
  10. 4 0
      README-FR.md
  11. 1 1
      README.md
  12. 18 18
      SECURITY.md
  13. 1 1
      build/debian/compat
  14. 0 1
      build/debian/control
  15. 0 25
      build/debian/copyright
  16. 0 1
      build/debian/dolibarr.postinst
  17. 0 1
      build/debian/install.forced.php.install
  18. 5 2
      build/debian/rules
  19. 0 2
      build/debian/source/include-binaries
  20. 3 1
      build/debian/source/options
  21. 2 0
      build/exe/doliwamp/README.md
  22. 5 6
      build/exe/doliwamp/config.inc.php.install
  23. 2 1
      build/generate_filelist_xml.php
  24. 9 8
      build/makepack-dolibarr.pl
  25. 1 0
      build/makepack-dolibarrmodule.pl
  26. 17 5
      build/makepack-howto.txt
  27. 4 8
      build/phpstan/bootstrap.php
  28. 2 3
      build/rpm/dolibarr_fedora.spec
  29. 2 3
      build/rpm/dolibarr_generic.spec
  30. 1 1
      build/rpm/dolibarr_mandriva.spec
  31. 2 2
      build/rpm/dolibarr_opensuse.spec
  32. 0 1
      build/rpm/install.forced.php.fedora
  33. 0 1
      build/rpm/install.forced.php.mandriva
  34. 0 1
      build/rpm/install.forced.php.opensuse
  35. 7 5
      build/tgz/tar_exclude.txt
  36. 8 0
      dev/dolibarr_changes.txt
  37. 12 11
      dev/examples/ldap/ldapsearch_sample1.txt
  38. 3 3
      dev/examples/zapier/triggers/action.js
  39. 4 4
      dev/examples/zapier/triggers/contact.js
  40. 4 4
      dev/examples/zapier/triggers/member.js
  41. 3 3
      dev/examples/zapier/triggers/order.js
  42. 4 4
      dev/examples/zapier/triggers/thirdparty.js
  43. 4 4
      dev/examples/zapier/triggers/ticket.js
  44. 4 4
      dev/examples/zapier/triggers/user.js
  45. 1 1
      dev/initdata/generate-proposal.php
  46. 1 1
      dev/initdata/purge-data.php
  47. 1 1
      dev/initdemo/initdemopassword.sh
  48. 0 57
      dev/initdemo/mysqldump_dolibarr_16.0.0.sql
  49. 4497 0
      dev/initdemo/mysqldump_dolibarr_17.0.0.sql
  50. 14 0
      dev/initdemo/savedemo.sh
  51. 8 0
      dev/resources/iso-normes/accountancy/accountancy_rules.txt
  52. 二进制
      dev/resources/iso-normes/banking/iban_registry_0.pdf
  53. 104 104
      dev/resources/iso-normes/qr-bar-codes/ig-qr-bill-v2.2-fr.pdf
  54. 2 1
      dev/resources/iso-normes/tax/vat_number_names.txt
  55. 10 0
      dev/resources/iso-normes/tax/world_tax_rates.txt
  56. 0 8
      dev/resources/iso-normes/world_tax_rates.txt
  57. 10 3
      dev/setup/apache/virtualhost
  58. 3 2
      dev/setup/codesniffer/ruleset.xml
  59. 19 0
      dev/setup/fail2ban/filter.d/web-accesslog-limit403.conf
  60. 19 0
      dev/setup/fail2ban/filter.d/web-dolibarr-limitpublic.conf
  61. 3 4
      dev/setup/fail2ban/filter.d/web-dolibarr-rulesbruteforce.conf
  62. 3 4
      dev/setup/fail2ban/filter.d/web-dolibarr-rulespassforgotten.conf
  63. 16 2
      dev/setup/fail2ban/jail.local
  64. 3 3
      dev/tools/dolibarr-postgres2mysql.php
  65. 4 1
      dev/tools/github_authors_and_commits_peryear.sh
  66. 6 2
      dev/tools/github_commits_perversion.sh
  67. 16 0
      dev/tools/github_lines_perusers.sh
  68. 4 2
      dev/tools/optimize_images.sh
  69. 0 1
      dev/tools/test/namespacemig/main.inc.php
  70. 3 3
      dev/translation/autotranslator.class.php
  71. 2 2
      dev/translation/sanity_check_en_langfiles.php
  72. 2 2
      dev/translation/strip_language_file.php
  73. 1 1
      dev/translation/txpull.sh
  74. 77 29
      htdocs/accountancy/admin/account.php
  75. 3 2
      htdocs/accountancy/admin/accountmodel.php
  76. 14 14
      htdocs/accountancy/admin/card.php
  77. 20 15
      htdocs/accountancy/admin/categories.php
  78. 9 8
      htdocs/accountancy/admin/categories_list.php
  79. 2 1
      htdocs/accountancy/admin/closure.php
  80. 48 1
      htdocs/accountancy/admin/defaultaccounts.php
  81. 3 3
      htdocs/accountancy/admin/export.php
  82. 3 2
      htdocs/accountancy/admin/fiscalyear.php
  83. 4 3
      htdocs/accountancy/admin/fiscalyear_card.php
  84. 2 1
      htdocs/accountancy/admin/fiscalyear_info.php
  85. 68 2
      htdocs/accountancy/admin/index.php
  86. 2 7
      htdocs/accountancy/admin/journals_list.php
  87. 2 2
      htdocs/accountancy/admin/productaccount.php
  88. 3 2
      htdocs/accountancy/admin/subaccount.php
  89. 6 1
      htdocs/accountancy/bookkeeping/balance.php
  90. 20 12
      htdocs/accountancy/bookkeeping/card.php
  91. 212 85
      htdocs/accountancy/bookkeeping/list.php
  92. 145 59
      htdocs/accountancy/bookkeeping/listbyaccount.php
  93. 34 69
      htdocs/accountancy/class/accountancycategory.class.php
  94. 30 4
      htdocs/accountancy/class/accountancyexport.class.php
  95. 50 20
      htdocs/accountancy/class/accountingaccount.class.php
  96. 13 8
      htdocs/accountancy/class/accountingjournal.class.php
  97. 1 1
      htdocs/accountancy/class/bookkeeping.class.php
  98. 316 204
      htdocs/accountancy/class/lettering.class.php
  99. 3 2
      htdocs/accountancy/closure/index.php
  100. 2 2
      htdocs/accountancy/customer/card.php

+ 356 - 0
.github/workflows/github_ci_php71_pgsql.yml.disabled

@@ -0,0 +1,356 @@
+name: GitHub CI PHP 7.1 Postgres
+
+on:
+  push:
+    branches:
+      - develop
+      - 1*
+      - 2*
+  pull_request:
+    types: [opened]
+
+permissions:
+  contents: read
+
+jobs:
+  github_ci_php71_pgsql:
+    runs-on: ubuntu-latest
+    services:
+      mysql:
+        image: mysql:5.7
+        env:
+          MYSQL_ROOT_PASSWORD: password
+        ports:
+        - 32574:3306
+      postgres:
+        image: postgres
+        env:
+          POSTGRES_PASSWORD: postgres
+          POSTGRES_USER: postgres
+          POSTGRES_DB: postgres
+        # Set health checks to wait until postgres has started
+        options: >-
+          --health-cmd pg_isready
+          --health-interval 10s
+          --health-timeout 5s
+          --health-retries 5
+        ports:
+          - 5432:5432      
+
+    steps:
+    # git clone dolibarr into GITHUB_WORKSPACE = /home/runner/work/dolibarr/dolibarr
+    - uses: actions/checkout@v3
+      with:
+        fetch-depth: 1
+        
+    - name: Version PHP
+      run: |
+        php -i | head -
+
+    - name: Install packages for PHP 7.1
+      run: |
+        sudo composer self-update 2.2.18
+        sudo chmod -R a+rwx /home/runner
+        composer -n config -g vendor-dir htdocs/includes
+
+        sudo add-apt-repository -y ppa:ondrej/php
+        sudo apt-get update
+        sudo apt-get install -y pgloader memcached
+        sudo apt install apache2 php7.1 php7.1-cli php7.1-curl php7.1-mysql php7.1-pgsql php7.1-gd php7.1-imap php7.1-intl php7.1-ldap php7.1-xml php7.1-mbstring php7.1-xml php7.1-zip libapache2-mod-php7.1
+        sudo update-alternatives --set php /usr/bin/php7.1
+        php -i | head -
+        
+        cd $GITHUB_WORKSPACE
+        ls $GITHUB_WORKSPACE
+        composer -n require --ignore-platform-reqs phpunit/phpunit ^7.5 \
+                        php-parallel-lint/php-parallel-lint ^1 \
+                        php-parallel-lint/php-console-highlighter ^0 \
+                        php-parallel-lint/php-var-dump-check ~0.4 \
+                        squizlabs/php_codesniffer ^3
+        #For php7.3
+        #composer -n require phpunit/phpunit ^7.5 \
+        #                php-parallel-lint/php-parallel-lint ^1.2 \
+        #                php-parallel-lint/php-console-highlighter ^0 \
+        #                php-parallel-lint/php-var-dump-check ~0.4 \
+        #                squizlabs/php_codesniffer ^3
+        sudo rm -fr htdocs/includes/phpunit/php-code-coverage/src/Report/Html
+
+    - name: Adding path of binaries tools installed by composer to the PATH
+      run: | 
+        export PATH="$GITHUB_WORKSPACE/htdocs/includes/bin:$PATH"
+        echo $PATH
+        # We must have a directory bin created by the previous composer call
+        ls $GITHUB_WORKSPACE/htdocs/includes/bin
+
+    - name: Version information
+      run: |
+        composer -V
+        # Check Parallel-lint version
+        echo "Parallel-lint version"
+        htdocs/includes/bin/parallel-lint -V
+        # Check PHP CodeSniffer version
+        echo "PHPCS version"
+        htdocs/includes/bin/phpcs --version | head -
+        htdocs/includes/bin/phpcs -i | head -
+        # Check PHP Vardump check version
+        echo "PHP Vardump check version"
+        htdocs/includes/bin/var-dump-check --version
+        # Check PHPUnit version
+        echo "PHPUnit version"
+        htdocs/includes/bin/phpunit --version | head -
+        # Check Apache version
+        echo "Apache version"
+        apache2 -v | head -
+        # Check Database
+        echo "Database version"
+        mysql --version | head -
+        psql --version
+        echo "Check pgloader version"
+        pgloader --version
+        
+    - name: Create database
+      run: |
+        pwd
+        echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE 
+        sudo apt-get install -y mysql-client
+        mysql --version | head -
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SELECT VERSION();"  | head -
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SHOW DATABASES"
+        echo "Drop and create database"
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'DROP DATABASE IF EXISTS travis;'
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE DATABASE IF NOT EXISTS travis CHARACTER SET = 'utf8';"
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE USER 'travis'@'127.0.0.1' IDENTIFIED BY 'password';"
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;'
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'FLUSH PRIVILEGES;'
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql  
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';" 
+        
+        #psql -c 'create database travis;' -U postgres
+        #psql travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
+        #pgloader mysql://root:pass@127.0.0.1:32574/dolibarr_src postgresql://dolibarrowner:dolibarrownerpass@127.0.0.1/dolibarr_dest
+        ps fauxww | grep postgres
+        ls /etc/postgresql/14/main/
+        sudo chmod -R a+rwx /etc/postgresql/14/main/pg_hba.conf
+        
+        sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/14/main/pg_hba.conf
+        sudo cat /etc/postgresql/14/main/pg_hba.conf
+
+        sudo /etc/init.d/postgresql restart
+
+        psql postgresql://postgres:postgres@127.0.0.1:5432 -l -A
+
+        psql postgresql://postgres:postgres@127.0.0.1:5432 -c 'create database travis;'
+
+        sudo mkdir -p /tmp/pgloader
+        sudo chmod -R a+rwx /tmp/pgloader/
+        echo sudo pgloader mysql://root:password@127.0.0.1:32574/travis postgresql://postgres:postgres@127.0.0.1:5432/travis
+        sudo pgloader mysql://root:password@127.0.0.1:32574/travis postgresql://postgres:postgres@127.0.0.1:5432/travis
+        echo 'ALTER SEQUENCE llx_accountingaccount_rowid_seq RENAME TO llx_accounting_account_rowid_seq' | psql postgresql://postgres:postgres@127.0.0.1:5432/travis
+        echo 'ALTER SEQUENCE llx_accounting_account_rowid_seq RESTART WITH 1000001;' | psql postgresql://postgres:postgres@127.0.0.1:5432/travis
+        # Create pgsql compatibility functions
+        psql postgresql://postgres:postgres@127.0.0.1:5432/travis < htdocs/install/pgsql/functions/functions.sql
+
+    - name: Generate Dolibarr conf file
+      run: |
+        export CONF_FILE=$GITHUB_WORKSPACE/htdocs/conf/conf.php
+        echo "Setting up Dolibarr $CONF_FILE"
+        echo '<?php' > $CONF_FILE
+        echo '$'dolibarr_main_url_root=\'http://127.0.0.1\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_document_root=\'/var/www/html\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_data_root=\'/var/www/html/documents\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_host=\'127.0.0.1\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_name=\'travis\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_user=\'root\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_pass=\'password\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_instance_unique_id=\'travis1234567890\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_type=\'mysqli\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_port=\'32574\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE
+        cat $CONF_FILE
+    - name: Generate install.forced.php file to test installation
+      run: |
+        export INSTALL_FORCED_FILE=$GITHUB_WORKSPACE/htdocs/install/install.forced.php
+        echo "Setting up Dolibarr $INSTALL_FORCED_FILE to test installation"
+        # Ensure we catch errors
+        set +e
+        echo '<?php' > $INSTALL_FORCED_FILE
+        echo '$'force_install_noedit=2';' >> $INSTALL_FORCED_FILE
+        #echo '$'force_install_type=\'mysqli\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_type=\'pgsql\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_dbserver=\'127.0.0.1\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_database=\'travis\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_databaselogin=\'root\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_databasepass=\'password\'';' >> $INSTALL_FORCED_FILE
+        #echo '$'force_install_port=\'32574\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_port=\'5432\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_prefix=\'llx_\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_createdatabase=false';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_createuser=false';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_mainforcehttps=false';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_main_data_root=\'/var/www/html\'';' >> $INSTALL_FORCED_FILE
+        cat $INSTALL_FORCED_FILE
+    
+    - name: Create document directory
+      run: |
+        echo "Create documents directory and set permissions"
+        # and admin/temp subdirectory needed for unit tests
+        sudo mkdir -p /var/www/html/documents/admin/temp
+        sudo chmod -R a+rwx /var/www/html/documents
+        sudo echo "***** First line of dolibarr.log" > /var/www/html/documents/dolibarr.log
+        sudo chmod a+rwx /var/www/html/documents/dolibarr.log
+  
+    - name: Copy app into /var/www
+      run: | 
+        sudo cp -r $GITHUB_WORKSPACE/htdocs/. /var/www/html
+        sudo mv /var/www/html/index.html /var/www/html/index.disabled.html
+        sudo ln -fs /var/www/html /var/www/htdocs
+        sudo cp -r $GITHUB_WORKSPACE/test/. /var/www/test
+        sudo cp -r $GITHUB_WORKSPACE/dev/. /var/www/dev
+        sudo cp -r $GITHUB_WORKSPACE/scripts/. /var/www/scripts
+
+    - name: Setup Apache
+      run: |
+        pwd
+        whoami
+        # install apache web server
+        a2query -s
+        a2query -m
+        ls /etc/apache2/sites-available
+        #sudo cp -f $GITHUB_WORKSPACE/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf
+        #sudo sed -e "s?%GITHUB_WORKSPACE%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
+        a2ensite 000-default
+        a2enmod php7.1
+        ls /etc/apache2/sites-enabled
+        sudo adduser $(whoami) www-data
+        sudo adduser $(whoami) root
+        sudo adduser root www-data
+        sudo chown -R www-data:www-data /etc/apache2/sites-available/
+        sudo chmod -R 777 /etc/apache2/sites-available/
+        sudo chown -R www-data:www-data /var/www/html/
+        ls -l /var/www/html
+        #ls -l /var/www/html/conf
+        #ls -l /var/www/html/install/
+        set +e
+        sudo cat /etc/apache2/sites-enabled/000-default.conf
+        sudo service apache2 restart
+        curl -I localhost
+    - name: Chech Apache availability
+      run: |
+        echo "Checking webserver availability by a wget -O - --debug http://127.0.0.1"
+        # Ensure we stop on error with set -e
+        set +e
+        ls /var/log/apache2
+        #wget -O - --debug http://127.0.0.1/robots.txt
+        # The wget should return a page with line '<meta name="generator" content="Dolibarr installer">
+        wget -O - --debug http://127.0.0.1 > $GITHUB_WORKSPACE/test.html 2>&1
+        head -n 200 $GITHUB_WORKSPACE/test.html
+        
+        echo Logs are...
+        #sudo cat /tmp/install.log
+        sudo cat /var/log/apache2/access.log
+        sudo cat /var/log/apache2/error.log
+        sudo cat /var/log/apache2/other_vhosts_access.log
+        set +e
+
+    - name: Upgrading Dolibarr
+      run: |
+        # Ensure we catch errors. Set this to +e if you want to go to the end to see log files.
+        set -e
+        sudo chmod -R a+rwx $GITHUB_WORKSPACE
+        sudo chmod -R a+rwx /var/www
+        ls -l /var/www
+        cd /var/www/html/install
+        echo Execute upgrade, upgrade2 and step5 for each major version
+        php upgrade.php 3.5.0 3.6.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade350360.log
+        php upgrade2.php 3.5.0 3.6.0 > $GITHUB_WORKSPACE/upgrade350360-2.log
+        php step5.php 3.5.0 3.6.0 > $GITHUB_WORKSPACE/upgrade350360-3.log
+        php upgrade.php 3.6.0 3.7.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade360370.log
+        php upgrade2.php 3.6.0 3.7.0 > $GITHUB_WORKSPACE/upgrade360370-2.log
+        php step5.php 3.6.0 3.7.0 > $GITHUB_WORKSPACE/upgrade360370-3.log
+        php upgrade.php 3.7.0 3.8.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade370380.log
+        php upgrade2.php 3.7.0 3.8.0 > $GITHUB_WORKSPACE/upgrade370380-2.log
+        php step5.php 3.7.0 3.8.0 > $GITHUB_WORKSPACE/upgrade370380-3.log
+        php upgrade.php 3.8.0 3.9.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade380390.log
+        php upgrade2.php 3.8.0 3.9.0 > $GITHUB_WORKSPACE/upgrade380390-2.log
+        php step5.php 3.8.0 3.9.0 > $GITHUB_WORKSPACE/upgrade380390-3.log
+        php upgrade.php 3.9.0 4.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade390400.log
+        php upgrade2.php 3.9.0 4.0.0 > $GITHUB_WORKSPACE/upgrade390400-2.log
+        php step5.php 3.9.0 4.0.0 > $GITHUB_WORKSPACE/upgrade390400-3.log
+        php upgrade.php 4.0.0 5.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade400500.log
+        php upgrade2.php 4.0.0 5.0.0 > $GITHUB_WORKSPACE/upgrade400500-2.log
+        php step5.php 4.0.0 5.0.0 > $GITHUB_WORKSPACE/upgrade400500-3.log
+        php upgrade.php 5.0.0 6.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade500600.log
+        php upgrade2.php 5.0.0 6.0.0 > $GITHUB_WORKSPACE/upgrade500600-2.log
+        php step5.php 5.0.0 6.0.0 > $GITHUB_WORKSPACE/upgrade500600-3.log
+        php upgrade.php 6.0.0 7.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade600700.log
+        php upgrade2.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-2.log
+        php step5.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-3.log
+        php upgrade.php 7.0.0 8.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade700800.log
+        php upgrade2.php 7.0.0 8.0.0 > $GITHUB_WORKSPACE/upgrade700800-2.log
+        php step5.php 7.0.0 8.0.0 > $GITHUB_WORKSPACE/upgrade700800-3.log
+        php upgrade.php 8.0.0 9.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade800900.log
+        php upgrade2.php 8.0.0 9.0.0 > $GITHUB_WORKSPACE/upgrade800900-2.log
+        php step5.php 8.0.0 9.0.0 > $GITHUB_WORKSPACE/upgrade800900-3.log
+        php upgrade.php 9.0.0 10.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade9001000.log
+        php upgrade2.php 9.0.0 10.0.0 > $GITHUB_WORKSPACE/upgrade9001000-2.log
+        php step5.php 9.0.0 10.0.0 > $GITHUB_WORKSPACE/upgrade9001000-3.log
+        php upgrade.php 10.0.0 11.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade10001100.log
+        php upgrade2.php 10.0.0 11.0.0 > $GITHUB_WORKSPACE/upgrade10001100-2.log
+        php step5.php 10.0.0 11.0.0 > $GITHUB_WORKSPACE/upgrade10001100-3.log
+        php upgrade.php 11.0.0 12.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade11001200.log
+        php upgrade2.php 11.0.0 12.0.0 > $GITHUB_WORKSPACE/upgrade11001200-2.log
+        php step5.php 11.0.0 12.0.0 > $GITHUB_WORKSPACE/upgrade11001200-3.log
+        php upgrade.php 12.0.0 13.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade12001300.log
+        php upgrade2.php 12.0.0 13.0.0 > $GITHUB_WORKSPACE/upgrade12001300-2.log
+        php step5.php 12.0.0 13.0.0 > $GITHUB_WORKSPACE/upgrade12001300-3.log
+        php upgrade.php 13.0.0 14.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade13001400.log
+        php upgrade2.php 13.0.0 14.0.0 > $GITHUB_WORKSPACE/upgrade13001400-2.log
+        php step5.php 13.0.0 14.0.0 > $GITHUB_WORKSPACE/upgrade13001400-3.log
+        php upgrade.php 14.0.0 15.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade14001500.log
+        php upgrade2.php 14.0.0 15.0.0 > $GITHUB_WORKSPACE/upgrade14001500-2.log
+        php step5.php 14.0.0 15.0.0 > $GITHUB_WORKSPACE/upgrade14001500-3.log
+        php upgrade.php 15.0.0 16.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade15001600.log
+        php upgrade2.php 15.0.0 16.0.0 > $GITHUB_WORKSPACE/upgrade15001600-2.log
+        php step5.php 15.0.0 16.0.0 > $GITHUB_WORKSPACE/upgrade15001600-3.log
+        php upgrade.php 16.0.0 17.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade16001700.log
+        php upgrade2.php 16.0.0 17.0.0 > $GITHUB_WORKSPACE/upgrade16001700-2.log
+        php step5.php 16.0.0 17.0.0 > $GITHUB_WORKSPACE/upgrade16001700-3.log
+        
+    - name: Result of migration scripts
+      if: always()
+      run: |
+        ls -alrt $GITHUB_WORKSPACE/
+        
+        echo Show content of last file
+        cat "$(ls -rt $GITHUB_WORKSPACE/ | tail -n1)"
+
+    - name: Enabling new modules
+      run: | 
+        # Enable modules not enabled into original dump
+        set -e
+        cd /var/www/html/install
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_ProductBatch,MAIN_MODULE_SupplierProposal,MAIN_MODULE_STRIPE,MAIN_MODULE_ExpenseReport > $GITHUB_WORKSPACE/enablemodule.log
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP >> $GITHUB_WORKSPACE/enablemodule.log
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT >> $GITHUB_WORKSPACE/enablemodule.log
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KnowledgeManagement,MAIN_MODULE_EventOrganization,MAIN_MODULE_PARTNERSHIP >> $GITHUB_WORKSPACE/enablemodule.log
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_EmailCollector >> $GITHUB_WORKSPACE/enablemodule.log
+        echo $?
+        cd -
+
+    - name: Result of enabling modules scripts
+      if: always()
+      run: |
+        echo Show content of enablemodule.log file
+        cat $GITHUB_WORKSPACE/enablemodule.log
+
+    - name: Unit testing
+      run: |
+        # Ensure we catch errors. Set this to +e instead of -e if you want to go to the end to see dolibarr.log file.
+        set -e
+        cd /var/www/html
+        sudo chmod -R a+rwx /var/www/html/documents
+        includes/bin/phpunit -d memory_limit=-1 -c /var/www/test/phpunit/phpunittest.xml /var/www/test/phpunit/AllTests.php
+        phpunitresult=$?
+        echo "Phpunit return code = $phpunitresult"
+        set +e     
+

+ 329 - 0
.github/workflows/github_ci_php81_mysql.yml.disabled

@@ -0,0 +1,329 @@
+name: GitHub CI PHP 8.1 MySQL
+
+on:
+  push:
+    branches:
+      - develop
+      - 1*
+      - 2*
+  pull_request:
+    types: [opened]
+
+permissions:
+  contents: read
+
+jobs:
+  github_ci_php81_mysql:
+    runs-on: ubuntu-latest
+    services:
+      mysql:
+        image: mysql:5.7
+        env:
+          MYSQL_ROOT_PASSWORD: password
+        ports:
+        - 32574:3306
+
+    steps:
+    # git clone dolibarr into GITHUB_WORKSPACE = /home/runner/work/dolibarr/dolibarr
+    - uses: actions/checkout@v3
+      with:
+        fetch-depth: 1
+        
+    - name: Version PHP
+      run: |
+        php -i | head -
+
+    - name: Install packages for PHP 8.1
+      run: |
+        sudo composer self-update 2.2.18
+        sudo chmod -R a+rwx /home/runner
+        composer -n config -g vendor-dir htdocs/includes
+        
+        sudo add-apt-repository -y ppa:ondrej/php
+        sudo apt-get update
+        sudo apt-get install -y pgloader memcached
+        sudo apt install apache2 php8.1 php8.1-cli php8.1-curl php8.1-mysql php8.1-pgsql php8.1-gd php8.1-imap php8.1-intl php8.1-ldap php8.1-xml php8.1-mbstring php8.1-xml php8.1-zip libapache2-mod-php8.1
+        sudo update-alternatives --set php /usr/bin/php8.1
+        php -i | head -
+        
+        composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \
+          php-parallel-lint/php-parallel-lint ^1.2 \
+          php-parallel-lint/php-console-highlighter ^0 \
+          php-parallel-lint/php-var-dump-check ~0.4 \
+          squizlabs/php_codesniffer ^3
+        sudo rm -fr htdocs/includes/phpunit/php-code-coverage/src/Report/Html
+
+    - name: Adding path of binaries tools installed by composer to the PATH
+      run: | 
+        export PATH="$GITHUB_WORKSPACE/htdocs/includes/bin:$PATH"
+        echo $PATH
+        # We must have a directory bin created by the previous composer call
+        ls $GITHUB_WORKSPACE/htdocs/includes/bin
+
+    - name: Version information
+      run: |
+        composer -V
+        # Check Parallel-lint version
+        echo "Parallel-lint version"
+        htdocs/includes/bin/parallel-lint -V
+        # Check PHP CodeSniffer version
+        echo "PHPCS version"
+        htdocs/includes/bin/phpcs --version | head -
+        htdocs/includes/bin/phpcs -i | head -
+        # Check PHP Vardump check version
+        echo "PHP Vardump check version"
+        htdocs/includes/bin/var-dump-check --version
+        # Check PHPUnit version
+        echo "PHPUnit version"
+        htdocs/includes/bin/phpunit --version | head -
+        # Check Apache version
+        echo "Apache version"
+        apache2 -v | head -
+        # Check Database
+        echo "Database version"
+        mysql --version | head -
+        psql --version
+        echo "Check pgloader version"
+        pgloader --version
+        
+    - name: Create database
+      run: |
+        pwd
+        echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE 
+        sudo apt-get install -y mysql-client
+        mysql --version | head -
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SELECT VERSION();"  | head -
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SHOW DATABASES"
+        echo "Drop and create database"
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'DROP DATABASE IF EXISTS travis;'
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE DATABASE IF NOT EXISTS travis CHARACTER SET = 'utf8';"
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE USER 'travis'@'127.0.0.1' IDENTIFIED BY 'password';"
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;'
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'FLUSH PRIVILEGES;'
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql  
+        mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';" 
+    - name: Generate Dolibarr conf file
+      run: |
+        export CONF_FILE=$GITHUB_WORKSPACE/htdocs/conf/conf.php
+        echo "Setting up Dolibarr $CONF_FILE"
+        echo '<?php' > $CONF_FILE
+        echo '$'dolibarr_main_url_root=\'http://127.0.0.1\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_document_root=\'/var/www/html\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_data_root=\'/var/www/html/documents\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_host=\'127.0.0.1\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_name=\'travis\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_user=\'root\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_pass=\'password\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_instance_unique_id=\'travis1234567890\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_type=\'mysqli\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_db_port=\'32574\'';' >> $CONF_FILE
+        echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE
+        cat $CONF_FILE
+    - name: Generate install.forced.php file to test installation
+      run: |
+        export INSTALL_FORCED_FILE=$GITHUB_WORKSPACE/htdocs/install/install.forced.php
+        echo "Setting up Dolibarr $INSTALL_FORCED_FILE to test installation"
+        # Ensure we catch errors
+        set +e
+        echo '<?php' > $INSTALL_FORCED_FILE
+        echo '$'force_install_noedit=2';' >> $INSTALL_FORCED_FILE
+        # For mysql
+        echo '$'force_install_type=\'mysqli\'';' >> $INSTALL_FORCED_FILE
+        #echo '$'force_install_type=\'pgsql\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_dbserver=\'127.0.0.1\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_database=\'travis\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_databaselogin=\'root\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_databasepass=\'password\'';' >> $INSTALL_FORCED_FILE
+        # For mysql
+        echo '$'force_install_port=\'32574\'';' >> $INSTALL_FORCED_FILE
+        #echo '$'force_install_port=\'5432\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_prefix=\'llx_\'';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_createdatabase=false';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_createuser=false';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_mainforcehttps=false';' >> $INSTALL_FORCED_FILE
+        echo '$'force_install_main_data_root=\'/var/www/html\'';' >> $INSTALL_FORCED_FILE
+        cat $INSTALL_FORCED_FILE
+    
+    - name: Create document directory
+      run: |
+        echo "Create documents directory and set permissions"
+        # and admin/temp subdirectory needed for unit tests
+        sudo mkdir -p /var/www/html/documents/admin/temp
+        sudo chmod -R a+rwx /var/www/html/documents
+        sudo echo "***** First line of dolibarr.log" > /var/www/html/documents/dolibarr.log
+        sudo chmod a+rwx /var/www/html/documents/dolibarr.log
+  
+    - name: Copy app into /var/www
+      run: | 
+        sudo cp -r $GITHUB_WORKSPACE/htdocs/. /var/www/html
+        sudo mv /var/www/html/index.html /var/www/html/index.disabled.html
+        sudo ln -fs /var/www/html /var/www/htdocs
+        sudo cp -r $GITHUB_WORKSPACE/test/. /var/www/test
+        sudo cp -r $GITHUB_WORKSPACE/dev/. /var/www/dev
+        sudo cp -r $GITHUB_WORKSPACE/scripts/. /var/www/scripts
+
+    - name: Setup Apache
+      run: |
+        pwd
+        whoami
+        # install apache web server
+        a2query -s
+        a2query -m
+        ls /etc/apache2/sites-available
+        #sudo cp -f $GITHUB_WORKSPACE/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf
+        #sudo sed -e "s?%GITHUB_WORKSPACE%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
+        a2ensite 000-default
+        a2enmod php8.1
+        ls /etc/apache2/sites-enabled
+        sudo adduser $(whoami) www-data
+        sudo adduser $(whoami) root
+        sudo adduser root www-data
+        sudo chown -R www-data:www-data /etc/apache2/sites-available/
+        sudo chmod -R 777 /etc/apache2/sites-available/
+        sudo chown -R www-data:www-data /var/www/html/
+        ls -l /var/www/html
+        #ls -l /var/www/html/conf
+        #ls -l /var/www/html/install/
+        set +e
+        sudo cat /etc/apache2/sites-enabled/000-default.conf
+        sudo service apache2 restart
+        curl -I localhost
+    - name: Chech Apache availability
+      run: |
+        echo "Checking webserver availability by a wget -O - --debug http://127.0.0.1"
+        # Ensure we stop on error with set -e
+        set +e
+        ls /var/log/apache2
+        #wget -O - --debug http://127.0.0.1/robots.txt
+        # The wget should return a page with line '<meta name="generator" content="Dolibarr installer">
+        wget -O - --debug http://127.0.0.1 > $GITHUB_WORKSPACE/test.html 2>&1
+        head -n 200 $GITHUB_WORKSPACE/test.html
+        
+        echo Logs are...
+        #sudo cat /tmp/install.log
+        sudo cat /var/log/apache2/access.log
+        sudo cat /var/log/apache2/error.log
+        sudo cat /var/log/apache2/other_vhosts_access.log
+        set +e
+
+    - name: Upgrading Dolibarr
+      run: |
+        # Ensure we catch errors. Set this to +e if you want to go to the end to see log files.
+        set -e
+        sudo chmod -R a+rwx $GITHUB_WORKSPACE
+        sudo chmod -R a+rwx /var/www
+        ls -l /var/www
+        cd /var/www/html/install
+        echo Execute upgrade, upgrade2 and step5 for each major version
+        php upgrade.php 3.5.0 3.6.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade350360.log
+        php upgrade2.php 3.5.0 3.6.0 > $GITHUB_WORKSPACE/upgrade350360-2.log
+        php step5.php 3.5.0 3.6.0 > $GITHUB_WORKSPACE/upgrade350360-3.log
+        php upgrade.php 3.6.0 3.7.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade360370.log
+        php upgrade2.php 3.6.0 3.7.0 > $GITHUB_WORKSPACE/upgrade360370-2.log
+        php step5.php 3.6.0 3.7.0 > $GITHUB_WORKSPACE/upgrade360370-3.log
+        php upgrade.php 3.7.0 3.8.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade370380.log
+        php upgrade2.php 3.7.0 3.8.0 > $GITHUB_WORKSPACE/upgrade370380-2.log
+        php step5.php 3.7.0 3.8.0 > $GITHUB_WORKSPACE/upgrade370380-3.log
+        php upgrade.php 3.8.0 3.9.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade380390.log
+        php upgrade2.php 3.8.0 3.9.0 > $GITHUB_WORKSPACE/upgrade380390-2.log
+        php step5.php 3.8.0 3.9.0 > $GITHUB_WORKSPACE/upgrade380390-3.log
+        php upgrade.php 3.9.0 4.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade390400.log
+        php upgrade2.php 3.9.0 4.0.0 > $GITHUB_WORKSPACE/upgrade390400-2.log
+        php step5.php 3.9.0 4.0.0 > $GITHUB_WORKSPACE/upgrade390400-3.log
+        php upgrade.php 4.0.0 5.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade400500.log
+        php upgrade2.php 4.0.0 5.0.0 > $GITHUB_WORKSPACE/upgrade400500-2.log
+        php step5.php 4.0.0 5.0.0 > $GITHUB_WORKSPACE/upgrade400500-3.log
+        php upgrade.php 5.0.0 6.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade500600.log
+        php upgrade2.php 5.0.0 6.0.0 > $GITHUB_WORKSPACE/upgrade500600-2.log
+        php step5.php 5.0.0 6.0.0 > $GITHUB_WORKSPACE/upgrade500600-3.log
+        php upgrade.php 6.0.0 7.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade600700.log
+        php upgrade2.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-2.log
+        php step5.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-3.log
+        php upgrade.php 7.0.0 8.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade700800.log
+        php upgrade2.php 7.0.0 8.0.0 > $GITHUB_WORKSPACE/upgrade700800-2.log
+        php step5.php 7.0.0 8.0.0 > $GITHUB_WORKSPACE/upgrade700800-3.log
+        php upgrade.php 8.0.0 9.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade800900.log
+        php upgrade2.php 8.0.0 9.0.0 > $GITHUB_WORKSPACE/upgrade800900-2.log
+        php step5.php 8.0.0 9.0.0 > $GITHUB_WORKSPACE/upgrade800900-3.log
+        php upgrade.php 9.0.0 10.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade9001000.log
+        php upgrade2.php 9.0.0 10.0.0 > $GITHUB_WORKSPACE/upgrade9001000-2.log
+        php step5.php 9.0.0 10.0.0 > $GITHUB_WORKSPACE/upgrade9001000-3.log
+        php upgrade.php 10.0.0 11.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade10001100.log
+        php upgrade2.php 10.0.0 11.0.0 > $GITHUB_WORKSPACE/upgrade10001100-2.log
+        php step5.php 10.0.0 11.0.0 > $GITHUB_WORKSPACE/upgrade10001100-3.log
+        php upgrade.php 11.0.0 12.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade11001200.log
+        php upgrade2.php 11.0.0 12.0.0 > $GITHUB_WORKSPACE/upgrade11001200-2.log
+        php step5.php 11.0.0 12.0.0 > $GITHUB_WORKSPACE/upgrade11001200-3.log
+        php upgrade.php 12.0.0 13.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade12001300.log
+        php upgrade2.php 12.0.0 13.0.0 > $GITHUB_WORKSPACE/upgrade12001300-2.log
+        php step5.php 12.0.0 13.0.0 > $GITHUB_WORKSPACE/upgrade12001300-3.log
+        php upgrade.php 13.0.0 14.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade13001400.log
+        php upgrade2.php 13.0.0 14.0.0 > $GITHUB_WORKSPACE/upgrade13001400-2.log
+        php step5.php 13.0.0 14.0.0 > $GITHUB_WORKSPACE/upgrade13001400-3.log
+        php upgrade.php 14.0.0 15.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade14001500.log
+        php upgrade2.php 14.0.0 15.0.0 > $GITHUB_WORKSPACE/upgrade14001500-2.log
+        php step5.php 14.0.0 15.0.0 > $GITHUB_WORKSPACE/upgrade14001500-3.log
+        php upgrade.php 15.0.0 16.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade15001600.log
+        php upgrade2.php 15.0.0 16.0.0 > $GITHUB_WORKSPACE/upgrade15001600-2.log
+        php step5.php 15.0.0 16.0.0 > $GITHUB_WORKSPACE/upgrade15001600-3.log
+        php upgrade.php 16.0.0 17.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade16001700.log
+        php upgrade2.php 16.0.0 17.0.0 > $GITHUB_WORKSPACE/upgrade16001700-2.log
+        php step5.php 16.0.0 17.0.0 > $GITHUB_WORKSPACE/upgrade16001700-3.log
+        
+    - name: Result of migration scripts
+      if: always()
+      run: |
+        ls -alrt $GITHUB_WORKSPACE/
+        
+        echo Show content of last file
+        cat "$(ls -rt $GITHUB_WORKSPACE/ | tail -n1)"
+
+    - name: Enabling new modules
+      run: | 
+        # Enable modules not enabled into original dump
+        set -e
+        cd /var/www/html/install
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_ProductBatch,MAIN_MODULE_SupplierProposal,MAIN_MODULE_STRIPE,MAIN_MODULE_ExpenseReport > $GITHUB_WORKSPACE/enablemodule.log
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP >> $GITHUB_WORKSPACE/enablemodule.log
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT >> $GITHUB_WORKSPACE/enablemodule.log
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KnowledgeManagement,MAIN_MODULE_EventOrganization,MAIN_MODULE_PARTNERSHIP >> $GITHUB_WORKSPACE/enablemodule.log
+        php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_EmailCollector >> $GITHUB_WORKSPACE/enablemodule.log
+        echo $?
+        cd -
+
+    - name: Result of enabling modules scripts
+      if: always()
+      run: |
+        echo Show content of enablemodule.log file
+        cat $GITHUB_WORKSPACE/enablemodule.log
+
+    - name: Unit testing
+      run: |
+        # Ensure we catch errors. Set this to +e instead of -e if you want to go to the end to see dolibarr.log file.
+        set -e
+        cd /var/www/html
+        sudo chmod -R a+rwx /var/www/html/documents
+        includes/bin/phpunit -d memory_limit=-1 -c /var/www/test/phpunit/phpunittest.xml /var/www/test/phpunit/AllTests.php
+        phpunitresult=$?
+        echo "Phpunit return code = $phpunitresult"
+        set +e     
+
+    - name: Code quality check - Lint
+      if: github.event_name == 'push'
+      run: |
+        htdocs/includes/bin/parallel-lint -e php --exclude dev/tools/test/namespacemig --exclude htdocs/includes/composer --exclude htdocs/includes/myclabs --exclude htdocs/includes/phpspec --exclude dev/initdata/dbf/includes \
+          --exclude htdocs/includes/sabre --exclude htdocs/includes/phpoffice/PhpSpreadsheet --exclude htdocs/includes/sebastian \
+          --exclude htdocs/includes/squizlabs/php_codesniffer --exclude htdocs/includes/jakub-onderka --exclude htdocs/includes/php-parallel-lint --exclude htdocs/includes/symfony \
+          --exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/maximebf \
+          --exclude htdocs/includes/phpunit/ --exclude htdocs/includes/tecnickcom/tcpdf/include/barcodes --exclude htdocs/includes/webmozart --exclude htdocs/includes/webklex --blame .
+
+    - name: Code quality check - phpcs
+      if: github.event_name == 'push'
+      run: |
+         htdocs/includes/bin/phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .;     
+
+    - name: Code quality check - var-dump-check
+      if: github.event_name == 'push'
+      run: |
+        htdocs/includes/bin/var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php .
+

+ 5 - 1
.github/workflows/stale-issues-safe.yml

@@ -6,9 +6,13 @@ on:
   - cron: "0 21 * * *"
   issue_comment:
     types: [created]
+    
+permissions: {} # none
 
 jobs:
   stale:
+    permissions:
+      issues: write
     runs-on: ubuntu-latest
     steps:
     - uses: Dolibarr/stale@staleunstale
@@ -21,4 +25,4 @@ jobs:
         days-before-close: 10
         operations-per-run: 100
         dry-run: false
-        
+        

+ 0 - 25
.github/workflows/stale-issues.yml.disabled

@@ -1,25 +0,0 @@
-# See syntax file on https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
-name: "Close stale issues (bugs and feature requests)"
-
-on:
-  schedule:
-  - cron: "0 20 * * *"
-
-jobs:
-  stale:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: Dolibarr/stale@master
-      with:
-        repo-token: ${{ secrets.GITHUB_TOKEN }}
-        stale-issue-message: 'This issue is stale because it has been open 1 year with no activity. If this is a bug, please comment to confirm it is still present on latest stable version. if this is a feature request, please comment to notify the request is still relevant and not yet covered by latest stable version. This issue may be closed automatically by stale bot in 15 days (you should still be able to re-open it if required).'
-        stale-issue-label: 'Issue Stale (automatic label)'
-        exempt-issue-label: 'Priority High / Blocking'
-        days-before-stale: 365
-        days-before-close: -1
-        operations-per-run: 100
-        #stale-pr-message: 'This PR is stale because it has been open 1 year with no activity. If this PR is still mergeable (no conflict, nor Continuous Integration errors), please comment to confirm this merge is still expected. Without comment, this issue will be closed automatically by stale bot in 15 days.'
-        stale-pr-label: 'PR Stale (automatic label)'
-        stale-pr-message: 
-        exempt-pr-label: 'Priority Top Strategic'
-        

+ 15 - 6
.scrutinizer.yml

@@ -6,8 +6,9 @@ build:
         analysis:
             tests:
                 override:
-                    - php-scrutinizer-run
-          
+                    - command: php-scrutinizer-run
+                      idle_timeout: 8000
+
 imports:
     - javascript
     - php
@@ -39,9 +40,11 @@ tools:
                 - build/*
                 - dev/*
                 - doc/*
-                - test/*
+                - documents/*
                 - htdocs/includes/*
                 - htdocs/core/class/lessc.class.php
+                - node_modules/*
+                - test/*
             paths:
                 - htdocs/
                 - scripts/
@@ -181,8 +184,10 @@ tools:
                 - 'build/*'
                 - 'dev/*'
                 - 'doc/*'
-                - 'test/*'
+                - 'documents/*'
                 - 'htdocs/includes/*'
+                - 'node_modules/*'
+                - 'test/*'
             paths: {  }
 
     # Similar code detection
@@ -194,8 +199,10 @@ tools:
                 - 'build/*'
                 - 'dev/*'
                 - 'doc/*'
-                - 'test/*'
+                - 'documents/*'
                 - 'htdocs/includes/*'
+                - 'node_modules/*'
+                - 'test/*'
             paths: {  }
             
     # Coding-Style / Bug Detection
@@ -209,8 +216,10 @@ tools:
                 - 'build/*'
                 - 'dev/*'
                 - 'doc/*'
-                - 'test/*'
+                - 'documents/*'
                 - 'htdocs/includes/*'
+                - 'node_modules/*'
+                - 'test/*'
             paths: {  }
         config: {  }
         path_configs: {  }

+ 344 - 322
.travis.yml

@@ -2,12 +2,11 @@
 # from Dolibarr GitHub repository.
 # For syntax, see https://docs.travis-ci.com/user/languages/php/
 
-# We use dist: xenial to have php 5.6+ available
+# We use dist: bionic = 18.04, focal = 20.04
 os: linux
-dist: xenial
-#dist: bionic
+dist: focal
 
-language: php
+language: generic
 
 scan_logs: false
 
@@ -17,47 +16,40 @@ git:
 # Start on every boot
 services:
 - memcached
-- mysql
+#- mysql
 - postgresql
 
+
 addons:
-  # Force postgresql to 9.4 (the oldest availablable on xenial)
-  postgresql: '9.4'
-  apt:
-    sources:
-    # To use the last version of pgloader, we add repo of postgresql with a name available in http://apt.postgresql.org/pub/repos/apt/
-    - pgdg-xenial
-    packages:
-    # We need a webserver to test the webservices
-    # Let's install Apache with.
-    - apache2
-    # mod_php is not supported by Travis. Add fcgi. We install FPM later on.
-    - libapache2-mod-fastcgi
-    # We need pgloader for import mysql database into pgsql
-    - pgloader
+  mariadb: '10.5'
+
 
 env:
   global:
   # Set to true for very verbose output
-  - DEBUG=false
+  - DEBUG=true
 
 jobs:
   fast_finish: true
   #allow_failures:
   #- php: nightly
   include:
-    - stage: PHP 5.6-7.4
+    - stage: PHP 7.0-8.1
       if: type = push
-      php: '5.6'
-      env: DB=postgresql
-    - stage: PHP 5.6-7.4
+      php: '7.0'
+      env: 
+      - DB=postgresql
+      - TRAVIS_PHP_VERSION=7.0
+    - stage: PHP 7.0-8.1
       if: type = pull_request OR type = push
-      php: '7.4.22'
-      env: DB=mysql
-    - stage: PHP Dev
-      if: type = push AND branch = develop
-      php: nightly 
-      env: DB=mysql
+      php: '8.1'
+      env: 
+      - DB=mysql
+      - TRAVIS_PHP_VERSION=8.1
+    #- stage: PHP Dev
+    #  if: type = push AND branch = developdisabled
+    #  php: '8.2'
+    #  env: DB=mysql
 
 notifications:
   email:
@@ -70,64 +62,116 @@ notifications:
     on_failure: always
     use_notice: true
 
+
 before_install:
 - |
-  echo "Disabling Xdebug for composer"
-  export PHP_VERSION_NAME=$(phpenv version-name)
-  cp ~/.phpenv/versions/$PHP_VERSION_NAME/etc/conf.d/xdebug.ini /tmp/xdebug.ini
-  phpenv config-rm xdebug.ini
-  echo
+  echo "Remove awful phpenv and install packages"
+  sudo rm -fr ~/.phpenv
+  sudo rm -fr /root/.phpenv
+  sudo add-apt-repository -y ppa:ondrej/php
+  sudo apt-get update
+  echo TRAVIS_PHP_VERSION=$TRAVIS_PHP_VERSION
+
+- |
+  echo Install packages for PHP
+  sudo apt-get install -y pgloader memcached
+  if [ "$TRAVIS_PHP_VERSION" = '7.0' ]; then
+  	sudo apt install unzip apache2 php7.0 php7.0-cli php7.0-curl php7.0-mysql php7.0-pgsql php7.0-gd php7.0-imap php7.0-intl php7.0-ldap php7.0-xml php7.0-mbstring php7.0-xml php7.0-zip libapache2-mod-php7.0
+  fi
+  if [ "$TRAVIS_PHP_VERSION" = '8.1' ]; then
+  	sudo apt install unzip apache2 php8.1 php8.1-cli php8.1-curl php8.1-mysql php8.1-pgsql php8.1-gd php8.1-imap php8.1-intl php8.1-ldap php8.1-xml php8.1-mbstring php8.1-xml php8.1-zip libapache2-mod-php8.1
+  fi
+
+- |
+  echo Install pgsql if run is for pgsql
+  if [ "$DB" = 'postgresql' ]; then
+    echo "Check pgloader version"
+    pgloader --version
+    #ps fauxww | grep postgres
+    ls /etc/postgresql/13/main/
+
+    sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/13/main/pg_hba.conf
+    sudo cat /etc/postgresql/13/main/pg_hba.conf
+
+    sudo service postgresql restart
+
+    psql postgresql://postgres:postgres@127.0.0.1:5432 -l -A
+
+    psql postgresql://postgres:postgres@127.0.0.1:5432 -c 'create database travis;'
+    psql postgresql://postgres:postgres@127.0.0.1:5432 -c "CREATE USER travis WITH ENCRYPTED PASSWORD 'travis';"
+    psql postgresql://postgres:postgres@127.0.0.1:5432 -c 'GRANT ALL PRIVILEGES ON DATABASE travis TO travis;'
+
+    psql postgresql://postgres:postgres@127.0.0.1:5432 -l -A
+  fi
 
 install:
 - |
-  echo "Updating Composer (version 2.5 is bugged and generate phpunit error Exception: Serialization of 'Closure' is not allowed)"
-  #rm $TRAVIS_BUILD_DIR/composer.json
-  #rm $TRAVIS_BUILD_DIR/composer.lock
+  if [ "$TRAVIS_PHP_VERSION" = '7.0' ]; then
+    sudo update-alternatives --set php /usr/bin/php7.0
+  fi 
+  if [ "$TRAVIS_PHP_VERSION" = '8.1' ]; then
+    sudo update-alternatives --set php /usr/bin/php8.1
+  fi 
+  php -i | head -
+  
+- |
+  echo "Updating Composer config"
+  curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
+  HASH=`curl -sS https://composer.github.io/installer.sig`
+  echo $HASH
+  php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
+  sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
+  sudo chmod -R a+rwx /usr/local/bin/composer
   composer -V
-  composer self-update 2.4.4
-  #composer -n init
-  #composer -n config vendor-dir htdocs/includes
   composer -n config -g vendor-dir htdocs/includes
   echo
 
 - |
-  echo "Installing Composer dependencies - PHP Unit, Parallel Lint, PHP CodeSniffer, PHP Vardump check - for $TRAVIS_PHP_VERSION"
-  if [ "$TRAVIS_PHP_VERSION" = '5.6' ]; then
-    composer -n require phpunit/phpunit ^5 \
+  echo "Update Composer version and Install tools - PHP Unit, Parallel Lint, PHP CodeSniffer, PHP Vardump check - for $TRAVIS_PHP_VERSION"
+  echo "(composer version 2.5 is bugged and generate phpunit error Exception: Serialization of 'Closure' is not allowed)"
+  if [ "$TRAVIS_PHP_VERSION" = '7.0' ]; then
+    sudo composer self-update 2.2.18
+    composer -n require phpunit/phpunit ^6.0 \
                         php-parallel-lint/php-parallel-lint ^1 \
                         php-parallel-lint/php-console-highlighter ^0 \
                         php-parallel-lint/php-var-dump-check ~0.4 \
                         squizlabs/php_codesniffer ^3
   fi
-  if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then
-    composer -n require phpunit/phpunit ^6 \
+  if [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then
+    sudo composer self-update 2.2.18
+    composer -n require phpunit/phpunit ^7.5 \
                         php-parallel-lint/php-parallel-lint ^1 \
                         php-parallel-lint/php-console-highlighter ^0 \
                         php-parallel-lint/php-var-dump-check ~0.4 \
                         squizlabs/php_codesniffer ^3
   fi
-  if [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '7.4.22' ]; then
-    composer -n require phpunit/phpunit ^7 \
+  if [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ]; then
+    sudo composer self-update 2.2.18
+    composer -n require phpunit/phpunit ^7.5 \
                         php-parallel-lint/php-parallel-lint ^1.2 \
                         php-parallel-lint/php-console-highlighter ^0 \
                         php-parallel-lint/php-var-dump-check ~0.4 \
                         squizlabs/php_codesniffer ^3
   fi
   # phpunit 9 is required for php 8
-  if [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
-      composer -n require --ignore-platform-reqs phpunit/phpunit ^7 \
+  if [ "$TRAVIS_PHP_VERSION" = '8.0' ] || [ "$TRAVIS_PHP_VERSION" = '8.1' ] || [ "$TRAVIS_PHP_VERSION" = '8.2' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
+      sudo composer self-update 2.4.4
+      composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \
                                                  php-parallel-lint/php-parallel-lint ^1.2 \
                                                  php-parallel-lint/php-console-highlighter ^0 \
                                                  php-parallel-lint/php-var-dump-check ~0.4 \
                                                  squizlabs/php_codesniffer ^3
   fi
+
+  # Remove non expected files
+  rm -fr /home/travis/build/Dolibarr/dolibarr/htdocs/includes/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js
   echo
 
 - |
   echo "Adding path of binaries tools installed by composer to the PATH"
   export PATH="$TRAVIS_BUILD_DIR/htdocs/includes/bin:$PATH"
   echo $PATH
-  ls $TRAVIS_BUILD_DIR/vendor
+  ls $TRAVIS_BUILD_DIR/htdocs/includes
   ls $TRAVIS_BUILD_DIR/htdocs/includes/bin
   echo
 
@@ -135,24 +179,11 @@ install:
 
 before_script:
   - |
-    echo Start travis
+    echo Start before_script
     echo Current dir is `pwd`
     echo Home dir is `echo ~`
     echo TRAVIS_BUILD_DIR is $TRAVIS_BUILD_DIR
 
-  - |
-    echo "Re-enabling Xdebug for PHP CodeSniffer and PHP Unit"
-    phpenv config-add /tmp/xdebug.ini
-    echo
-
-  - |
-    echo "Setting up PHP"
-    echo
-    echo "Set timezone"
-    echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini
-    phpenv rehash
-    echo
-
   - |
     echo "Versions information"
     echo
@@ -182,32 +213,51 @@ before_script:
     # Check Database
     echo "Database version"
     mysql --version | head -
-    mysql -e "SELECT VERSION();"  | head -
     psql --version
-    if [ "$DB" = 'postgresql' ]; then
-      echo "Check pgloader version"
-      pgloader --version
-    fi
-    echo
 
   - |
     echo "Setting up database"
     if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ] || [ "$DB" = 'postgresql' ]; then
-      echo "MySQL"
-      mysql -u root -e 'DROP DATABASE IF EXISTS travis;'
-      mysql -u root -e 'CREATE DATABASE IF NOT EXISTS travis;'
-      mysql -u root -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;'
-      mysql -u root -e 'FLUSH PRIVILEGES;'
-      mysql -u root -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
+      echo "MySQL stop"
+      sudo systemctl stop mariadb.service
+      echo "MySQL restart without pass"
+      #sudo mysqld_safe --skip-grant-tables --socket=/tmp/aaa
+      sudo mysqld_safe --skip-grant-tables --socket=/tmp/aaa &
+      sleep 3
+      sudo ps fauxww 
+      echo "MySQL set root password"
+      sudo mysql -u root -h 127.0.0.1 -e "FLUSH PRIVILEGES; CREATE DATABASE IF NOT EXISTS travis CHARACTER SET = 'utf8'; ALTER USER 'root'@'localhost' IDENTIFIED BY 'password'; CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'password'; CREATE USER 'travis'@'127.0.0.1' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON travis.* TO root@127.0.0.1; GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1; FLUSH PRIVILEGES;"
+      echo "MySQL grant"
+      sudo mysql -u root -h 127.0.0.1 -ppassword -e 'FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1; FLUSH PRIVILEGES;'
+      echo "MySQL list current users"
+      sudo mysql -u root -h 127.0.0.1 -ppassword -e 'use mysql; select * from user;'
+      echo "List pid file"
+      sudo mysql -u root -h 127.0.0.1 -ppassword -e "show variables like '%pid%';"
+      
+      #sudo kill `cat /var/lib/mysqld/mysqld.pid`
+      #sudo systemctl start mariadb
+
+      echo "MySQL grant"
+      sudo mysql -u root -h 127.0.0.1 -ppassword -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;'
+      echo "MySQL flush"
+      sudo mysql -u root -h 127.0.0.1 -ppassword -e 'FLUSH PRIVILEGES;'
+      
+      echo "MySQL load sql"
+      sudo mysql -u root -h 127.0.0.1 -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
     fi
     if [ "$DB" = 'postgresql' ]; then
-      #psql -c 'create database travis;' -U postgres
-      #psql travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
-      #pgloader mysql://root:pass@127.0.0.1/dolibarr_src postgresql://dolibarrowner:dolibarrownerpass@127.0.0.1/dolibarr_dest
-      echo pgloader mysql://root@127.0.0.1/travis postgresql://postgres@/travis
-      pgloader mysql://root@127.0.0.1/travis postgresql://postgres@/travis
-      echo 'ALTER SEQUENCE llx_accountingaccount_rowid_seq RENAME TO llx_accounting_account_rowid_seq' | psql -U postgres travis
-      echo 'ALTER SEQUENCE llx_accounting_account_rowid_seq RESTART WITH 1000001;' | psql -U postgres travis
+      echo "PGSQL"
+      sudo mkdir -p /tmp/pgloader
+      sudo chmod -R a+rwx /tmp/pgloader/
+      sudo pgloader 'mysql://root:password@127.0.0.1/travis' 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
+      echo 'ALTER SEQUENCE llx_accountingaccount_rowid_seq RENAME TO llx_accounting_account_rowid_seq' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
+      echo 'ALTER SEQUENCE llx_accounting_account_rowid_seq RESTART WITH 1000001;' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
+
+      echo '\d llx_adherent' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
+      echo '\d llx_c_country' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
+
+      # Create pgsql compatibility functions
+      psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis' < htdocs/install/pgsql/functions/functions.sql
     fi
     echo
 
@@ -220,15 +270,18 @@ before_script:
     echo '$'dolibarr_main_data_root=\'$TRAVIS_BUILD_DIR/documents\'';' >> $CONF_FILE
     echo '$'dolibarr_main_db_host=\'127.0.0.1\'';' >> $CONF_FILE
     echo '$'dolibarr_main_db_name=\'travis\'';' >> $CONF_FILE
-    echo '$'dolibarr_main_db_user=\'travis\'';' >> $CONF_FILE
     echo '$'dolibarr_main_instance_unique_id=\'travis1234567890\'';' >> $CONF_FILE
     if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
       echo '$'dolibarr_main_db_type=\'mysqli\'';' >> $CONF_FILE
-      echo '$'dolibarr_main_db_port=\'3306\'';' >> $CONF_FILE
+      echo '$'dolibarr_main_db_port=3306';' >> $CONF_FILE
+      echo '$'dolibarr_main_db_user=\'root\'';' >> $CONF_FILE
+      echo '$'dolibarr_main_db_pass=\'password\'';' >> $CONF_FILE
     fi
     if [ "$DB" = 'postgresql' ]; then
       echo '$'dolibarr_main_db_type=\'pgsql\'';' >> $CONF_FILE
-      echo '$'dolibarr_main_db_port=\'5432\'';' >> $CONF_FILE
+      echo '$'dolibarr_main_db_port=5432';' >> $CONF_FILE
+      echo '$'dolibarr_main_db_user=\'postgres\'';' >> $CONF_FILE
+      echo '$'dolibarr_main_db_pass=\'postgres\'';' >> $CONF_FILE
     fi
     echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE
     cat $CONF_FILE
@@ -236,261 +289,230 @@ before_script:
 
   - |
     echo "Create documents directory and set permissions"
-    # and admin/temp subdirectory needed for unit tests
+    # Add admin/temp subdirectory needed for unit tests
     mkdir -p $TRAVIS_BUILD_DIR/documents/admin/temp
     sudo chmod -R a+rwx $TRAVIS_BUILD_DIR/documents
     echo "***** First line of dolibarr.log" > $TRAVIS_BUILD_DIR/documents/dolibarr.log
     echo
 
 
-  - echo "Setting up Apache + FPM"
-  # enable php-fpm
-  - sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
   - |
-    if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ] || [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '7.4.22' ] || [ "$TRAVIS_PHP_VERSION" = 'nightly' ]; then
-      # Copy the included pool
-      sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf
-    fi
-  - sudo a2enmod rewrite actions fastcgi alias
-  - echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
-  - sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars
-  - sudo chown -R travis:travis /var/lib/apache2/fastcgi
-  - ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm
-  # configure apache virtual hosts
-  - sudo cp -f build/travis-ci/apache.conf /etc/apache2/sites-available/000-default.conf
-  - sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
-  - sudo cat /etc/apache2/sites-available/000-default.conf
-  - sudo service apache2 restart
-
+    echo "Setting up Apache"
+    sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars
+    sudo cp -f build/travis-ci/apache.conf /etc/apache2/sites-available/000-default.conf
+    sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
+    sudo cat /etc/apache2/sites-available/000-default.conf
+    sudo service apache2 restart
 
 
 script:
-- |
-  echo "Checking webserver availability by a wget -O - http://127.0.0.1"
-  # Ensure we stop on error with set -e
-  set +e
-  # The wget should return a page with line '<meta name="generator" content="Dolibarr installer">
-  wget -O - http://127.0.0.1 > test.html
-  head test.html
-  sudo cat /var/log/apache2/travis_error_log
-  set +e
-  echo
-
-- |
-  echo "Checking PHP syntax errors (only 1 version to not overload travis and avoid duplicate tests)"
-  # Ensure we catch errors
-  set -e
-  #parallel-lint --exclude htdocs/includes --blame .
-  # Exclusions are defined in the ruleset.xml file
-  if [ "$TRAVIS_PHP_VERSION" = "7.4.22" ]; then
-    parallel-lint -e php --exclude dev/tools/test/namespacemig --exclude htdocs/includes/composer --exclude htdocs/includes/myclabs --exclude htdocs/includes/phpspec --exclude dev/initdata/dbf/includes \
-      --exclude htdocs/includes/sabre --exclude htdocs/includes/phpoffice/PhpSpreadsheet --exclude htdocs/includes/sebastian \
-      --exclude htdocs/includes/squizlabs/php_codesniffer --exclude htdocs/includes/jakub-onderka --exclude htdocs/includes/php-parallel-lint --exclude htdocs/includes/symfony \
-      --exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/maximebf \
-      --exclude htdocs/includes/phpunit/ --exclude htdocs/includes/tecnickcom/tcpdf/include/barcodes --exclude htdocs/includes/webmozart --blame .
-  fi
-  set +e
-  echo
+  - |
+    echo "Checking webserver availability by a wget -O - --debug http://127.0.0.1"
+    # Ensure we stop on error with set -e
+    set +e
+    # The wget should return a page with line '<meta name="generator" content="Dolibarr installer">
+    wget -O - --debug http://127.0.0.1 > test.html
+    head -n 200 test.html
+    sudo cat /var/log/apache2/travis_error_log
+    set +e
+    echo
 
-- |
-  echo "Checking coding style (only for Pull Requests builds and 1 version to not overload travis and avoid duplicate tests)"
-  # Ensure we catch errors
-  set -e
-  # Exclusions are defined in the ruleset.xml file
-  if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "7.4.22" ]; then
-    phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .;
-  fi
-  set +e
-  echo
+  - |
+    echo "Checking PHP syntax errors (only 1 version to not overload travis and avoid duplicate tests)"
+    # Ensure we catch errors
+    set -e
+    # Exclusions are defined in the ruleset.xml file
+    if [ "$TRAVIS_PHP_VERSION" = "8.1" ]; then
+      parallel-lint -e php --exclude dev/tools/test/namespacemig --exclude htdocs/includes/composer --exclude htdocs/includes/myclabs --exclude htdocs/includes/phpspec --exclude dev/initdata/dbf/includes \
+        --exclude htdocs/includes/sabre --exclude htdocs/includes/phpoffice/PhpSpreadsheet --exclude htdocs/includes/sebastian \
+        --exclude htdocs/includes/squizlabs/php_codesniffer --exclude htdocs/includes/jakub-onderka --exclude htdocs/includes/php-parallel-lint --exclude htdocs/includes/symfony \
+        --exclude htdocs/includes/mike42/escpos-php/example --exclude htdocs/includes/maximebf \
+        --exclude htdocs/includes/phpunit/ --exclude htdocs/includes/tecnickcom/tcpdf/include/barcodes --exclude htdocs/includes/webmozart --exclude htdocs/includes/webklex --blame .
+    fi
+    set +e
+    echo
 
-- |
-  echo "Checking missing debug"
-  # Ensure we catch errors
-  set -e
-  # Exclusions are defined in the ruleset.xml file
-  if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "7.4.22" ]; then
-     var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php .
-  fi
-  set +e
-  echo
+  - |
+    echo "Checking coding style (only for Pull Requests builds and 1 version to not overload travis and avoid duplicate tests)"
+    # Ensure we catch errors
+    set -e
+    # Exclusions are defined in the ruleset.xml file
+    if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "8.1" ]; then
+      phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .;
+    fi
+    set +e
+    echo
 
-- |
-  export INSTALL_FORCED_FILE=htdocs/install/install.forced.php
-  echo "Setting up Dolibarr $INSTALL_FORCED_FILE to test installation"
-  # Ensure we catch errors
-  set +e
-  echo '<?php ' > $INSTALL_FORCED_FILE
-  echo '$'force_install_noedit=2';' >> $INSTALL_FORCED_FILE
-  if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
-    echo '$'force_install_type=\'mysqli\'';' >> $INSTALL_FORCED_FILE
-  fi
-  if [ "$DB" = 'postgresql' ]; then
-    echo '$'force_install_type=\'pgsql\'';' >> $INSTALL_FORCED_FILE
-  fi
-  echo '$'force_install_dbserver=\'127.0.0.1\'';' >> $INSTALL_FORCED_FILE
-  echo '$'force_install_database=\'travis\'';' >> $INSTALL_FORCED_FILE
-  echo '$'force_install_databaselogin=\'travis\'';' >> $INSTALL_FORCED_FILE
-  echo '$'force_install_databasepass=\'\'';' >> $INSTALL_FORCED_FILE
-  echo '$'force_install_port=\'5432\'';' >> $INSTALL_FORCED_FILE
-  echo '$'force_install_prefix=\'llx_\'';' >> $INSTALL_FORCED_FILE
-  echo '$'force_install_createdatabase=false';' >> $INSTALL_FORCED_FILE
-  echo '$'force_install_createuser=false';' >> $INSTALL_FORCED_FILE
-  echo '$'force_install_mainforcehttps=false';' >> $INSTALL_FORCED_FILE
-  echo '$'force_install_main_data_root=\'$TRAVIS_BUILD_DIR/htdocs\'';' >> $INSTALL_FORCED_FILE
-  #cat $INSTALL_FORCED_FILE
-
-#- |
-#  echo "Installing Dolibarr"
-#  cd htdocs/install
-#  php step1.php $TRAVIS_BUILD_DIR/htdocs > $TRAVIS_BUILD_DIR/install.log
-#  php step2.php set >> $TRAVIS_BUILD_DIR/install.log
-#  if [ "$?" -ne "0" ]; then
-#    echo "SORRY, AN ERROR OCCURED DURING INSTALLATION PROCESS"
-#    cat $TRAVIS_BUILD_DIR/install.log
-#    exit 1
-#  fi
-#  cd ../..
-#  rm $INSTALL_FORCED_FILE
-#  #cat $TRAVIS_BUILD_DIR/install.log
-# set +e
-#  echo
+  - |
+    echo "Checking missing debug"
+    # Ensure we catch errors
+    set -e
+    # Exclusions are defined in the ruleset.xml file
+    if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "8.1" ]; then
+       var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php .
+    fi
+    set +e
+    echo
 
-- |
-  echo "Setting up database to test migrations"
-  if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ] || [ "$DB" = 'postgresql' ]; then
-    echo "MySQL"
-    mysql -e 'DROP DATABASE IF EXISTS travis;'
-    mysql -e 'CREATE DATABASE IF NOT EXISTS travis;'
-    mysql -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;'
-    mysql -e 'FLUSH PRIVILEGES;'
-    mysql -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
-  fi
-  if [ "$DB" = 'postgresql' ]; then
-    #pgsql travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
-    #pgloader mysql://root:pass@127.0.0.1/base postgresql://dolibarrowner@127.0.0.1/dolibarr
-    echo pgloader mysql://root@127.0.0.1/travis postgresql:///travis
-    pgloader mysql://root@127.0.0.1/travis postgresql:///travis
-    echo 'ALTER SEQUENCE llx_accountingaccount_rowid_seq RENAME TO llx_accounting_account_rowid_seq' | psql travis
-    echo 'ALTER SEQUENCE llx_accounting_account_rowid_seq RESTART WITH 1000001;' | psql travis
-    #echo 'select * from INFORMATION_SCHEMA.COLUMNS where table_name = 'llx_accountingaccount' | psql travis
-    #echo 'select * from information_schema.table_constraints;' | psql travis
-    #echo 'ALTER TABLE "llx_accounting_account" DROP CONSTRAINT "idx_16390_primary"' | psql travis
-  fi
-  echo
+  - |
+    export INSTALL_FORCED_FILE=htdocs/install/install.forced.php
+    echo "Setting up Dolibarr $INSTALL_FORCED_FILE to test installation"
+    # Ensure we catch errors
+    set +e
+    echo '<?php ' > $INSTALL_FORCED_FILE
+    echo '$'force_install_noedit=2';' >> $INSTALL_FORCED_FILE
+    if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then
+      echo '$'force_install_type=\'mysqli\'';' >> $INSTALL_FORCED_FILE
+      echo '$'force_install_port=3306';' >> $INSTALL_FORCED_FILE
+    fi
+    if [ "$DB" = 'postgresql' ]; then
+      echo '$'force_install_type=\'pgsql\'';' >> $INSTALL_FORCED_FILE
+      echo '$'force_install_port=5432';' >> $INSTALL_FORCED_FILE
+    fi
+    echo '$'force_install_dbserver=\'127.0.0.1\'';' >> $INSTALL_FORCED_FILE
+    echo '$'force_install_database=\'travis\'';' >> $INSTALL_FORCED_FILE
+    echo '$'force_install_databaselogin=\'travis\'';' >> $INSTALL_FORCED_FILE
+    echo '$'force_install_databasepass=\'\'';' >> $INSTALL_FORCED_FILE
+    echo '$'force_install_prefix=\'llx_\'';' >> $INSTALL_FORCED_FILE
+    echo '$'force_install_createdatabase=false';' >> $INSTALL_FORCED_FILE
+    echo '$'force_install_createuser=false';' >> $INSTALL_FORCED_FILE
+    echo '$'force_install_mainforcehttps=false';' >> $INSTALL_FORCED_FILE
+    echo '$'force_install_main_data_root=\'$TRAVIS_BUILD_DIR/htdocs\'';' >> $INSTALL_FORCED_FILE
+    #cat $INSTALL_FORCED_FILE
+  
+  - |
+    echo "Upgrading Dolibarr"
+    # Ensure we catch errors with -e. Set this to +e if you want to go to the end to see log files.
+    # Note: We keep +e because with pgsql, one of upgrade process fails even if migration seems ok, so
+    # I disable stop on error to be able to continue. 
+    set +e
+    cd htdocs/install
+    php upgrade.php 3.5.0 3.6.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade350360.log
+    php upgrade2.php 3.5.0 3.6.0 > $TRAVIS_BUILD_DIR/upgrade350360-2.log
+    php step5.php 3.5.0 3.6.0 > $TRAVIS_BUILD_DIR/upgrade350360-3.log
+    php upgrade.php 3.6.0 3.7.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade360370.log
+    php upgrade2.php 3.6.0 3.7.0 > $TRAVIS_BUILD_DIR/upgrade360370-2.log
+    php step5.php 3.6.0 3.7.0 > $TRAVIS_BUILD_DIR/upgrade360370-3.log
+    php upgrade.php 3.7.0 3.8.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade370380.log
+    php upgrade2.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-2.log
+    php step5.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-3.log
+    php upgrade.php 3.8.0 3.9.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade380390.log
+    php upgrade2.php 3.8.0 3.9.0 > $TRAVIS_BUILD_DIR/upgrade380390-2.log
+    php step5.php 3.8.0 3.9.0 > $TRAVIS_BUILD_DIR/upgrade380390-3.log
+    php upgrade.php 3.9.0 4.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade390400.log
+    php upgrade2.php 3.9.0 4.0.0 > $TRAVIS_BUILD_DIR/upgrade390400-2.log
+    php step5.php 3.9.0 4.0.0 > $TRAVIS_BUILD_DIR/upgrade390400-3.log
+    php upgrade.php 4.0.0 5.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade400500.log
+    php upgrade2.php 4.0.0 5.0.0 > $TRAVIS_BUILD_DIR/upgrade400500-2.log
+    php step5.php 4.0.0 5.0.0 > $TRAVIS_BUILD_DIR/upgrade400500-3.log
+    php upgrade.php 5.0.0 6.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade500600.log
+    php upgrade2.php 5.0.0 6.0.0 > $TRAVIS_BUILD_DIR/upgrade500600-2.log
+    php step5.php 5.0.0 6.0.0 > $TRAVIS_BUILD_DIR/upgrade500600-3.log
+    php upgrade.php 6.0.0 7.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade600700.log
+    php upgrade2.php 6.0.0 7.0.0 > $TRAVIS_BUILD_DIR/upgrade600700-2.log
+    php step5.php 6.0.0 7.0.0 > $TRAVIS_BUILD_DIR/upgrade600700-3.log
+    php upgrade.php 7.0.0 8.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade700800.log
+    php upgrade2.php 7.0.0 8.0.0 > $TRAVIS_BUILD_DIR/upgrade700800-2.log
+    php step5.php 7.0.0 8.0.0 > $TRAVIS_BUILD_DIR/upgrade700800-3.log
+    php upgrade.php 8.0.0 9.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade800900.log
+    php upgrade2.php 8.0.0 9.0.0 > $TRAVIS_BUILD_DIR/upgrade800900-2.log
+    php step5.php 8.0.0 9.0.0 > $TRAVIS_BUILD_DIR/upgrade800900-3.log
+    php upgrade.php 9.0.0 10.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade9001000.log
+    php upgrade2.php 9.0.0 10.0.0 > $TRAVIS_BUILD_DIR/upgrade9001000-2.log
+    php step5.php 9.0.0 10.0.0 > $TRAVIS_BUILD_DIR/upgrade9001000-3.log
+    php upgrade.php 10.0.0 11.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade10001100.log
+    php upgrade2.php 10.0.0 11.0.0 > $TRAVIS_BUILD_DIR/upgrade10001100-2.log
+    php step5.php 10.0.0 11.0.0 > $TRAVIS_BUILD_DIR/upgrade10001100-3.log
+    php upgrade.php 11.0.0 12.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade11001200.log
+    php upgrade2.php 11.0.0 12.0.0 > $TRAVIS_BUILD_DIR/upgrade11001200-2.log
+    php step5.php 11.0.0 12.0.0 > $TRAVIS_BUILD_DIR/upgrade11001200-3.log
+    php upgrade.php 12.0.0 13.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade12001300.log
+    php upgrade2.php 12.0.0 13.0.0 > $TRAVIS_BUILD_DIR/upgrade12001300-2.log
+    php step5.php 12.0.0 13.0.0 > $TRAVIS_BUILD_DIR/upgrade12001300-3.log
+    php upgrade.php 13.0.0 14.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade13001400.log
+    php upgrade2.php 13.0.0 14.0.0 > $TRAVIS_BUILD_DIR/upgrade13001400-2.log
+    php step5.php 13.0.0 14.0.0 > $TRAVIS_BUILD_DIR/upgrade13001400-3.log
+    php upgrade.php 14.0.0 15.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade14001500.log
+    php upgrade2.php 14.0.0 15.0.0 > $TRAVIS_BUILD_DIR/upgrade14001500-2.log
+    php step5.php 14.0.0 15.0.0 > $TRAVIS_BUILD_DIR/upgrade14001500-3.log
+    php upgrade.php 15.0.0 16.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade15001600.log
+    php upgrade2.php 15.0.0 16.0.0 > $TRAVIS_BUILD_DIR/upgrade15001600-2.log
+    php step5.php 15.0.0 16.0.0 > $TRAVIS_BUILD_DIR/upgrade15001600-3.log
+    php upgrade.php 16.0.0 17.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade16001700.log
+    php upgrade2.php 16.0.0 17.0.0 > $TRAVIS_BUILD_DIR/upgrade16001700-2.log
+    php step5.php 16.0.0 17.0.0 > $TRAVIS_BUILD_DIR/upgrade16001700-3.log
+
+    #show table content and log
+    #echo '\d llx_adherent' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
+    #cat $TRAVIS_BUILD_DIR/upgrade500600.log
 
-- |
-  echo "Upgrading Dolibarr"
-  # Ensure we catch errors. Set this to +e if you want to go to the end to see log files.
-  set +e
-  cd htdocs/install
-  php upgrade.php 3.5.0 3.6.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade350360.log
-  php upgrade2.php 3.5.0 3.6.0 > $TRAVIS_BUILD_DIR/upgrade350360-2.log
-  php step5.php 3.5.0 3.6.0 > $TRAVIS_BUILD_DIR/upgrade350360-3.log
-  php upgrade.php 3.6.0 3.7.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade360370.log
-  php upgrade2.php 3.6.0 3.7.0 > $TRAVIS_BUILD_DIR/upgrade360370-2.log
-  php step5.php 3.6.0 3.7.0 > $TRAVIS_BUILD_DIR/upgrade360370-3.log
-  php upgrade.php 3.7.0 3.8.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade370380.log
-  php upgrade2.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-2.log
-  php step5.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-3.log
-  php upgrade.php 3.8.0 3.9.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade380390.log
-  php upgrade2.php 3.8.0 3.9.0 > $TRAVIS_BUILD_DIR/upgrade380390-2.log
-  php step5.php 3.8.0 3.9.0 > $TRAVIS_BUILD_DIR/upgrade380390-3.log
-  php upgrade.php 3.9.0 4.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade390400.log
-  php upgrade2.php 3.9.0 4.0.0 > $TRAVIS_BUILD_DIR/upgrade390400-2.log
-  php step5.php 3.9.0 4.0.0 > $TRAVIS_BUILD_DIR/upgrade390400-3.log
-  php upgrade.php 4.0.0 5.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade400500.log
-  php upgrade2.php 4.0.0 5.0.0 > $TRAVIS_BUILD_DIR/upgrade400500-2.log
-  php step5.php 4.0.0 5.0.0 > $TRAVIS_BUILD_DIR/upgrade400500-3.log
-  php upgrade.php 5.0.0 6.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade500600.log
-  php upgrade2.php 5.0.0 6.0.0 > $TRAVIS_BUILD_DIR/upgrade500600-2.log
-  php step5.php 5.0.0 6.0.0 > $TRAVIS_BUILD_DIR/upgrade500600-3.log
-  php upgrade.php 6.0.0 7.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade600700.log
-  php upgrade2.php 6.0.0 7.0.0 > $TRAVIS_BUILD_DIR/upgrade600700-2.log
-  php step5.php 6.0.0 7.0.0 > $TRAVIS_BUILD_DIR/upgrade600700-3.log
-  php upgrade.php 7.0.0 8.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade700800.log
-  php upgrade2.php 7.0.0 8.0.0 > $TRAVIS_BUILD_DIR/upgrade700800-2.log
-  php step5.php 7.0.0 8.0.0 > $TRAVIS_BUILD_DIR/upgrade700800-3.log
-  php upgrade.php 8.0.0 9.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade800900.log
-  php upgrade2.php 8.0.0 9.0.0 > $TRAVIS_BUILD_DIR/upgrade800900-2.log
-  php step5.php 8.0.0 9.0.0 > $TRAVIS_BUILD_DIR/upgrade800900-3.log
-  php upgrade.php 9.0.0 10.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade9001000.log
-  php upgrade2.php 9.0.0 10.0.0 > $TRAVIS_BUILD_DIR/upgrade9001000-2.log
-  php step5.php 9.0.0 10.0.0 > $TRAVIS_BUILD_DIR/upgrade9001000-3.log
-  php upgrade.php 10.0.0 11.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade10001100.log
-  php upgrade2.php 10.0.0 11.0.0 > $TRAVIS_BUILD_DIR/upgrade10001100-2.log
-  php step5.php 10.0.0 11.0.0 > $TRAVIS_BUILD_DIR/upgrade10001100-3.log
-  php upgrade.php 11.0.0 12.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade11001200.log
-  php upgrade2.php 11.0.0 12.0.0 > $TRAVIS_BUILD_DIR/upgrade11001200-2.log
-  php step5.php 11.0.0 12.0.0 > $TRAVIS_BUILD_DIR/upgrade11001200-3.log
-  php upgrade.php 12.0.0 13.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade12001300.log
-  php upgrade2.php 12.0.0 13.0.0 > $TRAVIS_BUILD_DIR/upgrade12001300-2.log
-  php step5.php 12.0.0 13.0.0 > $TRAVIS_BUILD_DIR/upgrade12001300-3.log
-  php upgrade.php 13.0.0 14.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade13001400.log
-  php upgrade2.php 13.0.0 14.0.0 > $TRAVIS_BUILD_DIR/upgrade13001400-2.log
-  php step5.php 13.0.0 14.0.0 > $TRAVIS_BUILD_DIR/upgrade13001400-3.log
-  php upgrade.php 14.0.0 15.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade14001500.log
-  php upgrade2.php 14.0.0 15.0.0 > $TRAVIS_BUILD_DIR/upgrade14001500-2.log
-  php step5.php 14.0.0 15.0.0 > $TRAVIS_BUILD_DIR/upgrade14001500-3.log
-  php upgrade.php 15.0.0 16.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade15001600.log
-  php upgrade2.php 15.0.0 16.0.0 > $TRAVIS_BUILD_DIR/upgrade15001600-2.log
-  php step5.php 15.0.0 16.0.0 > $TRAVIS_BUILD_DIR/upgrade15001600-3.log
-  ls -alrt $TRAVIS_BUILD_DIR/
+  - |
+    echo Result of migration scripts
+    ls -alrt $TRAVIS_BUILD_DIR/
+        
+    echo Show content of last file
+    cat $TRAVIS_BUILD_DIR/"$(ls -rt $TRAVIS_BUILD_DIR/ | tail -n1)"
 
-- |
-  echo "Enabling new modules"
-  # Enable modules not enabled into original dump
-  set -e
-  php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_PRODUCTBATCH,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_STRIPE,MAIN_MODULE_EXPENSEREPORT > $TRAVIS_BUILD_DIR/enablemodule.log
-  php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP >> $TRAVIS_BUILD_DIR/enablemodule.log
-  php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT >> $TRAVIS_BUILD_DIR/enablemodule.log
-  php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KNOWLEDGEMANAGEMENT,MAIN_MODULE_EVENTORGANIZATION,MAIN_MODULE_PARTNERSHIP >> $TRAVIS_BUILD_DIR/enablemodule.log
-  echo $?
-  cd -
-  set +e
-  echo
-  #cat /tmp/dolibarr_install.log
-  cat $TRAVIS_BUILD_DIR/enablemodule.log
+  - |
+    echo "Enabling new modules"
+    # Enable modules not enabled into original dump
+    set -e
+    php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_ProductBatch,MAIN_MODULE_SupplierProposal,MAIN_MODULE_STRIPE,MAIN_MODULE_ExpenseReport > $TRAVIS_BUILD_DIR/enablemodule.log
+    php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP >> $TRAVIS_BUILD_DIR/enablemodule.log
+    php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT >> $TRAVIS_BUILD_DIR/enablemodule.log
+    php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KnowledgeManagement,MAIN_MODULE_EventOrganization,MAIN_MODULE_PARTNERSHIP >> $TRAVIS_BUILD_DIR/enablemodule.log
+    echo $?
+    cd -
+    set +e
+    echo
+    #cat /tmp/dolibarr_install.log
+    cat $TRAVIS_BUILD_DIR/enablemodule.log
 
-- |
-  echo "Unit testing"
-  # Ensure we catch errors. Set this to +e if you want to go to the end to see dolibarr.log file.
-  set -e
-  phpunit -d memory_limit=-1 -c test/phpunit/phpunittest.xml test/phpunit/AllTests.php
-  phpunitresult=$?
-  echo "Phpunit return code = $phpunitresult"
-  set +e
+  - |
+    echo "Unit testing"
+    # Ensure we catch errors with -e. Set this to +e instead of -e if you want to go to the end to see dolibarr.log file.
+    set -e
+    if [ "$TRAVIS_PHP_VERSION" != '7.0' ]; then
+      phpunit -d memory_limit=-1 -c test/phpunit/phpunittest.xml test/phpunit/AllTests.php
+      phpunitresult=$?
+      echo "Phpunit return code = $phpunitresult"
+    fi
+    set +e
 
 after_script:
-- |
-  echo "After script - Output last lines of dolibarr.log"
-  ls $TRAVIS_BUILD_DIR/documents
-  #cat $TRAVIS_BUILD_DIR/documents/dolibarr.log
-  sudo tail -n 50 $TRAVIS_BUILD_DIR/documents/dolibarr.log
+  - |
+    echo "After script - Output last lines of dolibarr.log"
+    ls $TRAVIS_BUILD_DIR/documents
+    #cat $TRAVIS_BUILD_DIR/documents/dolibarr.log
+    sudo tail -n 50 $TRAVIS_BUILD_DIR/documents/dolibarr.log
+    echo "After script - Output last lines of apache error.log"
+    sudo ls /var/log/apache2
+    sudo tail -n 200 /var/log/apache2/travis_error_log
 
 after_success:
-- |
-  echo Success
+  - |
+    echo Success
 
 after_failure:
-- |
-  echo Failure detected, so we show samples of log to help diagnose
-  # This part of code is executed only if previous command that fails are enclosed with set +e
-  # Upgrade log files
-  for ficlog in `ls $TRAVIS_BUILD_DIR/*.log`
-  do
-    echo "Debugging informations for file $ficlog"
-    #cat $ficlog
-  done
-  # Apache log file
-  echo "Debugging informations for file apache error.log"
-  sudo cat /var/log/apache2/travis_error_log
-  if [ "$DEBUG" = true ]; then
-    # Dolibarr log file
-    echo "Debugging informations for file dolibarr.log (latest 50 lines)"
-    tail -n 50 $TRAVIS_BUILD_DIR/documents/dolibarr.log
-    # Database log file
-    echo "Debugging informations for file mysql error.log"
-    sudo tail -n 50 /var/log/mysql/error.log
-    # TODO: PostgreSQL log file
-    echo
-  fi
+  - |
+    echo Failure detected, so we show samples of log to help diagnose
+    # This part of code is executed only if the command that fails are enclosed with set +e
+    # Show upgrade log files
+    #for ficlog in `ls $TRAVIS_BUILD_DIR/*.log`
+    #do
+      #echo "Debugging informations for file $ficlog"
+      #cat $ficlog
+    #done
+    # Show Apache log file
+    echo "Debugging informations for file apache error.log"
+    sudo tail -n 200 /var/log/apache2/travis_error_log
+    if [ "$DEBUG" = true ]; then
+      # Dolibarr log file
+      echo "Debugging informations for file dolibarr.log (latest 50 lines)"
+      tail -n 200 $TRAVIS_BUILD_DIR/documents/dolibarr.log
+      # Database log file
+      echo "Debugging informations for file mysql error.log"
+      sudo tail -n 200 /var/log/mysql/error.log
+      # TODO: PostgreSQL log file
+      echo
+    fi

+ 151 - 145
.tx/config

@@ -1,436 +1,442 @@
 [main]
-host = https://www.transifex.com
+host     = https://www.transifex.com
 lang_map = uz: uz_UZ, sw: sw_SW, sr@latin: sr_RS
 
-[dolibarr.accountancy]
+[o:dolibarr-association:p:dolibarr:r:accountancy]
 file_filter = htdocs/langs/<lang>/accountancy.lang
 source_file = htdocs/langs/en_US/accountancy.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.admin]
+[o:dolibarr-association:p:dolibarr:r:admin]
 file_filter = htdocs/langs/<lang>/admin.lang
 source_file = htdocs/langs/en_US/admin.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.agenda]
+[o:dolibarr-association:p:dolibarr:r:agenda]
 file_filter = htdocs/langs/<lang>/agenda.lang
 source_file = htdocs/langs/en_US/agenda.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.assets]
+[o:dolibarr-association:p:dolibarr:r:assets]
 file_filter = htdocs/langs/<lang>/assets.lang
 source_file = htdocs/langs/en_US/assets.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.banks]
+[o:dolibarr-association:p:dolibarr:r:banks]
 file_filter = htdocs/langs/<lang>/banks.lang
 source_file = htdocs/langs/en_US/banks.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.bills]
+[o:dolibarr-association:p:dolibarr:r:bills]
 file_filter = htdocs/langs/<lang>/bills.lang
 source_file = htdocs/langs/en_US/bills.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.blockedlog]
+[o:dolibarr-association:p:dolibarr:r:blockedlog]
 file_filter = htdocs/langs/<lang>/blockedlog.lang
 source_file = htdocs/langs/en_US/blockedlog.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.bookmarks]
+[o:dolibarr-association:p:dolibarr:r:bookmarks]
 file_filter = htdocs/langs/<lang>/bookmarks.lang
 source_file = htdocs/langs/en_US/bookmarks.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.boxes]
+[o:dolibarr-association:p:dolibarr:r:boxes]
 file_filter = htdocs/langs/<lang>/boxes.lang
 source_file = htdocs/langs/en_US/boxes.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.cashdesk]
+[o:dolibarr-association:p:dolibarr:r:cashdesk]
 file_filter = htdocs/langs/<lang>/cashdesk.lang
 source_file = htdocs/langs/en_US/cashdesk.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.categories]
+[o:dolibarr-association:p:dolibarr:r:categories]
 file_filter = htdocs/langs/<lang>/categories.lang
 source_file = htdocs/langs/en_US/categories.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.commercial]
+[o:dolibarr-association:p:dolibarr:r:commercial]
 file_filter = htdocs/langs/<lang>/commercial.lang
 source_file = htdocs/langs/en_US/commercial.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.companies]
+[o:dolibarr-association:p:dolibarr:r:companies]
 file_filter = htdocs/langs/<lang>/companies.lang
 source_file = htdocs/langs/en_US/companies.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.compta]
+[o:dolibarr-association:p:dolibarr:r:compta]
 file_filter = htdocs/langs/<lang>/compta.lang
 source_file = htdocs/langs/en_US/compta.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.contracts]
+[o:dolibarr-association:p:dolibarr:r:contracts]
 file_filter = htdocs/langs/<lang>/contracts.lang
 source_file = htdocs/langs/en_US/contracts.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.cron]
+[o:dolibarr-association:p:dolibarr:r:cron]
 file_filter = htdocs/langs/<lang>/cron.lang
 source_file = htdocs/langs/en_US/cron.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.deliveries]
+[o:dolibarr-association:p:dolibarr:r:datapolicy]
+file_filter = htdocs/langs/<lang>/datapolicy.lang
+source_file = htdocs/langs/en_US/datapolicy.lang
+source_lang = en_US
+type        = MOZILLAPROPERTIES
+
+[o:dolibarr-association:p:dolibarr:r:deliveries]
 file_filter = htdocs/langs/<lang>/deliveries.lang
 source_file = htdocs/langs/en_US/deliveries.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.dict]
+[o:dolibarr-association:p:dolibarr:r:dict]
 file_filter = htdocs/langs/<lang>/dict.lang
 source_file = htdocs/langs/en_US/dict.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.donations]
+[o:dolibarr-association:p:dolibarr:r:donations]
 file_filter = htdocs/langs/<lang>/donations.lang
 source_file = htdocs/langs/en_US/donations.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.ecm]
+[o:dolibarr-association:p:dolibarr:r:ecm]
 file_filter = htdocs/langs/<lang>/ecm.lang
 source_file = htdocs/langs/en_US/ecm.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.errors]
+[o:dolibarr-association:p:dolibarr:r:errors]
 file_filter = htdocs/langs/<lang>/errors.lang
 source_file = htdocs/langs/en_US/errors.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.eventorganization]
+[o:dolibarr-association:p:dolibarr:r:eventorganization]
 file_filter = htdocs/langs/<lang>/eventorganization.lang
 source_file = htdocs/langs/en_US/eventorganization.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.exports]
+[o:dolibarr-association:p:dolibarr:r:exports]
 file_filter = htdocs/langs/<lang>/exports.lang
 source_file = htdocs/langs/en_US/exports.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.help]
+[o:dolibarr-association:p:dolibarr:r:help]
 file_filter = htdocs/langs/<lang>/help.lang
 source_file = htdocs/langs/en_US/help.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.holiday]
+[o:dolibarr-association:p:dolibarr:r:holiday]
 file_filter = htdocs/langs/<lang>/holiday.lang
 source_file = htdocs/langs/en_US/holiday.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.hrm]
+[o:dolibarr-association:p:dolibarr:r:hrm]
 file_filter = htdocs/langs/<lang>/hrm.lang
 source_file = htdocs/langs/en_US/hrm.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.install]
+[o:dolibarr-association:p:dolibarr:r:install]
 file_filter = htdocs/langs/<lang>/install.lang
 source_file = htdocs/langs/en_US/install.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.interventions]
+[o:dolibarr-association:p:dolibarr:r:interventions]
 file_filter = htdocs/langs/<lang>/interventions.lang
 source_file = htdocs/langs/en_US/interventions.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.intracommreport]
+[o:dolibarr-association:p:dolibarr:r:intracommreport]
 file_filter = htdocs/langs/<lang>/intracommreport.lang
 source_file = htdocs/langs/en_US/intracommreport.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.knowledgemanagement]
+[o:dolibarr-association:p:dolibarr:r:knowledgemanagement]
 file_filter = htdocs/langs/<lang>/knowledgemanagement.lang
 source_file = htdocs/langs/en_US/knowledgemanagement.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.languages-not-res]
+[o:dolibarr-association:p:dolibarr:r:languages-not-res]
 file_filter = htdocs/langs/<lang>/languages.lang
 source_file = htdocs/langs/en_US/languages.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.ldap]
+[o:dolibarr-association:p:dolibarr:r:ldap]
 file_filter = htdocs/langs/<lang>/ldap.lang
 source_file = htdocs/langs/en_US/ldap.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.link]
+[o:dolibarr-association:p:dolibarr:r:link]
 file_filter = htdocs/langs/<lang>/link.lang
 source_file = htdocs/langs/en_US/link.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.loan]
+[o:dolibarr-association:p:dolibarr:r:loan]
 file_filter = htdocs/langs/<lang>/loan.lang
 source_file = htdocs/langs/en_US/loan.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.mailmanspip]
+[o:dolibarr-association:p:dolibarr:r:mailmanspip]
 file_filter = htdocs/langs/<lang>/mailmanspip.lang
 source_file = htdocs/langs/en_US/mailmanspip.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.mails]
+[o:dolibarr-association:p:dolibarr:r:mails]
 file_filter = htdocs/langs/<lang>/mails.lang
 source_file = htdocs/langs/en_US/mails.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.main]
+[o:dolibarr-association:p:dolibarr:r:main]
 file_filter = htdocs/langs/<lang>/main.lang
 source_file = htdocs/langs/en_US/main.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.margins]
+[o:dolibarr-association:p:dolibarr:r:margins]
 file_filter = htdocs/langs/<lang>/margins.lang
 source_file = htdocs/langs/en_US/margins.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.members]
+[o:dolibarr-association:p:dolibarr:r:members]
 file_filter = htdocs/langs/<lang>/members.lang
 source_file = htdocs/langs/en_US/members.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.modulebuilder]
+[o:dolibarr-association:p:dolibarr:r:modulebuilder]
 file_filter = htdocs/langs/<lang>/modulebuilder.lang
 source_file = htdocs/langs/en_US/modulebuilder.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.mrp]
+[o:dolibarr-association:p:dolibarr:r:mrp]
 file_filter = htdocs/langs/<lang>/mrp.lang
 source_file = htdocs/langs/en_US/mrp.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.multicurrency]
+[o:dolibarr-association:p:dolibarr:r:multicurrency]
 file_filter = htdocs/langs/<lang>/multicurrency.lang
 source_file = htdocs/langs/en_US/multicurrency.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.oauth]
+[o:dolibarr-association:p:dolibarr:r:oauth]
 file_filter = htdocs/langs/<lang>/oauth.lang
 source_file = htdocs/langs/en_US/oauth.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.opensurvey]
+[o:dolibarr-association:p:dolibarr:r:opensurvey]
 file_filter = htdocs/langs/<lang>/opensurvey.lang
 source_file = htdocs/langs/en_US/opensurvey.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.orders]
+[o:dolibarr-association:p:dolibarr:r:orders]
 file_filter = htdocs/langs/<lang>/orders.lang
 source_file = htdocs/langs/en_US/orders.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.other]
+[o:dolibarr-association:p:dolibarr:r:other]
 file_filter = htdocs/langs/<lang>/other.lang
 source_file = htdocs/langs/en_US/other.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.partnership]
+[o:dolibarr-association:p:dolibarr:r:partnership]
 file_filter = htdocs/langs/<lang>/partnership.lang
 source_file = htdocs/langs/en_US/partnership.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.paybox]
+[o:dolibarr-association:p:dolibarr:r:paybox]
 file_filter = htdocs/langs/<lang>/paybox.lang
 source_file = htdocs/langs/en_US/paybox.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.paypal]
+[o:dolibarr-association:p:dolibarr:r:paypal]
 file_filter = htdocs/langs/<lang>/paypal.lang
 source_file = htdocs/langs/en_US/paypal.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.printing]
+[o:dolibarr-association:p:dolibarr:r:printing]
 file_filter = htdocs/langs/<lang>/printing.lang
 source_file = htdocs/langs/en_US/printing.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.productbatch]
+[o:dolibarr-association:p:dolibarr:r:productbatch]
 file_filter = htdocs/langs/<lang>/productbatch.lang
 source_file = htdocs/langs/en_US/productbatch.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.products]
+[o:dolibarr-association:p:dolibarr:r:products]
 file_filter = htdocs/langs/<lang>/products.lang
 source_file = htdocs/langs/en_US/products.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.projects]
+[o:dolibarr-association:p:dolibarr:r:projects]
 file_filter = htdocs/langs/<lang>/projects.lang
 source_file = htdocs/langs/en_US/projects.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.propal]
+[o:dolibarr-association:p:dolibarr:r:propal]
 file_filter = htdocs/langs/<lang>/propal.lang
 source_file = htdocs/langs/en_US/propal.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.receiptprinter]
+[o:dolibarr-association:p:dolibarr:r:receiptprinter]
 file_filter = htdocs/langs/<lang>/receiptprinter.lang
 source_file = htdocs/langs/en_US/receiptprinter.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.receptions]
+[o:dolibarr-association:p:dolibarr:r:receptions]
 file_filter = htdocs/langs/<lang>/receptions.lang
 source_file = htdocs/langs/en_US/receptions.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.recruitment]
+[o:dolibarr-association:p:dolibarr:r:recruitment]
 file_filter = htdocs/langs/<lang>/recruitment.lang
 source_file = htdocs/langs/en_US/recruitment.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.resource]
+[o:dolibarr-association:p:dolibarr:r:resource]
 file_filter = htdocs/langs/<lang>/resource.lang
 source_file = htdocs/langs/en_US/resource.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.salaries]
+[o:dolibarr-association:p:dolibarr:r:salaries]
 file_filter = htdocs/langs/<lang>/salaries.lang
 source_file = htdocs/langs/en_US/salaries.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.sendings]
+[o:dolibarr-association:p:dolibarr:r:sendings]
 file_filter = htdocs/langs/<lang>/sendings.lang
 source_file = htdocs/langs/en_US/sendings.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.sms]
+[o:dolibarr-association:p:dolibarr:r:sms]
 file_filter = htdocs/langs/<lang>/sms.lang
 source_file = htdocs/langs/en_US/sms.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.stocks]
+[o:dolibarr-association:p:dolibarr:r:stocks]
 file_filter = htdocs/langs/<lang>/stocks.lang
 source_file = htdocs/langs/en_US/stocks.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.stripe]
+[o:dolibarr-association:p:dolibarr:r:stripe]
 file_filter = htdocs/langs/<lang>/stripe.lang
 source_file = htdocs/langs/en_US/stripe.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.supplier_proposal]
+[o:dolibarr-association:p:dolibarr:r:supplier_proposal]
 file_filter = htdocs/langs/<lang>/supplier_proposal.lang
 source_file = htdocs/langs/en_US/supplier_proposal.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.suppliers]
+[o:dolibarr-association:p:dolibarr:r:suppliers]
 file_filter = htdocs/langs/<lang>/suppliers.lang
 source_file = htdocs/langs/en_US/suppliers.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.ticket]
+[o:dolibarr-association:p:dolibarr:r:ticket]
 file_filter = htdocs/langs/<lang>/ticket.lang
 source_file = htdocs/langs/en_US/ticket.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.trips]
+[o:dolibarr-association:p:dolibarr:r:trips]
 file_filter = htdocs/langs/<lang>/trips.lang
 source_file = htdocs/langs/en_US/trips.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.users]
+[o:dolibarr-association:p:dolibarr:r:users]
 file_filter = htdocs/langs/<lang>/users.lang
 source_file = htdocs/langs/en_US/users.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.website]
+[o:dolibarr-association:p:dolibarr:r:website]
 file_filter = htdocs/langs/<lang>/website.lang
 source_file = htdocs/langs/en_US/website.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.withdrawals]
+[o:dolibarr-association:p:dolibarr:r:withdrawals]
 file_filter = htdocs/langs/<lang>/withdrawals.lang
 source_file = htdocs/langs/en_US/withdrawals.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.workflow]
+[o:dolibarr-association:p:dolibarr:r:workflow]
 file_filter = htdocs/langs/<lang>/workflow.lang
 source_file = htdocs/langs/en_US/workflow.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 
-[dolibarr.zapier]
+[o:dolibarr-association:p:dolibarr:r:zapier]
 file_filter = htdocs/langs/<lang>/zapier.lang
 source_file = htdocs/langs/en_US/zapier.lang
 source_lang = en_US
-type = MOZILLAPROPERTIES
+type        = MOZILLAPROPERTIES
 

+ 5 - 5
COPYRIGHT

@@ -13,7 +13,7 @@ The Dolibarr images resources (available in the doc directory) is distributed un
 
 
 The name Dolibarr is a trademark initially registered by Laurent Destailleur and ceased to the Dolibarr foundation. You can use the name Dolibarr
-for your own need as long as you follow the rules defined on the page https://wiki.dolibarr.org/index.php/Rules_to_use_the_brand_name_%22Dolibarr%22   
+for your own need as long as you follow the rules defined on the page https://wiki.dolibarr.org/index.php/Rules_to_use_the_brand_name_%22Dolibarr%22
 The use of the name DoliStore is also restricted to the same rules defined on https://wiki.dolibarr.org/index.php/Rules_to_use_the_brand_name_%22Dolibarr%22
 
 
@@ -23,7 +23,6 @@ Licence of dependencies of third-party components used by Dolibarr (all compatib
 Component              Version       License                     GPL Compatible  Usage
 -------------------------------------------------------------------------------------
 PHP libraries:
-ADOdb-Date             0.36          Modified BSD License        Yes             Date convertion (not into rpm package)
 EvalMath               1.0           BSD                         Yes             Safe math expressions evaluation
 Escpos-php             2.2           MIT License                 Yes             Thermal receipt printer library, for use with ESC/POS compatible printers
 GeoIP2                 0.2.0         Apache License 2.0          Yes             Lib to make geoip convert
@@ -31,10 +30,11 @@ Mobiledetect           2.8.39        MIT License                 Yes
 NuSoap                 0.9.5         LGPL 2.1+                   Yes             Library to develop SOAP Web services (not into rpm and deb package)
 PEAR Mail_MIME         1.8.9         BSD                         Yes             NuSoap dependency
 ParseDown              1.6           MIT License                 Yes             Markdown parser
-PCLZip                 2.8.4         LGPL-3+                     Yes             Library to zip/unzip files             
+PCLZip                 2.8.4         LGPL-3+                     Yes             Library to zip/unzip files
 PHPDebugBar            1.15.1        MIT License                 Yes             Used only by the module "debugbar" for developers
+PHP-Imap               2.7.2         MIT License                 Yes             Library to use IMAP with OAuth
 PHPSpreadSheet         1.8.2         LGPL-2.1+                   Yes             Read/Write XLS files, read ODS files
-php-iban               4.1           LGPL-3+                     Yes             Parse and validate IBAN (and IIBAN) bank account information in PHP
+php-iban               4.1.1         LGPL-3+                     Yes             Parse and validate IBAN (and IIBAN) bank account information in PHP
 PHPoAuthLib            0.8.2         MIT License                 Yes             Library to provide oauth1 and oauth2 to different service
 PHPPrintIPP            1.3           GPL-2+                      Yes             Library to send print IPP requests
 PSR/Logs               1.0           MIT License                 Yes             Library for logs (used by DebugBar)
@@ -52,7 +52,7 @@ Ace                    1.4.14        BSD                         Yes
 ChartJS                3.7.1         MIT License                 Yes             JS library for graph
 CKEditor               4.18          LGPL-2.1+                   Yes             Editor WYSIWYG
 jQuery                 3.6.0         MIT License                 Yes             JS library
-jQuery UI              1.13.1        GPL and MIT License         Yes             JS library plugin UI
+jQuery UI              1.13.2        GPL and MIT License         Yes             JS library plugin UI
 jQuery select2         4.0.13        GPL and Apache License      Yes             JS library plugin for sexier multiselect. Warning: 4.0.6+ create troubles without patching css
 jQuery blockUI         2.70.0        GPL and MIT License         Yes             JS library plugin blockUI (to use ajax popups)
 jQuery Colorpicker     1.1           MIT License                 Yes             JS library for color picker for a defined list of colors

+ 526 - 112
ChangeLog

@@ -3,6 +3,411 @@ English Dolibarr ChangeLog
 --------------------------------------------------------------
 
 
+***** ChangeLog for 17.0.3 compared to 17.0.2 *****
+FIX: #20304 propaldates update
+FIX: #24508 Label not reported when creating a supplier invoice template (#25340)
+FIX: #24569 filters on stockadate page
+FIX: #24631 Filter on categories of warehouses faulty
+FIX: #24695
+FIX: #24756 Total sum on annual report bank
+FIX: #24918
+FIX: #24985 Societe - Function thirdparty merging not working with module whose tables are not deployed by default
+FIX: #24991
+FIX: #24997 Update slovakia vat rate
+FIX: #25223
+FIX: ability to disable forcing focus on select2 to avoid side effects
+FIX: Add hidden conf to add extrafields in canelle template : INVOICE_ADD_EXTRAFIELD_IN_NOTE
+FIX: Add/Update required modules for thirdparties (by categ) & partnership
+FIX: ajax on off setup type
+FIX: avoid php8 warning
+FIX: Bad management of localtax on TakePOS due to typo error in var name
+FIX: can define empty qty by default when create object line
+FIX: can not remove the last selected value with checkbox
+FIX: case special char for password in email admin page
+FIX: Change $key into $tmpkey
+FIX: CommonObject::getRights()
+FIX: commonobject: getRights() did not find rights correctly for objects built using modulebuilder
+FIX: CVE reported by BELABED Skander (Akerva)
+FIX: CVE XSS on company name reported by Belabed Skander from Akerva
+FIX: decimal values were not possible on shipment quantities (introduced by #24882)
+FIX: default value for condition of payment on proposal
+FIX: default values were not set for specimen objects
+FIX: Delete of bank of a thirdparty must need the edit thirdparty perm
+FIX: display project tasks list columns (#24557)
+FIX: dol_print_error parameters on ticket fetch method (#25318)
+FIX: dol_trunc may not have the desired behaviour for truncating a cryptographic initialiszation vector, for instance when MAIN_DISABLE_TRUNC is used
+FIX: Donation - Missing Language key
+FIX: error expedition qty 0
+FIX: extrafield quick edit not working on products
+FIX: fatal error on Stripe setup page and security when terminal not used
+FIX: Fatal Error PHP 8 : division by 0 (#25384)
+FIX|Fix  Change strpos for expedition and receipt in files.lib.php $haystack and $needle inversion
+FIX: Fix main and left menu info for the root menu of the list of accountancy journal
+FIX: Homogenise handling of null extrafield value in create/update
+FIX: Langs was not loaded for extrafields error
+FIX: Missing localtaxes on receipt in TakePOS
+FIX: no change on thirdparties.modules.php required modules
+FIX: OAUth2 module for Google with scopes for people and calendar
+FIX: php8.1 warning on lists with total due to unset array key (#25460)
+FIX: quickedit code missing on product card
+FIX: Selection of customer on second or more parallel sell in TakePOS
+FIX: Showing bank account on list for direct debit
+FIX: SQL migration file
+FIX: String was compared to an integer
+FIX: to avoid wrong path of file (#25320)
+FIX: Total sum on annual report bank
+FIX: translation extrafield mass action #24080
+FIX: Try to fix the date of invoice on TakePOS on eastern timezone
+FIX: TVA calc option must be the same on update line as on create line
+FIX: Update mouvementstock.class.php (#25396)
+FIX: update product on translation update
+FIX: use dol_substr instead of dol_trunc for truncating openssl initialization vector
+FIX: We should always be able to filter on action type no matter if we can't read actions of others (#24462)
+FIX: wrong var name
+
+***** ChangeLog for 17.0.2 compared to 17.0.1 *****
+FIX: Change strpos for expedition and receipt in files.lib $haystack and $needle inversion
+FIX: Add hidden conf to add extrafields in canelle template : INVOICE_ADD_EXTRAFIELD_IN_NOTE
+FIX: #24414
+FIX: #24798 Deleting member subscription is not possible
+FIX: add a test for updating date on task update in tab time consummed pro…
+FIX: add charchesociales in security.lib.php
+FIX: Add Missing rights check on holiday calendar
+FIX: Add the possibility to events owner to check their events from the list when the perm "Read the actions (events or tasks) of others" is not active
+FIX: Authorize '0' subprice in supplier proposal line
+FIX: avoid error when computed property of extrafields is used
+FIX: avoid warnings php8
+FIX: Back to cancel on reception creation
+FIX: Bad deletion of email when there is several emails processed
+FIX: bank account not visible on credit transfer
+FIX: Better support for option MAIN_NO_INPUT_PRICE_WITH_TAX
+FIX: broken feature : send private message by email
+FIX: categorie compatibility with actioncomm
+FIX: Click on "NEW" in simple POS was broken
+FIX: Compress in xz for better debian old version compatibility
+FIX: Correct Evaluation for extrafields
+FIX: Count only attendee draft of validated.
+FIX: Creation of thumbs when images.lib.php was already included
+FIX: delete of warehouse
+FIX: deletion of a line of time spent (backport e3aa438d2a582313dfd5178b8cc5975e0c912c25)
+FIX: Deployment of external module failed with copy dir error.
+FIX: edit field value of url
+FIX: error management on emoji and utf8 validity by emailcollector
+FIX: expense report autofill ttc input if force ttc conf is enabled
+FIX: filter missing id on consumption contact card
+FIX: Filter on member status
+FIX: Filter status orders in list no invoiced if validated + in progress + delivered
+FIX: Fiscal year list ref display
+FIX: for empty shipping
+FIX: INVOICE_SHOW_SHIPPING_ADDRESS
+FIX: jump to direct record on member search was broken
+FIX: label of columns must be short into invoice PDF table
+FIX: making search in takepos broken when TAKEPOS_PRODUCT_IN_STOCK is set
+FIX: Margin calculation for credit notes on margin reports
+FIX: message MAIN_MESSAGE_INSTALL_MODULES_DISABLED_CONTACT_US
+FIX: missing checking if file is uploaded
+FIX: missing constant and avoid submit button conflict
+FIX: missing entity field in unique index (since v16)
+FIX: Missing error message display on insertExtrafields()
+FIX: missing mrp module dependency
+FIX: More complete fix for #24411
+FIX: No error message because  $price_ht_devise is equal to '0' if not filled because of price2num
+FIX: No usage of the function updateProduction in the update function
+FIX: On company change, we must reuse the company parameters
+FIX: Operator to search category Knowledge
+FIX: Pb in install when password start with some special char like !
+FIX: pb in sending email when mail contains data src image.
+FIX: PDF Font for turkish language
+FIX: product notes rights
+FIX: Propagate correct origin/origin_id when creating order from proposal
+FIX: Propagate extrafields from supplier order to reception
+FIX: reassortlot search categorie + add inithooks
+FIX: Reception process loose some lines on first error.
+FIX: redesign of the function : updateProduction
+FIX: ref_client on Project Overview for propale
+FIX: reference id in getnomurl function.
+FIX: regression Undefined $datepaid
+FIX: remove NOTOKENRENOWAL (backport commit v17 7c316229db8060781ee50f4465b1133b5aeef156)
+FIX: Remove warning on lettering - Impossible to write in ledger v16 v17 v18
+FIX: Report of date of task suggested only if there is tasks
+FIX: Rounding on total margin on invoice list
+FIX: Search List Select Extrafields with condition
+FIX: Search when criteria start with !
+FIX: Sending email from attendee list
+FIX: Shipping address same third party
+FIX: special chars in generated file name from build doc mass action
+FIX: supplier invoice status on bank transfer line
+FIX: supplier link on bank transfer line
+FIX: Task events not displayed
+FIX: token errors on public interface
+FIX: Transfer between accounts with different currencies was broken
+FIX: Update hour of intervention line
+FIX: Upload of files on public ticket interface
+FIX: Use max parameters of widget graph product distribution
+FIX: Warehouse total line
+FIX: When salary module is not enabled, bad permission check on user list
+FIX: wrong colspan for tasks list
+
+***** ChangeLog for 17.0.1 compared to 17.0.0 *****
+
+FIX: 17.0 PHP Warning invalid argument supplied for foreach
+FIX: #[23799] - External users are not able to create events - correction
+FIX: #23966 Error "Param dbt_keyfield is required but not defined
+FIX: #24138 Fix box_birthdays SQL for postgres
+FIX: #24201 Upload of external module fails to copy from incorrectly generated temp source dir
+FIX: #24240 Dolibarr V17.0.0 PHP8 fatal error
+FIX: accountancy lettering: better error management
+FIX: accountancy lettering: correctly calculated number of lettering operations done
+FIX: accountancy lettering: error management and prevention
+FIX: accountancy lettering: prevent null results when fetching link with payments
+FIX: action delete card fac rec
+FIX: Add bookmark with search fields that are arrays (backport 4157263cb898f1847cfcfc22dee6007c01b13a4d)
+FIX: Add missing hook on LibStatut
+FIX: Add more context for selectForFormsListWhere Hook
+FIX: Autofill / clear qty in inventory page
+FIX: avoid php8 warnings
+FIX: avoid phpunit error
+FIX: can not show all csv fields (a reason for that ?)
+FIX: change date on select date input when prefix is used
+FIX: dol_textishtml() function
+FIX: expense report accountancy: sql syntax error when performing automatic linking
+FIX: Extrafields in Notes to unify with orders or invoices.
+FIX: fatal error when margin enable (missing check on element), fix User::hasRight() when checking a margin right
+FIX: feedbacks
+FIX: FILTER_VALIDATE_EMAIL param is not a string
+FIX: #24298 No error or 0.00 instead of NULL in database anymore when emptying an extrafield of type price on a propal card
+FIX: full group by handle
+FIX: holiday counter massaction: ErrorBadValueForParamNotAString and PHP 8 warning when no approval user right
+FIX: installation superadmin creation: PHP 8 warning
+FIX: invoices order on sells journal
+FIX: it was not possible to update extrafields of expedition lines with batch without editing batch value
+FIX: limit after order in get objects in category
+FIX: method dolGetGlobalString not defined with saphir
+FIX: missing column default workstation
+FIX: missing drop foreign key before modify field
+FIX: missing "multidir_output" for project sharing (Multicompany)
+FIX: missing protection on ajax public ticket page for valid email
+FIX: ODT management inverted between purchase invoice and order
+FIX: PDF Espadon => display extrafields
+FIX: PDF Espadon Expedition : notes and tracking number
+FIX: Phpunit Rename WebsiteTest.class.php to WebsiteTest.php
+FIX: project referent elements list: conf to hide tasks was flipped
+FIX: Protection on agenda view for a thirdparty id that does not exist
+FIX: search_project_user
+FIX: societe list: regression to redirection to customer card when single result of search filters
+FIX: SQL error "unknown column p.fk_soc" because ANSI-92 joins take precedence over ANSI-89 joins
+FIX: task have the same entity of project
+FIX: token error when closing ticket from public interface
+FIX: Warning on purchase order + Property fk_commande not defined
+
+
+
+***** ChangeLog for 17.0.0 compared to 16.0.0 *****
+
+For users:
+---------------
+
+NEW: Minimal PHP version is now PHP 7.0 instead of PHP 5.6
+NEW: #21780 Add pid field to Cronjob class and store PID on job execution
+NEW: #20650 can move the checkbox column on left (experimental option MAIN_CHECKBOX_LEFT_COLUMN)
+NEW: #21000 Added columns 'alias_name' on project, supplier invoice, supplier order, supplier proposals and task list
+NEW: #21395 Added option for dark theme mode in display - color and theme
+NEW: #21397 added option to auto define barcode numbers for third-parties in barcode module setup
+NEW: #21399
+NEW: #21442 Enhancement of module builder init
+NEW: #21654 add bank account number used on invoices for debit
+NEW: #22048 Added notes to productlot module
+NEW: #22298 Bank - Add salaries & vat in the tab of planned entries of a bank account
+NEW: #22328
+NEW: #22424
+NEW: #22500 member module set up made easier
+NEW: #22527 projects and thirdparties can be viewed as conversation ("Message" view), like events/agenda.
+NEW: #22546 can now set user supervisors using mass action in htdocs/user
+NEW: #22594 can chose if VAT ID is unique or not for third parties
+NEW: #22622 all partnerships displayed on tab partnership of a thirdparty and member
+NEW: #22676 massaction for updating product prices
+NEW: #22735 Massaction to assign users on projects
+NEW: #4482 adding js to hide/show advanced option on the export data page
+NEW: Accountancy - Add a graphic option to enable lettering function - FPC21
+NEW: Accountancy - Add a way to clean some words when you generate thirdparty accounting account
+NEW: Accountancy - Added an option during export to export or not the lettering FPC21
+NEW: Accountancy - Manage supplier deposit with specific account
+NEW: Accountancy - Model Digitaria - Add a way to clean some words when you generate thirdparty accounting account FPC22
+NEW: Add a button "Test collect" in email collector
+NEW: Add a constant to disallow modification of the product reference.
+NEW: Add a method doAutoRenewContracts that can be used as a cron task.
+NEW: Add " as enclosure by default for CSV export. Keep removing CR/LF.
+NEW: add attached file in presend email form of thirdparty card
+NEW: Add a way to enter LICENSE file content in property of website
+NEW: Add badge in admin extrafields setup
+NEW: add constant PROPAL_BYPASS_VALIDATED_STATUS
+NEW: Add date event (!= date project) and location on event organization
+NEW: Add employment anniversary in birthday box
+NEW: Add extrafield type "IP" to store IP addresses
+NEW: Add fail2ban rules examples to limit access to /public pages
+NEW: Add filter "Product subject to lot/Serial" in stock per lot/serial
+NEW: Add hidden option MAIN_EMAIL_SUPPORT_ACK to restore Email ack checkbox (feature abandonned by mailers)
+NEW: Add IMAP port setting on email collector module
+NEW: Adding JAPAN Chart-of-Account and regions/departments
+NEW: Adding NIF verification for Algeria
+NEW: Add link to create an element from the category page
+NEW: add margin infos to takepos invoice lines
+NEW: Add max size send for "backup and link to mail" option
+NEW: Add method httponly_accessforbidden()
+NEW: Add more advices into the Setup security page
+NEW: Add new global variable for keeping the previous signature information on proposal (case of reopening a proposal)
+NEW: Add objectLink on shipment
+NEW: Add option --force on CLI cron_run_jobs.php
+NEW: Add option "Show price on the generated documents for receptions"
+NEW: Add performance index (name for company and contact) and llx_bank_url(url_id)
+NEW: Add picto property on sub-module for password generation
+NEW: add redirect on action confirm addconsumedline and addproduceline
+NEW: Add a new advanced permission "read price"
+NEW: Add substitution key __SENDEREMAIL_SIGNATURE__
+NEW: Add the referrer-policy to "same-origin" by default on all public pages.
+NEW: Add the SMTP header References on ticket email created by email
+NEW: Add the thirdparty column to the time list (projet/tasks/time.php)
+NEW: Add trigger to record the event of sending an email from a project #20912
+NEW: Allow download link option in module configuration (propal,invoice,supplier proposal, order)
+NEW: Bulk action to remove a category in list/search website pages
+NEW: Can copy/paste images into emails sent.
+NEW: Can edit label of an emailing even once sent
+NEW: Can edit property css, cssview, csslist on extrafields
+NEW: Can enter the unit price including the vat when adding new product lines on invoices, orders, proposals, ...
+NEW: Can invoice task time per different services
+NEW: Can join several files by default on email form
+NEW: Can send an email on scheduled job error
+NEW: Can set a commercial discount by entering amount including VAT
+NEW: Can set a monthly frequency (or multiple) in cron tasks.
+NEW: Can set start and end dates and comment on button "Activate all services"
+NEW: Can sort on preselected best supplier price
+NEW: Can use products categories to make inventory
+NEW: Change filter type on tickets list into a multiselect combo
+NEW: conf TIMESPENT_ALWAYS_UPDATE_THM, when it's on we always check current thm of user to update it in task time line
+NEW: constant PROPAL_NEW_AS_SIGNED
+NEW: show date delivery planned on orders linked to company and product
+NEW: Default doc template of contracts is not mandatory
+NEW: Default values in extrafields are no more limited to 255 char.
+NEW: display currency in takepos menu
+NEW: Enable online signature for interventions
+NEW: extrafield price with currency
+NEW: filter on reception dates (from / to) in cheque paiement card
+NEW: Members: default_lang for members
+NEW: Members: Table of membership types
+NEW: Members: add free membership amounts at the membership type level
+NEW: TakePOS: Header Scroll in TakePOS
+NEW: TakePOS: add price to product box in TakePOS
+NEW: TakePOS: add setup parameters, can setup terminal name
+NEW: TakePOS: support of Stripe Terminal with TakePOS
+NEW: TakePOS: Receipt preview in TakePOS setup
+NEW: TakePOS: different product list on smartphone
+NEW: Website: can delete a whole website if disabled
+NEW: Website: can remove a website template
+NEW: Website: can set header "Strict-Transport-Security" in web sites.
+NEW: Website: can switch status of website and page from the website toolbar
+NEW: Website: Templates of websites are now directories and not zip into core repo
+NEW: Website: add 4 other templates in website module
+NEW: Website: Add counters for public access of pages on a website
+NEW: If we select another view list mode, we keep it
+NEW: Init module bookcal
+NEW: Encrypt all sensitive constants in llx_const using dolEncrypt/dolDecrypt
+NEW: Invoice - Add french mention on pdf when vat debit option is on
+NEW: invoice export : add accounting affectation
+NEW: label on products categories filter
+NEW: The link "add to bookmark" is always on top in the bookmark popup
+NEW: MAIN_SEARCH_CATEGORY_PRODUCT_ON_LISTS const to show category customer filter
+NEW: Make module WebservicesClient deprecated. Use module WebHook instead.
+NEW: manage no email with thirdparties (better for GDPR)
+NEW: Manage Position (Rank) on Contract Lines
+NEW: Manage VAT on all lines on purchases cycle
+NEW: Page to show virtual stock at a future date
+NEW: On a bank reconciled line, we can modify the bank receipt
+NEW: On a form to send an email, we show all emails of all contacts of object
+NEW: Option PRODUCTBATCH_SHOW_WAREHOUSE_ON_SHIPMENT showing wh on PDF
+NEW: Option PRODUIT_DESC_IN_FORM accept (desktop only or +smartphone)
+NEW: Page for mass stock transfer can be used with no source stock
+NEW: parent company column and filter in invoice and order list
+NEW: Add "Show Sales rep" option for PDF
+NEW: Picto for shared link is clickable
+NEW: possibility to select scopes with checkbox for Oauth tokens
+NEW: private and public note on user, thirdparty and contact list
+NEW: product categories filter on inventory list
+NEW: Product supplier price: autofill default supplier VAT
+NEW: Project - author field become an available column on lists
+NEW: Reception - Add a from/to on search on date field
+NEW: Start a simple support of recurrent events on agenda
+NEW: Resize parent company column in order list
+NEW: Saved token of OAUTH module are now encrypted into llx_oauth_token
+NEW: Save one click to select on delivery ack, on emails.
+NEW: scheduled job to send unpaid invoice reminder can now use the cc and bcc from email template
+NEW: set thirdparty type with company modify trigger
+NEW: Show also scheduled task never finished in scheduled task widget
+NEW: show badge with number of extrafields in setup
+NEW: show category tree in sellist and chkbxlst for common object
+NEW: Show picto and color into combo for selection of tags
+NEW: show product label on inventory
+NEW: show sell-by and eat-by dates only if not empty
+NEW: show SellBy/EatBy dates for each batch product in shipment card
+NEW: Can skip accept/refuse steps for proposals (option PROPAL_SKIP_ACCEPT_REFUSE)
+NEW: experimental SMTP using PhpImap allowing OAuth2 authentication (need to add option MAIN_IMAP_USE_PHPIMAP)
+NEW: can substitue project title in mail template
+NEW: Supplier order list - Add column private and public note
+NEW: The purge of files can purge only if older than a number of seconds
+NEW: Update ActionComm type_code on email message ticket
+NEW: VAT - Admin - Add information on deadline day for submission of VAT declaration
+NEW: expand/collapse permissions on user permission page
+NEW: Show delivery mode on PDF for proposals
+NEW: Add the target to select attendees of event for emailings
+NEW: Can set background style with MAIN_LOGIN_BACKGROUND_STYLE
+
+ Modules
+NEW: Experimental module Asset
+
+For developers or integrators:
+------------------------------
+
+NEW: ModuleBuilder can generate code for a class from an existing SQL table
+NEW: #22370 Modulebuilder supports 'alwayseditable' (like extrafields)
+NEW: #20912 Add trigger to record the event of sending an email from a project
+NEW: #21750 Added "Get lines and Post lines from BOM" at the REST Service
+NEW: Removed completely the need for the library adodbtime
+NEW: hook on agenda pages
+NEW: hook to complete payment in TakePOS
+NEW: hook "changeHelpURL" to modify target of the help button
+NEW: hook formConfirm on action comm card
+NEW: hook to modify supplier product html select
+NEW: Add new hook for show virtual stock details on product stock card
+NEW: Add new hooks for actioncomm
+NEW: conf->global->SYSLOG_FILE_ONEPERSESSION accept a string
+NEW: translation for contact type API, setup/ticket API, shipping method API
+NEW: All ajax pages have now a header build with top_httphead()
+NEW: support multilang in Civilities API
+NEW: Add API for the partnership module
+NEW: Add "Get lines and Post lines from BOM" in the API
+NEW: Replace property fk_categories_product with categories_product in inventory class
+NEW: Rewrite of SQL request. Removed the join on category table (for filter on category), replaced with a EXISTS/NOT
+NEW: Add oldcopy to Ticket so triggers intercepting TICKET_MODIFY have access to old values of the updated properties
+NEW: #19680 Add option PRODUCT_ALLOW_EXTERNAL_DOWNLOAD to automatically have uploaded files shared publicly by a link
+NEW: Add option FICHINTER_ALLOW_EXTERNAL_DOWNLOAD
+
+
+WARNING:
+
+Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
+* Minimal PHP version is now PHP 7.0 instead of PHP 5.6
+* The signature of method getNomUrl() of class ProductFournisseur has been modified to match the signature of method Product->getNomUrl()
+* Trigger ORDER_SUPPLIER_DISPATCH is removed, use ORDER_SUPPLIER_RECEIVE and/or LINEORDER_SUPPLIER_DISPATCH instead.
+* All functions fetch_all() have been set to deprecated for naming consitency, use fetchAll() instead.
+* Code standardization: '$user->rights->propale' is now '$user->rights->propal' everywhere.
+* Deprecated method set_billed() on shipment and reception class has been removed. Use setBilled() instead.
+* Tables llx_prelevement_facture and llx_prelevement_facture_demande have been renamed into llx_prelevement and llx_prelevement_demande.
+* Rename MAIN_LIST_ALLOW_NOTES into MAIN_LIST_HIDE_NOTES and rename MAIN_LIST_ALLOW_PRIVATE_NOTES into MAIN_LIST_HIDE_PRIVATE_NOTES
+* Rename the substitution for "project label" instead of "project title" in substitution variables
+* You must use "$objectoffield" to manipulate the current object inside the formulare of computed custom extrafields instead of $obj/$object.
+* Making a global search is sending the parameter using always the name search_all (instead of sometimes sall and search_all)
+* The property $url_last_version must be public if defined into module descriptor files;
+* Filters in class field definitions must be a Dolibarr filter syntax string.
+
 ***** ChangeLog for 16.0.5 compared to 16.0.4 *****
 
 FIX: 16.0 propalestats Unknown column 'p.fk_soc' in 'on clause'
@@ -56,7 +461,8 @@ FIX: wrong url param name action
 
 FIX: Amount of localtax1 and 2 not correctly save on purchase order (the rate was saved instead)
 FIX: #20415
-FIX: #21280 FIX: #23008
+FIX: #21280
+FIX: #23008
 FIX: #22271
 FIX: #22524
 FIX: #22837
@@ -65,7 +471,8 @@ FIX: #23012
 FIX: #23019 Impossible to add task times to an existing draft invoice
 FIX: #23072
 FIX: #23087
-FIX: #23115 FIX: #23116
+FIX: #23115 
+FIX: #23116
 FIX: #23281
 FIX: #23420 : wrong check on $search_categ value causing FATAL ERROR
 FIX: Accountancy - Quadra export
@@ -100,7 +507,6 @@ FIX: travis
 FIX: wrong check on $search_categ value causing fatal error
 FIX: wrong stock list with multicompany and without stock sharing
 
-
 ***** ChangeLog for 16.0.3 compared to 16.0.2 *****
 
 FIX: $sign is useless
@@ -257,118 +663,115 @@ NEW: PHP 8.0 and 8.1 compatibility:
      log files (depending on your PHP setup). Removal of all PHP warnings on server side is planned for v17.
 NEW: Support for recurring purchase invoices.
 NEW: #20292 Include German public holidays
-NEW: Can show ZATCA QRCode on PDFs
-NEW: Can show Swiss QR Code on PDFs
+NEW: Can show ZATCA QR-Code on PDFs
+NEW: Can show Swiss QR-Code on PDFs
 NEW: #17123 added ExtraFields for Stock Mouvement
-NEW: #20609 : new massaction to assign a sale representatives on a selection of thirdparties
+NEW: #20609 new massaction to assign a sale representatives on a selection of thirdparties
 NEW: #20653 edit discount pourcentage for all lines in one shot
 NEW: Accept 'auto' for ref of object on import of purchase order/proposal
 NEW: Accountancy - Add more filters and info on page to bind accounting accounts
-NEW: Accountancy - Add subledger account when we generate a transaction with a deposit invoice
+NEW: Accountancy - Add subledger account when generate a transaction with a deposit invoice
 NEW: Accountancy - Add a massaction to preselect an account (customer and supplier list)
+NEW: Accountancy - Add hidden feature for accounting reconciliation
 NEW: ACE Editor is restored at same cursor position after a save.
 NEW: Add "addMoreActionsButtons" hook to subscription form
 NEW: Add an option in GUI to show a Quick add button into top menu bar
-NEW: Module Recruitment - Add a public page with all list of open job positions.
-NEW: Module Recruitment - Add a tab with list of application on the jobposition file.
 NEW: Add a workflow to auto link contract on a ticket
-NEW: Add column date of Signature on proposal list
 NEW: Add column template invoice in invoice list
 NEW: Add column "Total HT" to products array on document creation card
-NEW: ADD configuration for text color of button action
-NEW: Add constant to hide categories in TakePos
-NEW: Add constant to show category description in TakePos
-NEW: Add constant to show only the products in stock in TakePos
-NEW: Add entity filter in exports
+NEW: Add configuration for text color of button action
 NEW: Show the event block on recurring invoices #20870
-NEW: Add filter "opportunity status" on statistics of projects.
 NEW: Add firstname, lastname and max number of attendees for module "Event Organization"
-NEW: add margin info in proposal and order list
-NEW: Add massaction "Edit Extrafield" for Product
+NEW: Add margin info in proposal and order list
 NEW: Add more fields to detect duplicate during import of thirdparties
 NEW: Add option to foce delivery on email for purchase order receipt to yes
-NEW: Add param boder table for md theme
-NEW: Add param color button action
 NEW: Add possibility to create contract from invoice
 NEW: Add possibility with constant MAIN_LOGIN_BADCHARUNAUTHORIZED to define bad character unauthorized into login name
-NEW: Add private and public notes on tax files.
-NEW: Add status "Obsolete" to KM articles
+NEW: Add private and public notes on tax files
 NEW: Add substitutions "user numbers"
-NEW: Add the possibility to add sub-BOMs to BOM
-NEW: allow a ticket to be automatically marked as read when created from backend.
 NEW: allow cut&paste as real numeric value to excel
 NEW: A public form to send a message and create a lead is available
 NEW: automatically set totally received status in reception
 NEW: Auto set invoice paid when adding credit not and remain to pay is 0
-NEW: Availibility dictionnary has a new column unit and number
-NEW: barcode rule to insert product in takepos
-NEW: Can change value of AWP during the inventory
+NEW: Backup tool has an "lowmemory" option for mysqldump on large database
 NEW: Can enter price with tax for predefined products on purchase objects
-NEW: Can filter on a thirdparty on product statistics
 NEW: Can removed doc templates from setup page of thirdparty
-NEW: Can set the parent company during the creation of thirdparty (action=add of societe/card.php)
 NEW: Can use ! to make a search that exclude a string
-NEW: Change in theme colors does not need to use the refresh button
 NEW: clean values and amount in FEC import
 NEW: const MAIL_MASS_ACTION_ADD_LAST_IF_MAIN_DOC_NOT_FOUND for mailing mass action
 NEW: Contact filter project list
 NEW: Create contract from invoice
-NEW: create third-party with contact if not found on public ticket
+NEW: Database: Can store the session into database (instead of beeing managed by PHP)
+NEW: Database: Some core tables are created only at module activation
 NEW: Default value for MAIN_SECURITY_CSRF_WITH_TOKEN is now 2 (GET are also protected agains CSRF attacks)
-NEW: deposit payment terms: add field into dictionary admin page to define default percentage of deposit. 
+NEW: deposit payment terms: add field into dictionary admin page to define default percentage of deposit.
 NEW: Dictionaries - add possibility to manage countries in EEC
-NEW: display errors in a message box after generating documents
-NEW: Display physical and virtual stock of the products when creating OF from a BOM
-NEW: Display product ref in "Object link" product tab for BOM
+NEW: Dictionaries - Availibility dictionnary has a new column unit and number
+NEW: Display errors in a message box after generating documents
 NEW: Enhance the import. Can use 'auto' for the ref (import of orders)
 NEW: Events on Proposal to Return to Draft
+NEW: Exports - add entity filter in exports
 NEW: Page to list expense report payments
 NEW: JS inventory autocalc input
 NEW: language support for more emailing target selectors
 NEW: leave requests: add field into type dictionary to block request if balance is negative
-NEW: MAIN_MAIL_AUTOCOPY_TO can accept several email and special keys
-NEW: MAIN_SEARCH_CAT_OR_BY_DEFAULT const for search by category
 NEW: Mass action "Close shipments"
-NEW: Module website now supports the multicompany module
-NEW: More mode for THEME_TOPMENU_DISABLE_IMAGE (2, 3, ...)
+NEW: Module BOM - add tabs for nets BOM
+NEW: Module BOM - add the possibility to add sub-BOMs to BOM
+NEW: Module Recruitment - Add a public page with list of all open job positions.
+NEW: Module Recruitment - Add a tab with list of application on the jobposition file.
 NEW: Add option to move checkbox column as first column on Thirdparty list (only few screens)
-NEW: Add tabs for nets Bom
-NEW: on redirect of page in website module, GET parameters are kept.
-NEW: optional display warning icons on ticket list
-NEW: option to default check "notify tier at creation" in ticket module
-NEW: option update prices on proposal cloning
 NEW: payment conditions enabling semi-automatic deposit creation (Issue #18439)
 NEW: possibility to consume multiple batch
 NEW: Reverse movement product consumption
 NEW: Send email to the supplier order contact
-NEW: New permission to report time on timesheet.
+NEW: add permission to report time on timesheet
+NEW: Knowledge Management - add status "Obsolete" to KM articles
+NEW: MRP - split consumption line on MO
+NEW: MRP - display physical and virtual stock of the products when creating OF from a BOM
+NEW: MRP - display product ref in "Object link" product tab for BOM
+NEW: Orders - support user_modif in order
+NEW: Products - add massaction "Edit Extrafield" for Product
+NEW: Products - List - add thumbnail field in product list
+NEW: Products - Statistics - can filter on a thirdparty
+NEW: Projects - add filter "opportunity status" on statistics of projects.
+NEW: Proposals - option update prices on proposal cloning
+NEW: Proposals - List - add column date of Signature on proposal list
 NEW: SEPA XML - option to place payment Type Info at Credit transfer Transaction level
-NEW: Show number of votes into the label of tab "Results" of a survey
-NEW: Show product reference in Takepos
-NEW: Some core tables are created only at module activation
-NEW: split consumption line on MO
-NEW: stock filter in reassort lists
-NEW: stock limit in stock export CSV
-NEW: Sub-bom are availables
+NEW: Stocks - stock filter in reassort lists
+NEW: Stocks - stock limit in stock export CSV
+NEW: Stocks - Inventory - can change value of AWP during the inventory
 NEW: Supplier order - Show ref supplier of reception in linked object block
-NEW: support user_modif in order
-NEW: TakePos - pagination on search results
-NEW: The backup tools has an "lowmemory" option for mysqldump on large database
+NEW: Surveys - Show number of votes into the label of tab "Results" of a survey
+NEW: TakePOS - barcode rule to insert product in TakePOS
+NEW: TakePOS - pagination on search results
+NEW: TakePOS - show product reference
+NEW: TakePOS - add constant to hide categories
+NEW: TakePOS - add constant to show category description
+NEW: TakePOS - add constant to show only the products in stock
+NEW: Themes - add param color button action
+NEW: Themes - Change in theme colors does not need to use the refresh button
+NEW: Themes - more modes for THEME_TOPMENU_DISABLE_IMAGE (2, 3, ...)
+NEW: Themes - MD - add param border table for md theme
+NEW: Third-Parties - add rules "customer accountancy code" is mandatory to validate invoice
+NEW: Third-Parties - can set the parent company during the creation of thirdparty (action=add of societe/card.php)
+NEW: Tickets - allow a Ticket to be automatically marked as read when created from backend
+NEW: Tickets - create Third-party with contact if not found on public ticket
+NEW: Tickets - option to default check "notify tier at creation"
+NEW: Tickets - Trigger: allow to automatically send messages on new tickets
+NEW: Tickets - optional display warning icons on ticket list
+NEW: Websites Module - supports now the multicompany module
+NEW: Websites Module - on redirect of page in website module, GET parameters are kept.
 NEW: The 'reposition' class works on ajax constantonoff that make redirects
-NEW: Thirdparty - Add rules "customer accountancy code" is mandatory to validate invoice
-NEW: thumbnail field in product list
 NEW: total mark rate in list
 NEW: uncheck "send message" by default on a ticket when private messages has been checked
 NEW: VAT Report by month - Show detail by rate and also by code
-NEW: Ticket triggers: allow to automatically send messages on new tickets
-NEW: Accountancy - Add hidden feature for accounting reconciliation
-NEW: Can store the session into database (instead of beeing managed by PHP)
 NEW: Added MMK currency (Myanmar Kyat)
 NEW: On a form to send an email, we show all emails of contacts of object
 
- Modules
-NEW: Module Partnership Management
-NEW: Module Event Organization Management
+ Modules state
+NEW: Module Partnership Management - stable
+NEW: Module Event Organization Management - stable
 
 
 For developers or integrators:
@@ -376,48 +779,46 @@ For developers or integrators:
 NEW: dol_uncompress() supports more extensions (.gz, .bz2, .zstd). Only .zip was supported before.
 NEW: Implement a generic method for Kaban views
 NEW: Upgrade chartjs library to 3.7.1
-NEW: update rank line is possible on API for customer invoices, sales orders and supplier invoice
 NEW: stripe element with more gateways
 NEW: solde() function evolution to be able to get solde until a chosen date
 NEW: Suggest a way to run upgrade per entities.
 NEW: Support html content for multiselect component.
 NEW: ModuleBuilder - Add tabs view in module builder
 NEW: ModuleBuilder - More feature that can be modifed after module generation
-NEW: Hook getNomUrl available everywhere in tooltip of ref links
 NEW: Identification of tr is possible with by attribute data-id on some pages
 NEW: Import with select boxes V2
-NEW: Can update rank of invoice, proposal and order lines with API update
 NEW: Can use current entity filter on 'chkbxlst'
 NEW: Creation of the function select_bom() used to display bom select list
-NEW: add printFieldListWhere hook in product reassort card
 NEW: Add trigger and event on completely received status change
 NEW: Add utility function send backup by mail
 NEW: add WordPress OAuth to save a token (not SSO)
-NEW: A module can embed a sql script run at each Dolibarr upgrade
-NEW: API Proposals - Add POST lines
-NEW: API REST filter states by country
-NEW: Add option INVOICEREC_SET_AUTOFILL_DATE_START/END
-NEW: Add option MAIN_API_DEBUG to save API logs into a file
+NEW: A module can embed a SQL script run at each Dolibarr upgrade
 NEW: Add param to keep the robot=index meta tag on public pages
 NEW: Add method hintindex() in database handlers.
 NEW: add modifications for new function "$db->prefix()"
 NEW: addMoreActionsButtonsList hook for button in list
-NEW: Add API to get a template invoice
 NEW: Standardize a lot of code.
-NEW: #20736 Allow extrafields SQL filters on REST API product lookup
-NEW: #19294 implement detailed timespent in task of project API
 NEW: Add a protection into PHPunit to avoid to forget a var_dump
+
+
+API:
+NEW: API Proposals - Add POST lines
+NEW: API REST filter states by country
+NEW: Add API to get a template invoice
 NEW: Add datem and type parameters to API to create movements
-NEW: Add hidden option on contract PDF line to hide qty and price
-NEW: Option MAIL_MASS_ACTION_ADD_LAST_IF_MAIN_DOC_NOT_FOUND to send last document in mass mailing action
-NEW: Add hooks: selectContactListWhere hook, selectThirdpartyListWhere hook 
-NEW: TakePos - add hooks complete product display
-NEW: TakePos - add hooks for cart display
-NEW: TakePos - add hooks to complete ajax return array
+NEW: #19294 implement detailed timespent in task of project API
+NEW: #20736 Allow extrafields SQL filters on REST API product lookup
+NEW: Can update rank of invoice, proposal and order lines with API update
+NEW: update rank line is possible on API for customer invoices, sales orders and supplier invoice
+NEW: Add option MAIN_API_DEBUG to save API logs into a file
+
+Hooks:
+NEW: Hook getNomUrl available everywhere in tooltip of ref links
+NEW: Add hooks: selectContactListWhere hook, selectThirdpartyListWhere hook
 NEW: Add hook before the public ticket list
-NEW: Add hook doaction in takepos invoice
-NEW: Add Hook for Notif
+NEW: Add hook for Notif
 NEW: Add hook for more buttons
+NEW: add hook printFieldListWhere in product ressort card
 NEW: Add hook printFieldListWhere in "show_contacts" function
 NEW: Add hook printFieldWhere in load_state_board function
 NEW: Add hooks contact tab badge and hooks parameter for avoid conflicts
@@ -429,15 +830,28 @@ NEW: Add hooks on project task time page
 NEW: Add hooks on salaries and sociales card
 NEW: Add hooks select product list and select thirdparty list function
 NEW: Add hook to getSellPrice function
+NEW: TakePos - add hooks complete product display
+NEW: TakePos - add hooks for cart display
+NEW: TakePos - add hooks to complete ajax return array
+NEW: TakePOS - add hook doaction in TakePOS invoice
+
+Config Options:
+NEW: Add hidden option on contract PDF line to hide qty and price
+NEW: Option  MAIL_MASS_ACTION_ADD_LAST_IF_MAIN_DOC_NOT_FOUND  to send last document in mass mailing action
+NEW: Option  MAIN_API_DEBUG  to save API logs into a file
+NEW: Option  MAIN_MAIL_AUTOCOPY_TO  can accept several email and special keys
+NEW: Option  MAIN_SEARCH_CAT_OR_BY_DEFAULT  const for search by category
+NEW: Option  INVOICEREC_SET_AUTOFILL_DATE_START/END
 
+WARNING:
 
 Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
-* There is a new specific permission to be allowed to enter timesheets. If you use timesheet, don't forget to give the new permission (disable and 
+* There is a new specific permission to be allowed to enter timesheets. If you use timesheet, don't forget to give the new permission (disable and
   enable the module project if it is not visible).
 * The default value for MAIN_SECURITY_CSRF_WITH_TOKEN has been set to 2. It means any POST and any GET request that contains the "action" or "massaction"
   with a value of a sensitive action must also a valid token parameter (With previous value 1, only POST was concerned). Note: With value 3, any URL
   with parameter "action" or "massaction" need the token, whatever is the value of the action.
-* verifCond('stringtoevaluate') now return false when string contains a bad syntax content instead of true. 
+* verifCond('stringtoevaluate') now return false when string contains a bad syntax content instead of true.
 * The deprecated method thirdparty_doc_create() has been removed. You can use the generateDocument() instead.
 * All triggers with a name XXX_UPDATE have been renamed with name XXX_MODIFY for code consistency purpose.
 * Rename build_path_from_id_categ() into buildPathFromId() and set method to private.
@@ -457,10 +871,8 @@ FIX: #18704
 FIX: #20444
 FIX: #20448 missing preg_replace for vat rate when adding a free line
 FIX: #20476 migration postgresql 13.0.x to 14.0.x packaging type
-FIX: #20487 missing letter D in constant THIRDPARTIES_DISABLE_RELATED_…
 FIX: #20487 missing letter D in constant THIRDPARTIES_DISABLE_RELATED_OBJECT_TAB
 FIX: #20527 Accountancy - Unbalanced entry proposed when an employee are declared on a social contribution
-FIX: #20527 Accountancy Unbalanced entry proposed when an employee are declared on social contribution
 FIX: #20621 signature online with proposal with n page.
 FIX: #20696
 FIX: #20828
@@ -496,7 +908,7 @@ FIX: fourn/commande/card.php Added "$object" parameter to $formfile->showdocumen
 FIX: french traductions for payment methods
 FIX: hook for dol_format_address
 FIX: Index page for "Sales" give wrong URL link to Intervention
-FIX: issue Dolibarr#21495 for v15
+FIX: issue Dolibarr #21495 for v15
 FIX: label and get_substitutionarray_each_var_object on ODT generation
 FIX: load product stock in inventory lines
 FIX: missing morecss for multiselectarray
@@ -656,7 +1068,7 @@ For users:
 
 NEW: Online proposal signature
 NEW: Can define some max limit on expense report (per period, per type or expense, ...)
-NEW: Provide a special pages for bookmarks and multicompany for a better use of some mobile applications (like DoliDroid) 
+NEW: Provide a special pages for bookmarks and multicompany for a better use of some mobile applications (like DoliDroid)
 NEW: Allow the use of __NEWREF__ to get for example the new reference a draft order will get after validation.
 NEW: Add option to disable globaly some notifications emails.
 NEW: #18401 Add __NEWREF__ subtitute to get new object reference.
@@ -705,7 +1117,7 @@ NEW: can enable/disable external calendar by default
 NEW: Can hide sender name on PDF documents
 NEW: Can select lot from a combo list of existing batch numbers (in MRP consumtion)
 NEW: Can set the default BOM on a product
-NEW: Can set/unset the usual working day of the week (friday, saturday, sunday) 
+NEW: Can set/unset the usual working day of the week (friday, saturday, sunday)
 NEW: Can show progression of task into combo list of tasks
 NEW: can upload the odt file for the product doc template
 NEW: Contract - Add From/to input on search date
@@ -769,7 +1181,7 @@ For developers:
 
 API:
 NEW: #18319 REST API - Shipment: Add 'close' action / endpoint / POST method.
-NEW: add API /approve and /makeOrder for purchase orders 
+NEW: add API /approve and /makeOrder for purchase orders
 NEW: API for knowledgemanagement
 NEW: API get list of legal form of business
 NEW: API list of staff units
@@ -804,21 +1216,23 @@ NEW: we need to be able to put more filters on deleteByParentField() function
 NEW: make it easier to set the `keyword`, `keywords` and `description` attributes of an ecm file object
 NEW: Experimental feature to manage user sessions in database
 
- 
+
+WARNING:
+
 Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
-* ALL EXTERNAL MODULES THAT WERE NOT CORRECTLY DEVELOPPED WILL NOT WORK ON V15 (All modules that forgot to manage the security token field 
+* ALL EXTERNAL MODULES THAT WERE NOT CORRECTLY DEVELOPPED WILL NOT WORK ON V15 (All modules that forgot to manage the security token field
   into forms will be broken. The security token field is expected since Dolibarr v9 but a lot of external modules did not implement it).
 * Update hook 'printOriginObjectLine', removed check on product type and special code. Need now reshook.
 * Old deprecated module "SimplePOS" has been completely removed. Use module "TakePOS" is you need a Point Of Sale.
-* The method static ActionComm::getActions($db, ...) is no more static. Use $actioncomm->getActions(...) instead (without $db param). 
+* The method static ActionComm::getActions($db, ...) is no more static. Use $actioncomm->getActions(...) instead (without $db param).
 * The 'action=delete&file=...' has been replaced with 'action=deletefile&file=...' to avoid confusion with deletion of object lines.
 * Method getDictvalue has been renamed into getDictionaryValue to match camel case rule.
-* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in 
-  method executeCLI() available into core/class/utils.class.php  
+* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in
+  method executeCLI() available into core/class/utils.class.php
 * Class file expeditionbatch.class.php renamed to expeditionlinebatch.class.php
 * ExpeditionLineBatch::fetchAll is not static anymore and first parameter $db is removed
 * ExtraFields->showOutputField parameter 4 'extrafieldsobjectkey' is now required
-* CommonObject method add_object_linked now sets targettype to 'mymodule_myobject' instead of 'myobject', 
+* CommonObject method add_object_linked now sets targettype to 'mymodule_myobject' instead of 'myobject',
   you can use hook 'setLinkedObjectSourceTargetType' to set your usual targettype
 
 
@@ -1107,10 +1521,10 @@ For users:
 ----------
 NEW: Module Recruitment to follow application to job positions is now stable.
 NEW: Feature to make Stock Inventories
-NEW: Several security issues after a second private bug hunting campaign. 
+NEW: Several security issues after a second private bug hunting campaign.
 NEW: A lot of fix into english text after a small proofreading campaign (still not perfect, but really better)
 NEW: All main menu entries are using the picto of the module
-NEW: Add a copy to clipboard button on some fields 
+NEW: Add a copy to clipboard button on some fields
 NEW: Add an example of scheduled job to send email reminder for unpaid invoices
 NEW: Add some color and picto for the direction of movement
 NEW: add the column "Channel" into the list of orders
@@ -1181,7 +1595,7 @@ NEW: can show the leave dates/holidays on the agenda view
 NEW: Support color for types of event
 
  Bank
-NEW: Bank Entries : display user linked to a salary or a taxes 
+NEW: Bank Entries : display user linked to a salary or a taxes
 NEW: Add bulk actions for Bank Transfer
 
  ECM/GED
@@ -1204,7 +1618,7 @@ NEW: option to automatically create a login/user when a new subscription of a me
 NEW: option to select membership type on the online payment page for membership subscription or renewal
 
  Products
-NEW: Add price min and price min including tax into product export 
+NEW: Add price min and price min including tax into product export
 NEW: Add a ref in product customer price
 NEW: customer ref for product customer prices
 NEW: Set status of all variants when changing status of parent
@@ -1257,8 +1671,8 @@ NEW: add option in Workflow module to set a shipment as closed
 
 
  for Admins
-NEW: Add a security center page with all information and advices related to the security of your instance 
-NEW: Add a performance center page with all information and advices related to the performance of your instance 
+NEW: Add a security center page with all information and advices related to the security of your instance
+NEW: Add a performance center page with all information and advices related to the performance of your instance
 
  Modules
 NEW: Module Recruitment is now stable
@@ -1304,7 +1718,7 @@ NEW: API get the list of product ids only
 NEW: add link to OpenAPI specifications XML file in REST API module setup: swagger.json file can be included into external tools like redoc
 NEW: add native compression in REST APIs
 NEW: Product Variants API, add variant stock to response by parameter
-NEW: Product API route added to get product stock and product with or without variants #13739 #17390 
+NEW: Product API route added to get product stock and product with or without variants #13739 #17390
 
  Hooks
 NEW: hook printFieldListTitle for cabyprodserv.php
@@ -1329,8 +1743,8 @@ Following changes may create regressions for some external modules, but were nec
 * Removed deprecated substitution key  __REFCLIENT__  (replaced with __REF_CLIENT__)
 * Removed constant MAIN_COUNTRIES_IN_EEC. You can now set if country is in Europe or not from the dictionary of countries.
 * v14 seems to work correctly on PHP v8 but it generates a lot of verbose warnings. Currently, v14 i snot yet officialy supported with PHP 8.
-* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in 
-  method executeCLI() available into core/class/utils.class.php  
+* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in
+  method executeCLI() available into core/class/utils.class.php
 * the trigger "*_DELETE_CONTACT" inside "delete_contact()" function from commonobject.class.php is call before delete the object element
   and a $object->context['contact_id'] is now available for this trigger
 
@@ -1559,7 +1973,7 @@ NEW: Module "Credit transfer SEPA" to manage payment of vendors using bank credi
 NEW: Module Intracomm report
 NEW: Module Reception (for a more accurate management of your receptions) moved from experimental to stable.
 NEW: Module Recruitment to manage Job position and applications.
-NEW: Several security issues after a private bug bounty campaign. 
+NEW: Several security issues after a private bug bounty campaign.
 NEW: Accountancy - add chart of sub accounts
 NEW: Accountancy - add options to disable binding on sales, purchases & expense reports independently of the modules
 NEW: Accountancy balance - add a menu entry to show subtotal by group
@@ -1695,7 +2109,7 @@ NEW: show user on external calender events (when found)
 NEW: subject title with company name instead of application title in ticket message
 NEW: Support for Samba4 AD
 NEW: TakePOS appearance tab with more visual parameters
-NEW: TakePOS add alert before changing thirdparty 
+NEW: TakePOS add alert before changing thirdparty
 NEW: TakePOS add third order printer
 NEW: TakePOS can change thirdparty with barcode scan
 NEW: TakePOS can create a thirdparty customer from TakePOS frontend
@@ -1706,9 +2120,9 @@ NEW: TakePOS display resiliate status for members
 NEW: TakePOS Gift Receipt
 NEW: TakePOS multicurrency compatibility
 NEW: TakePOS multicurrency total
-NEW: TakePOS print payment method and change 
+NEW: TakePOS print payment method and change
 NEW: TakePOS restrict thirdparty to customer
-NEW: TakePOS show available stock 
+NEW: TakePOS show available stock
 NEW: TakePOS Weighing Scale compatibility with TakePOS connector #14725
 NEW: Thirdparty Import new fields: mother company,outstanding debt limit,bank account,incoterms
 NEW: Thirdparty module : box on customer/supplier tab for invoice outsantding amount late
@@ -1721,8 +2135,8 @@ NEW: VAT report - Invert constant to show by default zero VAT in reports
 NEW: website page fields selection
 NEW: website - global header of a website can also have dynamic content
 NEW: when creating a user from a member linked to a thirdparty, you can choose to create it as external or internal user
-NEW: add clone button on miscellaneous payment 
-NEW: add option to put the product label in bold in the PDF templates if configured #15065 
+NEW: add clone button on miscellaneous payment
+NEW: add option to put the product label in bold in the PDF templates if configured #15065
 NEW: add option "If the feature to manage kits of module Stock is used, show details of subproducts of a kit on PDF."
 
 

+ 4 - 0
README-FR.md

@@ -56,6 +56,10 @@ Vous pouvez aussi utiliser un serveur Web et une base de données prise en charg
 
 Pour mettre à jour Dolibarr depuis une vieille version vers celle ci:
 
+- Faites une sauvegarde de votre instance [voir ce tutorial](https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr)
+
+- Vérifiez que la nouvelle version est compatible avec la version PHP de votre serveur [voir PHP support](https://wiki.dolibarr.org/index.php/Releases).
+
 - Ecrasez les vieux fichiers dans le vieux répertoire 'dolibarr' par les fichiers
   fournis dans ce nouveau package.
 

+ 1 - 1
README.md

@@ -2,7 +2,7 @@
 
 ![Downloads per day](https://img.shields.io/sourceforge/dw/dolibarr.svg)
 ![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/develop.svg)
-[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg?style=flat-square)](https://php.net/)
+[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%207.0-8892BF.svg?style=flat-square)](https://php.net/)
 [![GitHub release](https://img.shields.io/github/v/release/Dolibarr/dolibarr)](https://github.com/Dolibarr/dolibarr)
 [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5521/badge)](https://bestpractices.coreinfrastructure.org/projects/5521)
 

+ 18 - 18
SECURITY.md

@@ -4,17 +4,15 @@ This file contains some policies about the security reports on Dolibarr ERP CRM
 
 ## Supported Versions for security reports
 
-| Version    | Supported              |
-| ---------- | ---------------------- |
-| <= 15.0.0  | :x:                    |
-| >= 15.0.1+ | :white_check_mark: except CSRF attacks|
-| >= 16.0.0  | :white_check_mark:     |
-| >= develop | :white_check_mark:     |
+Security report are valid only on current stable version (see dolibarr.org web site to get current stable version) or on development version (branch "develop" on https://github.com/Dolibarr/dolibarr).
 
 ## Reporting a Vulnerability
 
-To report a vulnerability, for a private report, please use GitHub security advisory at [https://github.com/Dolibarr/dolibarr/security/advisories/new](https://github.com/Dolibarr/dolibarr/security/advisories/new) (if you have permissions).
-Alternatively send an email to security@dolibarr.org (for everybody)
+To report a vulnerability, for a private report, you can:
+
+- Send your report on [https://app.yogosha.com/cvd/dolibarr/10VxeNx6Ui3rSEhAgX63US](https://app.yogosha.com/cvd/dolibarr/10VxeNx6Ui3rSEhAgX63US) (recommended for everybody)
+- Or if you have permissions, use GitHub security advisory at [https://github.com/Dolibarr/dolibarr/security/advisories/new](https://github.com/Dolibarr/dolibarr/security/advisories/new)
+- Or send by email to security@dolibarr.org a clear textual description of the report along with steps to reproduce the issue, include attachments such as screenshots or proof of concept code as necessary
 
 ## Hunting vulnerabilities on Dolibarr
 
@@ -40,12 +38,12 @@ We are happy to thank everyone who submits valid reports which help us improve t
 
 You must be the first reporter of the vulnerability (duplicate reports are closed).
 
-You must send a clear textual description of the report along with steps to reproduce the issue, include attachments such as screenshots or proof of concept code as necessary.
-
 You must avoid tests that could cause degradation or interruption of our service (refrain from using automated tools, and limit yourself about requests per second), that's why we recommand to install software on your own platform.
 
 You must not leak, manipulate, or destroy any user data of third parties to find your vulnerability.
 
+Reports are processed around once a month.
+
 ## Scope for qualified vulnerabilities
 
 ONLY vulnerabilities discovered, when the following setup on test platform is used, are "valid":
@@ -54,32 +52,33 @@ ONLY vulnerabilities discovered, when the following setup on test platform is us
 * $dolibarr_nocsrfcheck must be kept to the value 0 into conf.php (this is the default value)
 * $dolibarr_main_force_https must be set to something else than 0.
 * The constant MAIN_SECURITY_CSRF_WITH_TOKEN must be set to 3 into backoffice menu Home - Setup - Other (this protection should be set to 3 soon by default)
-* The module DebugBar and ModuleBuilder must NOT be enabled (by default, these modules are not enabled. They are developer tools)
 * ONLY security reports on modules provided by default and with the "stable" status are valid (troubles into "experimental", "developement" or external modules are not valid vulnerabilities).
 * The root of web server must link to htdocs and the documents directory must be outside of the web server root (this is the default when using the default installer but may differs with external installer).
 * The web server setup must be done so that only the documents directory is in write mode. The root directory called htdocs must be read-only.
 * CSRF attacks are accepted but double check that you have set MAIN_SECURITY_CSRF_WITH_TOKEN to value 3.
+* The modules DebugBar and ModuleBuilder must NOT be enabled. (by default, these modules are not enabled. They are developer tools)
 * Ability for a high level user to edit web site pages into the CMS by including HTML or Javascript is an expected feature. Vulnerabilities into the website module are validated only if HTML or Javascript injection can be done by a non allowed user.
+* Fail2ban rules for rate limit on the login page,password forgotten page, api calls and all public pages (/public/*) must be installed as recommendend into the section "About - Admin tools - Section Access limits and mitigation".
 
 Scope is the web application (back office) and the APIs.
 
-## Qualifying vulnerabilities for reporting
+## Examples of vulnerabilities that are Qualified for reporting.
 
 * Remote code execution (RCE)
 * Local files access and manipulation (LFI, RFI, XXE, SSRF, XSPA)
-* Code injections (HTML, JS, SQL, PHP, ...)
+* Code injections (JS, SQL, PHP). HTML are covered only for fields that are not description, notes or comments fields (where rich content is allowed on purpose).
 * Cross-Site Scripting (XSS), except from setup page of module "External web site" (allowing any content here, editable by admin user only, is accepted on purpose) and except into module "Web site" when permission to edit website content is allowed (injecting any data in this case is allowed too).
 * Cross-Site Requests Forgery (CSRF) with real security impact (when using GET URLs, CSRF are qualified only for creating, updating or deleting data from pages restricted to admin users)
 * Open redirect
 * Broken authentication & session management
-* Insecure direct object references
-* CORS with real security impact
+* Insecure direct object references (IDOR)
+* Cross-Origin Resource Sharing (CORS) with real security impact
 * Horizontal and vertical privilege escalation
 * "HTTP Host Header" XSS
 * Software version disclosure (for non admin users only)
 * Stack traces or path disclosure (for non admin users only)
 
-## Non-qualifying vulnerabilities for reporting
+## Examples of vulnerabilities that are Non-qualified for reporting.
 
 * "Self" XSS
 * SSL/TLS best practices
@@ -93,6 +92,7 @@ Scope is the web application (back office) and the APIs.
 * Reports from automated web vulnerability scanners (Acunetix, Vega, etc.) that have not been validated
 * Invalid or missing SPF (Sender Policy Framework) records (Incomplete or missing SPF/DKIM/DMARC)
 * Reports on features flagged as "experimental" or "development"
-* Software version or private IP disclosure when logged user is admin
-* Stack traces or path disclosure when logged user is admin
+* Software version or private IP disclosure when logged-in user is admin
+* Stack traces or path disclosure when logged-in user is admin
 * Any vulnerabilities due to a configuration different than the one defined into chapter "Scope for qualified vulnerabilities".
+* Brute force attacks on login page, password forgotten page or any public pages (/public/*) are not qualified if the fail2ban recommended fail2ban rules were not installed.  

+ 1 - 1
build/debian/compat

@@ -1 +1 @@
-7
+10

+ 0 - 1
build/debian/control

@@ -19,7 +19,6 @@ Depends: libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm |
     php-pear, php-mail-mime,
 #    php-tcpdf,
 #    libfpdf-tpl-php, php-fpdf,
-#    libphp-adodb,
 #    libnusoap-php,
 #    libphp-pclzip,
 # Required javascript libraries

+ 0 - 25
build/debian/copyright

@@ -61,31 +61,6 @@ License: GPL-3+
 
 ------------------------------------------------------------
 
-Files: htdocs/includes/adodbtime/*
-Copyright: 2003-2005, John Lim
-           unknown, jackbbs
-License: BSD-3-Clause
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- .
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- .
- Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- .
- Neither the name of the John Lim nor the names of its contributors may be
- used to endorse or promote products derived from this software without
- specific prior written permission.
-Comment:
- Those files are not shipped in the binary package since we use
- the library as packaged in "libphp-adodb".
-
-
-------------------------------------------------------------
-
 Files: htdocs/includes/ckeditor/*
 Copyright: 2003-2012 CKSource - Frederico Knabben
 License: GPL-2+

+ 0 - 1
build/debian/dolibarr.postinst

@@ -146,7 +146,6 @@ case "$1" in
 		#else
 			# File already exist. We add params not found.
 			#echo Add new params to overwrite path to use shared libraries/fonts
-			#grep -q -c "dolibarr_lib_ADODB_PATH" $config    || [ ! -d "/usr/share/php/adodb" ]  || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
 			##grep -q -c "dolibarr_lib_GEOIP_PATH" $config    || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
 			#grep -q -c "dolibarr_lib_NUSOAP_PATH" $config   || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config
 			#grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ]  || echo "<?php \$dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; ?>" >> $config

+ 0 - 1
build/debian/install.forced.php.install

@@ -31,7 +31,6 @@ $force_install_distrib='debian';
 // - not removed from package (see rm in rules file),
 // - declared into dependencies (see Depends in control file)
 //$force_dolibarr_lib_TCPDF_PATH='';
-//$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb';
 //$force_dolibarr_lib_GEOIP_PATH='';
 //$force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap';
 //$force_dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip';

+ 5 - 2
build/debian/rules

@@ -19,6 +19,10 @@ override_dh_auto_clean:
 override_dh_auto_build:
 # Do nothing. Added to disable launchpad to use bugged dh_auto_build search for ant
 
+# Force the compression format for control files
+override_dh_builddeb:
+	dh_builddeb -- -Zxz
+
 #override_dh_compress:
 #	dh_compress --no-act -X.png
 
@@ -89,7 +93,6 @@ override_dh_install:
 	rm -fr build/zip
 	
 	# clean from all PHP embedded libraries (we use package dependencies instead)
-#	rm -fr htdocs/includes/adodbtime
 #	rm -fr htdocs/includes/geoip
 #	rm -fr htdocs/includes/nusoap
 #	rm -fr htdocs/includes/odtphp/zip/pclzip
@@ -125,4 +128,4 @@ override_dh_fixperms:
 	# Give rights to the webserver on the upload directory
 	chown www-data:www-data debian/dolibarr/var/lib/dolibarr/documents
 	chmod 2775 debian/dolibarr/var/lib/dolibarr/documents
-	
+

+ 0 - 2
build/debian/source/include-binaries

@@ -1,2 +0,0 @@
-htdocs/install/doctemplates/websites/website_template-corporate.zip
-htdocs/install/doctemplates/websites/website_template-stellar.zip

+ 3 - 1
build/debian/source/options

@@ -1,3 +1,5 @@
-# Force use of gzip compression by dpkg-buildpackage
+# Force use of gzip compression by dpkg-buildpackage for the tarball *.debian.tar.gz
+# See also option --compression from command line of dpkg-buildpackage
+# Format for the control files are defined into the rules file in override_dh_builddeb section
 compression = "gzip"
 #compression-level = 9

+ 2 - 0
build/exe/doliwamp/README.md

@@ -9,3 +9,5 @@ The build of .exe files need to have some windows executable files already insta
 
 If you have technical knowledge in web administration and plan to share your server instance (Apache, Mysql or PHP) with other projects than Dolibarr or want to use Dolibarr other components (PostgreSQL), you should not use this assistant and make a manual installation of Dolibarr on your existing server by downloading the standard package (.tgz or .zip file).
 
+
+!!! See file ../makepack-howto.txt

+ 5 - 6
build/exe/doliwamp/config.inc.php.install

@@ -1,5 +1,4 @@
 <?php
-
 /* !!! DO NOT EDIT THIS FILE, EDIT config.inc.php INSTEAD !!! */
 
 // vim: expandtab sw=4 ts=4 sts=4:
@@ -139,7 +138,7 @@ $cfg['UseDbSearch']             = TRUE;   // whether to enable the "database sea
 $cfg['IgnoreMultiSubmitErrors'] = FALSE;  // if set to true, PMA continues computing multiple-statement queries
                                           // even if one of the queries failed
 $cfg['VerboseMultiSubmit']      = TRUE;   // if set to true, PMA will show the affected rows of EACH statement on
-                                          // multiple-statement queries. See the libraries/import.php file for 
+                                          // multiple-statement queries. See the libraries/import.php file for
                                           // hardcoded defaults on how many queries a statement may contain!
 $cfg['AllowArbitraryServer']    = FALSE;  // allow login to any user entered server in cookie based auth
 
@@ -195,7 +194,7 @@ $cfg['CharEditing']           = 'input';
                                         //  textarea - allows newlines in fields
 $cfg['InsertRows']            = 2;      // How many rows can be inserted at one time
 
-$cfg['ForeignKeyDropdownOrder'] =       // Sort order for items in a foreign-key dropdown box. 
+$cfg['ForeignKeyDropdownOrder'] =       // Sort order for items in a foreign-key dropdown box.
     array( 'content-id', 'id-content'); // 'content' is the referenced data, 'id' is the key value.
 $cfg['ForeignKeyMaxLimit'] = 100;       // A dropdown will be used if fewer items are present
 
@@ -488,7 +487,7 @@ $cfg['ShowBrowseComments']  = TRUE;         // shows stored relation-comments in
 $cfg['ShowPropertyComments']= TRUE;         // shows stored relation-comments in 'table property' mode.
 $cfg['RepeatCells']         = 100;          // repeat header names every X cells? (0 = deactivate)
 
-$cfg['EditInWindow']        = TRUE;         // Set to TRUE if Edit link should open the query to edit in the query window (assuming Javascript is enabled), and to FALSE if we should edit in the right panel 
+$cfg['EditInWindow']        = TRUE;         // Set to TRUE if Edit link should open the query to edit in the query window (assuming Javascript is enabled), and to FALSE if we should edit in the right panel
 $cfg['QueryWindowWidth']    = 550;          // Width of Query window
 $cfg['QueryWindowHeight']   = 310;          // Height of Query window
 $cfg['QueryHistoryDB']      = FALSE;         // Set to TRUE if you want DB-based query history.
@@ -561,7 +560,7 @@ $cfg['SQLQuery']['Refresh']   = TRUE;       // Refresh the results page
  */
 $cfg['UploadDir']             = '';         // Directory for uploaded files that can be executed by
                                             // phpMyAdmin. For example './upload'. Leave empty for
-                                            // no upload directory support. Use %u for username 
+                                            // no upload directory support. Use %u for username
                                             // inclusion.
 $cfg['SaveDir']               = '';         // Directory where phpMyAdmin can save exported data on
                                             // server. For example './save'. Leave empty for no save
@@ -645,7 +644,7 @@ $cfg['ColumnTypes'] = array(
 );
 
 // Attributes
-// Note: the "ON UPDATE CURRENT_TIMESTAMP" attribute is added dynamically 
+// Note: the "ON UPDATE CURRENT_TIMESTAMP" attribute is added dynamically
 // for MySQL >= 4.1.2, in libraries/tbl_properties.inc.php
 
 $cfg['AttributeTypes'] = array(

+ 2 - 1
build/generate_filelist_xml.php

@@ -46,6 +46,7 @@ require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
 
 $includecustom=0;
 $includeconstants=array();
+$buildzip=0;
 
 if (empty($argv[1])) {
 	print "Usage:   ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value] [buildzip=1]\n";
@@ -84,7 +85,7 @@ while ($i < $argc) {
 }
 
 if (empty($release)) {
-	print "Error: Missing release paramater\n";
+	print "Error: Missing release parameter\n";
 	print "Usage: ".$script_file." release=autostable|auto[-mybuild]|x.y.z[-mybuild] [includecustom=1] [includeconstant=CC:MY_CONF_NAME:value]\n";
 	exit -1;
 }

+ 9 - 8
build/makepack-dolibarr.pl

@@ -524,12 +524,13 @@ if ($nboftargetok) {
 		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/ansible`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/codesniffer`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/codetemplates`;
-		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/dbmodel`;
+		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/examples/ldap`;
+		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/examples/zapier`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/initdata`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/initdemo`;
-		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/iso-normes`;
-		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/ldap`;
-		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/licence`;
+		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/resources/dbmodel`;
+		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/resources/iso-normes`;
+		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/resources/licence`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/mail`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/multitail`;
 		$ret=`rm -fr $BUILDROOT/$PROJECT/dev/phpcheckstyle`;
@@ -894,7 +895,7 @@ if ($nboftargetok) {
 
 			$ret=`rm -fr $BUILDROOT/$PROJECT.tmp`;
 			$ret=`rm -fr $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build`;
-			
+
 			print "Copy $BUILDROOT/$PROJECT to $BUILDROOT/$PROJECT.tmp\n";
 			$cmd="cp -pr \"$BUILDROOT/$PROJECT\" \"$BUILDROOT/$PROJECT.tmp\"";
 			$ret=`$cmd`;
@@ -1049,16 +1050,16 @@ if ($nboftargetok) {
 			print "Go into directory $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build\n";
 			chdir("$BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build");
 			#$cmd="dpkg-source -b $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build";
-			$cmd="dpkg-buildpackage -us -uc";
+			$cmd="dpkg-buildpackage -us -uc --compression=gzip";
 			print "Launch DEB build ($cmd)\n";
 			$ret=`$cmd 2>&1 3>&1`;
 			print $ret."\n";
 
 			chdir("$olddir");
-			
+
 			print "You can check bin package with lintian --pedantic -E -I \"$NEWDESTI/${FILENAMEDEB}_all.deb\"\n";
 			print "You can check src package with lintian --pedantic -E -I \"$NEWDESTI/${FILENAMEDEB}.dsc\"\n";
-			
+
 			# Move to final dir
 			print "Move *_all.deb *.dsc *.orig.tar.gz *.changes to $NEWDESTI\n";
 			$ret=`mv $BUILDROOT/*_all.deb "$NEWDESTI/"`;

+ 1 - 0
build/makepack-dolibarrmodule.pl

@@ -293,6 +293,7 @@ foreach my $PROJECT (@PROJECTLIST) {
 		    }
 		    print "Clean $BUILDROOT\n";
 		    $ret=`rm -fr $BUILDROOT/$PROJECTLC/.cache`;
+		    $ret=`rm -fr $BUILDROOT/$PROJECTLC/.git`;
 		    $ret=`rm -fr $BUILDROOT/$PROJECTLC/.project`;
 		    $ret=`rm -fr $BUILDROOT/$PROJECTLC/.settings`;
 		    $ret=`rm -fr $BUILDROOT/$PROJECTLC/index.php`;

+ 17 - 5
build/makepack-howto.txt

@@ -8,13 +8,13 @@ of Dolibarr. There is a chapter for BETA version and a chapter for RELEASE versi
 Prerequisites to build tgz, debian and rpm packages:
 > apt-get install perl tar dpkg dpatch p7zip-full rpm zip php-cli
 
-Prerequisites to build autoexe DoliWamp package:
+Prerequisites to build autoexe DoliWamp package from Linux (solution seems broken since Ubuntu 20.04):
 > apt-get install wine q4wine
 > Launch "wine cmd" to check a drive Z: pointing to / exists.
 > Install InnoSetup
    For example by running isetup-5.5.8.exe (https://www.jrsoftware.org)  https://files.jrsoftware.org/is/5/
 > Install WampServer into "C:\wamp64" to have Apache, PHP and MariaDB
-   For example by running wampserver3.2.0_x64.exe (https://www.wampserver.com). 
+   For example by running wampserver3.2.6_x64.exe (https://www.wampserver.com). 
    See file build/exe/doliwamp.iss to know the doliwamp version currently setup.
 > Add path to ISCC into PATH windows var:
   Launch wine cmd, then regedit and add entry int HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PATH
@@ -25,9 +25,21 @@ Prerequisites to build autoexe DoliWamp package:
 
 ***** Prerequisites For Windows *****
 
-Install Perl
-Install WampServer-3.2.*-64.exe
-isetup-5.5.8.exe
+Prerequisites to build autoexe DoliWamp package from Windows:
+
+> Install Perl for Windows (https://strawberryperl.com/)
+> Install isetup-5.5.8.exe (https://www.jrsoftware.org)
+> Install WampServer-3.2.*-64.exe (Apache 2.4.51, PHP 7.3.33, MariaDB 10.6.5 for example. Version must match the values found into doliwamp.iss)
+> Install GIT for Windows (https://git-scm.com/ => You must choose option "Add Git bash profile", "Git commit as-is")
+> Install Dolibarr current version:   
+  git clone https://github.com/dolibarr/dolibarr  or  git clone --branch X.Y https://github.com/dolibarr/dolibarr  
+
+> Add the path of PHP (C:\wamp64\bin\php\php7.3.33) and InnoSetup (C:\Program Files (x86)\Inno Setup 5) into the %PATH% of Windows.
+
+> Create a config file c:\dolibarr\dolibarr\htdocs\conf\conf.php with content
+  <?php
+  $dolibarr_main_document_root="c:\dolibarr\dolibarr\htdocs";
+  $dolibarr_main_url_root='http://localhost';
 
 
 ***** Actions to do a BETA *****

+ 4 - 8
build/phpstan/bootstrap.php

@@ -1,14 +1,10 @@
 <?php
-// Example to use PHPStan
-// cd git/dolibarr
-// /usr/bin/php7.2 ../phpstan.phar -l1 analyze htdocs/societe/website.php --memory-limit 2G
-
 // Defined some constants and load Dolibarr env to reduce PHPStan bootstrap that fails to load a lot of things.
-define('DOL_DOCUMENT_ROOT', __DIR__ . '/../../htdocs');
-define('DOL_DATA_ROOT', __DIR__ . '/../../documents');
-define('DOL_URL_ROOT', '/');
+//define('DOL_DOCUMENT_ROOT', __DIR__ . '/../../htdocs');
+//define('DOL_DATA_ROOT', __DIR__ . '/../../documents');
+//define('DOL_URL_ROOT', '/');
 
-// Load the main.inc.php file to have functions llx_Header and llx_Footer defined
+// Load the main.inc.php file to have functions env defined
 if (! defined("NOLOGIN")) define("NOLOGIN", '1');
 global $conf, $langs, $user, $db;
 include_once __DIR__ . '/../../htdocs/main.inc.php';

+ 2 - 3
build/rpm/dolibarr_fedora.spec

@@ -25,7 +25,7 @@ BuildArch: noarch
 BuildRoot: %{_tmppath}/%{name}-%{version}-build
 
 Group: Applications/Productivity
-Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-adodb, php-nusoap, dejavu-sans-fonts
+Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-nusoap, dejavu-sans-fonts
 Requires: mysql-server, mysql
 #BuildRequires: desktop-file-utils
 
@@ -104,7 +104,6 @@ cui hai bisogno ed essere facile da usare.
 %{__cp} -pr htdocs  $RPM_BUILD_ROOT%{_datadir}/%{name}
 %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name}
 %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source  
-%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/adodbtime  
 %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/nusoap
 %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts
 
@@ -165,6 +164,7 @@ done >>%{name}.lang
 %_datadir/dolibarr/htdocs/barcode
 %_datadir/dolibarr/htdocs/blockedlog
 %_datadir/dolibarr/htdocs/bookmarks
+%_datadir/dolibarr/htdocs/bookcal
 %_datadir/dolibarr/htdocs/bom
 %_datadir/dolibarr/htdocs/categories
 %_datadir/dolibarr/htdocs/collab
@@ -274,7 +274,6 @@ if [ -s $config ] && grep -q "File generated by" $config
 then 
   # File already exist. We add params not found.
   echo Add new params to overwrite path to use shared libraries/fonts
-  grep -q -c "dolibarr_lib_ADODB_PATH" $config     || [ ! -d "/usr/share/php/adodb" ]  || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
   grep -q -c "dolibarr_lib_FPDI_PATH" $config      || [ ! -d "/usr/share/php/fpdi" ]   || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
   #grep -q -c "dolibarr_lib_GEOIP_PATH" $config    || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
   grep -q -c "dolibarr_lib_NUSOAP_PATH" $config    || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config

+ 2 - 3
build/rpm/dolibarr_generic.spec

@@ -46,7 +46,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
 
 %if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version}
 Group: Applications/Productivity
-Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-adodb, php-nusoap, dejavu-sans-fonts, php-mbstring, php-xml
+Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-nusoap, dejavu-sans-fonts, php-mbstring, php-xml
 Requires: mysql-server, mysql
 BuildRequires: desktop-file-utils
 %else
@@ -169,7 +169,6 @@ cui hai bisogno ed essere facile da usare.
 %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name}
 %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source  
 %if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version}
-%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/adodbtime  
 %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/nusoap
 %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts
 %else
@@ -246,6 +245,7 @@ done >>%{name}.lang
 %_datadir/dolibarr/htdocs/barcode
 %_datadir/dolibarr/htdocs/blockedlog
 %_datadir/dolibarr/htdocs/bookmarks
+%_datadir/dolibarr/htdocs/bookcal
 %_datadir/dolibarr/htdocs/bom
 %_datadir/dolibarr/htdocs/categories
 %_datadir/dolibarr/htdocs/collab
@@ -425,7 +425,6 @@ if [ -s $config ] && grep -q "File generated by" $config
 then
   # File already exist. We add params not found.
   echo Add new params to overwrite path to use shared libraries/fonts
-  grep -q -c "dolibarr_lib_ADODB_PATH" $config     || [ ! -d "/usr/share/php/adodb" ]  || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
   grep -q -c "dolibarr_lib_FPDI_PATH" $config      || [ ! -d "/usr/share/php/fpdi" ]   || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
   #grep -q -c "dolibarr_lib_GEOIP_PATH" $config    || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
   grep -q -c "dolibarr_lib_NUSOAP_PATH" $config    || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config

+ 1 - 1
build/rpm/dolibarr_mandriva.spec

@@ -162,6 +162,7 @@ done >>%{name}.lang
 %_datadir/dolibarr/htdocs/barcode
 %_datadir/dolibarr/htdocs/blockedlog
 %_datadir/dolibarr/htdocs/bookmarks
+%_datadir/dolibarr/htdocs/bookcal
 %_datadir/dolibarr/htdocs/bom
 %_datadir/dolibarr/htdocs/categories
 %_datadir/dolibarr/htdocs/collab
@@ -271,7 +272,6 @@ if [ -s $config ] && grep -q "File generated by" $config
 then 
   # File already exist. We add params not found.
   echo Add new params to overwrite path to use shared libraries/fonts
-  grep -q -c "dolibarr_lib_ADODB_PATH" $config     || [ ! -d "/usr/share/php/adodb" ]  || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
   grep -q -c "dolibarr_lib_FPDI_PATH" $config      || [ ! -d "/usr/share/php/fpdi" ]   || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
   #grep -q -c "dolibarr_lib_GEOIP_PATH" $config    || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
   grep -q -c "dolibarr_lib_NUSOAP_PATH" $config    || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config

+ 2 - 2
build/rpm/dolibarr_opensuse.spec

@@ -67,7 +67,7 @@ Programmo web, progettato per poter fornire solo ciò di
 cui hai bisogno ed essere facile da usare.
 
 
-#---- prep
+#---- prepo
 %prep
 %setup -q
 %patch0 -p0 -b .patch
@@ -172,6 +172,7 @@ done >>%{name}.lang
 %_datadir/dolibarr/htdocs/barcode
 %_datadir/dolibarr/htdocs/blockedlog
 %_datadir/dolibarr/htdocs/bookmarks
+%_datadir/dolibarr/htdocs/bookcal
 %_datadir/dolibarr/htdocs/bom
 %_datadir/dolibarr/htdocs/categories
 %_datadir/dolibarr/htdocs/collab
@@ -281,7 +282,6 @@ if [ -s $config ] && grep -q "File generated by" $config
 then 
   # File already exist. We add params not found.
   echo Add new params to overwrite path to use shared libraries/fonts
-  grep -q -c "dolibarr_lib_ADODB_PATH" $config     || [ ! -d "/usr/share/php/adodb" ]  || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
   grep -q -c "dolibarr_lib_FPDI_PATH" $config      || [ ! -d "/usr/share/php/fpdi" ]   || echo "<?php \$dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi'; ?>" >> $config
   #grep -q -c "dolibarr_lib_GEOIP_PATH" $config    || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
   grep -q -c "dolibarr_lib_NUSOAP_PATH" $config    || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config

+ 0 - 1
build/rpm/install.forced.php.fedora

@@ -20,7 +20,6 @@ $force_install_lockinstall='444';
 $force_install_distrib='rpmfedora';
 
 // Value to overwrite path to use shared libraries/fonts instead of embedded one
-$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb';
 //$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi';
 //$force_dolibarr_lib_GEOIP_PATH='';
 $force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap';

+ 0 - 1
build/rpm/install.forced.php.mandriva

@@ -20,7 +20,6 @@ $force_install_lockinstall='444';
 $force_install_distrib='rpmmandriva';
 
 // Value to overwrite path to use shared libraries/fonts instead of embedded one
-$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb';
 //$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi';
 //$force_dolibarr_lib_GEOIP_PATH='';
 $force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap';

+ 0 - 1
build/rpm/install.forced.php.opensuse

@@ -20,7 +20,6 @@ $force_install_lockinstall='444';
 $force_install_distrib='rpmopensuse';
 
 // Value to overwrite path to use shared libraries/fonts instead of embedded one
-//$force_dolibarr_lib_ADODB_PATH='/usr/share/php/adodb';
 //$force_dolibarr_lib_FPDI_PATH='/usr/share/php/fpdi';
 //$force_dolibarr_lib_GEOIP_PATH='';
 //$force_dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap';

+ 7 - 5
build/tgz/tar_exclude.txt

@@ -1,15 +1,17 @@
 *~
 .#*
+.git
+.gitignore
+.scrutinizer.yml
 Thumbs.db
 build/exe
 build/html
-dev/dbmodel
-dev/fpdf
+dev/examples/zapier
 dev/initdemo
 dev/initdata
-dev/iso-normes
-dev/licence
-dev/load
+dev/resources/dbmodel
+dev/resources/iso-normes
+dev/resources/licence
 htdocs/conf/conf.php
 htdocs/conf/conf.php.mysql
 htdocs/conf/conf.php.old

+ 8 - 0
dev/dolibarr_changes.txt

@@ -208,6 +208,11 @@ with:
 with
 	foreach ($value[1] as $k => $v) {
 
+* Fix by replacing 
+	if ($res[0] == PDF_TYPE_OBJECT)
+with
+	if ($res && $res[0] == PDF_TYPE_OBJECT)
+
 
 
 JSGANTT:
@@ -282,6 +287,9 @@ RESTLER:
 	
 	elseif (count($value) && isset($value[0]) && is_numeric($value[0]))
 
+* Add CommentParser.php line 406 & 407 to remove a warning on api request in php 8.1
+	empty($value[0]) ? null :
+	empty($value[1]) ? null :
 
 * Add a test into AutoLoader.php to complete function loadThisLoader and test if property exists before calling it. For this replace code
 

+ 12 - 11
dev/examples/ldap/ldapsearch_sample1.txt

@@ -1,28 +1,29 @@
 # ldapsearch_sample1.txt
 # ldapsearch is into package ldap-utils on debian.
 #
-# Use this sample to search into a ldap
+# Use this samples to test a ldap_bind or to make a search into a ldap
 #
 
 # Anonymous access
-# ldapsearch -h hostname -p 389
+#  ldapsearch -h hostname -p 389
 #
 # Login access (using a Bind DN)
-# ldapsearch -h hostname -p 389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password
-# ldapsearch -H ldap://hostname:389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password
-# ldapsearch -d1 -H ldap://hostname:389 -x -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password
-# ldapsearch -H ldap://hostname:389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password
+# Such access must succeed to use LDAP as login module.
+#  ldapsearch -h hostname -p 389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password
+#  ldapsearch -H ldap://hostname:389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password
+#  ldapsearch -d1 -H ldap://hostname:389 -x -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password
+#  ldapsearch -H ldap://hostname:389 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password
 #
 # Login access in SSL (using a Bind DN)
-# ldapsearch -H ldaps://hostnamme:636 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -b "cn=users,dc=ldap,dc=test,dc=local
+#  ldapsearch -H ldaps://hostnamme:636 -z 0 -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -b "cn=users,dc=ldap,dc=test,dc=local"
 # If it fails, you may try to use "hostname" that is real name of certificate.
 # You must also check that /etc/ldap/ldap.conf contains the line TLS_CACERT /etc/ssl/certs/ca-certificates.crt
 
 # What to search
-# ldapsearch -h hostname -p 389 -x -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -b "cn=users,dc=ldap,dc=test,dc=local"
-# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "ou=people,dc=teclib,dc=infra"
-# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "o=somecompany.com" "(objectclass=*)"
+#  ldapsearch -h hostname -p 389 -x -D "uid=root,cn=users,dc=ldap,dc=test,dc=local" -w password -b "cn=users,dc=ldap,dc=test,dc=local"
+#  ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "ou=people,dc=teclib,dc=infra"
+#  ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "o=somecompany.com" "(objectclass=*)"
 #
 # Example to test a ldap search: 
-# ldapsearch -h hostname -p 389 -x -z 5 -b 'OU=Collaborateurs,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -D 'CN=UserAdmin,OU=Informatique,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -w password
+#  ldapsearch -h hostname -p 389 -x -z 5 -b 'OU=Collaborateurs,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -D 'CN=UserAdmin,OU=Informatique,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -w password
 

+ 3 - 3
dev/examples/zapier/triggers/action.js

@@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => {
         action: bundle.inputData.action
     };
 
-    const url = bundle.authData.url + '/api/index.php/zapierapi/hook';
+    const url = bundle.authData.url + '/api/index.php/zapier/hook';
 
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
@@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => {
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
     const options = {
-        url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id,
+        url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id,
         method: 'DELETE',
     };
 
@@ -84,7 +84,7 @@ const getFallbackRealAction = (z, bundle) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const module = bundle.inputData.module;
 //     const options = {
-//         url: bundle.authData.url  + '/api/index.php/zapierapi/getactionschoices/actions',
+//         url: bundle.authData.url  + '/api/index.php/zapier/getactionschoices/actions',
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));

+ 4 - 4
dev/examples/zapier/triggers/contact.js

@@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => {
         action: bundle.inputData.action
     };
 
-    const url = bundle.authData.url  + '/api/index.php/zapierapi/hook';
+    const url = bundle.authData.url  + '/api/index.php/zapier/hook';
 
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
@@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => {
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
     const options = {
-        url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id,
+        url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id,
         method: 'DELETE',
     };
 
@@ -76,7 +76,7 @@ const getFallbackRealContact = (z, bundle) => {
 // const getModulesChoices = (z/*, bundle*/) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const options = {
-//         url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices',
+//         url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices',
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));
@@ -94,7 +94,7 @@ const getFallbackRealContact = (z, bundle) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const module = bundle.inputData.module;
 //     const options = {
-//         url:  url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`,
+//         url:  url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`,
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));

+ 4 - 4
dev/examples/zapier/triggers/member.js

@@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => {
         action: bundle.inputData.action
     };
 
-    const url = bundle.authData.url  + '/api/index.php/zapierapi/hook';
+    const url = bundle.authData.url  + '/api/index.php/zapier/hook';
 
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
@@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => {
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
     const options = {
-        url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id,
+        url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id,
         method: 'DELETE',
     };
 
@@ -76,7 +76,7 @@ const getFallbackRealMember = (z, bundle) => {
 // const getModulesChoices = (z/*, bundle*/) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const options = {
-//         url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices',
+//         url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices',
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));
@@ -94,7 +94,7 @@ const getFallbackRealMember = (z, bundle) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const module = bundle.inputData.module;
 //     const options = {
-//         url:  url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`,
+//         url:  url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`,
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));

+ 3 - 3
dev/examples/zapier/triggers/order.js

@@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => {
         action: bundle.inputData.action
     };
 
-    const url = bundle.authData.url  + '/api/index.php/zapierapi/hook';
+    const url = bundle.authData.url  + '/api/index.php/zapier/hook';
 
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
@@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => {
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
     const options = {
-        url: bundle.authData.url  + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id,
+        url: bundle.authData.url  + '/api/index.php/zapier/hook/' + bundle.subscribeData.id,
         method: 'DELETE',
     };
 
@@ -74,7 +74,7 @@ const getFallbackRealOrder = (z, bundle) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const module = bundle.inputData.module;
 //     const options = {
-//         url: bundle.authData.url  + '/api/index.php/zapierapi/getactionschoices/orders',
+//         url: bundle.authData.url  + '/api/index.php/zapier/getactionschoices/orders',
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));

+ 4 - 4
dev/examples/zapier/triggers/thirdparty.js

@@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => {
         action: bundle.inputData.action
     };
 
-    const url = bundle.authData.url  + '/api/index.php/zapierapi/hook';
+    const url = bundle.authData.url  + '/api/index.php/zapier/hook';
 
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
@@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => {
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
     const options = {
-        url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id,
+        url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id,
         method: 'DELETE',
     };
 
@@ -83,7 +83,7 @@ const getFallbackRealThirdparty = (z, bundle) => {
 // const getModulesChoices = (z/*, bundle*/) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const options = {
-//         url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices',
+//         url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices',
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));
@@ -102,7 +102,7 @@ const getFallbackRealThirdparty = (z, bundle) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const module = bundle.inputData.module;
 //     const options = {
-//         url:  url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`,
+//         url:  url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`,
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));

+ 4 - 4
dev/examples/zapier/triggers/ticket.js

@@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => {
         action: bundle.inputData.action
     };
 
-    const url = bundle.authData.url  + '/api/index.php/zapierapi/hook';
+    const url = bundle.authData.url  + '/api/index.php/zapier/hook';
 
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
@@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => {
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
     const options = {
-        url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id,
+        url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id,
         method: 'DELETE',
     };
 
@@ -76,7 +76,7 @@ const getFallbackRealTicket = (z, bundle) => {
 // const getModulesChoices = (z/*, bundle*/) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const options = {
-//         url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices',
+//         url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices',
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));
@@ -97,7 +97,7 @@ const getFallbackRealTicket = (z, bundle) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const module = bundle.inputData.module;
 //     const options = {
-//         url:  url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`,
+//         url:  url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`,
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));

+ 4 - 4
dev/examples/zapier/triggers/user.js

@@ -10,7 +10,7 @@ const subscribeHook = (z, bundle) => {
         action: bundle.inputData.action
     };
 
-    const url = bundle.authData.url  + '/api/index.php/zapierapi/hook';
+    const url = bundle.authData.url  + '/api/index.php/zapier/hook';
 
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
@@ -32,7 +32,7 @@ const unsubscribeHook = (z, bundle) => {
     // You can build requests and our client will helpfully inject all the variables
     // you need to complete. You can also register middleware to control this.
     const options = {
-        url: bundle.authData.url + '/api/index.php/zapierapi/hook/' + bundle.subscribeData.id,
+        url: bundle.authData.url + '/api/index.php/zapier/hook/' + bundle.subscribeData.id,
         method: 'DELETE',
     };
 
@@ -73,7 +73,7 @@ const getFallbackRealUser = (z, bundle) => {
 // const getModulesChoices = (z/*, bundle*/) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const options = {
-//         url: bundle.authData.url + '/api/index.php/zapierapi/getmoduleschoices',
+//         url: bundle.authData.url + '/api/index.php/zapier/getmoduleschoices',
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));
@@ -93,7 +93,7 @@ const getFallbackRealUser = (z, bundle) => {
 //     // For the test poll, you should get some real data, to aid the setup process.
 //     const module = bundle.inputData.module;
 //     const options = {
-//         url:  url: bundle.authData.url + '/api/index.php/zapierapi/getactionschoices/thirparty`,
+//         url:  url: bundle.authData.url + '/api/index.php/zapier/getactionschoices/thirparty`,
 //     };
 
 //     return z.request(options).then((response) => JSON.parse(response.content));

+ 1 - 1
dev/initdata/generate-proposal.php

@@ -152,7 +152,7 @@ $user->rights->propal->creer=1;
 $user->rights->propal->propal_advance->validate=1;
 
 
-if (! empty($conf->global->PROPALE_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php")) {
+if (!empty($conf->global->PROPALE_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php")) {
 	require_once DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php";
 }
 

+ 1 - 1
dev/initdata/purge-data.php

@@ -218,7 +218,7 @@ if ($date == 'all') {
 }
 
 // Replace database handler
-if (! empty($argv[4])) {
+if (!empty($argv[4])) {
 	$db->close();
 	unset($db);
 	$db=getDoliDBInstance($argv[4], $argv[5], $argv[6], $argv[7], $argv[8], $argv[9]);

+ 1 - 1
dev/initdemo/initdemopassword.sh

@@ -152,7 +152,7 @@ fi
 
 if [ "x${demopasshash}" != "xpassword_hash" ]
 then
-	echo '<?php echo MD5("$demopass"); ?>' > /tmp/tmp.php 
+	echo '<?php echo MD5("'$demopass'"); ?>' > /tmp/tmp.php 
 	newpass=`php -f /tmp/tmp.php`
 	rm /tmp/tmp.php
 else

文件差异内容过多而无法显示
+ 0 - 57
dev/initdemo/mysqldump_dolibarr_16.0.0.sql


文件差异内容过多而无法显示
+ 4497 - 0
dev/initdemo/mysqldump_dolibarr_17.0.0.sql


+ 14 - 0
dev/initdemo/savedemo.sh

@@ -290,6 +290,7 @@ export list="
 	--ignore-table=$base.llx_monmodule_abcdef
 	--ignore-table=$base.llx_notes
 	--ignore-table=$base.llx_packages
+	--ignore-table=$base.llx_packages_extrafields
 	--ignore-table=$base.llx_pos_cash
 	--ignore-table=$base.llx_pos_control_cash
 	--ignore-table=$base.llx_pos_facture
@@ -305,6 +306,19 @@ export list="
 	--ignore-table=$base.llx_residence
 	--ignore-table=$base.llx_residence_building
 	--ignore-table=$base.llx_residence_building_links
+	--ignore-table=$base.llx_scaninvoices_filestoimport
+	--ignore-table=$base.llx_scaninvoices_filestoimport_extrafields
+	--ignore-table=$base.llx_scaninvoices_settings
+	--ignore-table=$base.llx_scaninvoices_settings_extrafields
+	--ignore-table=$base.llx_sellyoursaas_blacklistcontent
+	--ignore-table=$base.llx_sellyoursaas_blacklistdir
+	--ignore-table=$base.llx_sellyoursaas_blacklistfrom
+	--ignore-table=$base.llx_sellyoursaas_blacklistip
+	--ignore-table=$base.llx_sellyoursaas_blacklistmail
+	--ignore-table=$base.llx_sellyoursaas_blacklistto
+	--ignore-table=$base.llx_sellyoursaas_deploymentserver
+	--ignore-table=$base.llx_sellyoursaas_stats
+	--ignore-table=$base.llx_sellyoursaas_whitelistip
 	--ignore-table=$base.llx_societe_rib2
 	--ignore-table=$base.llx_sellyoursaas_cancellation
 	--ignore-table=$base.llx_ticketsup

+ 8 - 0
dev/resources/iso-normes/accountancy/accountancy_rules.txt

@@ -12,3 +12,11 @@ Le client règle rapidement et on lui accorde un escompte de 3% (120 € * 3% =
 411xxx      3,60 € TTC
 
 Et ça marche à l’inverse avec un fournisseur sauf que l’on est en 775000 au lieu de 665000 pour escompte obtenus.
+
+
+
+
+Un compte comptable de Tiers vente = Acount Receivable
+Un compte comptable de Tiers achat = Acount Payable
+
+ 

二进制
dev/resources/iso-normes/banking/iban_registry_0.pdf


+ 104 - 104
dev/resources/iso-normes/qr-bar-codes/ig-qr-bill-v2.2-fr.pdf

@@ -4008,7 +4008,7 @@ f
 »Û5Là+ld¥{_¦G—)>'?µÇ»‹eTïÿ!õsPùÔ¼ý6±JÙ*r~	uÈPäÕÓu-6K›JäºÄ8¯èA…Ñ�*gøÎEcYue•v3z¤xj*°mJøµ°zºÂfЪ­3ªúÎì¢oz›gMÍ<´3MDPݶ(�=	Ù|Õíýª®ì®YyVw�Ö„ÜOTÎNÅàY[L<•Ôy©%NâÐÃ.�–‘y_XÐWQˆcqz—{=Ÿº8=g—‡»P4Ë’ªr+Xø+kEVø©Í)ªìÞY«¬ù½_/t6íÜkÕ¼E2×}%
°[—��òˆBb߽̃+ðºR¿p¯mîã¥F¯Ãî?ËÆÛ[ßowT:I5NÕ覞ã&:Ä"˜…Ãæ&¾ê†ŸîÆ5ÂÞâÄ/g+í“!J!·Ôó$¶­–Bú¢ˆú¶†qëV‡gVûœ^s5Eƒ]@¢ë1XjfA¸‡9§ë1°Ç‚�@ä5,º±Õ0W¸Û]Þ@ua1
Ïsð( ”O
¬å.¨².¶¨q�±¼ÁǪ�ÐÞ£}fµT¨s<»Â$¶Ôè+ÛmëŽ�ŽÛ°=�†v3ÈÌžÑÎÕ$}-zDî@EŸ­¡é¼™èðõ®N>Ö6…v¶S/Kp
 J”í PRÛƒ­Mb—Ù],'”FØÀ¨•Á楻¢ÉúM›öfyÄ…ÜpÝâ>z…¦>a6~RSê»ÙEõÖ»nñ$$"
 hÁ#\(k(ÜÓA^0¼2k7�Ê8èeŠÚ•ðw×Ë<áð[ÜäƒG²<EÎ
-€Î˹|)OÁ'x˜¹O%ÄIp¯F¤Òucò3mkð#�ƒ1±©qÂw¼Qö‡…ÏK~»Ä˜AXça÷><‡8%ëË‘±Òý‡$Ô²ù„(}°†CsÙk7)»oí�ÕùLçîÑŠ BÅ­ÿ‚%bç¤D}4ÐÚµh66Z¥µ˜â]OÖ‡Ve)lna…ý<®+à›þí[èpoËðÚÜv9ÓÌM>˜2¶À¾¥¡A©I›}L›’ÖæR^Úò©Û
qá#¬êÛ©½ñc²ãÝ#Áí3·”¬n×Wšý¨„/cbIåã~€‚eá§ö¶Øx­FÓé>drâxîoq·¢	ïMv8íy 3Á\HØn

>ßÝêWßã ùåÅh²Õç­á`HëˆI£²®ò‘dúöcè€q&U™oú‚ï…d’C½”‡\g®i›™p0n1a¥Š‘„¬ÔÒÈÂ_”B±)Uß)„UE$ÊîÌá6w]ÑúN8~²#ï0Kpð"ÊñoKuGùOÐTò«�ÙÃú¨uÂàð[÷]ŸÏ˪„9yjÿݱ”÷ÿØØT‹4‘I]‘�J¹	Yî—@¸9ɫަèï4/K½—8±§e}Û*
+€Î˹|)OÁ'x˜¹O%ÄIp¯F¤Òucò3mkð#�ƒ1±©qÂw¼Qö‡…ÏK~»Ä˜AXça÷><‡8%ëË‘±Òý‡$Ô²ù„(}°†CsÙk7)»oí�ÕùLçîÑŠ BÅ­ÿ‚%bç¤D}4ÐÚµh66Z¥µ˜â]OÖ‡Ve)lna…ý<®+à›þí[èpoËðÚÜv9ÓÌM>˜2¶À¾¥¡A©I›}L›’ÖæR^Úò©Û
qá#¬êÛ©½ñc²ãÝ#Áí3·”¬n×Wšý¨„/cbIåã~€‚eá§ö¶Øx­FÓé>drâxîoq·¢	ïMv8íy 3Á\HØn
>ßÝêWßã ùåÅh²Õç­á`HëˆI£²®ò‘dúöcè€q&U™oú‚ï…d’C½”‡\g®i›™p0n1a¥Š‘„¬ÔÒÈÂ_”B±)Uß)„UE$ÊîÌá6w]ÑúN8~²#ï0Kpð"ÊñoKuGùOÐTò«�ÙÃú¨uÂàð[÷]ŸÏ˪„9yjÿݱ”÷ÿØØT‹4‘I]‘�J¹	Yî—@¸9ɫަèï4/K½—8±§e}Û*
 {†ËDv¥6áF•QñÜ3’>|ŸC¨ô*S5D¥	5ÿõhÄÐ…«³xÈr0ãû釆ÆÿD³)=
 endstream
 endobj
@@ -5578,7 +5578,7 @@ yM
 È…£ábÌÚ¶mËutt´âÜ\¹rµiÓ´—·iÒ¤0`ÀÌ™3{÷îÝɸ=gΜ¡C‡RÌ�?J÷3D<£G�nݺ5q¦L™²N�:ôeòäÉß~ûíìÇÂÛüùó%‰ºÅøþaùòåà³DÃ4oÞ¢Ç	×ÞÞÞo½õ°OO#""0X·nݤI“`äÚµkË©â>üî»ï´£G�ŠÛàà`™q#Îwß}’›ŽàðŽ;véÒ¥bÅŠÄYµjUÞR�hÿïÿþ<9‹Ì•’kzs-­ÿ=ÕŸ	E‹7u‹Ó@Íci[ËÝæeê‰i1Î äZýXMµÃ¿æœoêG²±Å×Äó@÷Ä?˜[TÁð8Û2/›'rÌÌ«î%s{ÐŰJKKKKKKëU)É¡;>uèÐØÜ½{·¼…Fe²;a�´P§‡‡‡¼-]ºôÕ«W�P®‡?~üñÇŠÇ/]º´yóf {Ô¨ÿ>Šüõ×_îîîbаaC¨¼5ûÏŸ?ÿÁƒUH”L˜0�kH9{öì‡ý÷‘lÅŠ°mŸ>}¸nÙ²%Àùž<y²páÂVgΜYŽ GP¿“““”­^¹r¥B…
 ¶=…šåì3y[¯^=�n[…„„`J?xð wïÞf'Bdd¤˜M�:•¡X¶l™¼
wpp(Y²dÒ–H�Þ’Þ\£·–Ö§§ú3¡&”ãÛˆ­ KUhÝ0©råö«O-›f²Æ?oÍËÔñ;{ížH!¯qFhÆjè•·BÄ2ÓMfÿü(R~èVa˜
Ì뼪õ-�¢užŠ\Ÿ’¦¥¥¥¥¥õ*	¡œ3gŽ$"“’#GŽŒ=zذaÇ÷õõ:t(#FŒiÈÏϯ~ýú)S¦¬[·îðÇò54ÌÐàÁƒ÷ìÙ)7hÐÀÎή_¿~ÔÅFîr�ÃB…
 ¥J•ªU«Và98¹qãÆôéÓ»¹¹á„!åYª ‰‡WªÈ–støðajI„Ê 00ðÞ½{ptÚ´i?üðÃ1cÆPÔŸ;wîØ±c´ž+W.±'rÔ”ôéÓ§ýýýåkÝwîÜa”Ú´i£ö’§0N!Ÿ;w.=½ûöí¹,X°ÿþjãðÇ©5qâD¢¥i‰–Ö‹/ž1cÆîÝ»SBÌk×®¥ÊäÉ“ibÉ’ÿLŽÌ›7�rÆsÖ¬Yrº÷+Ä�œÒ›kiý�è©þLØÎ[ÉȪ0�ìåÀib&pãÄ^‘ÕJr…±êL1•–Ü*lÊÃ&¼Öý [˜xâYg.wUº9s*`.¤„QÌŽJÔêwóú------­×DIÝÿýw¥J•ìííUr3XU¡åÌ™3Í3¹Í›7Ç�f¹•€[(µ^½z9r䈊ŠÚ¿¿ƒƒÃçŸN98/®²dÉ,Æ¿üò‹yÝÙÙyóæÍrÍ�!CÇŽm›xôX\ƒºT\¾|9ÍIZòÈÈÈU«V‰ÛtéÒ-Z´Hj<x°@�UªT±JP¦\‰¦L™’ÂX^n.dˆ·åÜ–[`µ«««ÄßµkW)Œ��­\¹2ƒ°wï^)Áž¡Ã9n[¶léâârâÄ	Brrr‚è1¤¿K—.%¼?ü°dÉ’.\xÒgø2tâÈþ5Ëæ&�ôæZZÿz…ÐMyœùÖl=$ÝV²eáĬcÐmõm€™ýûœCuùQÓßf V1Ë—æåñŠÍµ´´´´´´^%-tC  bùòååx�%J¤L™²K—.�¯Y3Ο?ßÉP­ZµŠ-š:uêéÓ§S½gÏžmÛ¶�ŽŽ>~ü8”]ÛPÍš5?ùäø1$$äÁƒwïÞݲe‹¤ü=}úôúõëË–-{nÛ¶Mb€ë·nÝ
-•´ÂÈóé§ŸŒì. ]ÙÞ¯_¿jÕª}üñÇŸâ¢F�~~~x¸|ùrLLÌŽ;h—~ñ–&v|Ò)q(éÖÝÜܰüá‡(Wîîî^^^0û¡C‡5jäíí½}ûö‘#GÒ)ºçÎ�¾}û–)SFVËÿôÓO­[·–™îÛ·o÷îݸfÐè×ÚµkÇ��·uëÖYŒõáÁÁÁT—ž2ž›6mŽ>rä=jÞ¼ù|�&Mš\¹rÑÇAƒa óøÔ


}™ÙËŸ(u²Ø«DKKë	zª?j®öÙ–—[�/fÅ�ÏÝ*=šÕ™eæê
+•´ÂÈóé§ŸŒì. ]ÙÞ¯_¿jÕª}üñÇŸâ¢F�~~~x¸|ùrLLÌŽ;h—~ñ–&v|Ò)q(éÖÝÜܰüá‡(Wîîî^^^0û¡C‡5jäíí½}ûö‘#GÒ)ºçÎ�¾}û–)SFVËÿôÓO­[·–™îÛ·o÷îݸfÐè×ÚµkÇ��·uëÖYŒõáÁÁÁT—ž2ž›6mŽ>rä=jÞ¼ù|�&Mš\¹rÑÇAƒa óøÔ
}™ÙËŸ(u²Ø«DKKë	zª?j®öÙ–—[�/fÅ�ÏÝ*=šÕ™eæê
 „ãÛ‡nyÐm;%m¶�ï+³½š—Uå0»šþ~qç¦iiiiiii=ƒ^tgË–ÍÅÅ%GŽY³f•S³¯\¹yîÜ9.~ûí7¨6tvvƬ@�‹/~øð!Ð
 3îÞ½€McHRŽçÏŸxÄ?€	üªÓºp‚·…
 
@@ -5622,7 +5622,7 @@ w
 ú.Q¢D×®]%/M.ccãråÊe顜ïÛ·¯´®nݺ¸wäÈZ§oü-Ð]§NðíownFéMj Ëh)ã!::š¾Ç–.]J“CCC,X@¶oßÞ¶mÛððp0ÍÇLJ_´h„N/8;;C¦AAA ƒ
 ¼Å†¾ S`@WWWoood¿{÷nì�ÖÍ›7°ô>(›¡ÿé;‹ý·Mþ£ÕË¡Q[[[FžôêÕËßߟ�1yòdFKbûöí	ËСCI$¤ÿý÷ïLJ÷§ß~û�“¾ ø4S®šëׯ_¹rE~kb@ž={šŽ‹‹cr3¾òI:g¹ÕD‰Pèï¤(½U
 º•”””””””²¢2v6õòåË7n4iÒD°sçÎLÈå�n°Hl˜œW©RØ400�í± hBBBÄÚâ”” [†½zõ*ý=PPšSª •l¹T2ic,(yIÏ™3çkûYËd�Ý£G�Úµk9þܶmZ·ÿú«ÿê¯mÛÖ3¦Oûí×_ƒƒƒóçÏ/›”ÁJýF¹î¹““S‘"EöíÛ'‰bgÑpy¼<M»«Þ²eKñù믿~ðà�ÞdÀÄÔÔÔÄÄxè¶´´èæ.­«_¿>,/¸!y�ny!�òߥs3DoRCrr2t9eÊ??¿Ñ£G�±cÇŽ1bÆŒõÔ©SAlRÜÝÝmll@ß�ŸcÆŒ‘íÔóyóæRûöí¢2B8ÙíØ±ƒq‰OŸ>½{÷îC†a~÷Ýw?þø#$ÎÁ±cÿD¿øåçè° Ðÿë¹Þúx9önÝ*èݳgO5räH®ž6mžsá�c€ÛÄ�6ª{Áÿd)èVRRRRRRRÊŠÊðÙäÛ¨Q£råÊG@%èDÃçÎ�{üø1ˆé\,ܧO¹q)%ÈLΡ�ÈСC�2YÏ<M{M{À
-+_¾|®\¹°ñôô|þüyBBš5k:vìH^xœr°x‹-š~Wk|{ñâEëÖ­ñÍÞÎÖ¨pÁ&Å^û+jld\¤0˜/úÚÙ"F†ƒö{ñvÕªUòÐì©S§(–¯ãÇ�øðáµkׄñ„¤¥8æàà`oo@a	$æÍ›R>|8éVVVÅ‹/P À¬Y³fÛ·o'/ŸD¥°T\¹råáÇÁyNY[[Ë[Þ²uš~SÐ5::oÞ¼¹‘‘!¥á:ŒgŠÞ¤†ÐSôæ–-[ nØÀ”G‘ñŸ~÷ööž9s&à<xð`Rhû� æmÛ¶‘‹®'˜t1ÜM¨I! È-cl|2°c‰¹<ÉìããC�å%úÿJ²¼¹ß·¿¸¼ù[W/g 2zqiéÒ¥4möìÙ‡ÂOÆöîÝ»÷ìÙsúôiFÔÁƒéw__ߨ¨(???>„_N^ÓÝ»wcbbhcRRÒ½{÷RSSù¿üò‹¬HðèÑ£3gÎpíÓõœ=þ<ÿ"ä¿Aš¶ÈáÕ«WŸ<yÂ�ÜûæëåË—å‡#¹ޱ|r­ÅÆÆRKšöSÆMäº~ý:_ïß¿/ÁÁ®Ä§OŸfnXÞ‡t+)))))))eE½ènÒ¤‰©©©¾&Òoš D¦â
6„
!M¹Ç�òäɳnݺ4íŽ-Ò×ËÚ´iSáÂ…å.¶,›&k ù²€œ%§

�=*%È)Ù-D•¢À�Š+ê·¿
`OТ?vìØðáÊ3.[¦Tú¿òåÊÔ«W§i“ÆMš4nX¿^…Oʽf†¶¶zúôÉ«W¯Ò¯ñBvèСL™2xFAж¶¶¤ƒ�´4»&Ü D �¿¿?m”ù5@ZJaÃ|ùòI^Ùv<88è¨V­Z£F�d-hÚkgg§çE�7–ÛDI�[·n%bmÚ´3ž?þŽ]ü.z“ Stt4¨EL`rròÇt¡ OI§¿.\¸@ë8ËЂ¼ ,p•9rò»è‹K—.	á2Ø„æ`±””²SaɤPÈßF3Ðû�¯Ç_ÙYœÔ;å£Ô¶mÛhcdd¤»»û®]»èggg@{õêÕT"ìëëË…ÆY??¿�7.]ºÔÍÍ�ž¦m¸aÃÎ’Âpuu…—)�\§OŸÞ³g�¬½6kÖ,®&—åË—<x�Œ[¶laxÈ�*.%OOOlÒ´€SÚGùH€‚n%%%%%%%¥¬¨ŸMA‚ÌŠ™÷ïßÉ’%|…ûÌÍÍ¿ýö[++«U«V1÷f¦íààzC èÝ»÷¸qã -XiРAŽŽŽÌ¥É’×®];W®\={öĬŸ&KKË©S§2	¯U«Vþüù™´'&&6ŒB,,,jÖ¬IÉL×áÍyóæ™™™¿ú;ÝLì'Mš„?E‹
�xºK—*Q½ZÕÀÿääû Þñã‘M›4*Y¢økÐmg;äúõëC†¡u›7o–ÇÈiïÑ£GP1bDšöN·›¦+VT¬XÑØØ¸[·n#GŽ„zõê…™½½=-åTΜ9qxìØ±k×®=~ü8�(dݾ}{"`hhˆÛ¢Œ„¦M›Íž=¨Ñ™šæƒírŸRˆ'ú£ï™¢¿N
²¹ùŸã„(wO¼yÍo�Û‘@ï?Yc-..îÍÇË?&yxxЭ@ôÎ�;!_9—ÿÞ½{ù”e¡f®P:ëìÙ³HNíÞ½›Ä4m@.–„„„€€ºvæþ€íûöíã?Fhhèܹsaùõë×3†9€åeQ*ð9f„Cëòܹsçp#Ó×|RЭ¤¤¤¤¤¤¤”•�³)ØçîÝ»·nÝT™WçÎ�»K—.L¹¡ãbš`ax<))	fÚ:ë7¬MMM™„{yyž”ÛÖLžXHS¿#,š2e
++_¾|®\¹°ñôô|þüyBBš5k:vìH^xœr°x‹-š~Wk|{ñâEëÖ­ñÍÞÎÖ¨pÁ&Å^û+jld\¤0˜/úÚÙ"F†ƒö{ñvÕªUòÐì©S§(–¯ãÇ�øðáµkׄñ„¤¥8æàà`oo@a	$æÍ›R>|8éVVVÅ‹/P À¬Y³fÛ·o'/ŸD¥°T\¹råáÇÁyNY[[Ë[Þ²uš~SÐ5::oÞ¼¹‘‘!¥á:ŒgŠÞ¤†ÐSôæ–-[ nØÀ”G‘ñŸ~÷ööž9s&à<xð`Rhû� æmÛ¶‘‹®'˜t1ÜM¨I! È-cl|2°c‰¹<ÉìããC�å%úÿJ²¼¹ß·¿¸¼ù[W/g 2zqiéÒ¥4möìÙ‡ÂOÆöîÝ»÷ìÙsúôiFÔÁƒéw__ߨ¨(???>„_N^ÓÝ»wcbbhcRRÒ½{÷RSSù¿üò‹¬HðèÑ£3gÎpíÓõœ=þ<ÿ"ä¿Aš¶ÈáÕ«WŸ<yÂ�ÜûæëåË—å‡#¹ޱ|r­ÅÆÆRKšöSÆMäº~ý:_ïß¿/ÁÁ®Ä§OŸfnXÞ‡t+)))))))eE½ènÒ¤‰©©©¾&Òoš D¦â
6„
!M¹Ç�òäɳnݺ4íŽ-Ò×ËÚ´iSáÂ…å.¶,›&k ù²€œ%§
�=*%È)Ù-D•¢À�Š+ê·¿
`OТ?vìØðáÊ3.[¦Tú¿òåÊÔ«W§i“ÆMš4nX¿^…Oʽf†¶¶zúôÉ«W¯Ò¯ñBvèСL™2xFAж¶¶¤ƒ�´4»&Ü D �¿¿?m”ù5@ZJaÃ|ùòI^Ùv<88è¨V­Z£F�d-hÚkgg§çE�7–ÛDI�[·n%bmÚ´3ž?þŽ]ü.z“ Stt4¨EL`rròÇt¡ OI§¿.\¸@ë8ËЂ¼ ,p•9rò»è‹K—.	á2Ø„æ`±””²SaɤPÈßF3Ðû�¯Ç_ÙYœÔ;å£Ô¶mÛhcdd¤»»û®]»èggg@{õêÕT"ìëëË…ÆY??¿�7.]ºÔÍÍ�ž¦m¸aÃÎ’Âpuu…—)�\§OŸÞ³g�¬½6kÖ,®&—åË—<x�Œ[¶laxÈ�*.%OOOlÒ´€SÚGùH€‚n%%%%%%%¥¬¨ŸMA‚ÌŠ™÷ïßÉ’%|…ûÌÍÍ¿ýö[++«U«V1÷f¦íààzC èÝ»÷¸qã -XiРAŽŽŽÌ¥É’×®];W®\={öĬŸ&KKË©S§2	¯U«Vþüù™´'&&6ŒB,,,jÖ¬IÉL×áÍyóæ™™™¿ú;ÝLì'Mš„?E‹
�xºK—*Q½ZÕÀÿääû Þñã‘M›4*Y¢økÐmg;äúõëC†¡u›7o–ÇÈiïÑ£GP1bDšöN·›¦+VT¬XÑØØ¸[·n#GŽ„zõê…™½½=-åTΜ9qxìØ±k×®=~ü8�(dݾ}{"`hhˆÛ¢Œ„¦M›Íž=¨Ñ™šæƒírŸRˆ'ú£ï™¢¿N
²¹ùŸã„(wO¼yÍo�Û‘@ï?Yc-..îÍÇË?&yxxЭ@ôÎ�;!_9—ÿÞ½{ù”e¡f®P:ëìÙ³HNíÞ½›Ä4m@.–„„„€€ºvæþ€íûöíã?Fhhèܹsaùõë×3†9€åeQ*ð9f„Cëòܹsçp#Ó×|RЭ¤¤¤¤¤¤¤”•�³)ØçîÝ»·nÝT™WçÎ�»K—.L¹¡ãbš`ax<))	fÚ:ë7¬MMM™„{yyž”ÛÖLžXHS¿#,š2e
 5vîÜ9Ož<{öìaÖMùÔR²dIy|�9?SwÙÛA  î„	Ò´»äÅ‹/]º4õáÆ¾Ý¥JšÔ¨VÖ–vMÍ›5}ºííl@éªU?Ç7œ˜½?~|âĉúõëÓ"ê¥!²ºÉYš/ï¼)RîNLL”5Ï—-[võêÕ:àg¿ùæÙUЇÇõÛô%J”011у’`€—*UJ–Ø’…ªø\¸paåÊ•7nÜ(µëËÐe®>Ê«¯œ�½£Ã‚ÞŠÞW®\Ñ÷û(ÅUÏe˨“Ç˹ägÆ-c[.‡˜˜˜ÔÔTF –p76§OŸ–5Óä� š!JâÅ‹¯_¿Î'1 #W
Ÿò;òIv22Ú/j¢.²\¾|™zåÉs޹3÷‰Ž÷$ÝJJJJJJJJYQ8›bšmiiY©R¥ªU«–)S$433c&Ì$ùܹsÌ„#"":uêôé§Ÿ~öÙgÀcz‚Ε+—Ü®j×®]¹råH±²²Ò÷¡fÊüZ�ny}›êºvíàÂÆ
˦-ÝÆTÿ«¯¾Òïq?~\¦åÌäccc±|˜’bkc£Cw™Ò%ùƒ¯«}þYDÄÞöÅófM—0)&guè2Ø*%%…™ÿ'''‹1¤lccÓ¨Q£ÐÐPWWW###лF�Ÿþyݺu�=Še½zõjÖ¬	ìܹó‹/¾066Æ=X›\{÷î
ƒÇ‰ƒ¼Ã�èÐ
Yc°}ûv}�¸Õ«WccaaAp®j¢™°vÅŠG�
¡X[[p¾vïÞýCxø£„nÑ-oþÑ?^þõÚ‹Q’ÏÄç>)èVRRRRRRRÊŠzûtCyµk×'ÇŽ«ßo‚øBBBÀðêÕ«ƒœ4hÐà“O>xÌ�;wdd$xæÍ›—³@ºÀ,ÌràÀº¡T¦N�=hÐ *"T(t3sæLÌ�;Ö¸qcÉÕªU+˜W_®M„{6C†t—+[Z¿Ó]½ZÕÈß¡¬nÞ¬‰Üé.÷o3ý�îAÏ5�={öôéÓ8Ñ?~üF†|å¦È)‹û÷ï¿ÿ>Ð�ÏáááîîîË�ë’%K¶iÓ&66–ÈE!ò>2A3fÀN“;wîOJ®\¹óZµj-Z´èäÉ“vvv-Z´ @‚S°`A¢1oÞ¼_~ù… T«V�¯½{÷þ0¡[ÞÓ×WH/8‹ðÞ»wOž3§9b,Ï|˜º_CïëׯÄ?5 Í›7{yy�9s†f28ƒ‚‚º²²_å1ò¨¨¨½{÷’(+§ùøøÐ­\Y|’+11‘(ÅÄÄ<xPÖ[Óß¾_¹r%_÷íÛG9r¿ÿo¤ [IIIIIII)+*c¡»I“&…
 ò÷÷OMMñ>|¨ßŸ‚�q&䜒ŲRRR`Fº�?Îl¼B…
 À8“íµk×.\xÆ
̽`dd¤/ªÖ£G
@@ -5757,7 +5757,7 @@ y%C
 |^˜Ãùå—„@š²†\D!@„¶¼\¶;Ó$û­ˆ1æ†ÐMl»ví˜íOœ81Q莋‹[µjD#»ºQ&}÷î](¢—‡ìQ#Ÿ´šO­1‰‹
 \¸p�J_½z%»´YZZR Ð!ÆÐKÅŠÓ ûÍ›7¨-)¯W¯žìGÔ€l	ÚK¥²=Ðý>wMpûà®�üeàâƒïþ{JA·($$¤OŸ>.äN•-[×<�âiÓ¦á!
4€²ÍÌ̸•r$÷Í›7aÕÇó$Òׯ__¹rå�>þ<  `îܹ¸.�NQmÚ´u)ŠÂS8ö
 �ðœîÝ»7nܘ¼GŽaH6ìûï¿Ç½,X€‘DÁ¼\SøL�öööØ»woòÊ&䆢vn+I	4ööíÛòITxxxTTÃÄÇÇ'00��Ìõ�;w@l:�ŒÔuýúu	!–ÙZAÉP麑g„_r·:›[I)½KA·’)IA·’%t_ºt	NÔçÖuëÖB÷€4èΠ{Ý›dW®\‰×­‘J�ðLà}}}�n ·E‹[·n%‰�;~2ÏFd#5hå=5iÒD+ªD‰0ˆ¶³l¤æààжmÛ‘#G?~üçŸΠ;�‹d6kÖð!;]]]›7okÖBÊÖÖÖ$(Uª¤#ûÅñI.¨Ƈ�!#‹I|…z �ßÿÝÝÝ]Îf—H0jÔ(BŽ=ºmÛ62’Xƒî!C†�ÆÇÙ‰ÎÍÍMV°ÃV²s�~{åë”)SŽü-ÒÓL0_ÿ~éã¶üSÐ�züø1,™ ��^½zíÛ·¯eË–�/Þt/Y²¤cÇŽü§V­Z�;w®áè7nàü¤,]ºôÎ�;¡õråÊá<¸Ê¬Y³Hƒ?Ï™3gƌիW·°°èÖ­[…
-ø”³äfϞݨQ#Ê$¶bÅŠ83.„¿‘…Âñ.Èš¢&Ož\¾|y>.\(-Zoïׯ%3lwíÚ•*¨¤)}Aw|2s·Ú±\Iɤ [É”¤ [Ɉ’	º/_¾,Û¦il}ÒM.�îŒ3ÊÃ\è€@
º%X

õöö†¸¡•—/_‚œP$
+ø”³äfϞݨQ#Ê$¶bÅŠ83.„¿‘…Âñ.Èš¢&Ož\¾|y>.\(-Zoïׯ%3lwíÚ•*¨¤)}Aw|2s·Ú±\Iɤ [É”¤ [Ɉ’	º/_¾,Û¦il}ÒM.�îŒ3ÊÃ\è€@
º%X
õöö†¸¡•—/_‚œP$
 Ý{zzŠ
¦œÏõJ'’ÅÅÅÝ»wZ3
DáÚ£´   ð„‡p1	ÚÅŒ,Y²À d´ýýýAð'&&æÝ»wÐ=µKQ™2e‚¬åÑùرceÇfj$5b0¤+­ZµŠ°Ï«¿¯;>‰†@Ð$–ǵ§Õò|ŸvEGGÇ눃EÔuâĉxÝNÑ4–d �4„z_ˆpê%Ùç:‘½Aƒڛņ¸­ ;ù”èFjÏž=«_¿þ„	 bàÖ¶´´<xð ƒËÕ­[ߨQ£$>K'++«:uêÈcqHöìÙO�:ekk;C'bçÎ�‹'3è@c¢¦N�*á³uš>}:…øøøØØØP‹,ÛØ»wï”)Sp<¼ð«6mÚPoÓ¦M,XÀؤ:¾E9|Þ¹s'U:PISºƒîøäáî<n=q+)™†t+™’t+Qò=éN݆Oº³fÍZ¹råI“&U«V
Ô9r$×¹sçr'Nœu’Ú]¼xqùòåAéaÆ�®Àd-¯—¤`‚,ÿ¶³³?™”Z[[C@¥‘øáÇðòÚµk.\¸dÉB—s½`ëèèP@@ÊÒ¥K!
 ìСÃ4�^ªþúë¯Ç�GÓŽ6+\¸0ÐD™XH	Ô8E'èiøðá9sæ,^¼8¹Z·n�A·-•–Hƒ=ÃW:�?ýôÓ²eËêò¸¸¸@FtãèÑ£éŸÌ™3{yyÑÃ+W®¤œùó绹¹‘ÀÕÕ¦$&@	œ¯R¥ŠX[«V- ûŸp[Awò)00Ðð¤-nåáÇ�œœ¶éäìììëë{áÂ…¨¨(b½½½	‘÷�q`Râ	$ؾ}û¹sçàå/^�Ž–½ÁïÞ½+›­IJj<tèÐÖ­[…÷¹õ²Þ;44ôúõëþù'uá?~~~¸�¼Cýöí[ò’žzÃÂÂbcc÷íÛ‡ñW®\¡pR¦p¿)*=B7òþíA"¦V•+)™’t+™’t+QŠ-/···×‡î]»vé¯*ÉÂ_¼ÖGuÐ@;À«zõêÚñCñº¥×ZTíÚµµ(X*$ÛLiÂÂ-Z¤èáá‘%KŸk�6Ãû©B…
 ,%¬X±Bÿ¯Œ3ÏKGÅÄÄœ:uJ”ë¿Ó­¯5kÖHúÏ>ûÚ…@þzõêiOêGŽùOUÅéÑ£‡Ö?�>ø'ÜVÿRëßÅÓÇ>xÄ)}jJ§Ð¯ÛWí×+?ž¸›�›þð�°äh£’’RªHA·’)Épš—Ú)¥!%9tËîåå�\\\öèÄÓÅÐÐP9wøÉ“'òþýûwïÞ½óo
6¬eË–²gH>bÄPqíÚµ”|õêU`9GŽUªTyöì™T·wï^ˆ[öUCÀþ�?þØ­[·ŸþÖ  ŽŒŒ<xpÇŽ;uêSS×ôéÓú[>|ÇŽ¶¶¶½{÷¦öL™2�;óH‰%®®®²x›6mh”´ˆÚ-,,@õ®]»Ê‹Ûýúõ£œêÕ«çÍ›^†ý³eËF£´”ìÄ‚Ã4™ôd(&¤K—.ú†Mš4‰ô­ZµÊ [uß¶mÛìÙ³7nÜ8^·et÷îÝåбjÞ¼9¾páB,_¾œ*Ê–-[µjU™±úßü'TOº“C�=ú[­”J¿Ð-ú˜GÞà¶zÀ­¤dzRЭdJRЭdDIݹsç†ø?~üÿþ[„\¸p¡R¥Jp"_ß¼yçv*Ö_ý½Îÿ÷LöÑ#˜ëÙ³g“H÷ññ!ÜÜÜüòåËtš9s&Ä­íp.Êš5k‰%°A¾.\X,®[·.‰ù:räHJ›2eJ±bÅJèD <N�¾<­Î’%Pª¿Ó)""ÂÙÙù›o¾™<y2È/Í			ñòò¢½E‹¥�R¥J•)S›ï߿ߧO¸8,,ÌÏϯfÍš{pppLLŒÖÒèèèC‡}ûí·P6!²…µ<ï.P @É’%ŰB…
@@ -5765,7 +5765,7 @@ M
 d'—Vyƒ‚‚ž<yR³fÍÁƒSØ[´hQ1“€îO0gÏž
ƒùú�[¶lÁZÐ[¾†‡‡ÿðÃ;v”ÍÉŒL½”I�€¶a¯NŸ>Ö®Ÿ?Þ¡Cì§À‰'
 DóI7ŠUíÛ·�ŠŠÚ³göÏš5‹®1bÍ‘SØþIz+èNÝŸ`«•’C&ÝJJJJ
 º•LI
-º•Œ(igS±±±¿ý›bbbXPñÅ‹²m²¦wïÞ›h®ßÿ�\$àBB ÊxÝAÛúÉøJ2¢´\Úžc"VË«‰4cX£,/ç‚bµ¼ú
!V¿œW¯^QŽa�j5b^ŒN²{¼n…€Vc\\œa¯ÒKÄ%y%±~×Iý¾åc¸ÆrjO´Ø½t'‡îß¿w§¶J¦ ÝJJJ&&ÝJ¦$ÝJF¤fSJ))Cjˆ‰‰‰ˆˆ

�ŠŠ’_]ä(óS\\\PPPXØÿío¬ý²‘ŠJôI÷‹/ž?NÃ###å5ÿ¿ÕêéÓ§<H-RJ-)èVRR21)èV2%)èV2"5›RJIRƒŸŸŸƒƒÃÒ¥K·mÛ¶k×.ggg..]ºäååE”§§ç‰'<<<ž<yò>凇‡¯Y³fãÆ�§OŸ>räÈîÝ»/_¾|üøñk×®É>öÉЦQ¢Ðíëë»|ùrkkë={öìܹÓÞÞÞÍÍ�&_¹rƒ¹8uêfæ’þÝ»w$[½z5�4�^¢gHvþüy>R¼YJ© ÝJJJ&&ÝJ¦$ÝJF¤fSJ))CjˆˆˆX¶lÔ¹aÆiÓ¦­ZµjåÊ•©“““­­-˜9vìØùóçƒÌïS~XX˜££#…LŸ>�¼»}ûö™3gÎ�;wÉ’%P|2´é_d¸¼<44tñâÅ@÷®]»hõ¢E‹Ö®]kggYϘ1ÃÁÁ�VsqóæMIt“’¦Mœ8‘Ö‘˜kú‡¦Ñ{...)Ý*¥Ô�‚n%%%“‚n%S’‚n%#R³)¥””!5üõ×_áááQ:r¡_aU>ïܹ³fÍš»wï¾Où²¼üÙ³g!!!ÏŸ?òä	%<zôèúõë8¨›mú%ú¤ûÏ?ÿ”µåƒ1kåëýû÷£££ýýýmll‚ƒƒµ,²¼œ\Ïtâ‚Xzú6¾Qž’ÉHA·’’’‰IA·’)IA·’©Ù”RJê¨A¶†ûÈzÿÒé#ù0�üï¹6^_ïÞ½û×·¼Eê-ïOG
+º•Œ(igS±±±¿ý›bbbXPñÅ‹²m²¦wïÞ›h®ßÿ�\$àBB ÊxÝAÛúÉøJ2¢´\Úžc"VË«‰4cX£,/ç‚bµ¼ú
!V¿œW¯^QŽa�j5b^ŒN²{¼n…€Vc\\œa¯ÒKÄ%y%±~×Iý¾åc¸ÆrjO´Ø½t'‡îß¿w§¶J¦ ÝJJJ&&ÝJ¦$ÝJF¤fSJ))Cjˆ‰‰‰ˆˆ
�ŠŠ’_]ä(óS\\\PPPXØÿío¬ý²‘ŠJôI÷‹/ž?NÃ###å5ÿ¿ÕêéÓ§<H-RJ-)èVRR21)èV2%)èV2"5›RJIRƒŸŸŸƒƒÃÒ¥K·mÛ¶k×.ggg..]ºäååE”§§ç‰'<<<ž<yò>凇‡¯Y³fãÆ�§OŸ>räÈîÝ»/_¾|üøñk×®É>öÉЦQ¢Ðíëë»|ùrkkë={öìܹÓÞÞÞÍÍ�&_¹rƒ¹8uêfæ’þÝ»w$[½z5�4�^¢gHvþüy>R¼YJ© ÝJJJ&&ÝJ¦$ÝJF¤fSJ))CjˆˆˆX¶lÔ¹aÆiÓ¦­ZµjåÊ•©“““­­-˜9vìØùóçƒÌïS~XX˜££#…LŸ>�¼»}ûö™3gÎ�;wÉ’%P|2´é_d¸¼<44tñâÅ@÷®]»hõ¢E‹Ö®]kggYϘ1ÃÁÁ�VsqóæMIt“’¦Mœ8‘Ö‘˜kú‡¦Ñ{...)Ý*¥Ô�‚n%%%“‚n%S’‚n%#R³)¥””!5üõ×_áááQ:r¡_aU>ïܹ³fÍš»wï¾Où²¼üÙ³g!!!ÏŸ?òä	%<zôèúõë8¨›mú%ú¤ûÏ?ÿ”µåƒ1kåëýû÷£££ýýýmll‚ƒƒµ,²¼œ\Ïtâ‚Xzú6¾Qž’ÉHA·’’’‰IA·’)IA·’©Ù”RJê¨A¶†ûÈzÿÒé#ù0�üï¹6^_ïÞ½û×·¼Eê-ïOG
 º•””LL
 º•LI
 º•ŒHͦ”RR‰RÃ�;w¼½½ïÝ»píÚµ   ®"$$äéÓ§R,å¼|ù’‹{:Åëž{yyݺu‹À”ÁÕÀÀÀGËÅëžÈß¾}ÛÇLJ¨¨¨(ì¼xñ"�cĤ˜˜iBppðÍ›7ß¼yC_Aôòöí[b)Á××÷Æ�³�RZV:‚î³gÏføiç'š°îß¿Ÿ7oÞZµj¥¶!JJi]
@@ -5788,7 +5788,7 @@ H74
 ¤é†�@º!‘´ ~ŠtGW/¨¤é†�@º!‘´ t3¼jÒ
��tCH Ý�wSÐHZPº^µé€À@º!$�nH�»)h$-¨ŸH7Ô
 ¤é†�@º!‘´ ~^ºtihh¨Ù­€@º 0�n	¤RˆÞMADJ4ûÒ
!�tC
 M¿y#‚ ŠÍþÇ�€tCH Ý�BÓoÞ‚ ˆbE³ÿq@  ÝH7¤ðþñ›~ÿFA%ä¿F³ÿq@  ÝH7¤ðò¹uM¿…#‚ Š/Ÿû°Ùÿ¸ �n	¤Ò‘;(ú»	‚ ˆô�ÿ/Ÿ[×ìYH7„Ò
¹é†�@º W ÝH7ä
-¤Bé€\�tCH Ý�+�n	¤rÒ
!�t@®@º!$�îðøZ‰fŸnµé†�@ºƒÁs±¯!t°o¤BéW´-ðp�"#¿hWÀ›}Ô¤Bé3num‘²ùùù¹¹¹ûÌBXè¯U~¿ò[VWõÆ» �n	¤»èxÆ-"&F633355599Ù¶âÿ­x7„Ò
!�t3îÌÍ͉n‹kOLLܾ}ûÖ­[M×@¢‘¡ýÝÍ>%ªé†�@º�ölj·÷½{÷D·GGGGFF®]»Öt
$6μÙ'&@U ÝHw¡ÑnnU®Æ=66&º}åʕ˗/÷÷÷7]‰F†œ	H7Ò
!�t•nX>99yûöí7n

}ñÅgÏž=yòdÓ5�hdÈ™ðèÑ#¤ŠÒ
!�t[>???;;{÷îÝÑÑÑ«W¯Šq÷öööôô>|¸éH42äLxøð!Ë©@ÑAº!$�îâbK¨élníæìëë;~üxWW×Þ½{›®�D#CÎF˜@ ÝHwq±	Ý¢ZÓÓÓãããׯ_8uêTww÷¾}ûvïÞÝt
$H7„Ò
!�t“îû÷ïOMM���]»v­¿¿ÿĉ]]]{öìÙ¾}{Ó5°¬xmó¡‰éû^âúγãMo[!B΄ ÝPt�n	¤»¸¸Ò=99yëÖ­«W¯ž?þøñãؽ{÷–-[*Ö7Q]©âÔÐM/]£^,±¯wÈm[ešŒtWH7„Ò
!�tOºGGG¯\¹rîܹcÇŽí߿׮]›7o®XßTu¥–hb’t»j,y$¥ÜJc¥›ÈH7„Ò
!�t—¨t÷õõ=zô³Ï>Û±cÇÆ�+Ö7õk	Ù°Dy)*�Eºå¥õ’»m^þûmZ¸¼«R_rºÅ]éÖ®sÉo=Ýò®lÈŽº—Ûí—×DÙ±ß#�n¤Bé..•I·J뢶UuÝ¡Ýâ¿¢´I�ÑÑžn×Ö­j5qud)ÊËl…»jïJ·ìeÅê7–®:/?eéFº Ð ÝHwqI‘î}ûö%I·ínΛ"Ýš_}V|Yd6EºÝ¶Åneʆ[ˆ–lÒí½ëI·[£*¼¹¼WZÒ
a€tCH ÝÅ¥2é.«§ÛuØÒ‚}›tÛˆnÍæõtëÐtÝ–üÖf“n7³+Ýš-IºÝtWº]ËFº‘n(:H7„Ò]\*“îŒá©n’ùº
+¤Bé€\�tCH Ý�+�n	¤rÒ
!�t@®@º!$�îðøZ‰fŸnµé†�@ºƒÁs±¯!t°o¤BéW´-ðp�"#¿hWÀ›}Ô¤Bé3num‘²ùùù¹¹¹ûÌBXè¯U~¿ò[VWõÆ» �n	¤»èxÆ-"&F633355599Ù¶âÿ­x7„Ò
!�t3îÌÍ͉n‹kOLLܾ}ûÖ­[M×@¢‘¡ýÝÍ>%ªé†�@º�ölj·÷½{÷D·GGGGFF®]»Öt
$6μÙ'&@U ÝHw¡ÑnnU®Æ=66&º}åʕ˗/÷÷÷7]‰F†œ	H7Ò
!�t•nX>99yûöí7n
}ñÅgÏž=yòdÓ5�hdÈ™ðèÑ#¤ŠÒ
!�t[>???;;{÷îÝÑÑÑ«W¯Šq÷öööôô>|¸éH42äLxøð!Ë©@ÑAº!$�îâbK¨élníæìëë;~üxWW×Þ½{›®�D#CÎF˜@ ÝHwq±	Ý¢ZÓÓÓãããׯ_8uêTww÷¾}ûvïÞÝt
$H7„Ò
!�t“îû÷ïOMM���]»v­¿¿ÿĉ]]]{öìÙ¾}{Ó5°¬xmó¡‰éû^âúγãMo[!B΄ ÝPt�n	¤»¸¸Ò=99yëÖ­«W¯ž?þøñãؽ{÷–-[*Ö7Q]©âÔÐM/]£^,±¯wÈm[ešŒtWH7„Ò
!�tOºGGG¯\¹rîܹcÇŽí߿׮]›7o®XßTu¥–hb’t»j,y$¥ÜJc¥›ÈH7„Ò
!�t—¨t÷õõ=zô³Ï>Û±cÇÆ�+Ö7õk	Ù°Dy)*�Eºå¥õ’»m^þûmZ¸¼«R_rºÅ]éÖ®sÉo=Ýò®lÈŽº—Ûí—×DÙ±ß#�n¤Bé..•I·J뢶UuÝ¡Ýâ¿¢´I�ÑÑžn×Ö­j5qud)ÊËl…»jïJ·ìeÅê7–®:/?eéFº Ð ÝHwqI‘î}ûö%I·ínΛ"Ýš_}V|Yd6EºÝ¶Åneʆ[ˆ–lÒí½ëI·[£*¼¹¼WZÒ
a€tCH ÝÅ¥2é.«§ÛuØÒ‚}›tÛˆnÍæõtëÐtÝ–üÖf“n7³+Ýš-IºÝtWº]ËFº‘n(:H7„Ò]\*“îŒá©n’ùº
 ìz´õJ»+ª¹=ÝIÒ­…ëÜíØ–¸5ÒÓíÒ
a€tCH ÝÅ¥1ÒÝö¸«ZGŒg”n]'­íÉÉݲ�QºÛ:ÖuÇE¥›9ÝH7„Ò
!�t—†I·»¬YÆ9Ýî2h–˜½§»ÍY6mQévk—ôt#ÝPt�n	¤»¸ÔUº‹H7Ò
Eé†�@º‹Ò­¡Ëm»´ØÂìÒ
a€tCH ÝÅéÖPÑ6Z¶›»
é.,Ï>ûì’%K>ÜàzW¯^-õÊÏ×°(H7„Ò]\�n‹œK·Hå’'yúé§—/_ÞÞÞÞì¦UËàà ˲eË*ÛÝ“nuaI¬]ãAº · ÝHwqAº	/
 !ÝK—.}ö1²­ö½bÅŠf·®*ôÐÄ»+ÛÝ“îåË—ËË5kêþ×é€Ü‚tCH ÝÅ%鞘¾�‚]zü0¢¬(„t{Š'‰âªM\][ÚÛÛ+>Oºõ»ˆñññÚµ.¤rÒ
!�t—z?2Ì­+ú˜0o&u©RMFºkÕH÷ăéα¾WûÛŸ;þÆ·;_ú÷½ÿùTÇó²!/%QÞ’Õœ±±Ò-¬\¹RÒåg5…WºÖõ�t@nAº!$�îâRoéŽ}·…J·©±û,ï²"Vº‰Ê¢2é•~±ï‘ë%{.KHæá™Ñ
 ÎØ$éîèèˆNañ´ñçË—/?sæL´ÌöööeË–¹3ÄEZí]ÙER´']~J�Ö}[©¢_¸í”–ë�o+ÇkŒš[šú¬¤ë�h’ôÖ•n9"ÙöÊ—Bd_û4ä�£ƒÏµ;jÍév¾»%Hy+*ÝvòùØë6#Ë/ z�n	¤»¸äJºõ¥nŸºi�´µÄ¥4·÷ÜDÛ¤[KÐüVòðè„»—l[dGK´ª[<Ê•îÓw‡Ä Ÿêx>£n»ñÜñ7ÊUï$éôúvEîÔøä§ä7…twÔ<â³6C\¶M«ÅUuew)Ä2›•ë»®¤+*•–®fª6*˜Šºë¿%I·}' ?åݤ%ãÒW/—–h“l:¼¶\Êt‡ [!ú®6ÕŽB>^û^båʕ֪¨tK¢Š¿}°eýRjÒ
!�t—ʤ[�Xd¶¶Ò-²-SlºôX‡¥4Ëà®Òí=_»äH·åtK“t9÷ˆš.¼yˆìÒ=ñ`ºbÝöz½³Ÿ±IÒ­¶è
@@ -5904,11 +5904,11 @@ G\
 J";Îϲ]õ¾©?K™5ò‰¬ª›T¢¯%燞\E1Á͹b¼l\H,®Ã;ñÛ	—[î¬ÒŒ]öìã•ÀãŠ$æ—"ëîìú'úê„tÑdŸRZQ¬ð¤Nà"tïCÁIæa<Ä  >2‡¶îUHat²5Éc¯8èØƒxÊP²4}µ®·}Z±ùå¦ãht¸Ò=Û·´-ã®ÌéNú–¤sv¨QÃ;£Ã-w
ÖÍŒƒ¶	µÝ‡NF“¢{¢â¹h�#Ÿ)c_��îÄáUÔy’:‰Ü[³ÒM׆ŠG£Hº%©è-³¤{V›¬&Øö…ýPÒ­–U	†]_Bºgûê÷êè‹\hÙ°à‘Âyé¶—ú3S@º£Lö�¸Ô†¤[Í¡½S¦Nº‡oŒìE6�ð¶þòû#þ¬§ÛÓù¡#LÅBò¬Û@^çš}ßn‡ƒ Tµ˜MÆí›Y›Iè6-&Ý‘àG¯ŽHwÒòûû�>忉�eÎùïf�&5Âu"ïƒP*ak	®uP&'WÄAÆØ¶È6Õ
 žîÈâZ4Ü%*bÔŒm䮩ôýpd³M$1¿Th¢W'¤»/‘³ŒE^©
µµü}¸$gã?a¤Bý¨y
 ?°:¥
-N¿(ÖPÕãG[ÿÆ�Y½ÜM4ˆjiâ6Æ\l~uÓqÂwnyß‚‘÷¿ûéñ¤;ñt;´òUø¢Á(-ÜØ7T¸'*JT+(TÑ«“5ѽ“V]©“Ľ5+Ýqm¨ìÝP$ÝÉùxÑ�ã@NºuD¶�á¡á宇ª^-Ð…ZÌ\¯™1]7>$+ñ°<^ÞÜefÈã¢Lö�¸Ôl7«}»«;9s¨U5§}Ãìð¥EÒ]±2aÜŸî#+S¾ñ–ËgoÁ®a¢�µŒt÷éƒ

§šN'&ÝÉ«“n[Ø"évr€B¾Îúª„€eãC4ãùÒy£C�E¤k<ýÉUP/õ¸m=S‡ŠIÛ}¦„
+N¿(ÖPÕãG[ÿÆ�Y½ÜM4ˆjiâ6Æ\l~uÓqÂwnyß‚‘÷¿ûéñ¤;ñt;´òUø¢Á(-ÜØ7T¸'*JT+(TÑ«“5ѽ“V]©“Ľ5+Ýqm¨ìÝP$ÝÉùxÑ�ã@NºuD¶�á¡á宇ª^-Ð…ZÌ\¯™1]7>$+ñ°<^ÞÜefÈã¢Lö�¸Ôl7«}»«;9s¨U5§}Ãìð¥EÒ]±2aÜŸî#+S¾ñ–ËgoÁ®a¢�µŒt÷éƒ
§šN'&ÝÉ«“n[Ø"évr€B¾Îúª„€eãC4ãùÒy£C�E¤k<ýÉUP/õ¸m=S‡ŠIÛ}¦„
 Ù3N"Ã�­ŠÕI·K?±Ùžšt'¯>†t'…�­“htvó,s´î9°lð ¶s¦ã†> ¿ÅòˆÙ¸Î_D 7ÈCTmÔJ+7¿ºéø.I÷ì/,Q!ÝIß’l¼ÕפÛdà³2¸.éîÓ_æžX…t'¯^Lº£V]©“Ù ²Dº	âÚðÖ'ï̪UEÒ�Ä¿=ÛÍÈÐÈ›njçPyh�ð"ÔFpÙî¢2%
 ⬺ÍpfM‹5ÿgfªÝf;å‚2©Ñï0œöÉbb&¤XåC9Lî˜7±û¾çks“òŽ!ÝQ&q	=üp	)�5l'ÒÚù88o‡’i7'È};›·'3i³]xdXmÄ7[ÁÊTdÜSjeB³¬¬^n?Ä”a\õF¤Û�øÃ–3Í…—»±ÛÖä˜S6]X�*áé~Ú'›}u¤ç̆—Ï’îÍ\xy2â·­~^YÍLïAËfÖŠwѳ‘Z2Ô‘r³À2äb‚{Ô»�ˆÉ§»½¢úKIçŸîê¤{ØŒ-žÍ…—'6ÛDóKÃÖ>uF¼äÕ	éž
/·—†¤;©Zç!i²¤æ©§ÝdK1çH‡f�HÖrƒ<„×ÕF±ùÕMÇwIº“¾¥ß=Xз@ÊŠ«—ëçȾ:鎃OsáåËÜÏEëtNK^�ô¨yxy…t'uR	#Ï�~q%øâë¯fÉE‘t?ÿüãè-[{8	²Ëê"„³j¸m””‹Æ,]E¡žº~£Ë¤ù?Û­�9í¯`l—jŒ<ݛݗèR$·š²N…ò¹q{Ï‹.Di×r<†tç™Ä»z{N>™¥>õCØU[m`óÓnYo\Å:3}Þl­ÆÞWÑPïÊ­LX*qÛÙ#±2aK5].£(²oJºíM/Œöœµ©éZ^öÉ\Ej½±ºÇМ‚L¶–Ø|ìo]8ecRK^�Qõãj227õuõv!5ô	Vä{;�Ü©F¶�ÙÁ¶©53Ât†ûAUì#°¨ªãˆÒf·º‚Ξ\¹˜ØÉº}Ø1i»>�ÇZ½¿íÓí"Ã]�t›±…[4L·ýÕ›m"‰ù¥á@£«Í)yµFa$[“Ö{ë^]$ÝI�|º¿Ýöf·fšä™Ñoçz$l ¼1³ªUôûê#>×�e™ìPŸí–¦ÄÚn½•/¢¹AœÂM7¨7¿¢éØõøX·F›ô-‡’î¤oÁd,† MK›DDºó�¯Nº‡ã …]4l³[*ܦ¿Ì=Qô\Øß¸G«H—‰¾Ú5B[“‰Ã«Hº“:‰Ü[³ÒMWˆ—Ÿ¿Q¡ùñÊûo^ºÄašsgôˆË^Óë'‰•	�²É^H‰•©mG5LÆ’@‘}ã Ò�ôÕð2ü
 Öp!÷÷«HIæŸÌÖ?ÞÙbsŠZøÕX¤QDºÛ¾µM£&¢Wc`p4W“‘¹©¯«ˆtÛ­”PózÛÐÎcó94ïØ¦ýÝ[ÚN;²3O§nßͰšõ4‘áÉ‘c{IY,&(¬�ÓeÎÃ]�tGVA‹ŸìïY禽!²Ù&’8{)*‹và‰¹X÷r+á·ývn[N‘tçub·qù¶>ö†ºíÛð”þ‹¢õÀ‘<êÔÔ>å¨àŠÜ �’Ú!¦ÞüЦcg0Ñæ:Ìí­ âè™jáåyß‚Õù´ŸL–÷Ñ1"øòt÷ã Ã³ý=Ë^ØnØgoXàž(z.¦À‹¡»D¯v�ÐÕdäð*’î¼N†î­Yé&ˆ+ÄG_~VéócV³"
-Ó¥I÷f»iÅðRdeâÐß±‰ë´2�!1ú²ÉHJÜ"rc¬åÝÉ~a×)&mQuI¼›8á‡ÝJ‰8GÏ,é¾Î¾åã`¢)­«Dq"¼öáÛÇ0îÙÝLˆGÃÅIw‚;¶2‘tkáŽÅ¤‘tÇÁnçMŠ;î[Hº	‚¨`q�¹<øÅ×_]:ûÄuášIw»_+I7±"îULI7qt!†³.ƽö-$ÝAT Äyï–Gþð×?]:ïq0îÒÊDÒM¬‹»“FÒM,ÖÁÓÙ¯ÄbÜeßBÒMDX·°x¼öáÛgëút
¥Õ×é%´2Ä,(&Aœì[‚ >úò³—Þ{=ï÷^yÿÍŸýñ×çÌÕ7ñ}ì¦tmæe[-ý.]z`åL�æn˜Ìæ÷,{é\„¸Z+ÓCaû<ˆ§Ã}ˆÉ´†w{•DVü©1û­ù	ŽÇ­÷-ñ:5fÅðüŸ@·‡àªÄZxþùÇo}òŽ�kíî^|÷UùWzHaåçÏÏeU�„6Nf£a»›	ú»c)6UÞínÀÖ«g*Ï�j¹t.2œÂÊd÷Šî'uýè7µ9Ýþ°$Ý×�cÝ~R'�ªy~Ò��ƒD”ì¾EGf@q»
[`¯;Þé¦áÚ–*]Jn>ˆt_¹yùšq6G�î„%_j­æw»¤ûb(}�è{¶»«ìäu¤öÛÙ/ÈyØCM^ŠýÜOú.‚¸.HºóNÕeLÆzŒÂýSP½¤ª$KœëZ™¤
ȇ†-£ÀuZ$oÉì0DnH䯶[£WWõIºoëŠ	ú@ùp*)ê8øÖ¯~¸z‡fÒ-¾î©Ý¶�|Ýöy

¾þ™¬&,Ê꺛êJ%OÛ]‰Ñ_¡-U8¹Mø Ò}AórÒ�ßÎãèÁ”üµRkסÈÕÀIÅPtI_Ô‘Gu6U„âH1´Ÿàbx
/AäéÖ]ì…xªÒ·Þ^¾à,Ð~W­Äö’ F^<"�ÎÈ_¼]ž’“ÒGéq5ô
3‰Ñܽ=ɰ–hØ#’
+Ó¥I÷f»iÅðRdeâÐß±‰ë´2�!1ú²ÉHJÜ"rc¬åÝÉ~a×)&mQuI¼›8á‡ÝJ‰8GÏ,é¾Î¾åã`¢)­«Dq"¼öáÛÇ0îÙÝLˆGÃÅIw‚;¶2‘tkáŽÅ¤‘tÇÁnçMŠ;î[Hº	‚¨`q�¹<øÅ×_]:ûÄuášIw»_+I7±"îULI7qt!†³.ƽö-$ÝAT Äyï–Gþð×?]:ïq0îÒÊDÒM¬‹»“FÒM,ÖÁÓÙ¯ÄbÜeßBÒMDX·°x¼öáÛgëút
¥Õ×é%´2Ä,(&Aœì[‚ >úò³—Þ{=ï÷^yÿÍŸýñ×çÌÕ7ñ}ì¦tmæe[-ý.]z`åL�æn˜Ìæ÷,{é\„¸Z+ÓCaû<ˆ§Ã}ˆÉ´†w{•DVü©1û­ù	ŽÇ­÷-ñ:5fÅðüŸ@·‡àªÄZxþùÇo}òŽ�kíî^|÷UùWzHaåçÏÏeU�„6Nf£a»›	ú»c)6UÞínÀÖ«g*Ï�j¹t.2œÂÊd÷Šî'uýè7µ9Ýþ°$Ý×�cÝ~R'�ªy~Ò��ƒD”ì¾EGf@q»
[`¯;Þé¦áÚ–*]Jn>ˆt_¹yùšq6G�î„%_j­æw»¤ûb(}�è{¶»«ìäu¤öÛÙ/ÈyØCM^ŠýÜOú.‚¸.HºóNÕeLÆzŒÂýSP½¤ª$KœëZ™¤
ȇ†-£ÀuZ$oÉì0DnH䯶[£WWõIºoëŠ	ú@ùp*)ê8øÖ¯~¸z‡fÒ-¾î©Ý¶�|Ýöy
¾þ™¬&,Ê꺛êJ%OÛ]‰Ñ_¡-U8¹Mø Ò}AórÒ�ßÎãèÁ”üµRkסÈÕÀIÅPtI_Ô‘Gu6U„âH1´Ÿàbx
/AäéÖ]ì…xªÒ·Þ^¾à,Ð~W­Äö’ F^<"�ÎÈ_¼]ž’“ÒGéq5ô
3‰Ñܽ=ɰ–hØ#’
 ¹­ôÕ’7ÉÒ´>׬öÏi‹:Óµ°öÉŒÖ!B÷m‰`–óz¿Iе”&_Ä~bý’
Å¿?¸Ï�ˆæ'BÂv5fÃá#I÷cB>Y´Óñ)¬¬g&ÝÒUZ÷.Iw±6NJLdàÆ ³zÊ‘î‚ËgÕq—¤»ØN�U̹"ÝgÀ•H=A$�aQ(ÂSÑéA0+¤»?C‚ò[Ä\57I‚‹wÛ±<‘…Ê!—äX°l�÷‹2y¨§£ÿð)eÁm^îÂwá(Ñœ#v÷Dºå’ü�Ô@ù•5˰*IS*A̓JÏû,IuY.YBÍç_D?1tl™¹’Ù‘«Ã}g‰Õàs˜€ši6
 ùÖ˜¶ ?Ôˆ[j1rÖ¢·Éy};R°�臶¶¬~™FÛ²hx=©ïÕÄ“÷⪞GÑ×mA�_µóHúZ
 ùmã‹_�83Ð];%
îmchC©i;AÓÏm/µm[RÁјÀ–��Í6I£‰f©·P!ÜÅþk½¢E¹†t ZƽÈ�ž‰øŸ¢~¦¢áÚ�_¹	ÝÖÿp%¾~ÞÖ|Ô»:Œ¾uÌÅntÓßy³Ö³”Z{³hF¢Œ\EåÝ8áàH74"Ô*Ú¶Vìpù/úÆ|N1l£°L#OQ!/I°z¢í×Å0ªœ¡Dç9JS›S´Š´¶íD<Û9à“é[®v“;âÉZ«‘niöV™�¡M=ª¥Š–>·]Ï£7$„Ú±ã¤,:§òˆn§HºíáÆYôöŒRãƒH·Õ¥Þ†ã²ýSì5@¨•©ƒEþE4eŒ;6ϧpO\zO·~JÄ\IBË‚uN1×Jå_k6A0·¤åªmíèáñ9ð[Ù
@@ -6050,7 +6050,7 @@ cg
 FK(,F‹$¤«×Bí5œ½Ó‘±ÐWÒXa¢Ûf;æ¸�€ü
dߨþ¶	ùpˆïE­Mù„žlëØØÖ®ê@ÛÒÖjÏÝ v+V¿KÁÍýýr2G)r�ŽÄOs„ªXб3Ñé�Í㤰TDªe´$N>Ÿ!©XÂ)/÷M*ég„vö$ùeGð1²'ϱr!ۋ݆é=W»\·ïMð§åXÿv¥HÒÔ10îC•VôHp¼‘#é¾î­ðZ3‚6§›ÍH
 ÇÝ}ÕYÒ£Ðä7¡»tÈÄ!„¥Ù>M~ÖŽêPÚ®•ßµWn…ìÚJuØ÷Ô[7ä-eÓeCvê¹ÐŠOOZ¹ŠyÆ…rÿ³j¿­oÌœ©£?Û�éÉfy«e4qÖÚnDdzg‚;w�Ì®Wuõ É Âvýî¨g÷~ú(! ¥˜*¦´WDýv¯Ôžn'žŽã
 o½Å_Ä?f¨^,ìP°4=t`%�
dò�•Ep‘­
�À†F>_Ì—È ¥p(æßËq¦
-açÙËe×!ÙÿËÂL€í_Œ

£Òk‹%¢
+açÙËe×!ÙÿËÂL€í_Œ
£Òk‹%¢
 ÇÔsþey	\–“/îR8QH¿qÓWö±|“OϼŒ+†	;¹�e�“o»>®Ý¼õI4/|¥3s©s´zÚþ�NuÞ7 ™ù«Æ¢^æãQ>Þª³Gs!:Ãò8ä$“ŒE�™¥
 ÜÚrFïwëùªø|KSLÏr„`üÉûYŠG³„‰¹ï—¥Ïdœ©ú+K¸ƒ‘ûk¸|¬}vÎ+åLµ;pB·@—Ìl»WÆ ŸÛf÷{=Ì–ÉåÓìucÛëT�Ò(hõn`U?˜�aߣ»3¥Ó"‡£†Hwÿ˜éN/;¹¹>›¾¾Ì³!=}PÇ>\¼15 €ó–¨ÆÿIï)fKúðS:C-EA!S…ÒçðÚLiGm¨7"ÓG°IR|X&�rK™ºrÉL›'“†ðœ'“†0{¹[ùÊPY´ƒBß*YAíáúAšÁíjâ´	%œmšX
­´	%âà‚•6IÚ#s’Î{Š“&eßuPßNðœÿÅM­È‰óùÃd…(w(«¸‚+�à_þßíg'9kfÍßu’J飳ïkEPÕ÷
 Nš'	ÿ™z™´‰ezzI¢§Ž£G-MÅ
sôøãÃ5Øy×¼ŽcJHŒgkìüÃGˆ×Z‰¼½
@@ -6462,7 +6462,7 @@ D
 u.h2™Ðit�?6t§ë²¡¬VhGþ¹þúë#72ÌnÜ M%³4h¶–g×mrÏH8™`^Øa2s’àqµ3«®¥<@R’”bt½$\¨f"á‹/¾x ñ�‘[rº�æ”°òÆGõT8ÌZGðÅè²¥7]“_BO°œ}a£=!@gòÊ[/h;ÎÝŒ.·pH2ÖôNØ
 vÅFÄ•¾„)I‚&\êNfün½õÖ€má²zÇ7·ôÔSOrjŠð¤iÛ�¦ép~E´1g»•³î9ç‡z(‚ªŒŽ'ä‹Ê³æÁL�L	Z{!S8ÏRdŒéæÍ7ßœ“öegå¤}€\
iý¦›nä6ÜpC¦g¸#q$oº‰¡ôŸ�åÈYd‹16®p^høFGU]lˆb]u�
 %X¢ÿú‹[ld)>Ý�ÙH˜mÞwß}}ßtÓM=‹
’÷Hœ-•€º
×]}¿�ÑEÂb
ITtFwÄûÛßv•p¡btÐ�Tbã�7ÎêMÌ¿ó�ïÄ'\wæ™gbA\â3 á\ù)§™
¾dt‹/¾8˜¡Ýòií^{íµùZ±“IÖÁ’*õvGlj‚¨	\Í
-D—0À¢£éÈ�wÞ[»çž{pK\TBÇ=ÞG‘[$LIÊa_øÂ\‚ß1ä|-Bm‚é|.#“œAZ\iϊдêàúVX¡×§Ê)4ÙqOͪW-ãÆ�K¬1Ð]!ïW¹‘²'´Š_…àö赉€�¶¬ÊÊ**Fgp£-åp­‰'¶¿íEñúçìâ{^£ã+ªEJeºµœSZyå•+	Ë×òSÙÇ1$•­=Å”DAµjCqy±XI¸]/Zh¡…ª÷tÚJþµûî»Wüˆ¾ýíoÏ;SvšlTöšeQArLÒÎ"4½H�™3g¶[7K×¾³Ð”)»*	S˼ÕêBù&Z²>ªú¶×üÏO>xXn¹åâ

~X÷ìٳɇÍë¤|KkÅWÄd¢Àã�?^�p²üòË,I½¹…*û#y‘,)/_èäJ/‘g×Xc�¶J”‹σ%ÏVoI±#/ãXòä“OJ{g7$Ì͘1"]f™e‘E§fÏI
+D—0À¢£éÈ�wÞ[»çž{pK\TBÇ=ÞG‘[$LIÊa_øÂ\‚ß1ä|-Bm‚é|.#“œAZ\iϊдêàúVX¡×§Ê)4ÙqOͪW-ãÆ�K¬1Ð]!ïW¹‘²'´Š_…àö赉€�¶¬ÊÊ**Fgp£-åp­‰'¶¿íEñúçìâ{^£ã+ªEJeºµœSZyå•+	Ë×òSÙÇ1$•­=Å”DAµjCqy±XI¸]/Zh¡…ª÷tÚJþµûî»Wüˆ¾ýíoÏ;SvšlTöšeQArLÒÎ"4½H�™3g¶[7K×¾³Ð”)»*	S˼ÕêBù&Z²>ªú¶×üÏO>xXn¹åâ
~X÷ìٳɇÍë¤|KkÅWÄd¢Àã�?^�p²üòË,I½¹…*û#y‘,)/_èäJ/‘g×Xc�¶J”‹σ%ÏVoI±#/ãXòä“OJ{g7$Ì͘1"]f™e‘E§fÏI
 ÇQ£ø1ïR–íÇ/Å¿rÈ!„0jÔ(þ™Ý©¿½6)fÕ®‹ÑÉÔ€@ÝÄI�•K2dŒTBßµ’ä…‹�zh=ì‘ä1ÇUÒUÑœaÎî ò	ƒj?æ¹z®;?úÑ�"U…ì”ð�FLJœzê©\kšö`6Pè ìž=ðÀeë™Ñ1Fü;õÈ´iӲƬ­�aØÐ—sà©=9‹vV™c˜…¶}ôQf›|vÛŸêœù‘ẉs&æ›haØØµ%\}gnÉXSâeG9‚ð)Æ»¢Zþ8'aÙ±’xà@üÊGU»ã£í´ˆ!¯¶Újbb•Ëó�Æ‘%.¶Øb¯jˆM©ÓèøëYlëp{#6d¢QxãöÛoo7*ñ¸!ÎÁ�ð˜4Ÿ“,]Ø|óͯ¾újÞCJB†î¼{NRÒlBsŒNÒ�ùUW]U´2:4³¬~¡íø=VÏ®µÖZm/a8 RMèfp)ÕŠÑÁÆ«ô-Ùuâ.ÞûÞ÷J‘47fW¡ñ�Z{þÑ÷j—ÁøñãKÛtÔQGÅ�tîgÅZÑž-BðW%‰¿ê¯$lDª³‚+b#K/½táÓ°rkÀQò7K0"7c$‘[¾QöŠJ”�ZVFÉ+€Õj݆ÔN	P<•·wÇè GEu'L˜ -â\G0,åÁ^Q>Ÿbzý%¬ËQ¾%“öpu¯c.†y¢SªòˆŠHžB¶¡Éa£�è�|ûC–-–ðIH'eR¤¬NÇ•{v}E…Í@£m£é²Å²ÐRK-U}ÃH ©L¦¢ƒÍTdÙgÝ‹ŠÑUËûQûð#EŠV—M¬E>]í/$Úæ�ß2ü/P„¤QÉš%n‰æåÅbH*Úë#³…2×QŒn~¨—Ñ1Ì^o󫯧‰kÕA1²¼ùÜÄ*.Ð~^þ¸ãŽ;Ê17m‘$—ïÍ^QŽê–±Š»í¶›ÔÛe$,ÄÐ+*}]CÊøu 	šF�¦ÔFàm„`\>ûÙÏz×ÍIY'pè»%Yqt¬Æ8j.ŨéµÃ=¥Š„©– ¢G¢U9L€QŒðÃeÚ@sXe¾ÛXíPøä'?™¼¹á†´˜­+Tâ€Øh£�¶ÜrK~#?é(‹=k¥+ÃÁäÉ“Ûj/®e«»¡œ4i’:×^{íì„HRåÓÕ~ºNÒß|q§�v
 Z#aC-gÒRwRù[Þò–È!Ra­h]¦™,†Þc�=(@ЉP½v[³Sß³E%Êù@š¦#B(^xá…ó%J*>lB#ºì3ÊW,sÓn$Ùáü«O?÷2º¨DޤÀI”BX…ò¥Î,
 zâ‰'ößÿÌç¸O_ýêW{}ãf˜¤N£#ï=zôwÜѹ\,ËÛƒNP@/ý'C†fø¢íY¡Ý^ŸÄ?:¢‰²ÃÕuv]c –õêØ`5Y‘‚
Î’xl¢j{ºÕÿ‘0Ôtî¹çj”2§*?Q‰²ô]µäYØà[ʺúBÜKÞ¸º£ÅšU«˜„',Kô®RÍò‚0œŠ
@@ -6534,7 +6534,7 @@ p
 �)ééF.Æ0¬B “Q	¢V,û…Ã'åáÙ’×4ÿR•¯Ð"l¬¥;ÀØÝĺFÞa‡T¨Z}�muF©BÖ‰Ñi£Nº5h\ÖóŸÿü¼àxóËó:ÔǨ«F d=›åµ^”ªg8Hd‹+•ð'±g»èýïØ8ÿüó½¨÷³ÙÁë‡/æÓ͸tËÃgJú=[à³0¦Vù¿Êê—_þò—u¾D}"TuÖ#ÝyºœD�МT´„)~õ/J?¹*Â	ZcïœÕ_§Hmº¦é”æbnhü0×ô¦7½I�²¶œ(Rý++Ì6ä”,bѵã#TÝZ�­ž}Þꔇ뭷Þu×]‡Õâ³otÌ!c’â—jƒ';{‘d‘]†'^H�[»Îq‚¯gÏ)PaNÅ¡øuÛm·yEÐìƒç›ÐܽÕ=MH�¡Úm]š'‡Wç(ìú/?³®.évSô�<_Сn,ËqÜ¥ö}£“’£�>Ú,gâ<ãºÁË´4MóÑY³fu?·×^{e«rF/HnWR-�£«qeÍÖ¡.{^ÌÎñ¡+
 <$áw½ë]CKÓ@Fwß}÷©Š`t
 c¸ktj‹7{üñÇ“5gù‡V—£È…k1:ŸàØG-eTa:¥àe¶i”K0:è A§ÚX)ÒózWÇ
-¯<¿Æv[—V7�müOY%«iޤ.£S&�"Rà¤öæw½lìsÿ�¸{ö³¬î¾ý£Ó©Êx3­Ò@ÑÁTä–H{@Agª%€Ð¢.

ƒÈE"¢Ü
¹`Hñ’ŠÁÄâæéX	xÄÚƒG=ÖBñ2;gNÏœ}>óûNÖ¼<ïï÷ˆ³þس÷»Ÿ÷y׳žuù®çJ%$eýN¡?ÍM1©–ä�
+¯<¿Æv[—V7�müOY%«iޤ.£S&�"Rà¤öæw½lìsÿ�¸{ö³¬î¾ý£Ó©Êx3­Ò@ÑÁTä–H{@Agª%€Ð¢.
ƒÈE"¢Ü
¹`Hñ’ŠÁÄâæéX	xÄÚƒG=ÖBñ2;gNÏœ}>óûNÖ¼<ïï÷ˆ³þس÷»Ÿ÷y׳žuù®çJ%$eýN¡?ÍM1©–ä�
 s)¤'œU´%¡Ùèwøá‡7Fç•êÖ¡;ñtÓVFÆ?œãyQ
 €@;Üèyä‘”~Bk×®Íaû„	›e"Y‘$ß’­_¿þø@3TE\ïyÏ{¤·Í$¯Ð€÷ýq¶tƒëógNxó“‰I÷€�L:…äÏÙ³gßxã�)Ó'9Yes·àHEi#4›Íz/ùË3#/hö[Á*Ü#�ÕL�íÖùåiN×íè‚#Ž8B8&+Þ‰îIj´"ˆ„Tÿò“¦ù\†1Šn¸!W‚f¢6±>üðÜϺuë†ûOvñ‹*¬]‡PÖ׿þuÏ&*pÐjHÀו¨q%¡ÁÃElsÍš5¾KíãFæÍ›§[—/_Þ'%|�j#s`¦Ïpý¹óÎ;±wÑEéî%¹^áá'Ÿ|ÿê!yn
 Åpö7žð‡R!¯ :I/™g•„FÂêçÚX*Q†éOÊÐ|úïa£>ÇËíÀÝ=¡QãO<ñDVT¾þõ¯o޹褌¢gt‘ÓÐ5ðÛ¼œ—æÀO›6-�ƒ) â!›EYóÃgŽºõ@6:êz‹æihÛõrÝ9ž`×\-:†jqrQ�Â…6nÜØÜtV›fëñ6G~¸ÍŒüô§½þâ/þ¢9_zQÚLfA¹IÉ›eB}	¯Zµ*+Ç@š.–î]ˆ!}›$hµŸ.Æd×�H7~yd_%æÌ™ÓŒGÛUØ\�½ýD˜°±èÃa†O>3aKÕ!±)dÿý÷ç®=)&k¸•µ¾t@ÄøâùÅŸ»ì²K@K‘¦ÚrØè~®ndÃL*Œ
êÓ\¹Û'½ìEN–ðʾûî+yæøÖZ¯–‹°Z]þ�·Çí~ûíwÿý÷wÙ¨rö�JÂOZä­nJÂ访þú?�"ÑŸ“T'§Áí{"j?5 f›ÏùÅŸ€S³wÅŠ^QUþ­·Þª¼’éµo}ë[’â®ä/»ì2ÐWmÁuŒîÞ{ïÍ·¢ÛXUƒˆ#ÖxQ fÚžÔGÑa‡ææÜñê¤k$j;ãŒ3DR¯äJå‰Á¿ç”ç¾ûîë6YôÏóôÿŠJ”Ñ�‚ (ùäTÆš2˜Œz?Ϙ1CIèB~j+y«€�&tU¢hÁ‚Í⨌«‹èªÄБçgD$£S²£0kÌ*Ò馮æ�Lð/Mñ<�
@@ -7037,7 +7037,7 @@ NA
 ‚ۀɷÓJ«~öE	j¸µgºõ˜¶Â½wؘqŸ1=úq®¶þÆ	ªÿcaoË»;8·0üsó?{_Îòšx …m>Ì¥wüìaÝÙ­—OÐ}vÙÍ\Q´uŽõnHû.|”cû[“DmööÙC4‚²åà9÷3ªËðWAÿ^l]Tu>õ¢1…Y¯o¾
 ºÚº
 êÝ~Üõ´ÿú]èm"ARHÐfB4¾‰û«_GoAíÑgîîÜr‰…Í÷LúóÑÓÜ•‚g—1瓊l>¥¢ eÑØn‚à2asjqu¼}Q‚Ši×wúXÏõ\ó¦)¿¥þ'¨xsoTApjÙso|ÖòH{=HP€´yоX3:ØQPøv�zöYnŽúš_]þ½‡¯£Ê#põ±›wÊy|:¬½‹ v¿:¦°æû(¿(Aß•¾½>Êz§&Eß™e|zó¢¯Ð	ê6h֣첺£� ïÞÜØßÇ]#h¼&®�)2¡Ÿ"ARHÐf@4•]Û=ßÍA©pl³úäÓré/ƒ¯MŸûdÕð`… n5hÁ£Ì’�LjÆòÌ�³:*×V¡GòÞ×Õ—%¨YŸ`Ñg•Òѯ÷¯g•Ûª5³±¢ÂаMÿ0æk´,nÓTµBÙaÔÙç¹uG5$A+ò“WOì­V¨\G¹ûÚh£äE“uZÿÑ:%ARHОḧ?ÚÊÃb-‡,y�’ú9o²´ÆšEH±âíõ½�ÞN‚àØkÂò³w3‹¬Ç£MÚ‚äÇq»�wÔ¨�oø¦µo-úe	j‰Å‚ä+3YsÑ©}Ïå[ŽÜK|™ž]l2Wäg¥§¦¦Ü¿xzë†èc×_6î{â¿&Aß™²oïó÷°Lß+lÖï/²Š�â;£¾4· ¸*$’ –�ŸuïXh ·e<ƒ‡mþãü“äWYZ³I—•ö655ùæ©CÖl»˜˜Ý¨i5$(@
-	ú£õù‡–ŽsQ)¬·@÷õþ¼�‹ïÖ>èl,»¼oi'_…ÊÁÛ?¨W¿ÐaÆ

íÛ9 ­«ƒJéè5hö®”ü�îú¥	j]	ÍxôÏàŽ-”
+	ú£õù‡–ŽsQ)¬·@÷õþ¼�‹ïÖ>èl,»¼oi'_…ÊÁÛ?¨W¿ÐaÆ
íÛ9 ­«ƒJéè5hö®”ü�îú¥	j]	ÍxôÏàŽ-”
 Ë»¹µêÚ#¤ÿаÁ}{õîÒÎÛUéÔq١Ƕ¯Œ’òU	úÎ\’´04@©TjÏ.½ú	6dPجͧµ•‹´
JÐwÖo~zøÏÖžmÜ,órpñ
 èÜ-¤ohØÐA!=ºwnåæ pï·çæ›FM«Ù ARHÐ�Xž³cÎP�Ð0žã®¦}üE=抬§—DŒ
 éÚÁI£ªz–oPÏAÃ&í:w¯Xÿé‘å/OÐJ¥�w­ˆÜ7ÄßÇ]Q½M
@@ -7131,7 +7131,7 @@ gç ˆM
 ]Œô„¾îRÁx˜ì©Úæ�UtzkÜÓA?¥ÎŒ 2ngLè2!»�nþÿ˜„ðÏ̕ވ2£“ÉóCégoC9•wFGÀئ”tkz±¯ùõñ�äVÉåßYŒ÷Õµ½Y©ö£2Aÿ—­ãOÜYºÆÕ{%}sO/UË�˜T"B1Ùsåƒpî;Ó¹#(™n}½B}ñÆ#(â—ÓÌû“¨£dí2¬xÌÕÇÕ^1%¯0!ŒEšgU¾¿½Û–aäý¼y^Þñ™�xýueů^½¸{6ÚÛ{ìªx,µ1¡~Mw—op·Aý
1OZ0äÝ%þ¶ÆXÁ⟟ád<‚ê&½T{´ñŠXE])ÿ¡@ƒM‘ž‹©øtú®þ‡ÎeT´|ˆ¥§ú<ˆ ÿ8T:øäÈ&]¡9%d×Íÿ¾å6ôY„ýhØïJªï¦èÿpÛˆ‰Ïv|òiýøŸ8­'×»‘²ýæøvŽº9L‚·v›�¦EPT<˜v`�.B0pÝšßÂþÑss‚
 4S
 :ÞøQ±/ûÒÀ3-œYîå_sãF‡6/ºSÞ«i£þ�KñO�#ù3"(•á˜^ÃVÿÊ3#(ÊnÌõrT3~¦_A)t‡»Õê‹§AÑ¡úl/GìœCϾT?*_ó¼ ê"¨,'qv}“uÅÝs­Š*8Ýõ7/w4ù~¨;W¯€ß¥–ÆØ1EE‡sý—`A‘rê¹PCE9õ{á³BÙH›|å‰ÊÜ|¹@íNj"èèߥ쎴¤èµ^Ndïä@ÓõØu9ýu7W�¢#ˆ ÿ<ùÀ‡»vú:Ø-¾ÕòèŠÞyTÕc”¼×§7â¼iðG5�yFPûõ¹mì~ÛdÕ“Úþ‰£±óNmÕ!È–ë_·ªYD!콸ÛoH™:"W¤³ “ÇãYU9K0+ˆ @¥ð[æ�
"öEöJ-ë˜õ‡~^ôÛû›–¿"‚Ö=õpÀgrò	;•�ó"W“¼‚Ú/Ãóè;ø‡GPé“S«æAùÝUq[=©øLPÆ[£’ï>¯N~aMKgowkft°¾6#èà§Möf¿(‚Žî+v6<N»°#`	}t²+"ÍÄoû‘‚&ð÷�
-FP~vB¨�	oÒ\¾+½°Z n¥K¥\Âå	§<ñ@¹­¯|hØ�‰ß¡ŒvŽdú×_V“{ÕÍ’��˜+¥÷	'»B)9uíYØ^tŸÈÔžoâšœ¤Eº£?bÓ§¦—
TïõÇ'=&ؾjéS³L±RÎgsÄ0)Ç‚@j¡¨´,3Æ^ŸJÖ±Ùwåí\S£üšŒÑ!àfg^Ñ´
–6Ø/Í&åãàODÐÉñz«Ž?ÿ‚uËmw•â+l<•­¾xJ~qâvÖ|#¨òÝí½X­gð²MÍÄtS“›¢C@¨KN>­ÂÞ²iÇ–ó^Ælcýš:"í©Üìi‡ º~Ó¹†ɺÞyãâõV'¼Py¿�:¹�R)ëm,IˆÚ`gHÇ~ô\w×àø¿DP€ôÖ%l]AÇŸl 4óÅ¡{ã2rÞÕÕOª.ÈJŽŒßué‘pÊo�RÎ}z6Ì”A¦êYì¿P\Ó8,”£J9v‹Zøð²‡=þŒÌpɶç
CÓªéà�=¾øS=Û°˜ë%Õ_G'+‘õ´T?OŽ÷u±1s°c`yxæ�²–ü”%øìˆ•ûú˜k�>Õ5ö²E2ÑPS}}]MIÊш­Û“Õ/Pæ¨ƒŠ¿•orÀ‡�د?]3�¾âèp¹7>Í9%äf™†1ÛÒ¢äøcaºO~×÷À°€ªä4÷^ŒO…´*¶[ôós’ÿâªþ|ŽD¶
;?¤.ž¡Ò¡G×3óŽôùi¼>Éê\açlwh_¼�éh=ÿEõé´ŒóìXÈ/jv^Ù¼‚€Í6ÅkX»JÑW~×ÎûLXº[ñýh¿ ‚Ž“‹‡JÓŽ�N‹ouá]7´Aü] ‚ª
¶fœÝmknH%I‡Ád}g §ƒ/ÆavŽ'�V—ÊxÝÙ#­�™D•i`hbfŽ11béÑ©$*ÃÂ%äQE§j»£üðf/&…L¢Ðô
ŒÌÌ-,,Ì�

˜FË7ƽ̽íb£¯AGP™°âÙÅ•ÎÖ$„@¦é°�MÍÌÍLñ2©D¢®mD"èB@ªä‚ÎÔkÉ‘fàó¨¦o^}íPÞÕ°¥d,É,‹úØ#R�”IÜWé��!2Ys¶ÊãéDÐ%¯è\þ$–¼4¥¸ý§ÛAqQrßž
Å®~Õ6¬Z:~gùN_Û™”©`ã"}„ ã»ãF;Ws�\eÇ!;üVÝ~W:[娢¾ºè5ÍÔ8ô²Ú6Võ•4?‰¡šËí5�4¢ÞûÇ70)Dšýú'uý“ÿ…t�ÕU!,üs°ûqDпDP0I©µ}|�pËÆ5–ÆãKµã¦^�ÁáÑIÏJ%ª0ÉŸòîŽØá½Älls²�¹_ЖØK™UíCJõc±ÄÛöè|lÈOݱåÖŒý6†½’ÙÒÏ—v—®Yj¡AG÷“4—�9¶ÞOŸ2±ø™å°~÷¾˜´ç|M³äƒYA3 
+FP~vB¨�	oÒ\¾+½°Z n¥K¥\Âå	§<ñ@¹­¯|hØ�‰ß¡ŒvŽdú×_V“{ÕÍ’��˜+¥÷	'»B)9uíYØ^tŸÈÔžoâšœ¤Eº£?bÓ§¦—
TïõÇ'=&ؾjéS³L±RÎgsÄ0)Ç‚@j¡¨´,3Æ^ŸJÖ±Ùwåí\S£üšŒÑ!àfg^Ñ´
–6Ø/Í&åãàODÐÉñz«Ž?ÿ‚uËmw•â+l<•­¾xJ~qâvÖ|#¨òÝí½X­gð²MÍÄtS“›¢C@¨KN>­ÂÞ²iÇ–ó^Ælcýš:"í©Üìi‡ º~Ó¹†ɺÞyãâõV'¼Py¿�:¹�R)ëm,IˆÚ`gHÇ~ô\w×àø¿DP€ôÖ%l]AÇŸl 4óÅ¡{ã2rÞÕÕOª.ÈJŽŒßué‘pÊo�RÎ}z6Ì”A¦êYì¿P\Ó8,”£J9v‹Zøð²‡=þŒÌpɶç
CÓªéà�=¾øS=Û°˜ë%Õ_G'+‘õ´T?OŽ÷u±1s°c`yxæ�²–ü”%øìˆ•ûú˜k�>Õ5ö²E2ÑPS}}]MIÊш­Û“Õ/Pæ¨ƒŠ¿•orÀ‡�د?]3�¾âèp¹7>Í9%äf™†1ÛÒ¢äøcaºO~×÷À°€ªä4÷^ŒO…´*¶[ôós’ÿâªþ|ŽD¶
;?¤.ž¡Ò¡G×3óŽôùi¼>Éê\açlwh_¼�éh=ÿEõé´ŒóìXÈ/jv^Ù¼‚€Í6ÅkX»JÑW~×ÎûLXº[ñýh¿ ‚Ž“‹‡JÓŽ�N‹ouá]7´Aü] ‚ª
¶fœÝmknH%I‡Ád}g §ƒ/ÆavŽ'�V—ÊxÝÙ#­�™D•i`hbfŽ11béÑ©$*ÃÂ%äQE§j»£üðf/&…L¢Ðô
ŒÌÌ-,,Ì�
˜FË7ƽ̽íb£¯AGP™°âÙÅ•ÎÖ$„@¦é°�MÍÌÍLñ2©D¢®mD"èB@ªä‚ÎÔkÉ‘fàó¨¦o^}íPÞÕ°¥d,É,‹úØ#R�”IÜWé��!2Ys¶ÊãéDÐ%¯è\þ$–¼4¥¸ý§ÛAqQrßž
Å®~Õ6¬Z:~gùN_Û™”©`ã"}„ ã»ãF;Ws�\eÇ!;üVÝ~W:[娢¾ºè5ÍÔ8ô²Ú6Võ•4?‰¡šËí5�4¢ÞûÇ70)Dšýú'uý“ÿ…t�ÕU!,üs°ûqDпDP0I©µ}|�pËÆ5–ÆãKµã¦^�ÁáÑIÏJ%ª0ÉŸòîŽØá½Älls²�¹_ЖØK™UíCJõc±ÄÛöè|lÈOݱåÖŒý6†½’ÙÒÏ—v—®Yj¡AG÷“4—�9¶ÞOŸ2±ø™å°~÷¾˜´ç|M³äƒYA3 
 qåý;¡[„^ÌÍw™K´!÷’‹F¢m>ùpF˘”Û‘z|³�„0—Æg×N}Å…DP¼‘¶d¥
¾.¼¹_Ä‹ºnÕ©9P)¿»£O<¯²ÿê:¢äÔ?À'÷@hþw¾°§••°%†�U~ó‹ raoêñ

 ‘bätôÎÛ™K rÎ o @Îàsò›.‰(ïŸú`UˆúŸ&í2]ÛsfEÙ÷÷zâí×ÖÛ*%ªLÓÔôrvÝV{|J×E�ÇÊ;¸Ó.*)xv±	!3V½ßû½;ÖB"¨BÎooëJUÛ“•Cu�]ðëlšTØôïÌ ”‰9ÃmÍ
5“Zz‡B‰ÆŽ–¨R,ä÷v´Œm^×ÔÚ7Ä‘Îõ›…*¤œ�ž¦†ºÑ�šû†yÙhõ"u´4Ö4¶
‹Ôßé+¤"ÞP_c]]ÍÄñºû‡"uXÁü@3ð»Êv¸š‘ÓÆëäõ¬œY¼x]ÕÒ?/düî§ÃXt*U×xÅŽSÏËÚ:{z:ZJÞ>;±ÕÇ@—J¤ÉìT·@çFP|²Èòû§]-™D2ÕØfYÄ™›9yE
_:škJórr2oœÞäé¼jçÝ9pQ¥T"pzoðÂ`h¶ë}ç°PŒÕFßk°EÐTÆI;¸_ψfâ»íØã—eí½}½½íe/ïÇo[gikïî·\äó]#^Ém-ÜîbCBˆ:,‹�‘—M¼ÏŸÞ?±aEtêèlMŠ7É»ôÉD…v2§¬¡×õ!7ëð¶Õæ†,}=‘03‚Ž(šrX$�Àð
NxUÙÔÛÛÓZ[QÓ>^0ÍkÄË«žž[n­O¢èZú„^»ŸSÝÒÕ××[W–w'!ÒÁ”‰È–î‘ﻦÅúDP1·%v“»«ÿÞŒœ¼Òj¬xøYu·7¼¾w5ÐÓ‘D$ë.‹¨cC_пDPDP0CWQ2™ŠéÞäò©ÝQqÿÃsûœÌYÄ™›õÌ·Ÿ¸×©²¸Ï#(Þ'¨É½¾ÊÕ†¬R®Q:þYC³FPåPÝÉý{‚\­É„ñBê[¹†î‰J+íš,åÂ"èÞ;þòá-¦dÒŒbQMí£ÎçÔ½»ce¬;ÿsþþUnLºšÓÕÝx�;~к¤=+u¨3J1¶Û}úaMI¦›•¾J‘7Ÿ
õdP§¾i¬¨‰H4GPì-Ö¿¾½ÎÝ^µLº±Ç¦o›g~ýA¥¼/'ÖÚ©|¢p¢ÎÒ
ÑÙÕß`4ê_"(`ìLê*ºfDœšù¾kå3ú}ÊÅœÆÒ—Žy/6ÛJo‰ßÉÄ«¹%õÃê–Ñi{}ÛN‡¹8CSÍ�}™€¼é§”v7Udݼ|(l•îd©ôœ#cÏÜÌÈùÜ9ÇŒLò¶fª'E¡ß©š\½ékÁeìjа„¬)‚æ�$‘°Ýü_L� x_^_ñãÔ»Ö±°x‡½0uqÄÉ÷*8"¹¬³ÐÝÒ�¸tóëôE"v5˜F«U"(ÞfËík+|–z$b“
‹6VXƒeb/\ËþÐ:ž™Q…`àË“ÛIÛ|œ'.ˆÝ®çî½*É•ƒÕáK­õ=CfDPì•9ß>?¼~n•³ñØtñÝý¨¢küŸì–Ãk]IDÖ¦˜§<Õ¢”ÒÞæÊŒ”¤]�Îã
 c›�ȘŒœwíƒ|ÕdˆEP?ì(!WÞ¨»žXÍõ_‚m`}u<‚¢
@@ -7629,7 +7629,7 @@ W
 ¹öü}yuUEy½Tósö‰*¿í݃‹XC°]s©ç¶¥ªó}Âåè!–fcY¬ñ^¡‹÷ÅÝoÈû¶2Œ*uÔ-Ei»7­ôµ±Öo}Ì8�ÐÅ;�<å©Ù?T©ç›Ë›¬Xî×sZúP¥Ž¤µüò‘3½Çè¶oå8oåæÛ©¥Ò¾ŸÑ§Ê.¦*ó~Ì<?ÝF�q:žZ«b´
¹‰;W†™ÆìºìÐí—¯.…L_õ-Uvñj>Ýi>jk”ùÚ#©‚ÁÞõOU~�<NíÚ„}	0ZµDÐÑP_W[[Çé)M1®’
 Ùµl±Bc¼P-å×66w*Œ¯°2*¹¸�ݨßz�~;r¥ÉSúŸ+±k›%Fç¹
 1¯¡¶Iªê_¢’
-šêD&]»4JyGk³aôÍ‚N™ÉI«lods:ÄÆ'wZµ¼µ¹¡E ë[fx§m† ©çé¦ì�¼zà[::UÝ“DÍMmòžc°¶³½¹žÓ®6Ý.¿­¹©Y 6Ú®B"0l¤ž'VgÿßUPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô Jj~X•ÞÞÞŸ`RSSL•Cý�`P? J___6Ç~L•8¯&\í UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô ÊÿkßÌÿ¡úþ®½Þ¥lcf2–²%Ù—�ŠPI"RŠˆ$”zÛIÚZЂRRÚ�}ÌXgŒeÆìË�ëû�|y¿ßï�™0ƒ¾éó­w÷óéõüÍ�{_çÜ{Ïóžó:ç¼V8•pï߸R|»‹-ü.—	Æjnæ”<a	‘^·ŸÄïi%*

ôw/­Ÿ%Uü¢Z!Ræ0]³2æ¤P"ÿ® ¢‰î¤Ð ÛîMˆ©Þþ'¯>ËÑlºî¸·²sjÑOèà›ÛÎæÆ¾IwF…ß÷(”#âæÉd#cc’M\é+�ü½Úïä÷´R<òÎÛ�¤³Ff1=‚_óîdS´ˆÝÖZ•±õ<|üBmrùmz¨)Ð\Ï;½V²ìrQTÜXWÓÁ|G]=$J`B…PöC¬”÷=Î"[Z}`/¬›„•æé´ÿBß”ø»£*äŒæÛþvžé·^ÔßJßfçVÔØ§Ý_ÊÞ7Ö´qÈ=ü@~O+åö«úÚ*-*s¬_¹Á+þ6ï}PÕVZ:%¿éa0h]/ëjRcì	æ;ßv.l®_C�HXCƒl®hù-MÁëÜé}¯c¹E(ù‡¬”¿)?ŸÛ::ý/#á
ýy6¡¨¶U$W(ä‚κ²£qÙl
»ÅýÇ<=s›‡ÀJ|¢_	u%Ø…7õs~UÔVÚº_Ï6DÔýä*aÅ–ÀôêŸÖrPNÛm}²;.­ü© ‚¾*Õ	¬Ä'Xöñêz¢…Ù¶KOz¤Š¹W„òYýµ·sBœ,‰Dâ6‡—ʪcü¹ŽT6Ùw"Ä?«ž6N)þ�­9v–Í�èô—�,� 3rÑdóã›qûݰŸ©Ö×ј¼%›ÁV*Sàþ0ƒ•¤ÈÜÙrQ	—ÕPQå㈤P}ÓKª:s3»=ÖÇúPÙkU¬áÕ¹„?îíx}ÿìO3ì"çsù÷>sU§‹êŠÎ:Yé¬Z»Å� 
+šêD&]»4JyGk³aôÍ‚N™ÉI«lods:ÄÆ'wZµ¼µ¹¡E ë[fx§m† ©çé¦ì�¼zà[::UÝ“DÍMmòžc°¶³½¹žÓ®6Ý.¿­¹©Y 6Ú®B"0l¤ž'VgÿßUPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô Jj~X•ÞÞÞŸ`RSSL•Cý�`P? J___6Ç~L•8¯&\í UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô JjP%5¨€T	@
ª UPƒ*¨A•Ô ÊÿkßÌÿ¡úþ®½Þ¥lcf2–²%Ù—�ŠPI"RŠˆ$”zÛIÚZЂRRÚ�}ÌXgŒeÆìË�ëû�|y¿ßï�™0ƒ¾éó­w÷óéõüÍ�{_çÜ{Ïóžó:ç¼V8•pï߸R|»‹-ü.—	Æjnæ”<a	‘^·ŸÄïi%*
ôw/­Ÿ%Uü¢Z!Ræ0]³2æ¤P"ÿ® ¢‰î¤Ð ÛîMˆ©Þþ'¯>ËÑlºî¸·²sjÑOèà›ÛÎæÆ¾IwF…ß÷(”#âæÉd#cc’M\é+�ü½Úïä÷´R<òÎÛ�¤³Ff1=‚_óîdS´ˆÝÖZ•±õ<|üBmrùmz¨)Ð\Ï;½V²ìrQTÜXWÓÁ|G]=$J`B…PöC¬”÷=Î"[Z}`/¬›„•æé´ÿBß”ø»£*äŒæÛþvžé·^ÔßJßfçVÔØ§Ý_ÊÞ7Ö´qÈ=ü@~O+åö«úÚ*-*s¬_¹Á+þ6ï}PÕVZ:%¿éa0h]/ëjRcì	æ;ßv.l®_C�HXCƒl®hù-MÁëÜé}¯c¹E(ù‡¬”¿)?ŸÛ::ý/#á
ýy6¡¨¶U$W(ä‚κ²£qÙl
»ÅýÇ<=s›‡ÀJ|¢_	u%Ø…7õs~UÔVÚº_Ï6DÔýä*aÅ–ÀôêŸÖrPNÛm}²;.­ü© ‚¾*Õ	¬Ä'Xöñêz¢…Ù¶KOz¤Š¹W„òYýµ·sBœ,‰Dâ6‡—ʪcü¹ŽT6Ùw"Ä?«ž6N)þ�­9v–Í�èô—�,� 3rÑdóã›qûݰŸ©Ö×ј¼%›ÁV*Sàþ0ƒ•¤ÈÜÙrQ	—ÕPQå㈤P}ÓKª:s3»=ÖÇúPÙkU¬áÕ¹„?îíx}ÿìO3ì"çsù÷>sU§‹êŠÎ:Yé¬Z»Å� 
 ¸ï
K¶°f
 )£µ.õHÕ”H´÷9Ÿ_ÞA{i®e%*¶¿ºŸhJ2Q‘Wþ¡oükƒ)¬þná^7"‘ìw£æíÇGYd+M+Q¹`¼±¢ ÄˉD$Zx—?äˆf¯g߉Üè|ýÐpWiÆ)§m[±÷sðdVSKŠÌ?:DÌýÔø0õø>ì¾L©6Éy/:gañ›»—ÝmMV®Z£k`DTâQGÿž1üϬÄÀ4½Ñלäq¼tjþË�JÇ;‚\õM¬ŽÆ§–¤ž·$™¸„¤~b
 Ô'IÇ»B=©N‘	¡~GN'çg�;îlbHØyì%ƒ;eªúR…jv*­¸¤øÊù“¶Š{Höo‰‰‹%­œ‘ÑB
V�æ¨[¸ŒKωÛohh¶ÿXRAIáÅÄXSk÷È—Œ/c<>ëCÈö;¹
j+ù]�ˆT«Ã§ã¼=öÆžË(*È=wò ÉZ]ë°?9Ê,yW{3=ÚWGkDJvIIÉõ²êQ�vî…"ÃoïùZ›šoHÉÎ-ν}$È'4ÔÛœ8g%ŠÞ—§ÛZ’½#
@@ -8820,7 +8820,7 @@ x
 ÀÀGGG{{{‘H„~ïØ±£mÛ¶B¡�þ×»wï455£¢¢ÐïÄÄD}}ý›7o~Ï´¥áGv…ÙOO­w_‰p÷<õ´<Û VXD•Í“P Ò¿ÿÝ»wÓ¿Q›Àáp6oÞLÿinnÞ¢EÒÒÒòÀ�zraFr\tÔ»Ÿ2…/ÔrDŸ�Ü0o¼­uß¾Ö¶ã=…½ÏùÞi*
y�¶Ú[XجËfˆéw½WºbÜÜV¬Z¿ãXðë4qå¤!óþatºå^�ñ¢¢ÿ¾9¿ÁÍÕÍãä³RÆšûÖw¢‰*Ám4æTB%%@Žïë
 ón{XuhW„öíM6·´3gý鈔âZì¿VtV#8Róç—´Ål)oDÂ'›‡˜RÉî`åq'¯ìéPJ…åÊÀÆ�[¶lù÷ßçææÚÙÙ!W¨¦¦–œœìïï�~áíí�‚‚¸¸¸
 9iÖ›?ÖMéÛZO@¢;Ÿ:
W½a‡A³½‚ãr+$þ¢ä¥¾…xû	w3«¬ŽW?|] ¼ˆSo­ëgÀ£ë–‚Ôî<ïb|Ú�ì“öu·ÙüÐ2TêìŽM¸dƒñç¾0Dqü.+Na~#ëÍ÷+áuªøã~kt:ÞOË(¨[9W§�¢®ÃéÒÇ,Œ;ÿk;uøBª†ïë
-s®ÍhHi»åšqã^*xs™uo9å�Èz=W†|*OsYþˆòn;·äQ‰åÎ¬¬®jæÊÄׯ_Ç�O’$�Çëܹ³žžºé{÷î­­­�~têÔI__ùA


ŸŠ8¡8åæònÚ
+s®ÍhHi»åšqã^*xs™uo9å�Èz=W†|*OsYþˆòn;·äQ‰åÎ¬¬®jæÊÄׯ_Ç�O’$�Çëܹ³žžºé{÷î­­­�~têÔI__ùA
ŸŠ8¡8åæònÚ
 Ôs5[x©2:JÂg�ù’êl<禬:WQ¯D~ô(¼,@ù'ž݈‹jO¿—ãößÿð;°ÒÞD�zó¨3ø@L•½x,�+L¿8¥!É5š˜ÅT¥®�à·±”,\æ<ͺ%•1Bµçæ7ž±Ês…TäŸ^„?üw=•Ouq…¿Ž&F£ŸÄo/	µ.k#
 7µiá;§M›î|àAZùRPåÝsë¤C%[ÛdÁ�Jk¹+,ÇP>~üûíÛ·.`“V¿~ý/_¾ Û��]Ac9_.Ï0æô¡f³CÇLš<nxŸ6º|iÛ@ÖêWá<Å®°Jêxeò£ç\aÅ#ŒXÕU&B¥ÃÒ;xMøzs/jF
 ¿“ÇSz²¶èóã“kÇíoÕ߯a¦ûá»IÒIÜy'Vºº®ØøüöoN£ZYÙLp;™•ý6ÀsÖÈ�ÖCÇ/Üy3�›ýðt_èÛ‡G]'ÙZ÷:ÑÅçÞGT{E®y¹ŒhƒÒAjw�´lÝÙW’Ò_žß8g´M?«�#¦.Û_Üðöç“õHžÉ¢Ûò÷„ÌÖ±?)k�Do·ôTA¹U³=*UÌŽ	ÚµxòðVVíÆ9®9r‹²]â/·¬tsu[yø~¦4¦Äà�+\]—o½+*æ †+\z%dï‚Q­ú
ï¼/,‘Î|QWÈ2wÅœ
 Ò¨&®�PyŠÙ—¥Ež™ÕA�îþñZ8ÝRÔlŠÅ,†
@@ -8892,7 +8892,7 @@ X
 ŒÈÓCê­°2nÇPSëU÷‹Etû±—¨¨++èÐÖ
˦÷kkb=ïâkÅÖ‚¤­}pyï(ór0$ä•¶øêL#„yø-{‰Rßk ºz• ‹#6ÔÅ-W†ÖO‘P{!ŒV
'8v§äÖ„«ºæ ‡÷ÞÂ^’ ¦ˆúgÍó?tÕ7íýý²õ]f
4Óë2ýdŠŠ”ÙâÔ4™Úzµm%–&Ó&PX!@+ %­0p¡f:ÿ¶ºŸòŒbÆ.ß¶]ž­NÃÛ uVH…¬´6µÝ�PU7&Qæ~ì%*<õp5´w'7¸ìz¦Ât¼ÞAÞ˜Óï0ù@Xv¿<;òøÜž\”öå•l�êê•oÀ÷÷:ôÔÇÚŒØ!¿Ù‘Ú‹…Ïv
 ¸Ó.Ëu]ÖøþhŒ[­g/y¤¦ˆúgÕ‹‹‹¶!yýl‡õ·0Âõ»Ow¤bçb¶8ö&S_¯6­¤U“M¬ ЂV(úÝ…¢%¢‚çác3ÊIÍ#HÉ<ï¹¼¶v¾fÔGÞýØKÔC–&ìoеq¼.?R…w�CwNìÌ­[Ó|ÌêEÃ9ºÓ.—ª+Q®Ku úz™�sCsìm„é[Ùï
 ÊR-Cª/„Þðéà0‚3å/¹}…+½fèv³—<SS$$nïÇáØ¸ç3wIT½c¸ná¢Ô̧¦1ÕÕ«±•Ýd@£9xðàãÇ�[:à³hÉÕfJ¼Œ±ŽNAÊCH	›­qÝI§óµ°Bþ½eæ¨NC¸öçn±•(.]*L÷;°ëHð;¹Ž¼²ËÓtµ£XûéMbLtü«‚~˜‹Çf[’@c‰ÆSh¨·"ñÐ$sÂÐÚñ·ûÙrŸkw!å×èñšõSõÒFüp…½¤DM‘(Ýý‚}4«¾âÒ+Óõ˜åkäa�SטjRRßJ
 °4À×
-ù1þæ…sçÎ�¿–¥rv¿(7Úë<pÁ;¶àŸN`CXSYÉgßø‚¬­ªPWÀNKZ!Yì3¯f<þ¨ÂÔ7ò“ßnòý¹\mv¦ ‹^E?•¸eAØnð

{–_ÀVòAád‚äí}	ƒ©ë{£˜%*9c�½“�RöA¼ûãç�N•ž«ò¡K7¢ÇúGµjJ”Ð&°¡ïðc7õ明۟P¦Ôí©Ý…ÐgyŒár†»§I×Íûë[CݱDzØKDjŠÈÜãã9Ä€]ÏdÍJ~ük
+ù1þæ…sçÎ�¿–¥rv¿(7Úë<pÁ;¶àŸN`CXSYÉgßø‚¬­ªPWÀNKZ!Yì3¯f<þ¨ÂÔ7ò“ßnòý¹\mv¦ ‹^E?•¸eAØnð
{–_ÀVòAád‚äí}	ƒ©ë{£˜%*9c�½“�RöA¼ûãç�N•ž«ò¡K7¢ÇúGµjJ”Ð&°¡ïðc7õ明۟P¦Ôí©Ý…ÐgyŒár†»§I×Íûë[CݱDzØKDjŠÈÜãã9Ä€]ÏdÍJ~ük
 —qè­BµìqêZBMJêZIÖ&øZaö�§_•bVëbTlU.|¶«?Á”Kw±ÿlÈŠ‚Ì·™ùe_j¯½ªŽ/ùÑgÍ„	k}T¿ñÛáhÛŘÞwÁ�xC¶ú¤U×—ÞÝu›ckÁ¬É�Æ]lgn¾šRÏ<AËîb/ʺ<«3Îé6ÍÍ'9§œÏ/ËŽõ\;Üok÷ÇKæ!ÕÈ]ìÅå—§qU�e/>w³ÕãöZp.>¯JÀ/J
Ø1¡=n6ýbŽZï ó/Ú›à]O%T–fGþáh¥k:é$=u�½D	mÔËuæ¼ÙÇCBåy÷¶B»a*.ðžcŽ·Ÿt "§²27úÈ4êŒ?ûÑ+€²—¨)½=agŒµ·=ðuQMMIF˜‡cwމ]ƒKf�SÛjRbo%X›Le4À×c…
Öý—¨ûË
 ŸîìOHŠ›Í
 Ë<í¹:rÛ}	þ‰:¾¢ìvgüq¥�³.Íèˆ!¨qO»«7n\ýÓK=êÆtr¸,¹L²øÞÊžÔÝ2è6î'—
\~¤ËuÐ6Ò94ÚвVHQ“á»ù[+C”™Q¦ƒ z¼±.ž)ÒA¥ÿ„R9¼º´¨¿)&MÁ¨×ŒƒQŠÚ¡Ê;o¯-PwBtíœ'ÒT¢„æ@åzE¿'‹Å%Ã5µ¸	daØn;^Ý4>=ËïÄH×^a/QS$úº×¾‡‘ô&ry¶¨¼dö8u-¡&%ö»#W)k“©¼'@£HMM-*j85€ÿu+DM
í…cÝÖD*i¡ðÉŽ~8ÞmÈ 6(Xá?É/ÎLøs¹­)ª££l…U÷�yj<ö·§ÒÅÆÉ’ˆ
ý9Æ[NO̾:0ŒƒèÞ[.=¤"q—­‚Y®‰TÑ
 ’·B	5Ó’b¢%¦æU¶Ð€²ºàuBtdt«ÕÚ§@V忌‹ŠŒK-Pö’¦j›’ÖRûéMÒãÇO2‹<4ØKÔQ’õèiV©Ú—“¬qj[BMJ@ò…Ö ¥¾—æ~®\¹"«åãÇ�la‘‘‘Úä¹sçNÙ!²Ï322äÏ&Ôÿ©=zTöùåËõKKÊÂæÚÉÉÉÚ\¦¿¿¿6ù{xxÈñôôdKFžððpYØ“'OdŸ;99ÉŸy÷îݲ"-ÿBŽ;&;äÒ¥KlaëׯW™u-²˜ÚÚZù"êv¨<Uff¦|Øÿýßÿ©‹ˆˆ`k
ª¡daÔÝdûL’’’T&ö™Hú
@@ -8921,7 +8921,7 @@ Q
 Òéù×Ô‚>V¨òžÑ|ô¡ä;X¡Düz{76nÙ®½##…eo&%+”�Fk†óÏwÛ ©�gÆÚàÀ
 —6#X�çÅ@ºÅ�û©‰4Œó‡ÌØzî’-ÄÒXž»ÝºUË�àåîþæ8Ùa£F+ÔÒ‡¤zêZ`NÝÀ¸CAâì3v,`…Ú®C¨=WÇU©º±
 µVH¿RÎn3æÔõß4¤·w1¶›ïhªàEÝ'󰨎.BÁw·B³³<l{Tý®FålRoäÌÑV°Vf'^:¸c“ïæ€ãQéòÓfE¹Onߌ}�	¾¿•e<ˆ¿“šQJ}v?L‚8÷IllJø$ç¦ÅÆ>|/ÿ˜¥Ê^ǜܽÉ×ÏÿÐåÔ\é°ÊÞÝ‹XÕ�$;,ºtSQŽ*}sj÷fß-{ÏÞ~W¦Uð<žnŠ_ñæúaÿ÷óT§Bpg±é´(žÏ,³Y͈ÐNZú,»±ÇE%k,»4Μlþ3Øü"Ì}xå°¿=Šs	™Š’r+|SüúƉ]›ü¶¼ò(_¾DQŸžÞ¾õ8GX‘wšüÖß.=È…}\ýU!ßÞ
-»té¢Ï~>¿ê�&+TÖ�ÀÀ@µeÊÊÊà^h‘Y°ꉖ¤5€þ0×gn


A•ÈÈH�~äÈ�®Å
+»té¢Ï~>¿ê�&+TÖ�ÀÀ@µeÊÊÊà^h‘Y°ꉖ¤5€þ0×gn
A•ÈÈH�~äÈ�®Å
 a´Ä Õº–Úk�c�Ò‹‘¦K†­�¾–/œÀ �ÒºªOS]»v…gæÛ[¡DüfGw6ó¨Ùzý#ùÒ l…â—Û»q1̤Í4ÿó‘!GçjficIT�Lñhc'ÚízÍó?uåjTèé]‹6áâÜöR¤dÅE3lêî¹ð×øbzá‰ø±‰‘ö}î>q5âÜî…ýh£rö¾V$ÿ-³úþO-}Hªõ¡¶…òk^
YÙð‡ƒ#ÂÎï_?½[[;K·¼9<õ½HÇuè¸JÝW¥uV(z¼¡
Ý^³�^ó«±Ð'X"½—8Ì
 ÇØ�Üí>võê•[½zØ‘n3ìú�@èÍw·BãqÇ/N³áöÜõNþÑEålj9þô©©õV(þãì$'iÞ¸}—.í�,Hª϶TóøÜõyÍIvË¥qÌNªèÚÜf¤I·ÍªçóèÓ“Ry~‡„î¥Uœ­¸(~äÙÜ�kãâÖµ“³5‡°ê»ý!O¾3U
 Ûý@%á¥íшöhÜÖ­]c’í0Ð?Yº¹”5Ó†í6ÍËÍ7 ;ú>­6•I+Z²Í{m‰‹ß9Äžë¼è–ưaÒm¯,Ë>k#_•¨ý´§r¯ýìfÁ2´mÑÉ­µƒ	Ë°ÙøcÏ™)a¬�t0Ôż^“¶�ZÙádÏËÒØÜÒ¬Žc'ºZX5ïÔ¹5“å0é¢ü¨Æ«B �‚,d…úTQY!àû[!³±'­…d …*VHUÊ®¡�8˜l\·Ñ ¿ëûÇp¡ç
@@ -9103,7 +9103,7 @@ I
 §a/¥d©³Ónôîl/«Ú{yëãjrDÐ=ÙÒ³²ìn룟f¾zxv•[=¥]×u,�Ò}óK/E‘›<ÕW{S¸®ô¤žõ-œ+ÛÒ\7ŽR	Î~ŠfU©VÈ
 X!X!	°B bR~V¨½»¤
mú§QVô€<Ö ß±#|®«CþO¾,jå{Ý‘'ªI\¼â§$j�*>èÛfvùL¥$6N}ü"L}‡«šÔ÷vŽù8¿‰¢?ü|zH
 ›n[¡îé†n
-Y£ÙWÈ›ÞpfÄœ#ÛR]7ŽRðg=EóªT�Ù¾};óúPâaß¹SÀýû÷ñ¦äädÔ4þüF(ªð	Ý���hÈ‹/H“vëÖ

Ç߇sXá¾}ûPä	& ãåb…{÷îEÉüõ×_æ&€óÏ?ÿÜÁ`þ‰šž?ŽŽ§¦¦’"0DP·É“'£$›7oŽGnÑ¢ªù™3gÐp¦°èxýúõñÓ¿ÃÆŸþ‰†Yapp0ë#ð]}>úè#”@�5Ðq#+ìÑ£GãöìÙ#¤¶xeðŠ”J%~_¿~ucÚŒÅQ”ûn3%B΋;W.\¸zÿ¥éSD5‰‹W>óêÞ>MˆŽ<ŸúVÜ÷NtYOnFEœ�ºõ”¨åe
×ù–æºq•Bhp „™;w.É×pBCC…DßL±eËtœÃ
+Y£ÙWÈ›ÞpfÄœ#ÛR]7ŽRðg=EóªT�Ù¾};óúPâaß¹SÀýû÷ñ¦äädÔ4þüF(ªð	Ý���hÈ‹/H“vëÖ
Ç߇sXá¾}ûPä	& ãåb…{÷îEÉüõ×_æ&€óÏ?ÿÜÁ`þ‰šž?ŽŽ§¦¦’"0DP·É“'£$›7oŽGnÑ¢ªù™3gÐp¦°èxýúõñÓ¿ÃÆŸþ‰†Yapp0ë#ð]}>úè#”@�5Ðq#+ìÑ£GãöìÙ#¤¶xeðŠ”J%~_¿~ucÚŒÅQ”ûn3%B΋;W.\¸zÿ¥éSD5‰‹W>óêÞ>MˆŽ<ŸúVÜ÷NtYOnFEœ�ºõ”¨åe
×ù–æºq•Bhp „™;w.É×pBCC…DßL±eËtœÃ
 IO¦(+d^ÌÍ�´lÀŸLѾ}{¼	±C‡¡ã›6m"ÕüÁãÛ¿M1²Â¨¨(!yÚØØ�&EYaƒ
PÓ†
„Õ£???ÒD,ž€Òã¿a…¼‡€âCÀ
 `…`.`…üK+ć€"À
 À\À
@@ -9228,7 +9228,7 @@ h
 K‹ÏLk.ì¿õ1°**kÿHC‹	'
 d3pÖh…À‰º�¢î³S³eO8Qù¯Æ&?“
BŽX\EìÜÖdÇå‰Ui¾p5àÚ!U¯åÌHå¸å¬â©Wx?þ"|¢Uò.f~GÒÔ3¼Œ9Órm©Òƒ­ó)‚­[!
 ¶BƒÁ`‚¦`…eÒâˆé-}7?’PYûFZLü³@ÊÊ
-¥Ôës«‡Z	‚#jÞeÈø…[ÿº-¿Ë†X•õÛP¾æ·6¯ÓJ©ò	ÒÞ>wUﲈ§YI*-}±už»s{Û¦R__ÈQX!c<úåZS¥[!¦Q	

—ˆz{÷îÝÕ*~úé§íoÞ¼�Å´X!Xµšt䙂‚4òÚµki«üüóϰêjh±Â_ýu›
+¥Ôës«‡Z	‚#jÞeÈø…[ÿº-¿Ë†X•õÛP¾æ·6¯ÓJ©ò	ÒÞ>wUﲈ§YI*-}±už»s{Û¦R__ÈQX!c<úåZS¥[!¦Q	
—ˆz{÷îÝÕ*~úé§íoÞ¼�Å´X!Xµšt䙂‚4òÚµki«üüóϰêjh±Â_ýu›
 t|5+ò¾‹i±Â…­>.×b…@ëhwyÇŽj¿DùùùÁÈè;ööö°eÔ&dŸ:u*ŒvéÒ%*;;mó5kÖÀb<€ÅÀ—Ü"Ø:šÈ
VAEøáÇè!C«„„„À-E…ÅP©”Ê_™„Å@X(6š0º›sæÌ�Åàò.]ºÀüÁÑg:1P²²²ÐC*Â�>yò„MƒÁ`êBÓ°Bùü
 §M÷3�ZN
 +”j±Bê;á|t<Pñ»‡—Oüî=ß½ok}Ž�“oºXÍ
@@ -9398,7 +9398,7 @@ e
 ê¤Bà© @*ΤïiiiúnTR!@}†TPŸ!ÔgH…À™‡‡GXX˜¾[‚Tœa
R€:©8C*¨�
 €3¤B€:©8{ñâEzzº¾[‚TPŸ!ÔgH…õR!p¶jÕªk×®é»P!H…ÀÖ ¨�
 €3¤B€:©8C*¨�
-€³W¯^eddè»P!H…õR!@}†TPŸ!g+V¬

Õw+ B�
+€³W¯^eddè»P!H…õR!@}†TPŸ!g+V¬
Õw+ B�
 €3¬A
 ðÿíÝ{�•eÀqÏÙ=¬akxI&!L,L­¼U֤ݭ›F‡”Èh3R#$Ë1“±L»8S9�ùG8jÙ€¸\£Ö .»®»ÄŠ+Æ¢0Èî·÷ìICÜUz^ìÄû~>–ç9ïï¯�ùÎ>ç9�ª�Ú½ôÇã¾\tñ%ãª&ÿä�
;ó-î~ü®I—Œ½æ÷Í=,Èo}lÉ¢ÅuOôÿÑ‚ê|å’	Óë»÷ÄWí鬿éC•o9câ¼->§Ï®¿\{æ••G}øÆ•­û9_ª T!é“ö7ŸtH¦âˆc‡6ô-ƒ2™Lå‡~TßÕÿê®U7œ}Ü;>ysÃ@M×~ïËT|afë@ÏëYóY¹ìÐñó:öÆ}öäÿ¹äÆ1ã~ô§mÆkQÇÚ;¾yá¿k¬›qÙ…ß¾kC÷~̓*HUHú«0wÎÏ7þ|ÖùÄmŸxs&÷Þëj
Õºaáôi×Lš4õ¦;–>ÙÞ·zëò{g̸oå¶|ß«;ªk×-¾ý“¯úÞÏf­Ý•Ï?ý×™ß<³"“;½êöùM¯È¾®-5wN›rÕµ?›5÷ú¾\x]O/ŸyóÔIW}ÿÖ»W=óª?ßíçžž,›9ý·þ^}ÛuW_wËÝ«¶½ôNûÎÿóÑïŠÝ»wèwàJ’>¯¬ÂÞöꯓ-礚®Ö?<kH¶|ÈÈÓNqxYöÈ�ÝZ×ÑÛUó�ÊËOùÞꮾWÙ#‡~Êéï:2—ɾuô=[ênûâIG—e²G�úèäê]{=cÎ×Gæ2ƒÞ:êÔwU9øÐL_áõlš9zx®ìðãÞ{ò°Ã²¹wŒ½¯%ß°§cî¥ÇdËŽ<fø°“O;áˆ\¦â„ñ³ŸÉ÷ö3k}ÿóÀKT!éS¬Â²ç^1õÚ©“«>=rp&;仞i™ñ¹Êìà³oiêŠRqÍõg*ütÛ¾UxT´2ßÛ¾xˆ²²ã¿½¬³ßš=Í??§"[ù©_=ÙÓÛýäퟒ-Þs+®>±¼üÄ«jÚz{wÎûúˆ²Üi7<Ö°§µ¯
 ‡}eÖö|oWã´Td*>ú‹æÍýÎÿ†ž  T!éS¬Â¢L6wØÐ“?wõì'»;¬:¶,wêõÅ^ú°läÄ?ïS…¹3§ý=ZÐÝpÃé¹²·kiÿUØ1ïkC³¹÷ßÔÔwÞ³ù§é;
ºõÎó*Éä^Pù¦\&S9úí{þY¨ÂŠóîÜÙ7éòïŽ*/;îŠEÕýί
@@ -9462,7 +9462,7 @@ endobj
 >>
 stream
 ÿØÿàJFIF��ÿÛC		
-
 $.' ",#(7),01444'9=82<.342ÿÛC			

2!!22222222222222222222222222222222222222222222222222ÿÀÚã"ÿÄ	
+
 $.' ",#(7),01444'9=82<.342ÿÛC			
2!!22222222222222222222222222222222222222222222222222ÿÀÚã"ÿÄ	
 ÿĵ}!1AQa"q2�‘¡#B±ÁRÑð$3br‚	
 %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ	
 ÿĵw!1AQaq"2�B‘¡±Á	#3RðbrÑ
@@ -9813,9 +9813,9 @@ d 
 *R•J«!ó¯NÒGµìÎ@ÖàW„!
!%%¥¨¨¨©½@cÈ,¯qzÒ|Ø‘/òÞÀË_ohùÛ&_ñ
 ;õ·«({0Ã%¬÷}‘Ù\â•ô²�[¬hœ²™"ð޲JTÕÿÒÓÍuËå�²%•>³˜(ÞamX­Ô–dŽ—½.ªkï%2ÊÝVQ•üF¹ï·vÃÑ–ŸJ‹M‘EMç>*WÃ@
‹Ú4´QÕ7¨Ló[HAæ¬î¡ƒÝ^¤\~)¸ƒüŠü̼Z—\FÝ j•J[,óž)”Åuó£À/Cd%€-᛺ÑTÏjC`ŽìŒLvÒµ™í	„Öe]ˆxÿ
6¸/º7Ã%ºnŒ�¼¢“yw§›¡X«%AÔ>z<WNúIjâ|¿2.�''Ï™wõw=k½ð‰ô'¨ò�Õ�pD{¤gf-•¡ §eø¡£‡/¼š&i 2jG_:jäx½j€K…ÛÊ‘ß(÷Ý–®j6õv®ÄDz—+;áXËy�KÕ2Pâ6
nTõ
ÒøV¯ñ¤uY(gY¨Á$ÓOÛi#Ôí‘ZWIf^u0FQÓ9ËTZ(k�ûf•’u�f»mÀÏCCøSsÒÞGÂÌÚyÛéÛ~AÁÏß8¾Ñ±Cpsû1Õ/ÙC7îÐ}”h5fç½ÈO‰±//¯l‚¡ÌáGåȨ^ Vúrm‚™Z~úaxt|움‹®¿µ"¼Õñ&Œdö‹SÛ·ŠØ<¹ÁÌG,Þ"ú¹ýtpލ‘«F(jh³æÊËØÏ	÷v�oCC™Ãפ)ÕÐm5¶z{š9†Zu!èC|Lè­ícXj8òTõ¸¤J5,êÆ³Á�jzƒTZ¥Wgáý²»jkm¶ÿZ F0É|ß¹­q„hõ›ë•çï?}Ž
÷><§—*¼‡GâE÷Pµ…"J¯S[;öSgî*üä€0 !€0€7Üô �9YÚ(R=AµÌÌöxž!õ6­‰0¤ÞòŸ»�µ�T‰èXŒu{®hé™:™K¸_}6޲`HùH3³^t!¦¬ªœ³³!wj£8騨™§›‡´ U»„êvœ¸÷e®ŒO¹­V£²øÝÉ©]ô°êœ7Œöö†H·ªÒ@
‹:mx£2Õ5\VÞt +˜{J<˜¤^0Ëc/.²6£Õü
†=§	ϯñ[µ…\ïÓN£5£�8	+„!
açÎ�¯^©ÌÌÀ?²,3.<ð±�÷ÀИôRÕ;÷©†_”ü&è±ïãÀ7)E�2Ã/K�~åÿÐÇ×ïùÛ¤ŽêêÂÎMó÷¥*øZ¢àÝm*¸©ï_<yäô&¥XþDKUjXü€Fÿ‰p
 ’¨Û#¼?ŸråêPÕ(„!À/C€_†¿8 hIII………MíÐ @Ð +)ÀOCC€Ÿ†4†�É«,+-«äÕc7=~Zȵó^Þ
-a'>À?Aò‹¾ßõ:uìØ™ËߤUü VÔ„—pyÕÜ-÷S%{ú�ʼnáA�"‚‚^„F%å×kï$ø©÷·Ìž½õA_õQ¹ç§=pé®Ïr¸˜\w§aø{qss

mj/М²§›FØÚÚq:,gÛz!¼Ož³†
+a'>À?Aò‹¾ßõ:uìØ™ËߤUü VÔ„—pyÕÜ-÷S%{ú�ʼnáA�"‚‚^„F%å×kï$ø©÷·Ìž½õA_õQ¹ç§=pé®Ïr¸˜\w§aø{qss
mj/М²§›FØÚÚq:,gÛz!¼Ož³†
 
F¸ü ®Y­ÍʼÔo¹å�V�üü·—·/t=bÄh'—]7?©£Ó8Á'WL°jg¨…R;³#˜–�E¿ñËO†dÉl£Èϸ¿ÁÉqÍíïÂwî»ãÎÓ<"$ï#ìÇs�Pj'øFÚy€_“¦†üŒ‡«¬0ÁµÚ‚ ô6¿ŸŠiì¨òÅ+ë-¡j(:2Ës$]×áz±ä7|m¼Y
�õÛ¾ˆb%u¨†÷qGO‚èµ3†§ú¨"G‹Þ�<pâÑؼ¨Å—ÆÑ©~
k³4HN¿Ë}ëÚEÔýÑ'^-mr«É‚ËF³ýˆ¾³<lsOmÂlÀœÍ»Ý6Í´2Æu­v½­T~?å’#‹@3«©kÝ�Ÿ»xéÂ�-ó†µÕA¢ÃßìeÉû¼×ªú�ýh¶!ª;室r†4M+Éìk†(Æšxüm¾ðaV‘¸s˜a8ér&õ(¬ü|qß–uk7»Ÿ{–T&²Ï}s×ë‚ÿ§¬¨kî›6ï»ù±ˆ_umÏÆ�n—ß�Õå~±iQ7¸®ßrØ÷suìÖ£Ípæ°ug}cJH¡¤Šõ9¾cúÍ{/‡gÕþDÉpiIë½KJ›‰„!ÖnÉ£ïé_?Ü[Ñ[¡Ûx$ñ…þ~
:ï¾yÍZ×ýW_gódþ»û^çoEd‰FüD¿¼îDæ�µíª%`ﯢnt]ïêá�P*¨%•z)(Kô÷tÛ¸fíV�[Qù* ”,C
:t0ÂM�}Jj—²_®´ LÚYè¡?VªéA#µÈ	^Þ7ü!°Âg–!ÎZø´*V…÷¦ã­—½PúMºò™C
Ç�ÿ&£èÈÂà5Ýhn¹ñuÍéÜ¢Œ””ôBÑ�òÜo)_sÊ$e hšT’ùÇé Ä C)57KòòE�ëÊ÷û‡`ºí¦O·ëÀÀô¬w¾.pßÿÑÇ;Y�èoÓ—¥…`æö3&ô`Õ–� ÆÓî�<ªkÙ±¯µýäÑ�õPÌ|æýÿ‹ûszWC¡³zÛ-»•^ørcO†–Å(—Õ³úÓÛ-|”/=уŸ¸Í`–�Ô‡K‘0Ä;®�«3î›Í�qŒµ$¨2õÒï&˜n×IË�`ô®›Â++_,o‹Öû¿ð)Í{n´f6Û·¨®�Xb-:õ0nÚ„ž(ÚbÚíRJ–(ó’ŸxÒŽ‰é÷ž²|žm\§ŸÛ˜P
-hŠH–O^6Íc:\Ë“�öXæ7ß7�:‘†¥	ww:�ìÓÁÜØÐØ¼CßßH­/B9spá,çu׿HÉvôùγ\ކ•4̃ªc!sgÎÝT$eWN›³7¨zÞ&7-èÈâqÖ–­L

MX–ýÇ->(r‘:yŠ
Cèí‡OŸé¼êr‚ÈO²àýשCºµmalÊêdeïrèÙ÷ÝÈ}}lÞ¬yÇ"òÂLêÁ2µpy¬ šdÞ¹Ñ4©7šRg¼ÕÒçÊ„!ÿÛ‘ÁD3Úˆ“µçœ’ùQ¾wžF$JBÉË;³ÚaP—ÖfÆ&æí{Û9o¿[\}šXZ¹Çe‡�7¼+ËØÈ¤uw»ùGC%1å¾9¹pÖ¼£•yÕ¦mºÛ-8&uå¡à§§I…!ïãöžÚbQ@ÝÇNÑ-'&J|˜zÀòSOŽÐFõoФ¢7þBÉŠ0D{ø‰ï|î»-]q¬íŠ—Q9ÊüýJ)|ܪ…0&\)>¬£a¬Å�ásûò]Ô`Ú½aµIÚv§Ó¥ž‰e÷¦1iÒBµzİí‚;qŸ?Ž
½0×’@õÆžÏø+5äº×ùGqå^ì®ÞÑcÛ7jk7œ6à@"ŸÌ»2±9Þjq`_Ž]•Ÿ“®æ
+hŠH–O^6Íc:\Ë“�öXæ7ß7�:‘†¥	ww:�ìÓÁÜØÐØ¼CßßH­/B9spá,çu׿HÉvôùγ\ކ•4̃ªc!sgÎÝT$eWN›³7¨zÞ&7-èÈâqÖ–­L
MX–ýÇ->(r‘:yŠ
Cèí‡OŸé¼êr‚ÈO²àýשCºµmalÊêdeïrèÙ÷ÝÈ}}lÞ¬yÇ"òÂLêÁ2µpy¬ šdÞ¹Ñ4©7šRg¼ÕÒçÊ„!ÿÛ‘ÁD3Úˆ“µçœ’ùQ¾wžF$JBÉË;³ÚaP—ÖfÆ&æí{Û9o¿[\}šXZ¹Çe‡�7¼+ËØÈ¤uw»ùGC%1å¾9¹pÖ¼£•yÕ¦mºÛ-8&uå¡à§§I…!ïãöžÚbQ@ÝÇNÑ-'&J|˜zÀòSOŽÐFõoФ¢7þBÉŠ0D{ø‰ï|î»-]q¬íŠ—Q9ÊüýJ)|ܪ…0&\)>¬£a¬Å�ásûò]Ô`Ú½aµIÚv§Ó¥ž‰e÷¦1iÒBµzİí‚;qŸ?Ž
½0×’@õÆžÏø+5äº×ùGqå^ì®ÞÑcÛ7jk7œ6à@"ŸÌ»2±9Þjq`_Ž]•Ÿ“®æ
 ýL=1\Ñ©@"¹ò¼¬ñˆ“òâª×ù§_8ÂþjC'œ°?
�&ãË—/ÿùÏšÚ4‡’esæõ»sÌ0Æ(OéÞPPtwšÞbÞ½óZRÂ�÷ùäHCeöpZ»ûÐ��KGµÓFˆö.Oª’žT¼Ûi¥ƒ2G�N®ê–¸qûmhsÛý1rõ‘ˆx�¥7£Ù�É’²,¼hO;%šk$(~¶¼
mÞyÂJ·Ã'NÞµ||g=”°Xô¸@PöbÏÔQݘ(Bkkëà4yñù8j®OÀê”ÆæâvâÏ37:u×G	–ã¥ê�Ê{S›#ô‘Ë–tÑoe5Ò~®çŠÂÉ	\Ì"Z.ò§æw–Æ]˜Ñ‘®ÕÓ5BùÚ˜Â+jêx5]y?Nfޟמ†j[Œ\êvÜóÌá­³¬ŒqT€ÛqýU#†3çZµî;eÝîû·»ŒhMCP£IW«BÅ~èl€Ò†-]iݦßÔunöïXb׆²p¨¶P
 ~zšV&¸÷#PCgß:Sð¹QÕZ�úÅ	]Ýûm}/’Nx÷?Þó„‚éà@³XõJ¨ö²=GÒDúR,­ªæRpž/eaD·X)aÈ}çÚG0C�B‡@0™iT³„¹K tÿUk�!‚3{-¸‘Ä�¹Á{§X·oadljÜœ@pË
¯¹þ—ýh´�nOfÖ†qäÚÕö³•ÈO‰0¬”çe�Güÿ�ý,L…5éÑ{W,ÌšÈJ
 ÿVIJl†waÐ’ÖÝæ`ÍGF2çÒ}¼ÍÒç×'ÑkÖrBVZ`sâeÉÒ7nün+ÑõgµRcÜ3P3ïEåHá%¡�1Gý¤`b‹ˆ«†•¾BýCPh%5åù®j3nwõƒ³³—ð½C2•”¶®ŽÙŸM©îGÉ¢À¥qÔl–·8™€HP¡Í�m7Ëó”¦Ü‹0»q×<s:ab³æÁWU¹
ÈüGóÛBc
^à~ùYtf…Üt5AKÛ`¨Ñ„‹5™ñÊ"6v'»SßE^RÂÁ˜ÃÆV¿Q±#Ö[âˆÎÄ+…)}i‹°µ�p„1ñj‘z¡à§§i×VøÍ7Cñ«Bª¿¨‘9Þ›f®>’»[(Íú‹Ýìg.-QÂjïg©É–üdï°6\(Ñrþ%%ñ®[¢¨.Hø4¦z‡$)aÈ‹sëK -œoË“™]T3\Iæ_°×¦�ôÌ–~.‹G[;_Š|õ!.%_üD冉f˜.öÏã‹FÅÂP@¦{ŽbÐï9=Û”è¶Uè‡\;Y?ý晈ü”\[©—ìs”è¾>´ˆÏ}½Áa4) àßJµ,«äDnv&=·¬êLø©§ítpË�‘œra(àU¤'§dK�‚QÃd˜°3“H?NœÇ=ÌÌéZjÊÙ±†˜áhÏ$…}”ˆ�«†å·�t¼ëúpùyGk	CNðòÖ˜ðýà™ô÷i^¬[5˜ñ@T…XPéŒ>—-W²IE"5Èc’Ž4C
zNÙvãC�XÃU)Ï?S‘p}Å`s:"úöŒÐ:XÛÏÛrÒ7:¿&jœ %,5›ï'=üÈû´G¨Éµ~;+ñ5œñ@j1hÅm'„°ÚóIPc!ž‹TMù-‘…ðíJ­PðÓÓÄYI9ïwõÓAéí'¹ß	ŽŒ¸°ÆÖÅ[ÏXðÿ"7u&°6Î÷2¸œ´»Îm0¢Û–·\µ„!Bt[ó"Ÿ�yNkµ$ˆ-È??††0¯�Ñ2@¼óªà"²<êô’™.ÇÂjž¢Ôc‘è¸.BæËf­5†Õ°E%»»¾)Îð_Õƒ.z$óo:Ð[²LèVîÔê¹v¢9´Ñ}Mp>'Ë{n[k½ô9»æê”zYvÃAø ïïžPòÝ{‘%5¹é
,2š†ðoE"˨¯¦ý¼ãÚ0‘^â'H'DyØj	C
@@ -9886,10 +9886,10 @@ h3
 Æn-üË+·À^+‘@÷Ó%Wžæäg&G_âЦÇÌÉÊ­wìIÁ_A�CÏå)uHÏioÉ»äÛ3ã>j>ñ|VÞIb¨xqàÆtÐrÏ „ŒJË"GDÍ‚1Ÿç_ñžžé9\[ÜWqéÍþŒñôKeNÇ«žjRyH΋øÛ¡A�~ÇfµgôÇ�Ëg¯ÇÖÎ5Uõp‰¡"=tý€ºífzÁfÏv:ê2"�H¿�óšK‰œ»Â!HÀbˆbHA1¬·¯ñ=ñþΩµŽPP>’@ll7Í㸔§È¼µsl{}Qiˆ@¨ÓæËõ�ðîÓjxDT™WÊõ�>k©U11e¢¦±­³Û…Çðk'O¼\û›I*¦¯Ù²÷‚3	e *»ƒ<84ÁF·,VÀ´pXuýÜ\sc·®bW¹’­IÉ*ôÛžLÅöÕÁ!Ú‚&ª·Ã–�í3¥…P éçþ~WWžâ5§“~Ù�4šu_èõ4/f­�6ñI}“ÏÝsÿ†AÞ'�Dó‹ónÌm¥­|(�âå¡¡RóÙ×óŠóùˆ¡ò]÷êêQ�>bÈ›¬Ôª÷ø'b2•Ÿ7PäòÏŽÕƒ/¥ht\^\êxb›%ô.õª&åÅšfg$Ñincûiû^v–úÂ’Ãb¯ÇÒÎ5Uõ°ŠaþCÏ)íu›v_r%U�4ʲ¶�±’
ñH¨áo
AêCC
 Šaýîï$ÏytÅÛëÂE¿?§«½½Q‘“íÉçâ�ÈÄLµ×ùª
àQ5%7íA¤ÿeïóç/\¼û<[ýw€e‰ø]¼àås=âqz5Ï`’e<¿êãåëwûynÝ/×)R�7Žòä´\2êÛG¡—/xùúÓQY	Á½¯ƦñÝ—Aä=Ðhݸ0b‰�Ävå�¤_õl\”;Msˆáoã
˜21,¥èí£ ÓîKœ;IEîe•D®Àgr3ÆzþÕ”—�Wé9ÅeŽ×î»H•OÎzªIòG›íµ4?YtãUé„dñëí˜r1d©ÇÒÎ5Uõ¨ÃüØ]CLtÚŽÛOýne¼õ®ËرžÍ"HC‘��_NttôÇ,4kÖŒž<wëÖ-žä
�­ËÁÁ�V†§âp2ä-Γ¼OÒ®ôôŠïÅÄÄÀy“|333ÚÞ¢EÚ®"†‰‰‰´rFFÅ&ûPµ´´àü;wîL»8ÄðáÇ4ÅÑÑ‘�˜@V®\IÓSRRhYžbhkkçܵkWººººjGTÃÁƒ³½(]ºt�£�ÒjóæÍ£í§N�‚A1\¼x1­öí·ßÒ???˜rõêUµ¿¦ÀÀ@š®rÈ£G�¦]FFF´T§N�`˜ŽŽíú×oüûA¢xse¶5£ÑvaÞwƒ È¿„Æ#†%%ÒîöÍ¢~z�K÷
bXà=É�éL·“'méÅ”‹¡</'�þ±N¹ÿ¶¶xÀž49ùãM=ĺÊgѸôgϲKTªŠò¨§š”nœØíLñúø(iÅCõõXÚÿ昪zÔˆ¡"õ·É­ul¦Ÿ®b‹þËûuýrklÅ_]3<Gè2ÝÖ°WG�j¸uëVjjj½‘••ÅGXúöí[Ç�,,,hµƒÖ¥TXXŸ9CTÄ�
(†Ä¤`|\‡Bàã*xâáá¡¶O1´··‡YPØPC++«jSˆ2öÇU�O@˜Å�èmŸ;w.mONN†)ÄßÕ®Ü|U"‘À®>}ú¨�s÷îÝa˜¾¾>íB1lTÈž�:¶Çí?Ÿ‹)ç96‡Cù°hDbX,OÜÖGG"ѵßTz%ˆ¡ìî*[F»ÏæÊ›.
 žœžþ‰T“ùŒˆ¡âÙ^'ƒæCwß/½.¦Èvé$n>õbn©<Jy”¼eË“v;I%¿¹\ú‰ì;[œŒtûmW~ Wv<žõTİ0x¡%óÑ(Oå-›ŠÌÛ¿ŒshßJC2äÐ[ÖzÿÇ1ëT+S�EÎÉo…n Åt^t!’üÿ’¬PæÅéfLËÑ{‚o¢¾,T¤yŽl¦ÑbÈ–ð×Ê™ç%yÏï¢ÍØ,	÷¿Xä†÷ðCCŠ!Š!Ò°äž!„Z¦ö³�ÆqÞ”ƒ òaјİX‘z`ˆ¾Î€_Ê İXž|r’•–PÒ¬•U+«/6ïýÚZÒmí}âN¹wv9[ë1z&mÛ··j¡+1þlþù’/�Ýr³ÕjJM,¦ž#jùìÂâ^-4µ›[ÜÞÌ@SúÉÔ£ñ%·ö«^1äU/S%IöèÀ(sMFjncmjl3zï�?ÖØi‰MºþgW[=ÖqاZ	åLFõÄ¢äÛîE¡‹ÛjT9ç`zo}"/–§^ûÑÉB[¨¡-mª¯)´³3JíŽáÂCµ ¢ÒÃò‚œœžß”Dùphh1¬	…¯FEÆ¿ªbIŠÜÔû‘AÁQ�߀/Î+²ŸF…„Å$¼.ÿ®_azBTÈï�÷Ó¸¿À·^%òScÂBn'•î1*ÏLˆ�KÍã¨ÇÚ^ƒ©Öyöó{á�¿ýñ -o�AêH=‰áÝ»w]ÊquuÝÁ‚““=ynÙ²¥àï¿ÿ¦Õ>LÛ/^ìÂÂÖ­[ie777µ1?üðœ'‰¤]7oÞ¤í©©©lsfãØ±c|V†CÏž=K«­^½šNl×®JÛ/[¶ŒvmܸQídV¬X�…¬†Ú•9zô(-«"†ãÆ�£a=zô í-Z´€ëéîîN+wêÔ‰†¤ípù§Ú9Ϙ1ã=ˆavv6433Sí¯éÉ“'4†#<dZ™¼€iØæÍ›aÃTüéÅAy|Hbˆ HボÐÞºuë�—­û®¤B>|8[îJ:{ölµ1µÛ•ôÂ!†"†4¬W¯^°îJêãã£6=))	5ù8 ]óæÍ£í»’ò„mWR2JMWÆ××—¦×ŸÖ•]I!+W®¤aQQQla(†‚ È{ÅA�FŠ!(†l "‚ H]@1D¤‚bÈŠ!(†‚ RPi„@1$"s�…ñãÇÓ0©T:PTTñpÒ5kÖÐöÁƒÓŸûöíO¿===iå¥K—QqL8šÅ0##†ÉåUÄÄÄÐöøøøš®Lxx8Ûdà÷ÝxŠ!1kšNÞêi‡îÞ½›N²ŠeV»€*i¢ØÄ0??Ÿí!’EÓ†�]:t ]'N¤íîîîpÎ^^^´‹,m'ó¤íÁÁÁ|~M¯_¿¦)ÐXU˜0a
Û±cì8p ]¥°°°¼DA¤V "R"##É;Æ;/Å�'µØ•411‘­Û®¤ÙÙÙl)Ð’Tv%…ú3bÄÚ>þüZ,%''ŽBÞÏiO1„|ýõ×4†CÙàØ•”'lbHFg[ó÷OëÖ­ùÜ•´v�WZMAAêB£CE^ڃȠÀ�Û‰o‹Tûdo“n‡‡ß{žSeÿÌÚu©�›ö0*40 0ìÎcõ›�V)ýØk£Û.ÿ45…e�Îo ]u{Ø-G}i„ÔÓ®¤(†|@1|ÿ "‚ ÿV\óï™ÚÙP"5o÷±u-“>®>ÏËî¹R¤­d.IõÄzí'ˆ+W·ÚuU¦àñé…æÚ"F·™IKcM¡H¯Í`·ëÕYÁÕ™-Ä�WÞ•©éº<£¹ØvÕ=5]üá¨� �C
-Š!LA1¬ã@(†‚ È{¦�ÅPvCw-½Þë¢KŸbÿòâ,k¦©óñWJ9Ëð�f&¶{è~Ž¢Xž±Á±©¤ËÊÛ%—k×Uyä»kì´tl¿>÷0«ÔCóž^ssh¦Ñlä±TN5D1DH=‰!©),G pœ?Ó0XA΂BQñ?œˆ¡�…À,šÂ!†k×®¥ñ!!!°1üçŸàˆäŸ´‹ÌYídˆÂQ ®Y³†¶÷îݦkii©]@"†4&!!V&Ÿ´K&“©]X••	

eû°&Ã9sæÐ2:Û¯‰Ï£j[;y¥U[Ù‚ϯÉÛÛ›­¢ò:G1DAÞ3
,†™G†j2}Ü“ËOt
+Š!LA1¬ã@(†‚ È{¦�ÅPvCw-½Þë¢KŸbÿòâ,k¦©óñWJ9Ëð�f&¶{è~Ž¢Xž±Á±©¤ËÊÛ%—k×Uyä»kì´tl¿>÷0«ÔCóž^ssh¦Ñlä±TN5D1DH=‰!©),G pœ?Ó0XA΂BQñ?œˆ¡�…À,šÂ!†k×®¥ñ!!!°1üçŸàˆäŸ´‹ÌYídˆÂQ ®Y³†¶÷îݦkii©]@"†4&!!V&Ÿ´K&“©]X••	
eû°&Ã9sæÐ2:Û¯‰Ï£j[;y¥U[Ù‚ϯÉÛÛ›­¢ò:G1DAÞ3
,†™G†j2}Ü“ËOt
 ¾nŘPX\üöøHI¿íOË»ŠÂ]mÄ­çÖº«Š¿8ŠÅŽ»+]”%xoÛr$$¥,9ÿÉU÷E†p8|Êwû‚SKí²²¸å'ú¬Ÿ5ÒiÀçcæý|í±O©ÄŸ[ç¶?,³¬v^ôÑ•Ë7œT¦zò”kÛW¬XµbùÚ³€°Ê�_ÿã–KÉ•ëË_†\>}Ôçýû6Éuwp*ú"ÒÈØµkWTTT½‘••Åv޽aö,MMMµ),à3(Ü•t̘1´�C!ÄÅØ*³‰!y¿…’““i×ܹsiûèÑ£ùÌÁ6O¸+©‡‡moÓ¦
¬`iiÉç¨kÛ®¤2:Û¡}óÍ7jSÞí®¤$&&ÒòÛä“¶“ŒÊ®¤(†‚ È{¦�Űàú,S¦ÝÒÈrAÊ:3ÖPüéúxYqáïó-Ä ‡øÕù	RqÏM	òÚu©ŒœuzŒTÃdÔ¡„‚bµÈíû¢…Äl ËNÏ“G~žÓÓHb9ÍKùíA(n—gY2Ò®S79yÌ}Á@ûn¥âg;ûkOõÍ+©¤”]‰X»ûƇ%sP¼:0XÇÐù‡iÄ€çÜÈ+Oi°Œé¬«¹°~^Èwµ´Û�^µûÈÑ}k&~¢/ùxihžÚù"È¿CC¶CC1DA�wECÇPöÐc˜©´Ó¤ŸNø^¾pxÕp+i‡y¾Ê;Ió~¥%î»ýYÅ=zñ¯v]ª#çGorøH$ÔiÕÓy®ÛÎSþ±/¡"fyMjδs)·0Å›³ÿ1&º#b¨xy`ˆc·îAÙU¼¯¯Z•b(“=Xg'±Y¡ôSÙ�;›Ž×ßpðþ’;dsÎOh¦7ôð‹ÈeãI^Y¥¹…¡‹ÛŠÛ.-„â)‹?2g˜óú�²‰ÎoÍ´*¹œŠ ÿK ¢²Š!‚ ‚¼+Z‹‹ž]ud¦c`jmÓÆX× ýØ-Á/•WÖÞ¢)¸ìð)»½¢#c2ójAíºÔŒ]ø"äàŠ)ƒº˜ë3‚&
}Ë~Ó·ú¿Pjq0Æ|ž…ƒez×÷ß•¢¨·ÂsLàœ™Ç†i—ˆaqQäÒv’ž›äÅò§Ûú~y pe׿½rKíN»ÿÎg
 ùßzH¤£N¼Qε0xQÍOÜîÈÔ|ÇPžó"þvDhP ß±YíýqçxmžŠ ÿPQÙ
ÅAAÞ
,†¹�.íµÌœÆ—œ(2nmtlª×}ýݢ⼓Êkß>$
-æb-n½ ¨°v]\Ó�e=ùÃgï2ç�õ…’O–…ç矫Wu»�ŽË£eâ–fŒ.c®àâT£R1,.ð›k¦ÿå‘7Šô£Ã{nJÈóŸgÑvap¡ìÞê.ZŸnPÞUªx¾×IOwоŠâ‚Àù–Ú=7=RN»Ò­¤±‡¦ÙItšÛØ~Úþ—�¥¾PÅi\„‡‡¿xñâ�—
v,gÈ�!¿³°råJGàÿÝõë×Ó”„„¶A'L˜@Ó›7oNÓ¡‹Éd2¶ÉLš4‰¦èêê²M¬iÓ¦4¬eË–´½G�pÎp#Ð9sæÐvbOló'ÎK«?~œ¶³f›ó¼yóhеµ5E,Ã9{yyÑ”€€¶j�öíÛ󱤾}ûÒQöîÝ«¶�m1·lÙBÃÖ®]+Ã0OOO¶fÍÚþÕW_Á�¬ö×4tèP¶ÃÌϯxGf³T


˜B~4å×_e›y¥Õüÿ
‚ ‚Ôž†Âk³L×ðНæžkPâV…Á-Åewc–u�'÷Ú’$¯]�é(Ò
Õ×°\TXà3¹c=ÿjÊKÈ«ôx+iþù	R¦Ã²(:Xþ¹qúebXœs~¢Q‹iÓ}¦˜´SÎ'ó¤s3»µ±Owõ×éøCtIŠ"ýÔ˜fZ}·%åúm¡?pÏó’ëœõå�6Ûki~²èÆ«ÒÉËâ×Û1(†H#ã=<®ÂÀÀ€-ÌÍÍ��}\ºt‰Ï jÓáCˆ¥ò™OjqŰgÏž4ŒXŸ9�9’Ïdø<®B{{ûš²···ÚR�«Ø·o
óõõe§aëÖ­£íDÆá@zzzjÓÉúó9d¶+†‰„-eýúõ4¬{÷î|FAA�z¢�ÅðÒ4cÆêÛ�
+æb-n½ ¨°v]\Ó�e=ùÃgï2ç�õ…’O–…ç矫Wu»�ŽË£eâ–fŒ.c®àâT£R1,.ð›k¦ÿå‘7Šô£Ã{nJÈóŸgÑvap¡ìÞê.ZŸnPÞUªx¾×IOwоŠâ‚Àù–Ú=7=RN»Ò­¤±‡¦ÙItšÛØ~Úþ—�¥¾PÅi\„‡‡¿xñâ�—
v,gÈ�!¿³°råJGàÿÝõë×Ó”„„¶A'L˜@Ó›7oNÓ¡‹Éd2¶ÉLš4‰¦èêê²M¬iÓ¦4¬eË–´½G�pÎp#Ð9sæÐvbOló'ÎK«?~œ¶³f›ó¼yóhеµ5E,Ã9{yyÑ”€€¶j�öíÛ󱤾}ûÒQöîÝ«¶�m1·lÙBÃÖ®]+Ã0OOO¶fÍÚþÕW_Á�¬ö×4tèP¶ÃÌϯxGf³T
˜B~4å×_e›y¥Õüÿ
‚ ‚Ôž†Âk³L×ðНæžkPâV…Á-Åewc–u�'÷Ú’$¯]�é(Ò
Õ×°\TXà3¹c=ÿjÊKÈ«ôx+iþù	R¦Ã²(:Xþ¹qúebXœs~¢Q‹iÓ}¦˜´SÎ'ó¤s3»µ±Owõ×éøCtIŠ"ýÔ˜fZ}·%åúm¡?pÏó’ëœõå�6Ûki~²èÆ«ÒÉËâ×Û1(†H#ã=<®ÂÀÀ€-ÌÍÍ��}\ºt‰Ï jÓáCˆ¥ò™OjqŰgÏž4ŒXŸ9�9’Ïdø<®B{{ûš²···ÚR�«Ø·o
óõõe§aëÖ­£íDÆá@zzzjÓÉúó9d¶+†‰„-eýúõ4¬{÷î|FAA�z¢�ÅðÒ4cÆêÛ�
 �ËþÕY—ùÄ-FVœyf¬¡f¯-‰åF§¼ª&.•ÈÚuAäI§~9xÉ¥ŒÊÍyÞ“?b,Êoê!ÖU^ñ+ïR¤?{–]ùŠ^Ñ­e鸳9e!²{«l™r1T¼9:LÚÁuç|ë–Ó.•S<ÛÞÏ`àæí£-+._æ^™iªÕk­ÇLó¦#=_—ŽÄóÜ8½Òµ(�Áë㣤xÅil RP!(†CA䃠aÅPñúÔ#ÆlìÑ„RÙɉùÙÑ�±Z¬üF`Žÿ7Vb3çýqÙŠbÙ« 7{Ý^›K7z©]$?byg-Æ|èúË3J;^F›e«+¶Yœ§4ÇÝNRIÇo.—>"ûÎ'#Ý~Û‰p‚[=X2ÒÛâ”[Ô$zŽ·Ö—‹!1Á�ºml,¥Ãަ+ÿ]õCGöÖ-M§_ªØW´0|‰�Xj(mAw¡õ•—?™�Fy¦*ï;ͼýË8‡ö­4$C½}ç¿©=(†CŠ!ÅAù hèÍgi×~tj¥­ihѾS;3Mg÷?²Ê:³ÿØ:ÌR[CKÚTOÌv�u*‘^ø«]¤(ÙwÅ—í¥Œ@¤©ß´™T‡jè[9¹ž}\¶M�ìمŽZhj7·þ¸=™˜ô“©Gã•]ð;€Š4ß…]¤"±¡yó�Lûº¹Ï±Ö츼ôFÑbåÖ¤Œ€¡·±\™i"JǞɳ�Å­µcDæs®SY„»’>:0Ê\“‘šÛX›ÛŒÞ{ç�5vZb“®ÿÙƒß=A»wŽ~çeyŠ¡ŸŸß2�ÓïŸËÙ¼y3ýùàÁƒ°Z-Äðĉ´šÊ!®®®j'æääÄ–Bzie¢´ŠaaaáÏsssÆ!†Û·o§)ĬÕNî½Óä�Š¡‰‰	HCCƒvMž<ùgu|ÿý÷°Âœ9sh:9L6eÊ#‰à(вhûŠ+à@b±˜V1b
ƒÆš••S22*n<aC2µÇE4h
SÃ;vаÇ�×týA¤¦4´– Ï~v/<ð÷ Èû©¹
 •>ÙÛÄè� ðØUzjÙU™¢Œ§÷"‚ÃcÓ«î\Z˜žò{`Äý4Ö§ʳžÞæ5”ZòC]ÚI:•»¤º€Ôذ �ÛI¥×5å™	‘Ááq©ø,CäßO1äÉðáÃÕž±[[[ðZˆ!T6þúë/µé{÷îå“�b˜““ÃÆ!†ÚÚÚ4îJ
 IJJ‚ÕÞ¡’v¦££SÓ s£é<w%eCeWRˆ———Úâ˜0¬»’²¡"†úúú´«>.Ê#‚ ˆ
@@ -9966,7 +9966,7 @@ dٲeŨ
 C4œá—_~rœ€-”aÀûÊÕ«WKã=†¤�0Ó„a\\é–Ÿo~Gµ‘õë×Ó2Ó2dˆ�šCCC­ÍŒÔGñ{d¹*)I`` ¾Ì…á˜1cðR&$$IÂ!‘PÂn䪤$¹¹¹BFiÓ¦��ÆnݺÕÚ&0‡#-Lš
 CX•(c@PaX@b@€µ€0 °€0Ä€0ka@9„a1()aèììÜÌÚËß-ahÂxa€-¬^½}�”xÚœœœ?Aß?ä	3)W­ZU§�jÕª‘nµk׮Æ«««�û¥K—âvíÚ…Ã===Él¨6\Ì«W¯pHdd¤�Q�Úb-Á±.
 
ôíý'Æooá°ÿþ–Éûõë'0ÜR*•J<¯¾}û’µcñRº¹¹±v�\ÆŒ©S§âÑ�?NFegg³ŽXaˆæ…Óš­v‹Tl
-

ÅÅDEE‘nä‹ÏeCláݾ®"$$ÄÚ3v� …G9|ø0ÍíÚµk¬5_ºtÉÆRRRJª�è›\ÿN…!I»víÈ´Åx])‹Á‚p*ô�4ý÷¿ÿe±ÂP HâQбDsƒ×UeCl„!kÍ A
+
ÅÅDEE‘nä‹ÏeCláݾ®"$$ÄÚ3v� …G9|ø0ÍíÚµk¬5_ºtÉÆRRRJª�è›\ÿN…!I»víÈ´Åx])‹Á‚p*ô�4ý÷¿ÿe±ÂP HâQбDsƒ×UeCl„!kÍ A
 „!P~a€-€0d­„!C!€0Ê °t6‹¾4Ju3a0©�-ZÐÎ¥×­[·™�M›6áÿ/\¸�Y²d	6Í›7�Ò£GÚ(4a˜––Æ::¢iÓ¦B$È#&ÙÀ‰'ÈêË«0Dά]ºxñ"öÉÈÈ §F.ƒ3|øp2a¼]*•’ÙêÖ­‹M¤0|ñâé¦V«Y÷fbb"ö1[.B´�Y»v-2kÖ,òÄóB6­¥ €2„!å3a(Úª¤$IIIdHjj*6�7NÈ(4aÈÁ€Š1kY´h‘Ù¸åS
 ý2¢�E®Jƒ·ÛÛÛ“üüü°‰†Å %%…,B¼!Å[•”„!P€0 œ°€0$3€0^@PÎaX
 ÃyóæÍ·`ïÞ½–eïÙ³ÇÒ…[æahCང!¶°råÊÒx�!úŠ.äÀ�@žü#ÐÙ8Ά*ÄÙîܹƒ·?|ø�!×{	rÆ~õêUòàÁ<JTTT4�V«Ånýû÷’¹{÷îxjoå#éС‰ŒŒÄ#æääè)ÂÐÆÝôÿ÷–9-…¡——.ì믿¦eCÍÄ»uëÞþâÅÚN_¶l	Æ#*
@@ -10048,7 +10048,7 @@ Y
 ‘C|Ntt4ÝÛéÚµkhتU«ÐŒrÏ¥âàb˜’’Bw6Ž;†~^ºt)Ê<þ|Ô~êÔ)ºÅŒ=ÍøOCà߈!Êð�ÛÇ�ºlxUR:
 
 
-˜,LŽÏŸ?£#GŽdB'†8………LRɉ!޳³s‡


<s�=P^VE®*iQQêrqqAíxUR91¤ƒ<ºÃìÙ³'¶bÅ
+˜,LŽÏŸ?£#GŽdB'†8………LRɉ!޳³s‡
<s�=P^VE®*iQQêrqqAíxUR91¤ƒ<ºÃìÙ³'¶bÅ
 ÔNþ¤Ë†‹á¾}û˜, ((…àUIù|>¾˜^½zQ†ƒ�ˆ!Êpýúuò³¢ÞÓ‚‚¢vCCàb@Äĵƒ~1K
 
 K„Oë‰R#ìÝšXÐð«Cš ÅÐ××7§Š«W¯êcàbHÚ¶nÝ:Îf³ñ�ôôtÊÅ”••¡pòƒQŸ555”™Ãáà]¸Nž<™.ù!üÕ³ÄP»té’ƒñ¿ÿýePR	‚@633Ã׆‹áÂ…ÑìxÒQ×°aÃP;.†¤°ãg†Åb¡a¤�¢öñãÇ㇉/C4æÊ•+t‡Œ†296l@!G�EíªªªøÂ
Dùžéܹ3>ÌÜÜ
ÃÕ7eéQÛf·³hÆgWnÏáëšÿ0ÌkÛÍÌê½	KN¸¨³ˆž›^7�ýÿ
@@ -10293,7 +10293,7 @@ Z
 À”lžâz¾³É|P¡B¨
 ƒæ@0Ùoß{ï=¨§mÛ¶
 äwíÚh“%sTå°¤ˆXü …¤€¸B…
-Am«P©#L'hé¶&Qò�*Ž5ªL™208M­—’)S&ªÐ¿ùáܹsÔâ£ß|óM)ºpáÂX�N	

…—iç
@©‡åèèãÇ�Ó&ð&g© ¼		ÂÝ´H¹t4uä¦â€Æ™:u*g¹¨”Ô.À”BÛ·o/ÓE9«V’Ÿ>¾ùæŠ(_¾<Åq³©=hh¢3gÎ`ùìÙ³Šß�ŒŒŒŒŒ^5Å´ÀÑÓycÔ‡Þ䘿ê—F+ª–p¥HA–P•HÁåqC¥ëaf:‘é×È�¤ˆcê_—5«ìëÎèç-݇«6IÅÉHq66·É›ƒ–F/)¹Kÿ‚‚Ôç‹7|Y!VGËh*}úôð£Ûƒ#$ 
+Am«P©#L'hé¶&Qò�*Ž5ªL™208M­—’)S&ªÐ¿ùáܹsÔâ£ß|óM)ºpáÂX�N	
…—iç
@©‡åèèãÇ�Ó&ð&g© ¼		ÂÝ´H¹t4uä¦â€Æ™:u*g¹¨”Ô.À”BÛ·o/ÓE9«V’Ÿ>¾ùæŠ(_¾<Åq³©=hh¢3gÎ`ùìÙ³Šß�ŒŒŒŒŒ^5Å´ÀÑÓycÔ‡Þ䘿ê—F+ª–p¥HA–P•HÁåqC¥ëaf:‘é×È�¤ˆcê_—5«ìëÎèç-݇«6IÅÉHq66·É›ƒ–F/)¹Kÿ‚‚Ôç‹7|Y!VGËh*}úôð£Ûƒ#$ 
 “EàH6@ÑàܤңæÍ›'q¼I’$‘8Ø7nȰ�ËÚR�·Šž>}Êe2y3šÒWˆ…[e÷
hkàÀ�bsÆ
jµ§@³…Ê•0‘Œ<*�Wááán‹ƒà£è8«¹–Û¶mƒ:]ÖÞªzùòe	r9¸zõª­Å {,x3^´hQñgïÞ½Î=h`ÏÝ»w»-NoÕª•$ª¢mý"
‰ƒónkj$Ýa3èïï­KúE–{UŠ+V÷îÝeÈ{Ë–-”–J°mš4i¤µçÌ™c@ÒÈÈÈÈ褘�–nëU‘£°’>ìè-•wÔ‘JÛ¨¥Àš²àÒPKÞNÕ)=FT©´�ZÊû†³""üWF\Q)XQ§·t®z“o´ô1kU÷ÓÈèwÈöAx=yòäÎ�;wïÞ•xüuûöíÔ¯__Ê‚õd_K-yó�?>œ"áTœ8qüüü ‚��‡¼ðˆ°Ä!;’ðéþôÓOÕX§*NFÇÜÖpêýû÷¯]»4]¹råúõë·-Ý»wïÒ¥K}ûöP0'L˜à¶Ö±Á ØÉ›7/äBöȈç£G�ÆŒ£�‹‰^{íµxñâ%J”ÈÏTM† AË!C†ÈÌÁS§N5oÞ:ÁV®\)rшš‚
 ’WQRâĉ{÷î�ç°UçÎ�e�ââÆ�KA0ûüùóñ™ÖnР�jIð�ª© 8C{’ñ©M?#""à5<¬Q£ÆÆ�©H¨¦vâ$X‡q�äï…&Nœ˜={vì`ÍÙe´v¤_Úµk—:uj®|Û7nÜX†AéMÅï ¥Ú)†Û‰{‰;jÚ´i™2e¢)ªW¯.Á¨0¾-3dÈ@õ%/=•%KšNУ܂®X±BÎ~ûí·‚º* V×ܹsS¤HᲦUNž<Y¢…�ŒŒŒŒŒþŠ1hÉ+¢‚£¯,E-�ÁŸB6´´Á—Jv}�‘cÊyCKÝ 
ÕôFqC÷\wÏ™îÛUoò�–¶
 ªDy¡òmÙÈè¯$²~ýzxgÀ€¼º|�²Y´Â›¿‚”}ûö¹­ùk���Â>ùòåëÒ¥K¿~ý€3©”,Y²&MšŒ;vذa°Uûöík×®�.]:a¥ôéÓËz¡�bƒÓÂ…KqÏž=;yòä¸qãÚXjÛ¶m‡p˜r»wïœ-[6@Ðft[‹Á*"N� A™2eÈ‚gΜq[ûz:T—*áŽ=š³8<räHrÉŽI’$8p ì8I‹íÞ½{êÔ©à¤
@@ -10364,7 +10364,7 @@ Z
 «€çÓüåpß¾}ê§ËÇQ�5¢££ŸšÛFFFFFF	¨ç-?ÿüs×ýŽH^Õ—µœUfË–MvYëºëÖäñ@z?Õ%êE
 ÈŠ‘bG¤Ö�TèêtÀÈÈȦ„ú¹wïÞÙ³g7oÞ¼téÒÅ‹/Y²dÓ¦M111ª_),,Ì6dT£Ö¬Y³²¥J•*U¬X‘7üƒó
 û$K–LJfΜyèС7n<xð ¼}û¶«”$I’   ˆŒŒôH OÁ‚Ë”)ÃÇ…ÚtYk·–.]ºZµjTÀkݺuCBB–/_¾~ýz*]»víŠ+ø“×5kÖ€�²¥ˆ®D‰½ýöÛXçuU©Rå�wÞqîgñâ‹/ŒèÞ½ûŽ;$K áÉ“'©…ª×­[·aÆU«V�=:00P’Sá¾Ê—/Ï+ÕõéÓg¥%I;á/[¶L^iލ¨(ÙD×éÓ§‡°c÷ˆÏÕz­/¿ür®\¹ÄsEB]ü™3gN5g¶~ýú2jWéîÝ»»víêÒ¥§&Ož,+ÿܹs‡;á»ï¾Û½{÷¥K—lÎr\\œ,#|þüyYX×õë×8@+H�u¸-˜=vìá÷èуûÄ–äĉgÍšµlÙ²Ò.ê“¶.^¼øo¼a»„(mM>yÃW‰-L#####£gSÏZÊãœÛš ¤(OHÐvPŸ†©Š55†6›%÷}Uch¥
-Ý‚ªWp’ò022zBúõ×_ù¿ó÷÷ÏŸ??ø&Û>öîÝ[Í"

¦ôgø”)S6ìÔ©S{öìÙ»w¯ì6È›–æÌ™£–‹Býüü°Ù¼ysYè¿ÿýïÔ©S¡9ÈÙ³gwn׈@Œ…nß¾r”!¦fƒ
@°Ã‡ãÀþýûyÓuêÔ	ÿ‰¥Ð}�‡EŠá
<¨¶QJ�:u×®]¡'¨gïƒ"Àljº8ß¿@ìÇ„”%K|puèÐ�H‹X"“ÅŠûè£�V¯^-–wj"]GŽ±Ë•+W @K\‚çøÉ{®íÖ­Û‰'l�Eö 9	yß¾}x¸mÛ6B&{8–%Kð™<Ë�z ä',,Œ´H¤Î‰Š@_ll¬¾ãä¹sç†¿W¯^Ý9DðŒˆˆ€m�en§A¨
+Ý‚ªWp’ò022zBúõ×_ù¿ó÷÷ÏŸ??ø&Û>öîÝ[Í"
¦ôgø”)S6ìÔ©S{öìÙ»w¯ì6È›–æÌ™£–‹Býüü°Ù¼ysYè¿ÿýïÔ©S¡9ÈÙ³gwn׈@Œ…nß¾r”!¦fƒ
@°Ã‡ãÀþýûyÓuêÔ	ÿ‰¥Ð}�‡EŠá
<¨¶QJ�:u×®]¡'¨gïƒ"Àljº8ß¿@ìÇ„”%K|puèÐ�H‹X"“ÅŠûè£�V¯^-–wj"]GŽ±Ë•+W @K\‚çøÉ{®íÖ­Û‰'l�Eö 9	yß¾}x¸mÛ6B&{8–%Kð™<Ë�z ä',,Œ´H¤Î‰Š@_ll¬¾ãä¹sç†¿W¯^Ý9DðŒˆˆ€m�en§A¨
 &.š@¶(å6�<±Ok¶jÕŠŒ¥I“ÆÙ.9rä1bep^¿Çù¤]Ô’ÂJÜéÓ§—¦'«T‡çDí$t#####£gMÏZêî“®Fõ^Ç=¹P7¢ÞÈURX0SïºßË)iƒS%�<¡$�Îõ9A¸@
 Œ;Ö†–àÀš5k¼1€ÛƒPÏW_}å¶zÇ@KÕÑ�]ºt�¹ n¼Ud§b	Ž¿e—µá¦sG¥k×®�x¶K`gø›6m²M«$Íš5;sæŒ7ã,$ô(XlëÖ­o?·{Ù²e²HÉ’%}|Z=z´fÍšb<00ÐI‚NAs•*U¢üK/½4hÐ ÛÙëׯ«ä4lØÐ9uÞ¼yªÿZe[¤å6˜?¾Z�Ç)p¨ôæØåË—[¶lŸö¥	d[O#####£gYÏZ‚~zªsP
vU²¡¥ó7|÷ƒ} úpV‘G´´uP*ytà	%ÁÈèŸ+õß÷˜Çàý?.yòäÍ›7?räˆ	!‚—_~Y-S°`Á
6èFô‚¿ýö[ïÞ½uåB,̘1¹xñbxx8tæÜÝ~q®NÑüùóGDDÈ’,‡–� x³mÛ¶gÏžµÅòÁè—ãF"MüI-zÕ—]Q”ÀUÎÕ«W�hɧåÌ™3oÞ¼yïÞ=IVÂY¹r¥Œ¶¥ì¿ðÂàs¿~ý|Èܼy3™ô¶ŽÐÛo¿ÛÊ2ªzªmó1¿ùæ›"EŠpI©R¥dŸPÑKêÏ“'OÖ¯__Œ—.]ú‡~P–uƒú{¬½óÎ;rIPPð(!#ŠAÍü1tœ:ujØ_6ÜÔµ~ýú¼yó 	!-¼©X±"¸ê¶†aƒç¸!é’…†ôÖ¯Zµª�Uõ<€–´¾Ç¼éMŸ&Mš�CoM`dddddôŒè¹AK÷ƒÃY=vzëµôhMï©Ôår ¥ûa½–FFFÞ$ÏÏ�oçÇTësfÍšµC‡³gÏÞµk—Ú´‘Ë–-¦‚ƒƒá2Š(P`ݺunëiÿàÁƒ#FŒ€%9m¹-´ìÓ§� eÆŒ?ýôÓY³fM˜0¡oß¾ü³wêÔ	à=z4WQï[o½%œJ@RãÇ�—n2—5“ƒ¡¡¡«V­Š��ä-9(0ؽ{w EfðAšMš4‘³@ÍÀ�'Mš4räÈ��>pä°åMÙ²ed€\¨P"…e†Ú´iÓÉ“'Ë–W®\�žlÌ’4iÒ’%K¶k×®G�={ö„=Û´iÓµkWüÇ8qaÔ¨QsæÌ9tèЭ[·¼eþÒ¥KT=mÚ4L9g’“B…
 5jÔ¨ÿþûöí“KUÌR)u©þP°xñâ\Âë×_í¶èxãÆ�xÞ¹sçM›6IrNœ8Q¯^=1Nu¤·Ix\\œÛb½¨¨¨±cÇÔòåË¥õ�V|�KÒ¥KW»vmÒ ”騱#­É7Ôĉ###ñÐéÅ‹15fÌB+P°©v™¤^Žƒ!–HÝðáÃK”(!à�{jHö±cÇ8E½\.£[IÎ{ƒJ,+VŒK¾úê«£G�ú^ÉÈÈÈÈÈèYÐó„–ƒò§GŠô6×2[¶lB‹¶™›j®¥Î‰ÑÒ9Çó¡kdd”€:þ<üâ²:
á2klnÙ²E:æZ‚	�”ì–‘�>}Úmõô©^KÐO²ÂD-Z´pY˳´nÝúÔ©Sܺu«0Q¦L™@W©hèË•+×¢E‹l>8p J•*6”hذ!üë¶Ö€LƬ'��Å]Mn«;ô·u´„C…�ýýý…Ñ<¢¥Ò/¼ �q¼¯^½º1¥:ç‚6¾ž—+WÎ[-)R¤ É‚T|xBµ.ëGµ]h	IéhyîܹæÍ›Ëå´‹$GGK%ìÈ$Ê›7o¾Ì�!eF$–.ì7	ùÕW_%�ñ	Pz9½�•žP·5“Æ”u“ZâÀ+#‡4h ûTúFKÀ;�Ú
@@ -10410,7 +10410,7 @@ G
 öý"##6lˆdHŒ”¨®ª.ü‰'XðAcccOœ8wêÔ©“'O;v,&&æüùóOŸ>
 LIIY°`�‡‡GË–-ñhJñBoݺDmÚ´i«V­™ëÚµkAAAõë×ïß¿ÿ¯¿þj±-a¹°‡FúùùÙÌHh	¥�°döçŸNw³gÏ ƒc‹)€±páÂä[T
 ‚j;uê4{ölxlýúõxoRÜKü÷ß'''ÇÇÇßð3ûÂ…{÷îE[F�Ý AŽŠP*òòòBwP²¥K—²áT°`A¤)_¾<›€Î•+ÚóJ•*%ÇhBÿÊCâÊ•+øNtwwGQ(�•\·n] 'ªFÓŽ9òû�9sæÁƒöôé–ýhɳŒ€�ò±Â|ü‚±H^\Ê—“)³–¯š SÐR8$ËNHL_.%%%¥Ì’BK%%¥,=Wgb�@ËI“&ɳ–žžžxb?xðà]›7oÞ´iÓF]xƒ+xܽ{÷СC�ÖhÅÑѱgÏž6løå—_vìØ�\[·n¥÷íÛ‡çUv"0êúõë 6 óõ‚kPã˜1c@0¯uëÖmÚ´i««Y³f€`—|ˆ!�Ò1]xC;¢ "0ˆJ±€l
-ˆwñâÅC‡ýñÇ©©©=4+�–à»’%K3U¬X±k×®„¢|§OŸ^®\9;Ÿ¨È/?&´$X¦Õ¡7nÜ8p ÝEvÐñž={†
F1WÑC†Ò1;wîD½çáÇÃ9UªT)T¨�	ZÜÐM�£Û·oß·o_Å໑#GVªT	ž

E_ –íÛ·£ƒð4GðkÑg-	-1¨
„.›7oìÕ©SgÆŒèÙ)S¦Èч@ú2ZÂó—/_>~ü8$Åó�—úôéƒzÁ³óçχ‡Á˜-Z´€yøsùòåò�Y.“
ƒÂ‚Øô¡%d/›f¼n´´Ig_KvòYìYÚš¾\JJJJ™(…–JJJY(ÃgÅŒ(%%%$$DÆÃÑ£GÛ“}ݺu†ÁvH¥K—¦µ£™%€°———µê€N3gÎ$x|Ð2GŽ�;wÊ�›6½h-Ð+,ŸâKÖ;°€«ÚËhIºwï;fèÔÅÅýû÷׫WWœ��ågo�PËšÇxú<hÑ�Ñ£iúŽÚ‰'R9h‘`öìÙÁÅ&nY´h‘ƒƒRb`¬\¹Ò¢‡bgÐÀâ”Ç»»»6€Ùì§,”CAƒ�œœ@”t®ûàƒ„r€´ì`Ö·Jv†ñÐRhc
-í� yËç[ˆ–¯Ƈ¦µ�'}¹””””2W
+ˆwñâÅC‡ýñÇ©©©=4+�–à»’%K3U¬X±k×®„¢|§OŸ^®\9;Ÿ¨È/?&´$X¦Õ¡7nÜ8p ÝEvÐñž={†
F1WÑC†Ò1;wîD½çáÇÃ9UªT)T¨�	ZÜÐM�£Û·oß·o_Å໑#GVªT	ž
E_ –íÛ·£ƒð4GðkÑg-	-1¨
„.›7oìÕ©SgÆŒèÙ)S¦Èч@ú2ZÂó—/_>~ü8$Åó�—úôéƒzÁ³óçχ‡Á˜-Z´€yøsùòåò�Y.“
ƒÂ‚Øô¡%d/›f¼n´´Ig_KvòYìYÚš¾\JJJJ™(…–JJJY(ÃgÅŒ(%%%$$DÆÃÑ£GÛ“}ݺu†ÁvH¥K—¦µ£™%€°———µê€N3gÎ$x|Ð2GŽ�;wÊ�›6½h-Ð+,ŸâKÖ;°€«ÚËhIºwï;fèÔÅÅýû÷׫WWœ��ågo�PËšÇxú<hÑ�Ñ£iúŽÚ‰'R9h‘`öìÙÁÅ&nY´h‘ƒƒRb`¬\¹Ò¢‡bgÐÀâ”Ç»»»6€Ùì§,”CAƒ�œœ@”t®ûàƒ„r€´ì`Ö·Jv†ñÐRhc
-í� yËç[ˆ–¯Ƈ¦µ�'}¹””””2W
 -•””Þ%ݽ{7**
 È­ËÑѱ@�S¦LIKK×Ð)$òô"	ö®®®Öh¥R¥J ¦tXõ·.ùúåË—ÁVt¤Hž<yòåËÇoëCÆ�÷Z§«x«d´<x0íåL‡ž={ç)‰-ˆ¥ŽÀ+°‹mmܸñ¡C‡=z´páB:\�(£å™3gºtéÂw
 œ×åÍ›Wˆ+[¶lÙüùçŸ(�Í'z{{Ób4–ŽŒ)X°`xx8‹±#kõêÕ4‹Z­Z5ÚæyõêÕ!C†dË–­L™2ÁÁÁ}àâÀit”EêÑ£ÇùóçùÒøÈ<wîÜñ÷÷GÉ¥J•Z’
ëÖ­sqqáG/Šb‡¨Ê½–µ²çðîYÏ-å­Á¦€«&{-…3
% ¥<ñgmË'“Œ–v>Â,4œÐÔ¬#’¾\JJJJ™.…–JJJï€RSSA…àÇI“&á'X×Ô©Sq¯`‡   ñãÇOž<900oð:wîÜK—.Yô­‚ÇŽ†P²‰'â�¿gÏž+V¢Ä.P‹E_ÏyîܹE‹…††._¾<))Éša@ÝÍ›7ÃŒ3f?~ÀeÑ÷Rp1$$æ¡FƒÃÂÂpeàÀ�À"BË€€kÌÃ"""fΜyäÈ{<F6 : á�°×2{öìѼ’€�ð°<kiÑCMŸ>®îÕ«�Û¢éËMb#Gެ]»6ÍÜä9bäeh	Ò÷óóƒÓàº]øM ìxuww÷òòÂ+]!´|øð¡E0è¸#FÀÿpþ˜1cÐA»wï†'…áÜ¢sR&L˜€ÁƒWŒ1t=xðìÙ³zè¦_~ù}Š¡K�CqÛ¶mD²c±±±(Õá" ’\tðàA³Q&rÑðC‹PøÔš6m®£X>gΜt×øZE'ì+4aI>~©Å(B,ßÀ�tÑ{â5CzâCëbù[ìГtDˆeWì�S-ùV�3ZC?>>ÿ>}¹””””^‡Z*))e¡èI/ã倀@d Á¢E‹úúú‚ñ¨Ÿª‹Ž¹Ç£;îæË—/¯®\¹r¹¸¸¬_¿Þ¢ÓžÛ.œ'Ož6mÚài8���0xð`á¸�Ê•+ƒ-ú´ÑÊ•+«W¯þÞ{ïÕ¯__ˆ˜ÊåtëÖ-GŽ0˜@S� ?<©¢pÐ+hëþýû_UƒVúô飽˜µ$61W|||×®]sçÎ�–Ú㱘˜˜æÍ›Ã†
@@ -10451,13 +10451,13 @@ OOO
  B	ã3Råüùó.ä.
 Wn6éîСýš;w.mCÜžç‹$HP¾|yÆwРA4þÆ—·#Ëó°;:0ËáŠì,Ý!ªÁ¸ûVqi€åÁÀ�ÔC¬Ë1WDÞxÏýŠŒ…‘ibw¯çZ/õF$ÇKdƇ7¯×3þ?¶ä˜ñ0:j¹<åaZ̓‘÷¡úÓN‚ö.D²_N÷Ló{÷¼»Aq7ï)òÉ"³£tŸ÷_:Z¾ªþã*OÓ[”F-­W’ü‡z‹
Þ¿Ê€È$]Et72'UpçÎ�g†àØÚâƒ5D�Õeâ%¾RÀ§7扡¿þú‹Fþ2äÒHˆI’�XþM9r8«’nˆbƌٰaC3S`!¤ò†<xPf`]vYµÝØg-oß¾-hyíÚµõë׃Q«þI³@±yA,—îÚµ«%d«BKÕS§Tötéÿ(Q¢$MšT­^VÚ¼ysΜ9Fš•%K–˜s‘¼†žDˆ÷¡¡¡�5²˜‘!C†åË—«ò²#rÓ¦M¹sç¶”¤ƒÛ·o—2Ò`XX7›‡d—"îÃŒ3F&îÿF²CDýiÏ`ÿÕ—2/�µäƒàr"Ãåìžù¿­šÑàÙÛCÄûã½KSíÓOöºNW‹#i¼»SvãÝYh!w‰¶IFµÜ]ËCƒæ.ۃƘ{÷æãõzÆÓ‚}%ªÙH—svn€W:eæ,wfDÞ‡¿¸IàîÒ‡.ûe—ËÉMƒbŸ©w7(–�ƒ»À"î�ä=¯õnõïAK5Õø�Þ„-µ´Þ­x\Ÿ5k–šõ‹ŒbÇŽýÃ?XÐ#<<¼uëÖæ§zwÕ-LíÛ·¯H‘"–v€Ç7n8�¤Mš4±œõññ9s挻Ïž=[«V­—ö4qâÄüƒV‘oUOe¯%�À>ÿœÛÕŸà|÷îÝ-FZÐR™z{{»‹D‰�–*|ÕËT`Ù²eí‘”ÞDçÎ�³owM›6­Ú€©´qãFnKIFÊ2”ׯ_±?ûì³—Ž N°_å]É]Ú‘l>bŸqP%>xHÁ`§3wÛ¿q“¹ÃéjÌáæ©À¼TÉé&ö‹óÅÇìW2ÞÝ)‹ñ,t¾¬&òQwÜÕò|-—
Ú»lv”Ňo>^¯m¼e(Ý­Y5ËÃ
àá”å!оëÓnÆ+ùÐá&³€KzXÁk–Ë‚<ŠE]н_ž3,XÚw÷Ñ‹Ì=¯õnõïAK--­ƒ —Ó§O�5ªvíÚÙ³g÷°…-Z´h G³fÍš6m:`À€)S¦Lž<yüøñ&L˜6mÚ¤I“z÷î
îÕ¯_?[¶lR¨I—.]Íš5«W¯2È4“Úd—�<yrÁ‚42zô耀 ÷À��?ÛdZpöìÙcÇŽmß¾}ãÆ�+W®¬ÖIò§,×¼xñ¢
 J“<yò*Uª´lÙ²W¯^XH]§z`` ˆÁÿn!µ?þøcÅŠmÚ´)W®\êÔ©Ýu´9r¤ åÇCBB.\8qâÄÕ«Wß»wï¯=yòD1&ícà6}úôÙ¢_sæÌYhhîܹü©Ο?ÕªU‡—hóĉK—.�:u*n9zô¨%º)îÙ³§G�*Tà!A¢å(´äÒ—.]Z¶lÙÌ™3ÇŒƒÇZ´hÑ®]»N†:wîŽuéÒ…ƒø‡\}ܸq8‡q”÷Tá&yØ¢ÈU@EœÉ¸3jc#$ïYΚqØi³­X±¢Å·±cÇæ–cŒÖ¬Y#‡ÐºuëZ&I’ÈíØ±ãòåË-IT)O�ä^�/^Ñ¢E¹-»êС(
-·J#™3g†²ßäò¶dyntù j	á™™)—9ßE.éLEÑ4?¦š™×õœn–ù™¹ItÇŒæÇìW5Þå)‹ñž-tšÂðº{Æv¸šluYë¥×²7è²Ëæq·Üo8^ob¼ªeJ—Wqz¼<ßfܯjEÞ‡ßÛ2¨K¸ô¡Ë~yž5ÛénP\ÎrÚÅe¿\ÞNÛL¥g÷¾ôž×z·Òh©¥¥õåòŸïêÙ³g<

…d�¡KÅ�}ôèÈãçç$2ëAyòä�V@›;wî8PUéÙ³'¨uìØ±îÝ»'H�@þñAXNcnèСPÇå@‰¬ÁPC²dɪV­
+·J#™3g†²ßäò¶dyntù j	á™™)—9ßE.éLEÑ4?¦š™×õœn–ù™¹ItÇŒæÇìW5Þå)‹ñž-tšÂðº{Æv¸šluYë¥×²7è²Ëæq·Üo8^ob¼ªeJ—Wqz¼<ßfܯjEÞ‡ßÛ2¨K¸ô¡Ë~yž5ÛénP\ÎrÚÅe¿\ÞNÛL¥g÷¾ôž×z·Òh©¥¥õåòŸïêÙ³g<
…d�¡KÅ�}ôèÈãçç$2ëAyòä�V@›;wî8PUéÙ³'¨uìØ±îÝ»'H�@þñAXNcnèСPÇå@‰¬ÁPC²dɪV­
 ݿ׮]jÓ¥-%jÔ¨Q4h€yW®\¯J”(‘(B\p†¡ÔäŸþ~èÐ!•°Ã.3Zž:u
-M•*àÌÁ›7oþ!XX-å…þÀ®|ùòÅ�ßËË+I„x�o%ÆŽ:È{z—5kÖ¾}ûø %u‹++V,ooï!C†HìV³h¿k€¼l}-T¨ÐŽ;8Å ‚{À|ݺuk \½qãÆMC·nݺclÄ�uêÔÁ'Œ�Œ`Š)pò¢E‹ÂÂÂ<ÇVÅx0}úôâÕ„â=]¦ƒþþþ–…Í.ÑÒaDa¢JþüùçÍ›'UÌhIº€Áv{wR–.çÊ•kñâÅôôN„Ο?�s$Íûƒ–ZZZZZZvi´ÔÒÒz‡ú'ÐR‰ûL™2¹ã,8HVQ>|ø`´œ4 igþüù’aÆñä``` L8¦K—nÁ‚Nã‡Vû¼Â…K„X€’�'sçÎ

9�•�°§BK•_Cºbl¥ú¢â�Š>ýôÓ®]»šƒÇŠ@¡È å�J–,é0’c6LMÌ=��jpΜ9£»6]ªE‹’Ïq÷îÝ GbĈozH
+M•*àÌÁ›7oþ!XX-å…þÀ®|ùòÅ�ßËË+I„x�o%ÆŽ:È{z—5kÖ¾}ûø %u‹++V,ooï!C†HìV³h¿k€¼l}-T¨ÐŽ;8Å ‚{À|ݺuk \½qãÆMC·nݺclÄ�uêÔÁ'Œ�Œ`Š)pò¢E‹ÂÂÂ<ÇVÅx0}úôâÕ„â=]¦ƒþþþ–…Í.ÑÒaDa¢JþüùçÍ›'UÌhIº€Áv{wR–.çÊ•kñâÅôôN„Ο?�s$Íûƒ–ZZZZZZvi´ÔÒÒz‡ú'ÐR‰ûL™2¹ã,8HVQ>|ø`´œ4 igþüù’aÆñä``` L8¦K—nÁ‚Nã‡Vû¼Â…K„X€’�'sçÎ
9�•�°§BK•_Cºbl¥ú¢â�Š>ýôÓ®]»šƒÇŠ@¡È å�J–,é0’c6LMÌ=��jpΜ9£»6]ªE‹’Ïq÷îÝ GbĈozH
 J�âÅ‹<xÐi¬ÔmÞ¼¹4X£F�Ë—/»«KIsüU$ʽô&ôzôèá¡/Œ‹%ðìɺ+�?iP ÚŒ–À£»Ä+`2g¥˜��í[
 ,[¶LÖxk´ÔÒÒÒÒzŸ¥ÑRKKë#Xœ={vРAÀ”ýá?vìØiÒ¤)S¦ÌO?ýÇYPO¶lÙ@›”)Sr*mÚ´¾¾¾jÇßÂ…e‚0„æNœ8¶jÕJ²„x{{_Nc^ƒ
,AiŠ)"YïÝ»×»wo‰&Ê…@¼«W¯r	ÏGÍZRrÆŒ¥K—†_öíÛ'6œ<y•‰B”:uê9rtéÒeÇŽçÏŸ?kˆ7Ç�§å¯¾úŠtÓÒq3ZÂÝ»wÏ’%Kž<y@KÚ¿té’ý?~ùr|âĉà$N÷U†G:ù¦Š†	5;Œ¸:mÚ´‘5¨@ŸŸŸg‹+	±>}úò
-

=sæNÃ’Ó§OÃìtùË/¿Ä‡k×®¥âÆ�ÁCi#
-SòÔ©StWÓôHÆZ,á5{ö쌩b4˜îæÍ›WlW7lØÀ�à-±Ç²~õÁƒ’^Ä’òÒ‘2F�ߌ––}¾‡P’;°gÏž”„¿ÿþ{{HaŒä”FK----­÷\-µ´´>&ñ¬

>¼J•*pŠôF´U¨�çóqãÆµhÑÂÇǧ~ýú”ì!sçÎ�={öâÅ‹a:OÚTh‰OªAÉ“'¬àˆd�dš5kf‰óY´hQÀ�³wïÞíÑ£‡T‰=:ŒP£F�²eËJVDÔ¤I™µüûï¿ÞíÛ·ïÙ³GA
ôtøðaÁ¦OŸ¾`Á¬1bDóæÍkÖ¬Y»víºuëòÚ°aCPnÖ¬YK–,�ïTŠL;ZBŽ8jÍš5OêVªTIÅY}öìÙ–-[Ú·oXaöäÉ“i“?½¼¼¤)Éû)Ù^8µhÑ¢nݺ›‚–xXBÑ0pùòåp"�Æ!hÄWx„çã©L³­[·æ8N–Ô(P€’õêÕ«U«gÁ7s´xÞ¼y’ó…­\¹”ci–6¹JC“5jÄÐ3@²×�(iAK“nÚ´iìØ±EбÐeŒ1 Hé,H¨æÍ;wîl	 „sèÃT§N�¡C‡âL†ãÂ…–­�N#‘Š êkÄŒÒÒÒÒÒÒúŸI£¥––Ö;”<u¿Å=z4eÊMÔ.˜hëÖ­”ܱc´âˆÈö¨¦ŠìQR�8•KÑ.3Zz´,X° Ì<‚'ƒ–…µ.j	ŽyæÉ>>z:~üx	ÚÝDÃ5 ÌþòË/ÒA%3Z*Q¸W¯^2�
+
=sæNÃ’Ó§OÃìtùË/¿Ä‡k×®¥âÆ�ÁCi#
+SòÔ©StWÓôHÆZ,á5{ö쌩b4˜îæÍ›WlW7lØÀ�à-±Ç²~õÁƒ’^Ä’òÒ‘2F�ߌ––}¾‡P’;°gÏž”„¿ÿþ{{HaŒä”FK----­÷\-µ´´>&ñ¬
>¼J•*pŠôF´U¨�çóqãÆµhÑÂÇǧ~ýú”ì!sçÎ�={öâÅ‹a:OÚTh‰OªAÉ“'¬àˆd�dš5kf‰óY´hQÀ�³wïÞíÑ£‡T‰=:ŒP£F�²eËJVDÔ¤I™µüûï¿ÞíÛ·ïÙ³GA
ôtøðaÁ¦OŸ¾`Á¬1bDóæÍkÖ¬Y»víºuëòÚ°aCPnÖ¬YK–,�ïTŠL;ZBŽ8jÍš5OêVªTIÅY}öìÙ–-[Ú·oXaöäÉ“i“?½¼¼¤)Éû)Ù^8µhÑ¢nݺ›‚–xXBÑ0pùòåp"�Æ!hÄWx„çã©L³­[·æ8N–Ô(P€’õêÕ«U«gÁ7s´xÞ¼y’ó…­\¹”ci–6¹JC“5jÄÐ3@²×�(iAK“nÚ´iìØ±EбÐeŒ1 Hé,H¨æÍ;wîl	 „sèÃT§N�¡C‡âL†ãÂ…–­�N#‘Š êkÄŒÒÒÒÒÒÒúŸI£¥––Ö;”<u¿Å=z4eÊMÔ.˜hëÖ­”ܱc´âˆÈö¨¦ŠìQR�8•KÑ.3Zz´,X° Ì<‚'ƒ–…µ.j	ŽyæÉ>>z:~üx	ÚÝDÃ5 ÌþòË/ÒA%3Z*Q¸W¯^2�
 ²ÝºuËi€°ÄnýüóÏ7n„rÔUÓˆÐ�Ðƈǎ=
 Š1pœ‡¾ìÞ½ 3Ù'Ÿ|RµjUZp3}²†Ö.I(£zŠ…–	>	CdÁ���jÕªÙãÊzÎ)£dŸµTºÿ¾¿¿¿â_QôèÑAKù]bóæÍ2ÛˆºvíjÙ³yçÎxSÆ%  À]ª)s›9Œ8´öX¸ZZZZZZï‰4Zjii½CÉS÷[làš:uª´Ì–-ü”\µjU–,YÆúØ=zR¹ÔäÉ“=`Ïü³fÍrºAËråÊ?~Üi¬É
 
@@ -10530,7 +10530,7 @@ B
 9þPÄkÚ´)~–ûí7ú6lXhh(ÎT½ìÙ³‡ÑÑ;íKX–ƒ[‚[‡GEE1F„
ƒÆ�˜¤VA+ݺu+>>ž¹˜;w.77L@@çnáf		š¾|ùrïÞ½åÆã6àšñ–p#÷�‘ßWG꟢Î?šÎLéƒäo¢·CœŸÿ.s€—‘‘‘‘%´üÿ\¶Ä>FFÿ�½óŽ®ªèþ÷UMjè�P¥÷RBüzGštÂ$4�P ¤z½,UŠ¡w�ÞE^¤'T)új@½¿g�½˜ïáœÜK_ÃçóÇ]'çNÙ³çΓ™Ù[K^Ü¿_�°36„�Ì/éS§îÛ·ï•+WîÝ»7}út;0WÆŒùP‰_¼xñèÑ£èèh8âÞKq
D<x°iÓ¦R~‘E=šĸiŽÊ«€YØ-C†™3gΔ)S–,YhG6I:Œý¢ŠpE0ц
*Uªäáá—­Y³>|8nÜ8ª§OŸÈi¹yýúu~	Ó2
|ÉvY(R…4h�³Ÿ‚T‚:A$‹{!nªcªÚâ[ªT©;v8�]©_|ñ…Š~à°‡’8�U¿~}ÀíÉ“'€^ãÆ�]¡%fCaŒŽ±ïºöÆ����´ƒ?çk×®aÏÙ³g¥$cLœ8±4ÈÛL™”ܼySŠª›à0Ó*|-]÷èÑÊ£#sŽ3]ºtL
÷vþüùgÏžñ°Ùs¯0ÌzõêQ²@�õíÛ·ÕcŧœÙ-”ú›F²dÉè´H‘"€--ãOùkÀ;(Ëß?�ï@öd…–v3ÀÞ·4ÏM-----§FËÿ}Ùãiii¹Ñ‘#G$ö©HÂk¿|»eËófQóæÍÍ$âJW¯^•´ ¨sçÎróÌ™3’gä-+Z‚ÀßByrªÍž=[ðªP¡BróçŸîׯŸÃ8tÉoc	ƒ³gÏ	_Z†„„­^½Zȵ+oÞ¼ªHÖrn¿á=§Aj'NtsªÔ××Wö�¹8JnV©RÅrÖ–„ËäÛ5jà^§±ËWÝÄÛ¥–’Íš5³ôR¬X1±ç
tùòeø7.óÒºuëèèhWíìÛ·O¶þB‹&LpUÌŒ–J)üþföÿmrضÁ¸
 Dð·IíäqضCWj´ÔÒÒÒúïI£åÿ®ìg3µ´þçôW=Ã�Ñýû÷a“HCÛcÓÎ�;�?þå—_
 Ž)ñÚG¬X±‚÷á°°°Æ�—.]:GŽjýK!ŒÓˆÇrìØ±Ó§OÛ·Ú‚K€’Ôúä“OvïÞ}öìY K…¬Iž<yÁ‚«V­
-(ùšT½zuzL›6­„�¼,h‰o—.]*W®,'�F\ÁCÈQHðÁƒAAAÜaà@´äµ¼qãÆðáÃ!Ö6mÚ¨ø3çÎ�ëСC¹rå|_UµjÕÊ—/�—ÂÃÃOœ8qàÀ�îÝ»KÈ4wîÜeË–­]»öœ9spή]»ÆŽË+T¨ÀÐj*^¼¸�t§2'Mš„æÍ›§ö¯b‰d™A­“'OnÛ¶­[·n…¦Ì”)SÄáS-t6hÐ@‚²BMš4±x¬dÉ’²Š*
b£³ÏZ¬¢ØôéÓ+UªôÑGa<£à"{öìjH‡™åùó竈µ<gòò°1;Ë—/Ç0œãç翃ó§N�ºwïže}Ó¼!ÖüX¶lÙrëÖ­û÷ïg ´Iuž1ûÚh<Êñj$:‹ÌbBÕßmd߬¬™OÍç8ÌÛkåï¨æs(±vªB£«dÐÊêšÙÐa^Ö4í6¨ŽÌ9ÅÔB­ºcÞ‚+½ÞºÚš«¥¥¥• ¥ÑRKK+åæñO‰×{¸È‚ÑÊ*c“··7ü¢2n(Á©R¥ÊŸ??ø°dɸ8RG#ZÆÄÄ|õÕWþþþÍš5[»v­JJ(úá‡Ú·o/çòÒ¤I æî0˜‚q Üc† ùqóæÍ­ZµR©=ìîìQn~ùå—Ë—/SýæÍ›jËîÂ…-h	òH¡ôéÓ3.1û·ß~»uëu�5Ù"+7i„9öª $À6""‚và)†FSbÌ�<xÏtíÚ•)ÀÔ¾}û®[·Ž*TdŒpâ¢E‹˜©CåÌ™³T©RЙâMð�bNƒ³F�M;uëÖ…ð$«’fºBKuS	´”¨J÷ïß

ÅlHM­º¾VÑÑÑ0ˆ�ýŒâðáãF�òôôt6l¸fÍ<£Rˆ>yòÏ׬Y³´!·mÛÒÇŸ7n6lôÍ æÎ�k‰Ésûöí=zXÐÒalÕf¡ZZ£MŸ!C†0×qÂß ¡-WôdAKÇËÕLõwQùÊÎμN‘ �š‚AW[[ZªøêÊTIÔõZ´´äí2W±¬Zší1“©ŒÂ}¬---­)�–ZZZ	@¼œ«x2o£5jȶ̋/‚r“–ee
+(ùšT½zuzL›6­„�¼,h‰o—.]*W®,'�F\ÁCÈQHðÁƒAAAÜaà@´äµ¼qãÆðáÃ!Ö6mÚ¨ø3çÎ�ëСC¹rå|_UµjÕÊ—/�—ÂÃÃOœ8qàÀ�îÝ»KÈ4wîÜeË–­]»öœ9spή]»ÆŽË+T¨ÀÐj*^¼¸�t§2'Mš„æÍ›§ö¯b‰d™A­“'OnÛ¶­[·n…¦Ì”)SÄáS-t6hÐ@‚²BMš4±x¬dÉ’²Š*
b£³ÏZ¬¢ØôéÓ+UªôÑGa<£à"{öìjH‡™åùó竈µ<gòò°1;Ë—/Ç0œãç翃ó§N�ºwïže}Ó¼!ÖüX¶lÙrëÖ­û÷ïg ´Iuž1ûÚh<Êñj$:‹ÌbBÕßmd߬¬™OÍç8ÌÛkåï¨æs(±vªB£«dÐÊêšÙÐa^Ö4í6¨ŽÌ9ÅÔB­ºcÞ‚+½ÞºÚš«¥¥¥• ¥ÑRKK+åæñO‰×{¸È‚ÑÊ*c“··7ü¢2n(Á©R¥ÊŸ??ø°dɸ8RG#ZÆÄÄ|õÕWþþþÍš5[»v­JJ(úá‡Ú·o/çòÒ¤I æî0˜‚q Üc† ùqóæÍ­ZµR©=ìîìQn~ùå—Ë—/SýæÍ›jËîÂ…-h	òH¡ôéÓ3.1û·ß~»uëu�5Ù"+7i„9öª $À6""‚và)†FSbÌ�<xÏtíÚ•)ÀÔ¾}û®[·Ž*TdŒpâ¢E‹˜©CåÌ™³T©RЙâMð�bNƒ³F�M;uëÖ…ð$«’fºBKuS	´”¨J÷ïß
ÅlHM­º¾VÑÑÑ0ˆ�ýŒâðáãF�òôôt6l¸fÍ<£Rˆ>yòÏ׬Y³´!·mÛÒÇŸ7n6lôÍ æÎ�k‰Ésûöí=zXÐÒalÕf¡ZZ£MŸ!C†0×qÂß ¡-WôdAKÇËÕLõwQùÊÎμN‘ �š‚AW[[ZªøêÊTIÔõZ´´äí2W±¬Zší1“©ŒÂ}¬---­)�–ZZZ	@¼œ«x2o£5jȶ̋/‚r“–ee
 Ü�I’$éÙ³§@K T-lÙy¹ÙX»bÅŠL™2¹ª«ÈëµZ¼x±-Ÿ>}*�m�—àà`µûgÅ+w›6m,l×®�¤5Te?0p
(YÖïÞ½kϾañ¼¤n„R�)‡‘eÌ·Øpýúu5Ñf´T“¥ÄðwíÚå4öÐÊîÖ”)SÚ£þÆ]gÏžõõõ¥�¬Y³JdWW†)U¬XQf�y-%j.€i™Jž«€€7ÎQ*V¬ØÖ­[ßxÿ
Y6�›·ÂZÐR¡–°›Zî4G°àžy{­e�«%$»’Csn
 ÷Å-íIÇÌÁôTu{Š1Ç«¹Ït--­ 4Zjii%=xð€ß3”Å�2eÊäË—Ï€Å,È«dÉ’ÞÞÞåÊ•ã“Â¥J•¢.02|øð¨¨(§± 8{öì"EŠd̘‘–e"Œ6mÚ4ª”-[600r¹pá‰' …Ó§OÏœ9“7é"Q¢DT,\¸0-/^œÆé¸8uê!Á[DÏŸ?‡‹¯^½Ê먿¿Ñ¢EB¹—¢w*T¨0~üxµrGu0öÊ•+æv”–.]*KŠ
 -cbbV®\	œBFË–-Së›J/^¼cÁB°Ú[¾ví iAËO>ùäÈ‘#Ø!‡7ÆiÊuëÖáœãÇ�>|øÌ™3ûÀ�.e€¸E>©‚Ó`ɉ'Ê
@@ -10570,7 +10570,7 @@ x
 3‹ÞÓ¤Iã06	�?~ïÞ½4rÀÔY¾|yé%uêÔ­[·†¸¥>¹f˜r3EŠ� ìË'%ߨBËçÏŸóÍ7Æ›6m’�æ
±‰'a[†/§1iÔ¨QR’Ž
 ,èxõ¬%äˆ+üýýûüùó>–bè“O>QÉ.ïÞ½K-¦IÍ8<hGËÏ>ûL&„´ÿqü!–±·k×®V­ZP¤À¸BK°qúôéböÕ«Wù³víÚƒV)V>~oÛ7Ç—Ìh)|m)ÈŠ;Z*	c¾–LÍŠ-•Ì¿^®ÑÒr®Ó‚––ûvN4ßwcª+i´ÔÒÒJHÒh©¥¥�ú«ÐòöíÛ²öjAg+W®<sæDvÄ­Ž=J1ð¡nݺbI™2evîÜé4ÎZ‚–²!öã�?†þ®\¹­vHþöÛoüxêÔ)Õ0¢ÎÌ™3'.hùôéÓ™3g–*UÊËË‹ŒŒîŽ]Á´àà`htßäˆ%<áÂÎ9sæTÁNÍh‰axƒê’ Óé-a1è²H‘"ÞÞÞåÊ•£—\¹rÁ¤²äÇ`…àð'ìfϳ©Ð’aBFà9HHS80wîÜæ}¡©R¥*P €ôÂ'ײ¨ê0(éq÷îÝ´t+³’?EEX2£% {Þ¸q#""Bê¦M›vôèÑÂhk×®¥/Z‚« "mRÀTOOO5Sæ-ÄãÆ�ëyòä			øå+‰Þ+Zâ1µúiGKéš2xR³e*%Œ6L�:Uz¡Ø�;w.^¼È§Z°Þ¶m›¬ÀBÁj¢ã]f´T9.X¹aCîÇŠ–æ)¯ªÛQT5è-ÍßRÅZZÌ“Z±�tÅê¾S]I£¥––VB’FK--­ …–)S¦ìׯŸŠ6ÁwŸþ¹,ÿ©UKà¢W¯^Öžùóç»AË%Jȉ¹›7oªô~~~–4Ïž=“¤!cAM<ÂY’SìbÅŠ©=ŸvÑ΀\cV­Zµ$(
ü¥@©I“&*6ŽÒ¼yóÔRï´ä(°ZŽŒ²�7VAgM›6•êmÛ¶c²@<ÇËePaÕõë×Ër$ä¾}ûvK;‡’îÌb
 Ž?î|•éN‚úÚÑ<§_&Ñi¬ZÖ«WÏÞ ÝuJ˜Ý©S'Šyyy………Ù#+�É(gΜn²ÌüͲV•½ ê�£-ÍasÜ„¿ìAx¦Ð¬ªºJ i/fAKK|3úAKs-µ9VÆ%	:UIe†«ûnLu%�–ZZZ	I-µ´´€ZzxxðG¡%¯ëÏŸ?ÿÕ&nªÆèèèÀÀ@AËråÊIDplذa²,”WÕU,‹èN¾
-

5çÄ3“%K–$I.’&Mêëë+{ýúõîÝ»Ëé¿:uê�TnÈiì¹U9«V­*‡@Á(s®Š9rÌž=¤Ó,#Ål¨-ºWíÚµe
îçŸ=z4ÎÌ�!C‡dÕÒÌ>+V¬È”)Xò³`UÒ—b°ælâ‡Ä‰«›ÔíØ±#æáí‰'JøšÒ¥KK4$Écö9à·*UªHõÆ�ß¹sÇil*ÿ¹“1cF•R…ñ�-ZDk´ ©gœxæÉ“Çl[ªT©ð’"k ^Ž‹¶jÕJ¡¥eC,p�ý².yôèQ9kižwè5""gb’e8Œ…©¤q1oóÐ2Y±æ7ß|S´hQ‡±<mÉ2�² ¥ëÌð¥!ªœ’rß9Çá6 �¹˜jÖ¾ji~ÔÍüh¼ëÚ¢Ù39š¿2¯?ººïÊTWÒh©¥¥•�¤ÑRKK+Ç·¯×J¡eºtéFŽ){yW_ºt)/ÿmÚ´ùìUQ8$$ä‡~pábºuë&ˆäããsàÀ§�QðÔ’%K/^Ì»�˜RèÙ³'oû–<ƒÈ²eË1Ê”-[V
+
5çÄ3“%K–$I.’&Mêëë+{ýúõîÝ»Ëé¿:uê�TnÈiì¹U9«V­*‡@Á(s®Š9rÌž=¤Ó,#Ål¨-ºWíÚµe
îçŸ=z4ÎÌ�!C‡dÕÒÌ>+V¬È”)Xò³`UÒ—b°ælâ‡Ä‰«›ÔíØ±#æáí‰'JøšÒ¥KK4$Écö9à·*UªHõÆ�ß¹sÇil*ÿ¹“1cF•R…ñ�-ZDk´ ©gœxæÉ“Çl[ªT©ð’"k ^Ž‹¶jÕJ¡¥eC,p�ý².yôèQ9kižwè5""gb’e8Œ…©¤q1oóÐ2Y±æ7ß|S´hQ‡±<mÉ2�² ¥ëÌð¥!ªœ’rß9Çá6 �¹˜jÖ¾ji~ÔÍüh¼ëÚ¢Ù39š¿2¯?ººïÊTWÒh©¥¥•�¤ÑRKK+Ç·¯×J¡eºtéFŽ){yW_ºt)/ÿmÚ´ùìUQ8$$ä‡~pábºuë&ˆäããsàÀ§�QðÔ’%K/^Ì»�˜RèÙ³'oû–<ƒÈ²eË1Ê”-[V
 `iԨѬY³h
 ÀY¸pá‚&Mš„U4‹tÁ·“'OÆŒ¶/ÅW€Ð!.‚§:D/ð#ÒÎŒ3êÕ«'ø´–*U
 ÃÚ·oo)wš6mjÁ(WRhé4VîÖ®]ˈ0¬wïÞ¼<3
@@ -10579,7 +10579,7 @@ x
 “›‘‘‘qD]÷-e‘1VíØ±CB­ºS`Ï|Á#¡V-Zò8	ZÂÅ&LpÇZ™Yl…
Õ>ÞùóçóÆq–yáRÉL]ÉÍÖY-----­x”FK--­ …–éÓ§a$­ü¶mÛŠ/îꕾP¡BÅZ¾xñâáÇ?ýôÓäÉ“Õ.G@²È’%KPP�Z‹‰‰f·nݪöj*#ö¤�'Ož‹€Ø'<<\VÊ`4�”Xåçç·gÏžÿÏÞ�KQÝï¿Y~–¢˜E)5‚àÆ-Qш¢ ñKDˆ‰Kƒ„°¨%nhÔ ˆDÜ@´Q0 A‰Á*F0 ¸Æ5n(J¬ù=5ŸâS‡ÓÝs‡.}߯?¨™žîÓ眙¹ô3çt·Úõá‡úhéôéÓ9ä�í·ßþ{Ô?øÁ´B8KSõW 
oÙ©W›6mÚ¤I“^½zEyYéI½Ô¾}{eÃ:hêÔ©ªÃ{ï½÷AÑçŸ>vìX+äàƒo&¨—Ôu.ìÚµ«ö¸çž{þö·¿UnÕBEõÔ{4h5U#¬êV[m¥Vüð‡?´Õ‹{椓NJ�–z;V¯^­Û±cGµ]�õ‰úÙ‡Mõ.ØêÖùøã�,XpòÉ'ÛG£åÊ•+ûöí«^Ò‡Êî7ª7âÖ[oµaÙÖ­[+Y«u*áúë¯×^²ÞÊÒôR7ê]þâ‹/ÂF}úé§o½õ–jB®l¶ˆ–r 5ZΜ93y©§—윾Ô	±…âí0 bßlhIëvØa£F�ºÿþû—.]j×�QšÐS…²#Ž8Âç¯:EKɨ¶
 2ŠwÞyç}÷Ý÷ïÿÛêi‰h¹ÓN;uêÔ©G�C‡µáKEe
5AN˜0áÖ4øÃ”XG�}à�Ösq«V­~ó›ßÜ|óÍ>™ÖZ}Ã
7hM¥W;Ñi/êŸ9sæLœ8qܸqC†9óÌ3{÷î}î¹çöïß_¼‡ÕK-_yå•ñãÇk�/¼ðšk®Q–¼÷Þ{‡®mO?ýôC=Ô¯m6pðàÁ7ÞxcçÎ�-÷)ô)€+zß}÷Ýj þ½ë®»“£–_ýõòå˵²ÚxÙe—]{íµwÜq‡ú'ê½_ç�wž5_I¶M›6Ý»wïׯ߀¢>}ú(“ª>¶�–
 Ë‹/ž<yò´iÓlVªÒŸzÒ¢¥ê¬viÛž={¶mÛ6LîDñ¹C‡ê%•ìs_ÕÌ#FtéÒEñÜfq°"Z¨!;œ®¾œÔhùøã�—ˆ–íÚµ³{R¤ŽZª„K.¹$ºFM“&M®¾új¿þ�	¯Y𤏱hÑ¢rš ˜éq¦„]vÙå�ˆ¶µË¿$Ù«jËùçŸ_WT4[¹re¡8Íu×]w­+Þtذa~Ÿ‹^|ñÅ“O>Ùª¡ž‰frî½÷Þ6ÁXE)î¾ûîÖɳgÏ.S˜þ#Øzë­³Ú¥<ewÕT¬jéÿøGo =xî¹ç±m½ãöF;…}%GÅgÆöíÛÛ}d
-Å€õ‰"¹�çÒVÑ;.Jy-“ÔRE×æÍ›×û®U@ùÔ¯ØóÐCÙg£E‹›Ïbˆ-Ô�EW_ÎÆŠ–|°�Nøþûï_pÁÑ&Íš5›:uj´ëåË—ŸrÊ)Y{ùñ�ì§´GyÄÃN2à8™

_~ù娱c·Ùf›í·ß~äÈ‘v•e+»íã¶Ûn;bĈhE¹ÿ­ã±nñâÅvSû�Ï_ÝsÏ=íf�Úä¶Ûn³(ôÓŸþtÞ¼yZøá‡ê?¿£¥7Óói÷îÝmRÑ^ßb”Í;
­X±â´ÓN³MôÀBŸ£Uò³Ï>ó”O­>©.\xÐAeur謳ÎR±á¶Q•—¯»îºäPu	vMÝpÒo–¦M›ê]³=*/ÛH®Þýä'€ÍÑ@l¬h©¸1wî\-üøã�/½ôR»7åÖ[o­„xüñÇ:Ôî4Zµj•ÒG4„·Ã;~øá]ºtÑKãÇ�ðÁ,X ¸š<QîÝwßÕ•+o¼ñƳÏ>»gÏžÚÄz衞ÅUa¨À›<y³´µk×*¯
<øüóÏ÷ëð̘1Ca°®8”9lØ0›«5—,YbwuÊ5wi×»í¶›7𨣎êի׹瞫
+Å€õ‰"¹�çÒVÑ;.Jy-“ÔRE×æÍ›×û®U@ùÔ¯ØóÐCÙg£E‹›Ïbˆ-Ô�EW_ÎÆŠ–|°�Nøþûï_pÁÑ&Íš5›:uj´ëåË—ŸrÊ)Y{ùñ�ì§´GyÄÃN2à8™
_~ù娱c·Ùf›í·ß~äÈ‘v•e+»íã¶Ûn;bĈhE¹ÿ­ã±nñâÅvSû�Ï_ÝsÏ=íf�Úä¶Ûn³(ôÓŸþtÞ¼yZøá‡ê?¿£¥7Óói÷îÝmRÑ^ßb”Í;
­X±â´ÓN³MôÀBŸ£Uò³Ï>ó”O­>©.\xÐAeur謳ÎR±á¶Q•—¯»îºäPu	vMÝpÒo–¦M›ê]³=*/ÛH®Þýä'€ÍÑ@l¬h©¸1wî\-üøã�/½ôR»7åÖ[o­„xüñÇ:Ôî4Zµj•ÒG4„·Ã;~øá]ºtÑKãÇ�ðÁ,X ¸š<QîÝwßÕ•+o¼ñƳÏ>»gÏžÚÄz衞ÅUa¨À›<y³´µk×*¯
<øüóÏ÷ëð̘1Ca°®8”9lØ0›«5—,YbwuÊ5wi×»í¶›7𨣎êի׹瞫
 wíÚõòË/÷é©K—.½êª«úô飶ÛÂ>øàŠ+®Øn»í¬-ûí·Ÿò¸ši×ïÕ{wÑEMš4IýpÃ
7hÃcŽ9¦ÿþýë_£¶üë_ÿò ¿×^{]{íµÓ§O¿ýöÛíò°ú·C‡öê>û죗²úä�wÞ5j”örÈ!‡X­¢¨`«Wñ‹_Lž<Ùn(£ÈüÊ+¯¨ß´»;ï¼sÊ”)ªjÇŽmî«Ò¢:ç„NÐV©'Z**ê%5íœsÎQ§õîÝ[Uõ«0)ŸwÜqúŒí²Ë.öQT±G}ôÍ7߬|=f̘SO=µS§N—]v™Ï `sC´�©ÑröìÙŠ„YѲM›6=RG-?üðÃ!C†Øè’ò©rÄË/¿¬5“ÙP‡ú:ì�
 WL˜7oÞŠ+”•OZ¶l©¢B¢k³(Ðiaûöí[µj¥�¥]¯*RÓ¿Ó¦M³Ë«ZŒRÄS�z)*¤kÖ¬yë­·^ýußV³h©£hiéImT5vÞyçëShÚu×]Ž|8U)IµUeT櫯¾úÒK/©s|w*í½÷ÞSÔ�6ÕVÑRÿXˆS[&L˜ �®mU‚6×~'Nœxì±Ç¶nݺG�?üð²e˔㒷áÐŽü2¼zwš5k¦MTC%²=öØC•ô9·¥£¥¨†
 ªêdõôö5iÒdÀ€‹-RìF6…â@öï~÷»½÷Þ[»ÓŽ´;u”ÝdÄ>x_|±
@@ -10780,7 +10780,7 @@ ag
 Üyç�¥f¶Új+Ña»hm.¨%€µ¬Ô Õhµìþò—¿|îsŸ³]ŠÕò±Ç³³7Úh£9sæÄ'$þä'?©s�Ÿ�ÎPKÑØúŸ^TíÌSÔÀ‚ZÖj	P?îÚ¸Q©¥¨åäÉ“ÛC-_xá…±cÇV¥–óçÏ·‘K=ˆL­^½:²ËùçŸß¯_¿ôêJ!\!¶µ?~¼Ýe›m¶©_-O8ᄾ}û¦D6¾ýöÛ;[-‡òÜsÏÙ8QKhMPKh"îÚ¸Q©¥¨åÔ©S«Òñ¯³Î:Ë*[‹¨åŸþô§Ýwß½*µôq"õ0kÖ¬ø.¢Õ
ïµÜ{ï½m¯¥h¦§–£F�úÍo~YPWlÎ{VæÀ�ÅÚj¨FE²ûîw¿[Õm‡
6Ø@,ïí·ßÖD*ªåÂ…¿øÅ/ʎ鹈ZzOE- 5A- mHQË›nºiܸqýû÷0`À–Q
´É&›l»í¶×^{íºuë4…ÚÔòý÷ß_¾|¹(ÕŠ+^{íµ”Ù—qD-÷Øc�ªÔòž{î±jÙ»wïI“&Iý¼ñÆËˬXÏ«¯¾úú믋4M›6mã�7¶…íÕ«—T�Ô€ÔO¼—‘Ãá­4;zôè'Ÿ|RjLêaÕªUÏ>ûìw¾ó�¡C‡J²bˆ›nºé®»îzóÍ7/]ºtåÊ•+.ÂþóŸ‹/–ÀFŒ!»ˆd‰ün·Ýv’ÎêÕ«½‚„HÑd·¤­W?’én»íæ&¢Æ¿òw³Í6Û~ûí|ðA«ÀÕRju„	›o¾yüëç²�r
>\¶—°mœ¨%´&¨%´
)jùÎ;ï<ýôÓW\qÅå—_~u%.¼ðB¹h÷f#Ö –bC?ÿùÏ�<òÈÃ?\LᨣŽZ°`�DROaëWËR¹³OBš8qâG!�±žñãÇûÛß>á„D”l›Ôí�x饗ŠÝ\sÍ5ñÚûÅ/~!V>sæLIÄ.‰#ò¸ÿþûK¦’Å·¾õ-©�óÎ;磌®’ƒrå•W^Zæøã�—xäS©4�ʽsÌ1Çz衳fÍ’,d{ÙQŽˆÄ3uêTQT¯ !R4ù;eÊ”ûï¿ßÞ1ÈÊ+èÊ›—\r‰DRñ»qñÅßu×]ÞzAÕ2+Ïx½è¢‹$‹HÊGò…‘,n¿ývQlÏ‚QKhMPKh"îÚ¸Q©¥¨eýÔ –"³výœRùŠñIŽ©A-½±5Я_¿‡~¸ÚP'Mšd¯zl¾ùæb V´_yå•qãÆÅ#™3gÎ[o½¥»ˆ$~ü㯪,òU±ãrBŠZÖj	­IÛ¨¥}vd÷]]Ç
N«¸Y©ã£6º/î7Û¨ÔBµ?~ü¢E‹•¾cîܹÿŸ½3�ª²øÿ8f¥D¸±ª Š;jî¦VZjXi®¹ï»à‚Z¢J.©(™»¸ àžûfinˆŠâ¸€)(¸‘öM[ø½Ï�ãs>Î\æ^Eéóúƒs¹w–ÏÌ<Àób晑<Ñ¢ZFFFzxxésåÊ5qâÄ´´´g	ã)Ôr×®]’g¨ef-&99¹[·nµtqqY°`�þCwy{{ëÏþ7níÀ„„qº®õ´lÙ2..î)z^ƒª–>>>Y^Kxx8«%Ã0ó’Ô.†¿­�2ã¡™Y>Uñ¼Á½�•aÛ°Z2Œ9TµìÙ³g–ÏL………¹¹¹Q}°¨–§OŸ.^¼8Í‚aý©y
 µ„²+V,Sþ%!f¥u¤z®_¿ÞµkW�Z:99…„„Ð)Èèèèwß}W¯–èsª–øÍéé险¶|òÉ'çÏŸŠž× ªe«V­ÐY[ËÆ�]]]�*X-†a˜—„ –%K–¤^)hbâùUú<`µd˜gDUKŸ“'Oþõ×_ÿdÿþûïÔ©S$Í‘ÔÉŒ,øöÈ‘#*Txí1È2qâDh ‘/Ôæˆ�þþûo³	¬QK)Œƒ–/_>W®\4	ú)�và�Z®X±BRKZ‹º7ŽYµ¤.\xþüù;QNºÉÄñã˜Q6ŠZ^ºtIRK©!jc?ýôSu©ªÑ
 t»ÚçRKÕÆªjùÞ{ïÅÄÄdÕåp1Ïž=›^�¬–Ã0ÌK«®–û÷ï7«cûMßâ.Åø+L=TØœ@ZFKWØÒ¢¤4(ÙH)• ¦S’çÒ…[ˆAŠÄÐÆŒÂ¦i4µ0ÌË�¸t³ª4U-¡-ýúõ[´hÑʬ`õêÕÁÁÁÞÞÞÒ¹„ªZÂYÖ®][²dIPPЀÄ6>:t€j�7nñâÅ(344ÉΞ=+í‹þùgÔˆìaaa¸}û6•‹j‰ÄçÏŸGáË—/G	K—.�>}ú Aƒ:uê$v³�õ@©µ¡´âÅ‹7oÞŸ"B-Uª�=4«–Ç�_·n]¨‰;v¤¦¦Ò8Uµ|ë­·Þ}÷]ÞÑDïÞ½.\ˆìˆåÏš5kèС]L 8 ³³³d—zµDCŠ-úÑG!;ª@s4h`ooOKPÕòÖ­[?þø#@¸fÔA¹q㆑½ºgÏÉåUµtrrÂÐ/[¶,K®@Œ&®%´åÍ7ß4ª`µd†a^^uµ„aY|²’Î`
-^&´ÔÐF:û)lQ¼–’QD2£p¼0‚¹¨$ÑxV’™Ê•OÎZfv:QKéýWq®–ù�ó¼Õ>bgg1ÁíwѬÀÁÁA=ï^UËáÇÃÑÄŽŽŽÍš5Û¶m›8CœŽP¢D	$±
2DZ¸{øðaü8»¹¹‰ƒ0>üðý{÷Ò½n,ªeJJʰaÊ+&ÎA9ã§Ÿ~‚ëA‘nÞ¼	uýì³ÏhwåË—Ïßß?&&FœúÕòõõ¥Ç€ªj‰4={öDcÑTQ¹reh&ÕU-+Uª„0PúA;v¬oß¾è
'ª€:Á¡$’ÅÇÇC¥'õj	óêÞ½;œ×¨eçÎ�5jԠݥªåæÍ›Q5aäÏŸ×b 	Ö®][³fMĉ!C{«T©ò믿ҹKU-qBiQf–\~¢¤+�Õ’a†yIxÕÕr§WKU‘^ø—P9šXh�𵕦ÉD£³ÊF
TÊ(YýHËYUµÔ„�NÔRj¾¨%£9V†Éñ¨jùb�Ôò¯¿þ’68-[¶,¤ƒ†:räHªlï¼óΑ#Gèdßš5k`jF‚·ß~;$$„:�Eµ<sæ$ކQµjUêJ<;v,tÒHs	

¥’2}úô
+^&´ÔÐF:û)lQ¼–’QD2£p¼0‚¹¨$ÑxV’™Ê•OÎZfv:QKéýWq®–ù�ó¼Õ>bgg1ÁíwѬÀÁÁA=ï^UËáÇÃÑÄŽŽŽÍš5Û¶m›8CœŽP¢D	$±
2DZ¸{øðaü8»¹¹‰ƒ0>üðý{÷Ò½n,ªeJJʰaÊ+&ÎA9ã§Ÿ~‚ëA‘nÞ¼	uýì³ÏhwåË—Ïßß?&&FœúÕòõõ¥Ç€ªj‰4={öDcÑTQ¹reh&ÕU-+Uª„0PúA;v¬oß¾è
'ª€:Á¡$’ÅÇÇC¥'õj	óêÞ½;œ×¨eçÎ�5jԠݥªåæÍ›Q5aäÏŸ×b 	Ö®][³fMĉ!C{«T©ò믿ҹKU-qBiQf–\~¢¤+�Õ’a†yIxÕÕr§WKU‘^ø—P9šXh�𵕦ÉD£³ÊF
TÊ(YýHËYUµÔ„�NÔRj¾¨%£9V†Éñ¨jùb�Ôò¯¿þ’68-[¶,¤ƒ†:räHªlï¼óΑ#Gèdßš5k`jF‚·ß~;$$„:�Eµ<sæ$ކQµjUêJ<;v,tÒHs	
¥’2}úô
 	TµŒŠŠ*W®­M£½¡ªeãÆ�éã‡xÝ¡C:j^^^pOz^dPP„Nês�ZÂC§N�zÿþ}#Á•+W>ùä*e’ZÂÇŒC{��ŒŒ4 ž€€zÊ'´ÃD}_UË«%Ã0ó’�ãÕ’bü!Žf,%¥™nN9ÕwŒÚÕ•®Búl”Ç!ÅÒÙôÇBª†½2ƒg-¥°i᪥ªï0̸ÆË –¸É÷ññ¡ëH¡lûöí£Ó[_~ù%•wwwÈM‘ttt4äÍ›wöìÙtU¨e�:u¨ZŠç7�ÇŽ“6í�ÓѹQÄ	¥æˆ0–-[FwÔ™9sfÁ‚�ªZ"lºù-èׯ_jjª‘À¬Z^»vÍHÛmß¾=h$¨]»ö¡C‡¤ÞP·NÒlヾ…Ó�’bcc?þøc�Z>|ø‘Ó¹QWW×ãÇ�	Ð-ƒ
¢	Шõë׳Z2Ã0ŒàUWKh”�¥ÕtÆ‹Âìèô_ú“�=Šù>Q¦Š*}fÕRÔb“±Z¦?ùd¥Ùűú°�ÂÍÆ©njÄ0/-â¢ÍªÒ„ZÒÇÐ^#FŒHII1€¤´lÙòõ×_78;;ïܹ“NÃùúúRI)UªdJšµ¤LÀb$µ<}ú4Œ>�
¤ótgΜ‘Îã¨[·nbb¢‘†8nܸüùó	 –’9N›6M?kyôèÑ%JÐZ†
¦ŸµlÔ¨UKØn‡¨ZÖ¨QCRËY³fÑ=QmLS´´±ÉÉÉèCãSô-"§jyþüyü
 ¥ƒ¢ªe¯^½hœPæèèhz�I£�ݸq#}óàÁƒ’h¿\\\BCC3µm/Ã0Ã<^uµÔlãccREu*PRKú¾Hi�®
 25kiv'[žx_óÜezÆjÉs”Ì+�¸7λu놛ÿܹs¿þ¢°1͠ݽ{׈’Ò¢Ej1¸ùßµkUËÉ“';88¼öÚk"Y½zõ>ŒŒ™HWf-Uµ„‘µiÓÆh,ÒL�:õÞ½{¨E”püøñúõëC´�8¡l111"46>>¾S§NT¦`ŽðS´Å(düøñÒQI-átÍš5Ë“'Â@s�`Ñ¢EtÞSUˆ
^¹rˆ*’4ŸX¸pá%K–@ÿ6ñçŸ0€NòXÞÍ›7ÅŽ©(*!!¡L™2x-EEŠ‘â´F-{÷îMãD×�<yRĉŠOÛ¶mé?.Tµ<qâ~WÃ÷_Øå‡ºÜÜܤ«‹a†a²…W]-ÓŸœ
¤oЧª'Úd°“ªa£êsŽɦÙg-EFͳ–j¨"%Õd}؆Qªûö°l2ÿqvïÞ=mÚ´ï¾ûnîógÞ¼yß~ûmppðÙ³gé�½5j	áBÆ   „ŠBÆ™1bÄàÁƒýýý‡R­Z5j[ªZ¢´¨¨¨ùóç£W
lbäÈ‘(¿{E„³fÍB·|m¡|???¸•“““´Cl…
@@ -10839,11 +10839,11 @@ t600
 ¥ ¥¾º;³6ZRÛ‚”/Y&­Üæ6/5P+€Êf[ø§Ü`KT¡f'³ˆ*T-éîÕr÷g€²Á–l–Ž€2’R'm2?±ó&cô·ÀŠ(·•šƒIµÜ±cGÅŠuZ0ª–VG«–&Ѫ¥B|||—.]!Õ§téÒÇŽ£�Lœ8QqIȦ~>ØK—.¹¸¸ÐD&±µµ›?¦ÅÍ›7]]]i¢Z)ÍdkŽZBiÆ]°víZºú	]µ··×‰¦‰óÇ¢Û­µjYµjUÞæža†yÉIj©ÜK
 •]†mt÷ŠÒ¶‰«S©–TQµ©Ô©L¥¾êžJ<rÕRé‘Ö¼´H!-�fÆSj‰Î*Z*[ƒÑ6•¡¤Î«ìάtD®cÒA¦K±i½f«³`Á‚’%Kê\êk1©–Ë—/‡ è´5~3ÕòÚµk:m^¾|¹W¯^:ÏEj©_¿>L�62wî\ý§���•Å>…ßÿ½Aƒu­X±b.\ÐiŸvìØ‘ªe÷îÝãââd“j‰	U²Î¾óÎ;øº£KŸPKý|M•+WÞ¹s§EÙ\¡–NNNʘë{4Ã0Ãd	9C-%TXlN¤ÜûŠ÷…mQ7µlÒVK4"_ˆ)újicÐ=m<JI	]gL5&‰JEÙ Iµ”ZʵȴÚÔ
 
-]ØÈ¤·Úhî¤ÕΫ%“yøûû[]-ôW¦`ЋV¦ÒÔÒRÿR2Äj�jõìÙSg£-õêÕ»xñ"mÄdNÔ-Zè«%ÆÍZÔµråÊé/ä�={¶mÛ¶ô‘O—ØØXY@«–h“fˆMII>|8ݤD=1::ÚÑÑQ'Nèê–-[,UK%ClݺuÑó[`†a˜×CÎPK�”;T-¥HÊ•D£:fþª¥£«–FãIK-õW-µ+Œæ¯ZŠHÌiÓèP(wê
[©á©i+$«å[Ž<C2‰•+WŠÆÿ0i(6i¨å‹—àõÚµki›ÚfsçÎ&Z�µ´¼ ¤¿N�sçÎ9;;WÒé
²V­ZB_#Õ`1PK±jù3m*Ë…øÅj™V•–-[ê«%¬¹uëÖb…Ñ̉+[¶¬IµÄW
UËO?ýc(hÕ²D‰B-åø{zzŠUKRž<yµüý÷ßŪeZ}‡®†„„hÕRg¢1VbÙH“&Mâããõk1Ã0Ìë'Gª¥ò�£
ñqÁ JV×>`hô	Ae��¦¢‡¶!OS¢ŒÑxÒRKí³–F×mÒxÖR§–üT>I¥ÔyÖRû(«ôk­5£0Õy)ò²)mùYË·ñû’yí?~ÜÍÍ­råÊå
ØÛÛÓ["�¢UË'Ožà¼…@ÁËbccþùgˆ�££#4?´Ë|ãÇ�ÿã�?PU._¾œœœ¬½þÇû¢ÍK—.=xð@)Ó¹yó&>B™¸¸¸ÄÄDÅG’’’ð{T·n]ô¿eˆD{#+<Ý¿¹(Ö­[·­[·¢^åâKöïß?`À€�?þ]Uô�b{yyݾ}›¶gϸZЖobpîÝ»§3k÷ïߟ1cF½zõÄ —*UÊä㟙¡–6†G)åøÄÄÄL˜0ÁÉÉI€#ãM:qpóþýûW¬XQÛ}”Ç©2dÈ4H«<þüÎ�;˜hâüùó˜tš6Õ°GçСC+UªTÎÆÄÝÝ}çÎ�^T¹víZfß}Í0Ã0æ�#Õ2õÕÇ'mÈ" ø§4Múü£"AffˆMËjŧryTOZj)‚T2Ħjv?‘ÙV•±iÕwÌŠOå³�2©¬¬%ƒ7ª–©ä¾V9¤4C¬|S›w—Æ,�HoNf˜ÌàÑ£G§OŸ

ýõ×_·lÙ²bÅŠ5jèßi©UË|þùç]ºt�Œ¸¸¸Œ92  `óæÍ7n„©¡Í¦M›*ÆZ²dIèg÷îÝQ«G�(£¤ý„|ñÅø´sçή®®P¥~q¦N�Ú«W/Jèçç9¢Ò�¯_¿¾wï^„V»vme�Ñrppð¦M›¶mÛ)þòË/;uꄎ ¶/ÁëÏ>û¬C‡p4ˆÞ¡Í_uA”DœŠ
+]ØÈ¤·Úhî¤ÕΫ%“yøûû[]-ôW¦`ЋV¦ÒÔÒRÿR2Äj�jõìÙSg£-õêÕ»xñ"mÄdNÔ-Zè«%ÆÍZÔµråÊé/ä�={¶mÛ¶ô‘O—ØØXY@«–h“fˆMII>|8ݤD=1::ÚÑÑQ'Nèê–-[,UK%ClݺuÑó[`†a˜×CÎPK�”;T-¥HÊ•D£:fþª¥£«–FãIK-õW-µ+Œæ¯ZŠHÌiÓèP(wê
[©á©i+$«å[Ž<C2‰•+WŠÆÿ0i(6i¨å‹—àõÚµki›ÚfsçÎ&Z�µ´¼ ¤¿N�sçÎ9;;WÒé
²V­ZB_#Õ`1PK±jù3m*Ë…øÅj™V•–-[ê«%¬¹uëÖb…Ñ̉+[¶¬IµÄW
UËO?ýc(hÕ²D‰B-åø{zzŠUKRž<yµüý÷ßŪeZ}‡®†„„hÕRg¢1VbÙH“&Mâããõk1Ã0Ìë'Gª¥ò�£
ñqÁ JV×>`hô	Ae��¦¢‡¶!OS¢ŒÑxÒRKí³–F×mÒxÖR§–üT>I¥ÔyÖRû(«ôk­5£0Õy)ò²)mùYË·ñû’yí?~ÜÍÍ­råÊå
ØÛÛÓ["�¢UË'Ožà¼…@ÁËbccþùgˆ�££#4?´Ë|ãÇ�ÿã�?PU._¾œœœ¬½þÇû¢ÍK—.=xð@)Ó¹yó&>B™¸¸¸ÄÄDÅG’’’ð{T·n]ô¿eˆD{#+<Ý¿¹(Ö­[·­[·¢^åâKöïß?`À€�?þ]Uô�b{yyݾ}›¶gϸZЖobpîÝ»§3k÷ïߟ1cF½zõÄ —*UÊä㟙¡–6†G)åøÄÄÄL˜0ÁÉÉI€#ãM:qpóþýûW¬XQÛ}”Ç©2dÈ4H«<þüÎ�;˜hâüùó˜tš6Õ°GçСC+UªTÎÆÄÝÝ}çÎ�^T¹víZfß}Í0Ã0æ�#Õ2õÕÇ'mÈ" ø§4Múü£"AffˆMËjŧryTOZj)‚T2Ħjv?‘ÙV•±iÕwÌŠOå³�2©¬¬%ƒ7ª–©ä¾V9¤4C¬|S›w—Æ,�HoNf˜ÌàÑ£G§OŸ
ýõ×_·lÙ²bÅŠ5jèßi©UË|þùç]ºt�Œ¸¸¸Œ92  `óæÍ7n„©¡Í¦M›*ÆZ²dIèg÷îÝQ«G�(£¤ý„|ñÅø´sçή®®P¥~q¦N�Ú«W/Jèçç9¢Ò�¯_¿¾wï^„V»vme�Ñrppð¦M›¶mÛ)þòË/;uꄎ ¶/ÁëÏ>û¬C‡p4ˆÞ¡Í_uA”DœŠ
 =|ø0<<GÔVÙ°aÃŽ;®^½jònax7º†áE;»N�:Ô
 µd’ZÂÜ1GÆŽ;âçäɓь'~bˆ¢££•í8¡x0wœi¿ýö›Òw¼ƒoHeS
Yg'NœØÍ¦fĈ°Eêž+(äöíÛÑÂf,èÛ·/
 wíÚ³æáᡟ3Ã0ü²»ZZŠ6§«uÑFó¡yks6pÞL�†Ñ¢<.gT-:$Ýî0nÜ8šJ¢l#ãxï½÷tÚ„{ž<y’V™6mZÁ‚eggçS§NQ¡€—+WNpppX¿~½²{£Â×_MÍ(wîÜP3*qQQQ•*UÒïûš5kh^31çæ^£UÌ,<aÂ[[[�È3I-)Ðö)S¦Ð-N¬Â?üP¬X1z (¤þ*$t›&*^¼ø¶mÛxá’a†ÉrÞµ4ú0 Õ±ŠZ¦n=}v{|KºÉè ~+_ç}||”ý#Ê”)CÕòÎ�;C‡¥6Ú¦MEgΜ©/>¥J•Ú»w¯\®B]´I-fN5pùòåvvv²À;ï¼³xñâG�étmÒ¤I45+Ôõðáô@dd¤~n[Ä	µ„À&''_1p5m®˜B§^àÛòÆ�Ê^Z,]ºT?uR:Òø@-i2“j	&OžŒ‘1'`3ÁŒ�=Zù‰ÀÀ@}»ß¸q#ÝRf ¬Ÿ2Ã0ÌëçíQK†aÞ@ĵñë<¢‡‡‡þ®‹ŽŽŽÇŽ“æ•ðöö¦+Œ­Zµ:qâUËéÓ§ë«e‰%s7nmSñY°zõê¢E‹Ê(½Òׇ±cÇRI�Aoß¾�ºÛŽ;ô
j¹råJxÍåË—§L™Ò£G�®]»~–	 Yww÷mÛ¶=yòÄœY[²d‰~¦_ôËÒÍGÍmûüùó¯¿þZE{„	Ê}Ëg̘1ŠZbêõÕrݺut¡#³fÍ3G’a†a2VK†ar°38|JüÔÞr9räHEråÊ•û%6†Mÿïÿþ/ÅZÃE¾¢�-[¶<}útÊKR
;9)RDGI
-*tôèQZÅ××—.ž~ðÁ‘‘‘´ÀæÍ›!¤²ìcíÚµ�=BH26¥kZµTî“

Uí?ÿùí;ÂwcÞ¸q£K—.ú�7f;;»ÀÀ@!D˜&9eZP`âĉÚ
M3"ÄOô�Uöã mâõõë×]]]1õbºQ}èС·nÝ¢U¦N�Š£Ð1¡ 
+*tôèQZÅ××—.ž~ðÁ‘‘‘´ÀæÍ›!¤²ìcíÚµ�=BH26¥kZµTî“
Uí?ÿùí;ÂwcÞ¸q£K—.ú�7f;;»ÀÀ@!D˜&9eZP`âĉÚ
M3"ÄOô�Uöã mâõõë×]]]1õbºQ}èС·nÝ¢U¦N�Š£Ð1¡ 
 þ–%%%É)È8©†ÿ— ÅQV¬X¡ÜùL�˜jXµ„J‹*ø‰‘4y³tæáææ–ñ“aòäÉY<Ã0™ÁîÝ»3ø�€/–¬î“NX-†ÉI„„„@C¦M›\¼xq\\œ¢`ZµlÑ¢ªŒ?U|
|ûí·°Œ3fÌž=ÛÛÛ»V­ZtµÆ×§ObΜ9(€’Mš4Ñß
 йsg???H(ªL™2¥fÍšTÜR÷îÝѦ(€’;v¤7g¢pÛ¶m!:Õ@xx¸²ˆ™µ,_¾ü˜1cðíåååãã vµ¸víZ¯^½,ÚàÒR ±�e¡–.\X²d	˜9sæœWÁh °jÕª)ž[¬X±@Ið)¦s
飣‘��€î MÌ#ŠalQlôèÑ%¼ÀCö•ÅÁÓ§O/\¸
z½
 Þ™4i’§§'&çê"ª9cÖ¬YˆÍßßm¢}Ì,Ä«œ´[·nE1tŠCc”М´èÎÏùóçÿõ×_™½�jZXåd`µd˜œDÆÕÒæíH9’#aµd&±ú_wwwé yòäÁ%«²5†¢–yóæÝ¹s'-°k×®êÕ«›ó‡/W®\fî•)Ë‹e©Œ´)?uvvމ‰¡Ba©ZÂa(âÏ”WŸy|mj	¹Cðzñ”(z'F@ 3\ƒ
ºqãF*Ùt’òÏ?ÿ@¸è²o©R¥V¬XaN4ˆQ•Y‰ä?|øP.ž*qZŠÌQŒ£F�ÒßåóæÍ›õêÕ“AõÎ�;+‰¤²UVGÁ0LÎ�¿U²5¬–Ãd!Öý’œœ!¢{ ººº*Ù]<<<¨ZÂÅ¢¢¢h�;vè?Ö÷†`oo¿iÓ&ºîæë뫯–Û·o§]ËŸ?¿ŸŸŸÑ‡-RKś̌_¨%‹��ïÚµ«É�+fΜ	×KëL¸{÷®’|©\¹r!!!ÊÞ ÇTN«0|øpÈ£Îqq—/_žViذ!Ím›µˆ�²:
@@ -10861,7 +10861,7 @@ GA
 ¤u̘1¯S-Ê–-»iÓ&L�ù1õá†:mjÕòøñã+V” �Æ
£Ï·jÕR˲eËô=100�¦xbµd&'Áß*ÙVK†a²�Ìþ²`ÁeA…üùó+¹[wíÚ%rhÕrÆ
Ê�‘cÇŽ½{÷®,`ŽZšÔ@¨ÙÀ�õwº\´h‘~&[H´ƒƒƒ,�Ö)–UKxSºÕ˜µjY¾|ù���gÏž™s||¼“““N›ZµŒŒŒ¤òŽ“¤oß¾4Y�9j¹zõj}Þ¼y3=«ñ²iÑ�VDÄ�%‡f&GÂß*ÙVK†ar0óæÍ+^¼¸Îeü»ï¾Fïê4¹jT¥Jª–ãÆ�»wïž,`ŽZΜ9Ó¢¬³(<`À}µœ;w®Ñ%HIhh(µæ¼yóúúú&%%iK¾6µ„ë%$$˜\�Í8+Vܵk—EÙ\¯^½Z³fM�6�ª%Ýx%W®\ýû÷‡¢Êæ¨åúõëõÕrÓ¦MoŽZN6�%‡f&G"¾Ù²:
 &�°Z2““€$>7	JLL1b}pRËÿ³wÞaUÛÿö&Ñk‹€¢€Š½ÄرÁµb�±ÅDÔPD@
 b\ņ,XcoÁXŠ
b¥HQAD@ö$ßÏïÌ“óLfÃ>çBô®÷³×¬Y³¹÷¼ÎÞ3PËŸþ™W˃Ê«å•+W
Ëc;v¢ÁêÕ«ù…ª%Ûa|þùç0ب2[•ç’ �ŸŸŸžžzü\ëËÃÃC–‰	µä‡V–jYÔ±¨ÕóçÏQ
CCCåX„½dìWÊÊ7�î¤
-µ<qℼZ²·DцmL„ñB-Yw…v*UË„„Ü(,#T;  €_Ñ.žZ²9e/®âN

mÙ²%‚°”¾þúë7no^‚ þiÐ?X}Ô�ZQްÏÒ¥p×®]3gΜ7oDÌÒÒR~ɲB±ÔòÕ«WQQQK—.…Êy{{oÛ¶
"Æ;W¡jÙ­[7dåëë»fÍüÿæ?üàååå¡àܹs*ß•KNNF_øŸSwww777D[·nÍÁÁ)yzz¢
Æ%¬d•D-Ù6>ˆ<_qÛÃþ©ð ¡
+µ<qℼZ²·DцmL„ñB-Yw…v*UË„„Ü(,#T;  €_Ñ.žZ²9e/®âN
mÙ²%‚°”¾þúë7no^‚ þiÐ?X}Ô�ZQްÏÒ¥p×®]3gΜ7oDÌÒÒR~ɲB±ÔòÕ«WQQQK—.…Êy{{oÛ¶
"Æ;W¡jÙ­[7dåëë»fÍüÿæ?üàååå¡àܹs*ß•KNNF_øŸSwww777D[·nÍÁÁ)yzz¢
Æ%¬d•D-Ù6>ˆ<_qÛÃþ©ð ¡
 ‚^
 ÝÆ‡e˜––†´1qðô#F›/a�êâÅ‹1Ò+VLž<Yø¸¤““<
ÐSo``ÀÛ¥:jùäÉ“µk×¢¤,pvvÆ�ŒÙG̓‚‚¦N�ª««Ëw*UË·oßFGGãÞ˜;w.†³eË–””þî*žZ>|ŠùEXd…È)RBžÈmïÞ½òBADÙ@jID9Â>K—V4|È·²²Òè¸ùb¨¥J¤j©­­ý믿*ÀC]]]«U«¦l`ff[ÂáÃ+ùc)Z·n}õêUÞyK¢–Œýü‚#çòåËì¡Pic^-nݺգG~•�-Èòm¾ÿþ{~¢!}°6åosssíììøç‡ÕQK8)ÿoµjÕBù¶¶¶üƒ»E�k)C1Ô2>>ÞÄÄ„oðí·ß¦¦¦ªß)AA”
¤–A|2Àq`mS6j©¯¯µä-ÏÍÍ�_˜kܸqTT”ÊÇbåqvvæcÂŒ"""øUÅ’«¥”ÀÀÀ¢ÔRµ¼ví\›WK—§OŸ*`PVVV|zˆ–�� lðâÅ'''^ÞUª%bâ¾€Ð̘˜eLŸ ïe£–III
6䘛›óƒ%‚ ˆ¤–A|2C-a‘‘‘|�£G�òþ¥££¤Ñ‡ð‚o¿ý–WKHÊÉ“'y˃ÓñGÂÅ÷,ÐÕ5j(cjkkc,¼ø›ßV©RÅÛÛ[Íb‹âC¨åùóç;wîÌ¿q9eÊþô8aÂ>=~#ÖììlGGG^-›4i‚jÈì‹Y›>}:oŽ�\eƒ—/_ÚÛÛó
ÿþý©%’üæ›oäÕ2<<œWK¼eË–|ƒ.]ºÜºuKýN	‚ ¢l µ$¢a•K+Z1ÔRKKëæÍ›|�Ó§Oó'tèêêk¤–ýúõãÍH¥Z6hÐ@xö²Ìœ9“—)ØÖ™3gøN£¢¢êׯ¯l€-ZTè(�Zb\üB^^^ž°jÙ°aCh ÌΫ(&EGGGy	<cQ6�ª%صk—Fge>zôhøðáòÏl‡††òeIJJjԨߠÿþñññêwJAeÃG­–ãÆ�SùéE
 í:EŒ�;wjúçƒ?ºÒÍ�…-­hê¨åçŸ^¥J•êÕ«C¬ð
æÈ‘#ÙÙÙ¸þ˜••åã㣭­Í_bmm�’’aÌS"dff?~¼yóæ|•j‰W¬XñôéSÖâ¨<�ñ�?þ@´d]#8<¾ŸÂè`@¶¶¶Ây¨’A×h÷HOOgAP
{(W#µ¼»\Ô²bÅŠ¸
@@ -10956,13 +10956,13 @@ p
 <þÜÃãF�B×”6žï¦¾¾þÚµkE7Äò
xñâb²§Ù!
6ܵk{D‘•Ù¾};|“¯‡¤§§An߾ݲeKQÕ<U«VUª–2Ù¸sçFA^-ƒƒƒùMdΜ9S¯^=¾@»ví®_¿.,‚ ‚(^H-	‚(FØ¥rLKK»råJrrò­o*ºwïÞ»wïþ‘]Ƨðjù÷ßïØ±VÒ¬Y³¦M›Zp˜››7oÞ¼C‡¢õa¤HÕvvÿþý›
 RRRð+¿vÐgõÔn˜ššÊ‚<xð@A¥ZB£~ýõW[[[tÝiÑ¢…���t!VSSSôàƒ#GŽ<uê?µ‡ü£#×®]àܸqùôóóëÝ»7aaÑwôåôéÓh$
 À×ð_²6iÒ­š3gΑ#G`m‚b{öì<xp«V­PÀÒÒ²Aƒ¢Y¥j‰aÊÌÌd©`çÆÛ·oùsCµ5j,Í€Ûž<y­â‡€Ô’ ‚(±�ZQŒ¹ZNž<¹|ùòÕªU3øú@Ù^«V­âgо†Z
-@Ä^ü˜»5tèСҽ-dÔ´aÆ5j ©P?èÛ€Ο?Ï·S¥Z¢ãS§NE6Ê–-‹mÚ´9zô(ß©Jµ“��Í:
}æg	!‰>deø=FùœCq›Ømذá²eË�ô…ÅÄá“&MB’‘"¢žžž››Û£G�óÝ»wŸ7î.]ºÔØØAØ*|r‡,Ô»G�|†¥j	½íÙ³gÅÂMe[vFDD°øuÔ’�Ž óJ”Ô’ ‚(™�ZQjxûöíÈ‘#¥;D|m<==ù%w¾ªZÊàëë+?q)RK8š——¿¬‘‘Ño¿ýÆ›£Jµ¼zõªh‘™Ù³gó÷sª©–<�8kkkÞªæÍ›÷êÕ+™CÐÌÌL(³

å�j‰Aá�nüøñü¨´œO :›˜˜ÈðððàWR’ªåü!zfÖÁÁ+P_-e µ$‚ J&¤–A”ŠK-çÎ�Ëo¢…ZÆÄĉZ²é¶/ѯ_?~ýœ¼¼<þ�úõëGEEñ{&ªTËÓ§O›ššòµL™2…×@-ÔòÏ?ÿüñÇù:&OžÌ·\
+@Ä^ü˜»5tèСҽ-dÔ´aÆ5j ©P?èÛ€Ο?Ï·S¥Z¢ãS§NE6Ê–-‹mÚ´9zô(ß©Jµ“��Í:
}æg	!‰>deø=FùœCq›Ømذá²eË�ô…ÅÄá“&MB’‘"¢žžž››Û£G�óÝ»wŸ7î.]ºÔØØAØ*|r‡,Ô»G�|†¥j	½íÙ³gÅÂMe[vFDD°øuÔ’�Ž óJ”Ô’ ‚(™�ZQjxûöíÈ‘#¥;D|m<==ù%w¾ªZÊàëë+?q)RK8š——¿¬‘‘Ño¿ýÆ›£Jµ¼zõªh‘™Ù³gó÷sª©–<�8kkkÞªæÍ›÷êÕ+™CÐÌÌL(³
å�j‰Aá�nüøñü¨´œO :›˜˜ÈðððàWR’ªåü!zfÖÁÁ+P_-e µ$‚ J&¤–A”ŠK-çÎ�Ëo¢…ZÆÄĉZ²é¶/ѯ_?~ýœ¼¼<þ�úõëGEEñ{&ªTËÓ§O›ššòµL™2…×@-ÔòÏ?ÿüñÇù:&OžÌ·\
 ô­aÆByH_HH¿…GjjªÈé~úé§»wï
 0:“&MâͱAƒW®\
  ×îîîòjyéÒ¥¦M›òÙ8p _K‘¨e‡H-	‚ ˆ©%AÅ»T.ªhÅ¥–ø÷úõk¡Z¨¥t¶Kµœ3g޼ZvìØ1--M(ÿîÝ»yóæñóthÃÖ­[E³–:::B©Z&$$ðÓ…e‹á𢭅Z^¸p¡S§Nü¬åŒ3øõr¥<xð€WË*Uª„††òjyÿþ}Ñöš8UÒÓÓù 0G¾�ÆÆÆW¯^~…q«TË‹/BÏùl888<|øP(P$jimm}ûöm™lAD±@jID1Â.•‹*šRµdk{–+WîK«ªI9J×/ÕN-Ù
 ¢øòÇ»wï644äcª©–,ÛÖdâĉÒ�/…–ÃÔ 5üÜqÙ²eh›Ð/HbTTúò·‚ÏŠ¿Þ¢{DEj	eƒ*B²**@�°°0Þé´PË{÷î
>J‹²¹K???ÄA®Xä+¯ŠÔ²R¥J¾¾¾è¬P’ˆzùA<xðÍ›7…˜mgggþäÑB-¯_¿Þ²eËrÿ‚. å¼+UK•'˜pbQ):##Cå¹AAßRK‚ J
RµÄûF�uëÖ­GQЧOŸŽ;žD×ÿZ¨åû÷ïÏœ9sòäɸ¸¸M›6õë×OdÄ*Õ6„			,ÈáÇÍÍÍEJR«V­îÝ»÷ìÙÓÚÚÚÁÁeDË·B…<==ûöí‹áÕÅÅÅßßãÆ�111'NœØµkzÍ{�ÒbwîÜ9uêT''§Q£F-Z´bÈïà©…Z"QG�õööþé§ŸÐ*mýúõDg‘É””$�L‘ZBÁ xóæÍÃ!ñññ‡š>}º��Ÿ}}}|yàÀ�ãÇ�#�,`køF-qFFFbô­¬¬lllfΜ™””Ä�ª%2caaÁN°Þ½{[ZZŠþ}¾Y¿~}üÊbN›6íôéÓm-JAßRK‚ J
RµìÚµ+ÄR�““ó²dfffeeÁerss¡<lÒ¨åž={ð%ÜDWW·R¥Je$¨TK4ÉÇÇòˆÃ«W¯Î–x	†B'³³³E»@
 |øð�Gêðæòå˰K8bêèèHo-Vª–HË›7o�Ô"U-ÔRM„EãaéÒ¥uëÖ…s±;~¡�PB¾.‘Z20è…žžò¬t6ÃP¢S(&ÍžjÉ@³_)‰ügej‰�.\@J1
-‚G�õìÙ“¿gÈîÝ»Q;Ò«4&AA”H-	‚(FØÅsQE“ªå׸upçÎ�¢çé4UK¸ØèÑ£åŸ	U©–ׯ_oß¾½Rcb@š’’’4êŒÏÑÑQ¦aJÕR­Õ’Çßß_´·#rÎöa(UËB¢µZÊ UK???þÑT0fÌ~LLLÐ;�ÒEAÅ©%AÅ»x.ªhRµ„Áñ‹¨	‘‘‘uëÖiŽH-
Ä«¥¡¡á±cÇxµôöö®R¥ŠŒ×Œ7N¥ZvîÜY:ׯ‹O\\oªJ�+•j¹mÛ6�Ôòùóçè‹H-å—{•.zuáÂ…¼ZŠVˆ-Dj)]!#Íoâ©’»wïŠÔrÊ”)üŽ0ÀÉɉ_n¨~ýú)))¥‹ ‚ ŠRK‚ J
Rµ5jÔýû÷¥%ÿÑѱkÖ¬‘WË÷ïßwïÞ�Í'²W“sçÎñ–7sæL¶¡¤Ò%ƒÊ(¶Æ€”ÉtjÙ©S'yµŒ��gíWÚ)<@½,�BKxtuu8ÀdJÍÔåææº¸¸ðjÙ»wo6k©fÂAPP¬–oU@@SKVùoÒ¤‰4	|J•"SNÇöøšäééÉ«%µ{÷nv_®šÙ@ÇíííysDLöoB™1cư¬U_RKùŒAÄ·‡Ô’ ˆRƒšj™“““ššzûöí;ª¸yóæ£G�DÓRk×®•W˼¼<77·¦M›š™™5nܸaÆ}ûö=|ø0‹y÷î]¼úøø´hÑ¢Q£F�%˜ššâ@àw‡”¢R-‘‡°°°{÷î=|ø�…žðV*5.Y²¤mÛ¶ÆÆÆ05t¡F�¼vA¬üýý‘ÄT™=dþñãÇÇ�‡Kòót­[·>vì4–¥‚ãrãÆ�ììlÑdë–-[:tè€L²!?h'2pWB¡–zõꉜÑÐÐн077700à`dÔ®]?¡@Ë–-QXT Zµjû÷ïG/�Ãôôô¤¤¤AƒñVˆòógÏ¢(£2!rôèÑ®]»ò3ÚˆÇjae¦M›fii‰sÃÄÄoÆ�/ýGh5FáÖ­[JOQ‚ ‚(H-	‚(FØÕuQESG-!sçÎíÓ§O¯^½lTѽ{wüóÏ?ùçéTª%€Áž<£Œ��ýí·ßÐ’þýû#f0#h~=ò_ðMtt4DIPŠJµdviggÇÖYµ¶¶^±bEnn®|XHJBBž={ A'Ožttt­2I„*2„uGT=tèPѲ«vöÃ?@©¤ÐÎÎ�;#ŸpRÑdÜéÓ§÷íÛwXåçç‡8ÄÖÖvðàÁ¾HnÍš5ñññH&:‹äÓ…�+W®Ä¯©ÄÄÄM›6µiÓFd—ݺuC/ˆÓª4ÛøÞÞÞž5FtvĈv©áÂY-(ƒÓ288øÐ¡Cè&F�­ð##$'  ''Æ-=z4N�î|&‚ ˆ¯©%AÅÈ·WKùõs¤øúúæääÔQK¸ò711á�騜C”GµѨQ#M„	

ÕÑÑÑ(]…§~ýúðqùåqÜÝÝ•®¬Ë¨V­†‰_L533ÓÙÙ™?dÒ¤I¢õs¼¼¼¤ƒ~{¢¢¢äû¾uëV===¡|�56nÜXÈÓ‰ ‚ 
+‚G�õìÙ“¿gÈîÝ»Q;Ò«4&AA”H-	‚(FØÅsQE“ªå׸upçÎ�¢çé4UK¸ØèÑ£åŸ	U©–ׯ_oß¾½Rcb@š’’’4êŒÏÑÑQ¦aJÕR­Õ’Çßß_´·#rÎöa(UËB¢µZÊ UK???þÑT0fÌ~LLLÐ;�ÒEAÅ©%AÅ»x.ªhRµ„Áñ‹¨	‘‘‘uëÖiŽH-
Ä«¥¡¡á±cÇxµôöö®R¥ŠŒ×Œ7N¥ZvîÜY:ׯ‹O\\oªJ�+•j¹mÛ6�Ôòùóçè‹H-å—{•.zuáÂ…¼ZŠVˆ-Dj)]!#Íoâ©’»wïŠÔrÊ”)üŽ0ÀÉɉ_n¨~ýú)))¥‹ ‚ ŠRK‚ J
Rµ5jÔýû÷¥%ÿÑѱkÖ¬‘WË÷ïßwïÞ�Í'²W“sçÎñ–7sæL¶¡¤Ò%ƒÊ(¶Æ€”ÉtjÙ©S'yµŒ��gíWÚ)<@½,�BKxtuu8ÀdJÍÔåææº¸¸ðjÙ»wo6k©fÂAPP¬–oU@@SKVùoÒ¤‰4	|J•"SNÇöøšäééÉ«%µ{÷nv_®šÙ@ÇíííysDLöoB™1cư¬U_RKùŒAÄ·‡Ô’ ˆRƒšj™“““ššzûöí;ª¸yóæ£G�DÓRk×®•W˼¼<77·¦M›š™™5nܸaÆ}ûö=|ø0‹y÷î]¼úøø´hÑ¢Q£F�%˜ššâ@àw‡”¢R-‘‡°°°{÷î=|ø�…žðV*5.Y²¤mÛ¶ÆÆÆ05t¡F�¼vA¬üýý‘ÄT™=dþñãÇÇ�‡Kòót­[·>vì4–¥‚ãrãÆ�ììlÑdë–-[:tè€L²!?h'2pWB¡–zõꉜÑÐÐн077700à`dÔ®]?¡@Ë–-QXT Zµjû÷ïG/�Ãôôô¤¤¤AƒñVˆòógÏ¢(£2!rôèÑ®]»ò3ÚˆÇjae¦M›fii‰sÃÄÄoÆ�/ýGh5FáÖ­[JOQ‚ ‚(H-	‚(FØÕuQESG-!sçÎíÓ§O¯^½lTѽ{wüóÏ?ùçéTª%€Áž<£Œ��ýí·ßÐ’þýû#f0#h~=ò_ðMtt4DIPŠJµdviggÇÖYµ¶¶^±bEnn®|XHJBBž={ A'Ožttt­2I„*2„uGT=tèPѲ«vöÃ?@©¤ÐÎÎ�;#ŸpRÑdÜéÓ§÷íÛwXåçç‡8ÄÖÖvðàÁ¾HnÍš5ñññH&:‹äÓ…�+W®Ä¯©ÄÄÄM›6µiÓFd—ݺuC/ˆÓª4ÛøÞÞÞž5FtvĈv©áÂY-(ƒÓ288øÐ¡Cè&F�­ð##$'  ''Æ-=z4N�î|&‚ ˆ¯©%AÅÈ·WKùõs¤øúúæääÔQK¸ò711á�騜C”GµѨQ#M„	
ÕÑÑÑ(]…§~ýúðqùåqÜÝÝ•®¬Ë¨V­†‰_L533ÓÙÙ™?dÒ¤I¢õs¼¼¼¤ƒ~{¢¢¢äû¾uëV===¡|�56nÜXÈÓ‰ ‚ 
 ©%A¥uÔÒÓÓS~ý¸n‡"²AµLLL466æY¶lS’““5UK-–f-µlß¾ý¹sçø½ZDÀÇŽ+£–U«VýùçŸùß¹sÇÖÖ–¿/wذaü¹�ê ›ü3¡ÅÌQ~ÛJà÷èÄÙ¸}ûvÚ”„ ‚(vH-	‚(5¨£–Ó¦MÓhf
 j)’-Ô2%%ÅÔÔT(\·n�Fë¬J�+uéÒE#µÖÏQŸåË—‹výø4kÖ,>>^F-ÁøñãefŸ«T©öîÝ;¡üÇÌ?)9zôhÑÆ4%dÖRÞ·lÙBjIA”@H-	‚(FصqQE+9jùÏ?ÿüý/P¤˜˜Ñ!Ó§OÏÊÊBÉ¿% <^¥Ë~ò1ññòåË}úôAgË)£|ùòÒUOÍÍÍÏœ9“——ǪPçé<©Z",‹ÿ¥ZÊ(ÜY( Žüò1ñÑÊÊ*11QÔ<!3Ÿšôïߟ_‡UÊ@4==½ààà—/_
 Ý„‰ãd€r²ºð:qâÄÇ�³È-Fpøðá¼{òù6 UÕªUÖàý¤–ADɄԒ ˆb„]U´’£–·nÝÂÕþo
@@ -11211,7 +11211,7 @@ L
 Z<+�J4ê‡~À=ƒ"ðóÔ©Sìº*á§±±1b•ƒ{BíèVÚYW@¥����P”€J!!¡/"ö„œ{;<T~váy~Ù²e¬"0ËüùóÙ³=[îG33Agƒf'w€ÚüýýÉ=í¼ª÷ñ9•'Ož¤™™`à	Ûb(33344¨Â’@v			¬€nݺudÍÎÎ4Ä’A°@I H0¯F•çÎ�#¨„Ù•+W’7nܰ±±aI€ÄyóæQ’T‚˜ø“a.±$	TÉÚ‹/øRÎÎÎt 	 rúôéì:b…ÞdC~€ë]»vYZZ²$€¨™öÆÈT!	è4Ú	Ì,©Q£F.\`×oß¾M+pooo‚ʸ¸8~D²~ýúd
¥@ñ@%Û·oßFGGÓ‚MøI‡`"D“&MBYÞ`9�€J!!!!¡<(•BBB_Dì	9÷v@Uýúõû'žÞ¡’%K±Š€EK—.Å#½žvžm×®]iE$`ŠÀ(1pà@rïÒ¥K¥K—fI NvN¥FKLgÏž¥¥Ž@Ñ#F0¨9nÙ²…vàÐf5¨“ÒV!>;v,»Ú"¨Ô|¼¦ÒÜÜœºvíÁT©R¥ˆ 5ÚC0‰yy¨DEüa$-^¼˜â@P‰×:ÐÌØŒŒŒñãÇS©víÚÑ™),A%`½	(Ó|Øb—â€0®X±‚Ü;}ú4A¥µµõáÇÙuß¡C‡Ø4Wø¨¤ã<Ð_�:ubEôõõÝÝÝiú+’ªW¯Nî988PE¾››»nffFÛ
¡a¢u[[[ÔË’ÒÓÓG�¥ûÔÎì?qâÄçÏŸgõÉúßI@¥��P¾VjjªŸŸß?ñô®§#�û,_¾¥÷*i‹›§OŸÎš5‹FÇFŽIîèÀqì: ²W¯^ì:�äÌ™3Äzì„M6x÷÷߳РJ•*EEE‘A€-¹ÇC%@†öPLEi°ØØØŽ;²$ÐÖ‚ˆõ.^¼"#Zá÷Ò¹~ý:•ˆbBîÕªUëÈ‘#,)ûPÙºuk©¼y󦯯/»Ž£G�4Z¨ÿ’ÆÆÆ£G�¦e•ˆ	
‰ZYY<x�<�ŒŒdìµhÑðή߿¿gÏž¼7nÜ`IÉÉÉüH%ú…¬Ý¹s‡ ÑÃÍFIaaaÕªUcI`R[4¿}Ù¹Ár Ü{?ýô“Úi&BBBBBB_D*…„„òµ233ñ0߯_¿Q£F�;Öÿ3	ü2bĈÀÀ@ «HT¾}ûx‚Ì:ñS1³	•H•L™2¼иqc6™VO{NJ§N�f̘±lÙ2п�«TêiqØÛÛ{ÕªUàS86uêTÄgèСxÅ×2qáÂ…HÍÑ,Í‚6hÐ`Íš5HZ²d‰d8’ òýû÷III‹-Bc�Ï›6m¢í}þüóÏlB¥……Ř1cÐØyóæ}ÿý÷*T`×%PÉ�T" •+W6l|ƒ‡=zô k¨<œÈ‹Ð-^¼xîܹˆð„	гÇÇ4
 aÍ™4i.¢°qãÆ�d�‡J4ÊÆÆÁ„ç(T§…“vvv• ¾. ;àíçº!™à9ÜÎå%BBBBBBŸ]*…„„¾ˆØ£ø—öâ¨}ðÓ_‰7uÏÿ´:XÔ³gOvP	ölÚ´é§Uý¿•tV…*yU­Z•vzüø1x™P(›233™fÙØôïߟÍJ•@å“'OÀDYV$‡JÚ$G‡¬­­i´T¢èèh–
¦6lØ@ñ‚YPQíx4­ÄÔ!9<<<Ë						}•Ê¿PÉŽAäÏ[$±ss†Ôf­rá�TC†É›§$ÑŠ¿Âë©—¯žù…ò—òÝ
¨\´hÛV__¿[·njG(òTÒq–à¬îÝ»³ë€|Öh›—œ©víÚ´‡�¨LѲ
<øS+T*~ÙJ”––ãŠP	˜3fL–+VlРAlMå«W¯6nܘM¨<qâ„¢K ÷úõë³l–––Û·og×ß¼yЦ]€ªT©rýúuEøênÓ¦Mv|Ë2DBBBBBB_¥ò;TV®\YN¸¨—¨Ä#DnŠËS0˜¡’Å�‡J	�#I/_=ö	ýsTÎ�;—-œ1yxxÐéЕ+Wˆ\ ÚÇ�ôáèè˜%­èp‰ÎFÔ•+V		aÙ’““===?µ¢%JL™2%ËÆ>xðÀÛÛ[qúëË—/,X�eE¦¦¦øÕ`�ûÂÃÃù¥Žj²µµ�ŽŽVt)22’F*ëÖ­{üøqv]B¬666/^T´pïÞ½nݺeéƒ��êÊ2DBBBBBB_¥ò;TÊÚD…TêV»víØ³@¼Çu>Ûç
…�Ðg×»wïCCC>Ãx„éíÛ· ‚ÃZ�ø ƒZ=yò„7’‘‘qæÌ\�ŠŠ:!.9rd×®]^^^®®®]ºt5jÔš5kvïÞ½wï^Ôä$k ©ØØXAêÒ¥KûôéÓ¾}{'''?C2--mñâÅ ¯¶mÛ‚wŠ/ž%¹èiIkԨѪU«Î�;ÓN¤T.\8ÖE+__ß   ;vÀŸÀÀ@Ú[&û*R¤øwýúõÇŽ¾ÉC!Èóçϧ=T%P©ÑÚ¢¥ß}÷]óæÍ[(	�òóó;uêíBƒî›={6¾”`
 ¥ø#D�ŒŒZ¶l‰  ¶hà/¿üAî=ztçÎ�ÁÁÁ@qww÷y󿥦¦2ËÙ‡Jô,¾ლ爌³³3~’ØÁ L¸qÛ„kgè8QùÝ‹6¢köíÛwùòeÚ¼èýû÷ýõ×Õ«WÑ"ÜH¬Eh‚ƒ’»WHHHHHè‹+¿C%Yã¯ã§ŸncïiD�–’hÃOž­Q2^1*dâç€!sƒ®³AR&怼,{î0ÇèO=íØ+Ùç�Ñã°TíºW%b
GAT'¡r‰tÛʱØ]š{;xÀ(1ªT©vGPÒÇÁYß~û-ðªN�:7¼²?.\HÙž?¾jÕ*{{{�EÍš5Y6^¸ˆ"€¸Û·o?xð ..nÅŠÍš5³´´,_¾<˜�úìøBv.$<A0Àh€RxMII‘lÚ	`¹sçÎÍ›7:ê¡íLu¨^½z¨ܽ{—¶B¥Æ²<°ƒÚW®\	†³L|||¬¬¬àm‰%²¬BQ…
-*[¶¬b|ذª™™å—C%ÚŽïÄtyYI×®]㹌	t–���˜˜ˆoK~m£��L!ñññ 2)ÜÃEæLíÚµá:´[·n ~dKNNæÿá�}¨Ôh7ƒ‚jž_¹råÖ­[4d̺uíÚµˆn¶J•*µnÝšŽ•÷ÒèÑ£K•*…ÞAëh»!Ä
ü·ÕŠ‚Ÿ5jÔ		yûö­š·BBBBBBÿ{åw¨ÔhM‰%ñC�: ’,h>�”ŒT2L#<d±Á>Jj§_Šážd¤Rò,Í»¡Ñb)Ñû˜‰7Õ®ëpUMº¡2÷«S…„Ô$ù äX€²ï¿ÿžY+R¤È¤I“(	(îSD$Æ€힥üV¢j200 ) x¤

°$ ->kì9èZ¡R`UªH‡À8°�åþ9%)ZTOX6 ““SLLKò´oß>Ë~^*;uê¤6B—�ý
+*[¶¬b|ذª™™å—C%ÚŽïÄtyYI×®]㹌	t–���˜˜ˆoK~m£��L!ñññ 2)ÜÃEæLíÚµá:´[·n ~dKNNæÿá�}¨Ôh7ƒ‚jž_¹råÖ­[4d̺uíÚµˆn¶J•*µnÝšŽ•÷ÒèÑ£K•*…ÞAëh»!Ä
ü·ÕŠ‚Ÿ5jÔ		yûö­š·BBBBBBÿ{åw¨ÔhM‰%ñC�: ’,h>�”ŒT2L#<d±Á>Jj§_Šážd¤Rò,Í»¡Ñb)Ñû˜‰7Õ®ëpUMº¡2÷«S…„Ô$ù äX€²ï¿ÿžY+R¤È¤I“(	(îSD$Æ€힥üV¢j200 ) x¤
°$ ->kì9èZ¡R`UªH‡À8°�åþ9%)ZTOX6 ““SLLKò´oß>Ë~^*;uê¤6B—�ý
 z–’@|µjÕRt£AƒŠ´jÛ±cí:W[S™�åû÷ïO>T¬X੘óÆ�õêÕcÙŒ��ièX¤Ø¢bÅŠùûûó+$$$$$ôÅõ@%Œ°è'­²	•ò©žŒû$P)Á.nì=Šó‹x/�85¨ä
ê}Œ~´Œ‘¹Á{λ'¿®ÛU5é†JI…„ò €„C‡eÏÛ€»©S§RRBBBË–-å�åȆÇrÊ0`@–”ôŸÿügÆŒŒ’233·oßN'<–(QðîÝ;�–7•l³=í^:Ù™¬bZ°`?½SQ0ëãã£háþýû4õÙZ·n}á–ïîîže?»|“Ï¢Ç�ûùù.\˜wtt$ZOJJB{Õ|P:tÓÎ�;	*«T©û¹\ÍÈÈ;v,
 S©R%µC@@²t‹ZXX,]º”]3ò3Xxá>ÄMÎO·úâú
  ’G'6L™M¨¤™¢’ÕŽòQK	ÁÑ~hRó�å&‡JÅDZäÈ7GïcÕq]·«jÒ•4ÁXGq!¡/.<]¯\¹tP­ZµÆ�ã;çìÙ³¼®X±Bqý ±±ñäÉ“y!!!-Z´¨Q£FÕªUmd‚°¡››ÛþýûY ÉåË—ñÙAdhÚ´i``à™3gPï¹s瀇Mš4A)[[[—ÇÇÅÅݼyó§»wïò\V�ŠŠêÔ©>’¹U´BE¿þú«¤ùlZæ�~øáøS³fM´eöìÙ<`y€cË–-CYØ)S¦o–*V¬XõêÕÁDfff„Hr)R¤|ùò�¹¹9o?~\Òp�~JJŠd íõë×ÉÉɈ|æ9ï�äø*cs\�œœÈøwß}G9ïܹÃÅÂSSS„½0sæLšR¼#òðÝ4zôh###V¤dÉ’ÈyíÚ5$ñÞÞ¾}„¨ãöûïÿ‹ÚáA{q'à>´··G/~À�
@@ -11247,7 +11247,7 @@ _
 ÒÕÕeIˆðùóçe]½}ûöÏ?ÿLq(îÿ‘…„„„„„ŠI%*ÿÇ%9ºGH¨d‰½H²ênܸAÓ‘ÆÆÆÁÁÁ”Ä¿ØKdcc³víÚ¬š¦_½zk²•/_~äÈ‘ï‰T…ˆVt«^e
ªRÅŠùé°äääÆ�k,ejjJ_æ>œ2e
 ÔQœc³fÍ–”—— ë;;—êEÊ&éUÊÍÍ8p •j×®¡±D‡âé( ìyâÄ	ÙHîß¿,ɬU«V�_¡ºoß>ò¼jÕª´ü•jGšgtpp @=zôÇÐòW„èøñã²®ê[·nͲ>\c„„„„„„¾@	¨,¹R>YHHH(??ÿôéÓà…o„÷ù?ÿü344”¦äÔC¥‰‰	HÌ‚·ýñãÇߺu‹rœ<yrÇŽ 	0=6þóÏ?çÏŸGE¨ŽÕ›””Ê8{ö,e“@%¸¬fÍš�:uB]ø9aÂcbb"Y8zô(~¥c`™þú믡C‡¶mÛÖÕÕ•Ö^0¶iÓ¦œ��ùÓ‡bæææ­ZµrssYƒw8pèС={ö¬X±bÀ€(Õ±cGdP•à£öíÛ¯[·áäÔ©SÝÝÝQuõéÓgÞ¼y;wîÜ»w/’1<o¯�ä$''§Ã
-Áð2eÊÀ`&ÂuîÜ9™pCü‡„„„¥K—ÒjUõP‰¦i„Ê"ÅݔӦMƒ¸Ú·oßÈÈH8€àÇÇÇó[_


½¼¼*”’’ÂßòyïÞ=”êÒ¥K‡BBBîܹCnc0x{{£ƒÐS°çÑêY6,1JÚv...ˆÚ‹T±qRHHHH¨I@eI”òL!!¡"ÅMàÀK�:uð~ŽWzüa5jÔˆõP	–¼|ùrrr2çþýû¼ñ­[·Âš��
ò„‡‡Ókaaall,ؤ~ýúÈÐL!¸aooß«W/Ù™J€œŒŠŠ3^¹rå¿ÿýï¤I“êÕ«W·n]ò¼I“&þþþÙÙÙ䀿¢HZZü¡�{FFFÀëW¯‚:™µ*Uª& Eì×1cÆ4mÚui€`($¥§§ƒ‚Õ\ë	ô³¶¶®]»¶££ãĉÏœ9ƒŠP
+Áð2eÊÀ`&ÂuîÜ9™pCü‡„„„¥K—ÒjUõP‰¦i„Ê"ÅݔӦMƒ¸Ú·oßÈÈH8€àÇÇÇó[_
½¼¼*”’’ÂßòyïÞ=”êÒ¥K‡BBBîܹCnc0x{{£ƒÐS°çÑêY6,1JÚv...ˆÚ‹T±qRHHHH¨I@eI”òL!!¡"ÅMàÀK�:uð~ŽWzüa5jÔˆõP	–¼|ùrrr2çþýû¼ñ­[·Âš��
ò„‡‡Ókaaall,ؤ~ýúÈÐL!¸aooß«W/Ù™J€œŒŠŠ3^¹rå¿ÿýï¤I“êÕ«W·n]ò¼I“&þþþÙÙÙ䀿¢HZZü¡�{FFFÀëW¯‚:™µ*Uª& Eì×1cÆ4mÚui€`($¥§§ƒ‚Õ\ë	ô³¶¶®]»¶££ãĉÏœ9ƒŠP
 ˜9hÐ ´¥F�H
 C)
 MŸ>�&4u[YÑ€¡­­-¼*3oa¤ädÇé nhΰaÃÐ}ˆ$8‘Ö¾j„JÖvõP	û<@×®]ê¢j8€^C)ªLúúúxˆ®ñôô„qÞ855„)þ9;$
@@ -11261,7 +11261,7 @@ t
 
 
 ¦M›¦\Q¹råø�«¡u”ÓÎÎîäÉ“²ÙNœ8A{KÍÌÌèJM‰‡:uê�AGGGJºsç!9 ®RÒ±cÇxã111ìùßÿ�Éö‹±±±d-éþýûàM–MOO MÑû믿~úé'²0jÔ(5Ky?�$É.M¦ÉGð5sõ?ÿùOÑ¢dBA–™‰mfÖ~üñG�73žT„l²'ôœþȹ'q@HHHHèH@¥��P‰@fòäÉìe»iÓ¦üfÉ"Å÷`–ÜÜÜl9åääÞ¸q/«àP•………•B–––xÂß|a``àïïÏfè`611±]»vxhjjjõF&
-r��>äë…ŸÿüóÏêÕ«K•*…RÈÜ£G�S§N½xñ€jÀ·¥¹¹9’Pu¥J•�3�fG�E½O

•¥Å‘¡€À¯��Ío¿ýÜ.RÌ“ž9s¦E‹,OåÊ•áÅÈÖ§OÔ…–âU|Û¶m”táÂþxG}}}{{û%K–Ði<d¸—™™9~üx[[[´ž»¹¹!h~ïÞ=vv®‘‘QÍš5ùãn�*{ê,, ’YYY²ý÷ÀqðQBG€2I™E€öP¡={ö¨á9"F–\BB¬:wî·a
D×ðI•¨ÎÇÇÌF†ñýû÷»ººê)&­£-QwïÞEcÙ`¨P¡‚d©š©„Á…¢ëÙ+èhJJKKëÔ©³ƒS¦Lá—û~zI ’­neÇØ�2ú£‡EÜvKš¾dÖhÅ,ãDÂOZ1KU�¾ÞoRå€����PqK@¥��P‰ˆæôéÓ¿ÿþûâÅ‹ãââèú"ÅÞº„„`ŽŸŸß %
8Ð××7  f̘�÷ùˆˆˆeË–EGGƒð¿<˜¦#�C†¡Í˜ ¼,Z´„Åòã'ŠÌ™3ß{‡áÇ#?jaÕáó˜1c�„º,X>sæL GPP|@þI“&Íš5­X¾|9³‰œÓ§O;v,òŒ9rذaü„/�‹‹‹âË«V­ºxñ"[!	¨D|š7oNPIj,D'Nœ@~T�zùU»<T–-[l–�?7näƒº9xð ßÉ���ùóçÄ3x‚8:MHâ!’6lØ�’’BbH’…JM¶ßÁ×QQQsçÎeu‚ú)àÀ�Q£FMœ8t†ȹ}ûv:´V"Ä!11c½	ƒ<‰*ÝÝÝ™K¥J•²¶¶öòò=z4Œ£R‡e„%,,A€è)¤¢£gÏž
kˆÍAKÑã²>°«-×­[‡��qȯûTÒL% Æ¿¨äE€©ÃM/Òg=V�a }f¨2`Òg•lfO$XÊKÖ!!!!¡â–€J!!¡Ï"ö.Z¬UdggådŒ°QժȫW¯vîÜY*U	h”à·=’J—.M+c_¿~½oß>ÚÇW±bE gAA�²A ¡£££ÆVÀJ¹¸2Tªj¬D<T¢9ãÆ�“Ívûöm@;ˆÆÔÔLM¼³yóf]]]fÁØØð%kA
Töïß_TòA·nÝZ6,íÚµ;vì˜6íU%*%jÓ¦ÍáÇY¶ëׯ÷ìÙ“=×ÓÓC‹h2£ˆ.FQ•ʢݸ_&T2�dkM†óK[™$PI'ö�*	Kiñ*“,TJ&%Iª*n	¨ú,b¯|ÅZEff¦›››,ðTò+By!i›pÀßß_ÕTéÙ³g‘‘‘²*ûôéò�Ž?N›Ù½„Ož<Q6xùòåš5kjl…™™€NÖ¥óçÏ·jÕŠeT®ZµJ›è*X)«ªcXàÙÂÂ@MI‰‰‰tê) 2$$DÖ‚*¨š!\ª–¿òºuë­ï•4ý�g¥Â8-=åUªT)—'N°l€ëîÝ»S_€ ù‘t´,:Zž«,�üàà`É-*ŸX<J¯êÈqœìL¥¬µ¢·g*I²P©q¦RHHHHè“I@¥��ÐתôôôvíÚiÄ1Stt´¬…üüü1cưl*TÀË<�›ªJ/^¼À;s™2e”+aõîÝ›eq*¿ÿþ{b.°Æ«W¯”
^»v�ÎÒQ#›e˖ɺ”’’ÂÞêï€yµ‰^rr²��+Zœ7ožl¶sçεlÙ’e377ØÒÁ¤IIItjùòåù#nx©‚Jè—_~¡CŠÔ»Ú¨Q#å⨰IÜ÷~JKK£n’çoüT"óçÏ'7oÞ¤)i###Ù	eõºsç�%e``0yòdÙ¿?|2)c ý*Ë�²{*ÙÞIp¢Äí©,âQ*e÷rªX!!!!¡b’€J!!¡¯IxÙ†œ={öèÑ£à šã+UªÞçkÕª@i¶W¨M›6
6ìܹó™3gȳgÏ®_¿~ìØ±“'Oâg```�5ûöí»ÿ~>^õQÙnݺſä_¾|ÙËË«Y³fõëׯR¥
+r��>äë…ŸÿüóÏêÕ«K•*…RÈÜ£G�S§N½xñ€jÀ·¥¹¹9’Pu¥J•�3�fG�E½O
•¥Å‘¡€À¯��Ío¿ýÜ.RÌ“ž9s¦E‹,OåÊ•áÅÈÖ§OÔ…–âU|Û¶m”táÂþxG}}}{{û%K–Ði<d¸—™™9~üx[[[´ž»¹¹!h~ïÞ=vv®‘‘QÍš5ùãn�*{ê,, ’YYY²ý÷ÀqðQBG€2I™E€öP¡={ö¨á9"F–\BB¬:wî·a
D×ðI•¨ÎÇÇÌF†ñýû÷»ººê)&­£-QwïÞEcÙ`¨P¡‚d©š©„Á…¢ëÙ+èhJJKKëÔ©³ƒS¦Lá—û~zI ’­neÇØ�2ú£‡EÜvKš¾dÖhÅ,ãDÂOZ1KU�¾ÞoRå€����PqK@¥��P‰ˆæôéÓ¿ÿþûâÅ‹ãââèú"ÅÞº„„`ŽŸŸß %
8Ð××7  f̘�÷ùˆˆˆeË–EGGƒð¿<˜¦#�C†¡Í˜ ¼,Z´„Åòã'ŠÌ™3ß{‡áÇ#?jaÕáó˜1c�„º,X>sæL GPP|@þI“&Íš5­X¾|9³‰œÓ§O;v,òŒ9rذaü„/�‹‹‹âË«V­ºxñ"[!	¨D|š7oNPIj,D'Nœ@~T�zùU»<T–-[l–�?7näƒº9xð ßÉ���ùóçÄ3x‚8:MHâ!’6lØ�’’BbH’…JM¶ßÁ×QQQsçÎeu‚ú)àÀ�Q£FMœ8t†ȹ}ûv:´V"Ä!11c½	ƒ<‰*ÝÝÝ™K¥J•²¶¶öòò=z4Œ£R‡e„%,,A€è)¤¢£gÏž
kˆÍAKÑã²>°«-×­[‡��qȯûTÒL% Æ¿¨äE€©ÃM/Òg=V�a }f¨2`Òg•lfO$XÊKÖ!!!!¡â–€J!!¡Ï"ö.Z¬UdggådŒ°QժȫW¯vîÜY*U	h”à·=’J—.M+c_¿~½oß>ÚÇW±bE gAA�²A ¡£££ÆVÀJ¹¸2Tªj¬D<T¢9ãÆ�“Ívûöm@;ˆÆÔÔLM¼³yóf]]]fÁØØð%kA
Töïß_TòA·nÝZ6,íÚµ;vì˜6íU%*%jÓ¦ÍáÇY¶ëׯ÷ìÙ“=×ÓÓC‹h2£ˆ.FQ•ʢݸ_&T2�dkM†óK[™$PI'ö�*	Kiñ*“,TJ&%Iª*n	¨ú,b¯|ÅZEff¦›››,ðTò+By!i›pÀßß_ÕTéÙ³g‘‘‘²*ûôéò�Ž?N›Ù½„Ož<Q6xùòåš5kjl…™™€NÖ¥óçÏ·jÕŠeT®ZµJ›è*X)«ªcXàÙÂÂ@MI‰‰‰tê) 2$$DÖ‚*¨š!\ª–¿òºuë­ï•4ý�g¥Â8-=åUªT)—'N°l€ëîÝ»S_€ ù‘t´,:Zž«,�üàà`É-*ŸX<J¯êÈqœìL¥¬µ¢·g*I²P©q¦RHHHHè“I@¥��ÐתôôôvíÚiÄ1Stt´¬…üüü1cưl*TÀË<�›ªJ/^¼À;s™2e”+aõîÝ›eq*¿ÿþ{b.°Æ«W¯”
^»v�ÎÒQ#›e˖ɺ”’’ÂÞêï€yµ‰^rr²��+Zœ7ožl¶sçεlÙ’e377ØÒÁ¤IIItjùòåù#nx©‚Jè—_~¡CŠÔ»Ú¨Q#å⨰IÜ÷~JKK£n’çoüT"óçÏ'7oÞ¤)i###Ù	eõºsç�%e``0yòdÙ¿?|2)c ý*Ë�²{*ÙÞIp¢Äí©,âQ*e÷rªX!!!!¡b’€J!!¡¯IxÙ†œ={öèÑ£à šã+UªÞçkÕª@i¶W¨M›6
6ìܹó™3gȳgÏ®_¿~ìØ±“'Oâg```�5ûöí»ÿ~>^õQÙnݺſä_¾|ÙËË«Y³fõëׯR¥
 a ’f*•§N�¢	IJeËþôÓO¼råÊ¡C‡þToÅÀ¥�;w‚V`­iÓ¦öööúúú<×€ˆ7nt>|8êË—/³³³¯^½zñâÅøøx__ß
Ô©S9gΜ	Bf„(11%r¯‡¾páÛ±cGÔèââ‚�a
ÏYüÚK„šf	á0pãÆ�Ȇ̱±±/BøŠÀž>}�ËOøJ øY½zõF
 õë×oûöí:Bâ*>#PF´¸Š8Èb)L!•U
 î“Åve�‹Ñ§çÏŸ‡ýM›6!þàz´¥jÕªè)2�!"©©©k×®E„©	=zô€cH‚4¡R¥J,©L™2]ºt�?HBwSCÐF°';[XYùùùÑÑÑ®®®ðцAmZQ|’=ý•°‘Ö¯J¨S’™ÈQùF:å•®¿”…Ê¢·Oe©²				·T
@@ -11313,7 +11313,7 @@ Sx
 \±µµÝ¸q£Ñ´ý¯RŒBBBBBBù¨�*�¯ó‘&Tª¼ÿk꼦g“MÄ�§–N�|©oÔC•çõ(�)ÏõoÔ£ë°&“²Ô™Wõ°§ž±R9—„„¬>ŸVH§233ñ¾ÝªU«=z4lذD‰´ðB^µjU¼´4–$×---Ùƒ!þûï¿cÇŽ�5ªS§N={öìõJøÜ·o_ ÀöíÛCCCW¯^
îÃÅîÝ»ÿøã�à •+WnÙ²·þß+­_¿~ëÖ­‰‰‰Ô8p·víZvëÖ
®’&\]]Éa÷>>>.\ ;ÏH ²xñâ\±bÅŽ;`<88¸_¿~®&õâ	×áÞØ±c—/_†F—-[æááÏÑ­…vü!‡¤à'ž=''§oÞŽ¾þúëÖ­[Ós1222�ó5kÖ i«V­òòò‚?lòûôéƒ~ùå—ôo ²’%K¢‹Ñ)ˆ¿;H)òO“�Ç`Ó¦Mþùçýû÷ÙÎ�ŽŽF�R4çé鉺]»vEìh÷É“'¤ðöÒ¥K0Ô`¨IK–,qssëܹ3:núôé·oߦƓ““a~~ÿý÷x6(¢¦¥¥Mž<ÙÌÌŒxN¶rr1iÆŒì¬i*�ºeÊ”Á—̰aÃz÷îÍ>!@ïÀ™
6àHHHÈë_#!!!!!¡7ÒÇ•FÓK¾dgQu¨äžÕhäñ©RuÍã0¸k*Y¯¸#nšP©ä¡|'[Úœæ‘"\÷äí¾É‘"FYÎuÖ’_gG	©6F¥M}
¹©Ôs¤ˆÜ¬d8’¥ZîH¥æ_	„äJOO¿xñ"Ø!<<¼ÿþ*ÁeóçÏGÎãââöìÙƒl“=9%PIôàÁƒ«W¯Þ¸qãæÍ›Ñ&áCddä”)Sk×®=uêT0Ê\»v
”W¯^=\¯ÊOõêÕ§M›FÍFEE�ƒ*Uª„»ÕªUÞÆÇdz­ þÉî�#�Jƒi�ËÖÖö«¯¾‚à|¸uëV´ªÂmÚ´!î5nÜ<ƒ†h�(“è;�=BN¸É+•*UŠ·���?^«V-’غuëúûûÇÆÆ²iAŒpoîܹt\‹!C†œ>}·˾}ûHtUªT!?Mª_¿>º‰LåÅO
*V¬ˆ[àk<×L"ãÂDhÌX¹reb�
 Wš7o޶àÒõë×é:\ªçÏŸ“ç$%%…^$PY¸paâ¹½½=H dS#@%]}Y´hQð2ZÁEšòFDDŒ1ÂÎÎX�:uÀ¹ìvÁBBBBBBù®�*É{¾þ#EäoõÔ²žw{vMœÒ¬Jk*Ùc>”ö¥Q‚Jé¡$䟒�‹Ø-}”6 ROšJÈz²a”A¥ÎZܸÈg6Ÿò›*3~s
 •Æ×7k5(ŒEJÌJ:ë“ØØéФXSùæÊÎÎ^¸p!™	�#è¨ÀôöT*�™(QFF=ŸÑÌÌŒž0ZÙ´i(‰KO½zõ¢€ì­îÝ»k6*9RDŸŠÎ�;çììLª”-[–ÐœŠ•Àg%Ì}þùçäP	æ¥×‹+¨äzµÿ~º4Qäé­³gÏ*5Ô¤IÂn/^¼‰“ëó;vpcâ.×Z…
-ôLÈg%�ÊêÕ«ƒd¹%Ù‘J+++à0·XRR=¦H‘"x333sä’�����Ð[ÕG•ÆW¸¡4½P"nîö>JvØ`¸4¤gM¥þètzÈ^—Ô¥»Âr‰Ò¨#i*!kfÃÈÖSK—5ã%’ï»›#¨d}P*#7ËÝ&ˆˆ�:«Ô#«¸ýõ†ÊÊÊTÒ”åË—

%·âããû÷ïO R²¦RE`“I“&k'N$וaaa\�qötû3gΰ‹=]\\4T®Y³††Â
+ôLÈg%�ÊêÕ«ƒd¹%Ù‘J+++à0·XRR=¦H‘"x333sä’�����Ð[ÕG•ÆW¸¡4½P"nîö>JvØ`¸4¤gM¥þètzÈ^—Ô¥»Âr‰Ò¨#i*!kfÃÈÖSK—5ã%’ï»›#¨d}P*#7ËÝ&ˆˆ�:«Ô#«¸ýõ†ÊÊÊTÒ”åË—
%·âããû÷ïO R²¦RE`“I“&k'N$וaaa\�qötû3gΰ‹=]\\4T®Y³††Â
 œ2|øpM€©cÇŽÕ©S‡ÔŽ�RÕ«¼c¨Ü¹s'½ŽÄ²ËÙ<ÀíÒ¥K“bHÈìÙ³éFµþùç§Ÿ~*oå“O>éС=Â222²aÆäèòÀ�Üðcbbhº$²³³cOüÔ#<6ÀC:ýíJoRá±l×®)†'GéÌ{÷îuíÚ•377÷ôô¤w…„„„„„Þ}¸P)$$$D”™™	<OLL¼xñâèÑ£åc4
	Q¨uvëÖ-::U𺞨 û÷ï_¹rGßùGŽ	
 HII¹uëVPP`MÎ ¨¼|ùråÊ•­­­A¸*Tèׯð-66F(øH4Þ»wo£F�à?j)R„F}ÿý÷ð<!!�zŽÐð™�	¨Œˆˆhß¾}¹rålllœ��7lØ€á<�.Þ$:ôCåÁƒšµIU«V-¦¦¦þóÏ?ì4àììì#GŽ´jÕ
 ! ÕNNNK—.¥P‰[d2³D¸Ø²eKd8999..nË–-_}õu½†¨ï™DS‘””kŽŽŽÔH�Ð"p?ëׯèÐ!<ȹңÂ
@@ -11373,7 +11373,7 @@ K%*qO
 ‹*UªDÙJ—.]»ví/¾øâóÏ?755¥Õi$PùÇXZZÊbˆ™™Ù¼yóàêºwïžì‚9å`\ÖÃyšµµ5?y•—¾¾~çÎ�·oßÎâϯTóøñcÚ�EG1"	Ô¬!Î8 ]&aÙÓÓ3333ïÝÊH&&&äBÔ¸qcð2:ÈA!à_ úŽ;"Љ‰áßÊë�sQ²yyy%%%ɶø‰Róœ9ÀôäÉ“
64kÖÕµlÙÒá�:uêôã�?âÚcÙž={††wéÒ]†Tz¿RGñÓhÆÙ%DÂ5€>â©ýkgg×¶m[ü­R¥
 �oذaHHˆÆüפ
 *qÀnÁŒY�w Éî‰ìN¤ó’MVœ·OPÉ0Pb‡ÄR™MÊ)ëŸSHHHH¨°TÒ¡R=²±;›¸§Pÿ)‰Ì²l¼U5ª‚JI²C'yâc7>åºP�ÝÙy¾"ÉôW�U	}bzþü¹¯¯¯½½}‡:*„@„““ "!!A¹8422rذaȆøŽïÔ¾}ûvíÚMž<ùÂ…§:xðà”)SÀ#dœÙG6Ä_@Ö—_~9zôhð#Ù¿qãŒ#¨Ä$Á.`J!u̘1»wïÅà³éïïH¡læææK–,AÒùóç,X@|!ÙiB
T2,à QsçÎÕæ×-5P	·{öì	
-ÁUÙý;ÈC4ßK[·n¥ñ\	T6hЩ€,×4Z§*áðxîÜ9tMXX¸t�cœ8p øõöîÝ–©Qÿý÷ƒIdChƒN‰²²²–/_ŽNÁ%�.^»v-µ<|øðÔ©S¨.ì�à6 çÉ ˜h®\60Ň¥ZµjZGNh2z‡hF—µiÓfÿþý ÚÀÀ@œ’5jtôèQ�=ø¯IýôWd·*ÂFɯ¾üm]£l“ÝÚ*u¸{ŸÎû÷Á<$ó”¨Sâû÷cø½WHHHèSRÉ…Jâ/åW0˜$ƒŒüdTɼ	sÑ�ŒðU�„ÊNååà}ãkç›ÃßÙ-›’øû)•ÚT!$ô‘ˆ}~n'--müøñ²€r	

U.òòåKp(?2H*Uª”»»;åLOOWÅY¼jÖ¬¹qãF6øêÕ+|ðièM•@ø´FEE±ŠÀ\ø¶d#€ººº ŽØØX–týúõzõê±RÈÀϨ�J^vvvÚLžDcUE²zõê‹/fÙØ~‘+…€Éˆ+•��Í¿S‰¶Sz�¦ÝJ rûöífff¼²+î"´ãgÙ²e=<<ø�cmgooOîóU\"4ÖËË«L™2ÚD‰T±bÅ)S¦0hæêÕ«)	½|èС‚¸T¸R^¨‡1»ïàUžéŠ¿ü]’J±®,T²; ;�ü⪣T⯬?|N!!!!¡ÂRÉ…Ê<¥ûš÷tÞçM%l(ìãäd·$úI“Õ(û§òB=¼Êãªlð1�»á²»�~üH¥²‡,•œ×¦
+ÁUÙý;ÈC4ßK[·n¥ñ\	T6hЩ€,×4Z§*áðxîÜ9tMXX¸t�cœ8p øõöîÝ–©Qÿý÷ƒIdChƒN‰²²²–/_ŽNÁ%�.^»v-µ<|øðÔ©S¨.ì�à6 çÉ ˜h®\60Ň¥ZµjZGNh2z‡hF—µiÓfÿþý ÚÀÀ@œ’5jtôèQ�=ø¯IýôWd·*ÂFɯ¾üm]£l“ÝÚ*u¸{ŸÎû÷Á<$ó”¨Sâû÷cø½WHHHèSRÉ…Jâ/åW0˜$ƒŒüdTɼ	sÑ�ŒðU�„ÊNååà}ãkç›ÃßÙ-›’øû)•ÚT!$ô‘ˆ}~n'--müøñ²€r	
U.òòåKp(?2H*Uª”»»;åLOOWÅY¼jÖ¬¹qãF6øêÕ+|ðièM•@ø´FEE±ŠÀ\ø¶d#€ººº ŽØØX–týúõzõê±RÈÀϨ�J^vvvÚLžDcUE²zõê‹/fÙØ~‘+…€Éˆ+•��Í¿S‰¶Sz�¦ÝJ rûöífff¼²+î"´ãgÙ²e=<<ø�cmgooOîóU\"4ÖËË«L™2ÚD‰T±bÅ)S¦0hæêÕ«)	½|èС‚¸T¸R^¨‡1»ïàUžéŠ¿ü]’J±®,T²; ;�ü⪣T⯬?|N!!!!¡ÂRÉ…Ê<¥ûš÷tÞçM%l(ìãäd·$úI“Õ(û§òB=¼Êãªlð1�»á²»�~üH¥²‡,•œ×¦
 Í1ú·Ä>#·sÿþ}Uï²™ššò{2’@~~~òOö::Ý»w§œ`“¨ÊIŸ.[¶Œ­4bݲe‹Æ"€J0W||<«¥Ö¬YÃæLF\\\(éöíÛüp§››¹C¼©F&&&›7oÖɇèd-T­Z•ïàêªU«4V
 5nÜø¯¿þb¥gQRÏž=©^ ääÉ“Ùy==½±cÇ2r|ûö-HоZ�ŒŒÖ¯_/ëyBB�„:tÈdÍš5ÉB³fÍòU\¢§OŸòòZ
 Až3g³€¸ýüóÏ”dhhèïï_—
@@ -11409,11 +11409,11 @@ k6
 
 †Í“'OR¥€PÆÖ­[ccc‘󫯾’P¬8p �n�¿JÔ8hÐ XÀ÷¡µÕp0ª�Qï˜1cBBBP/
 ¢ø`‹‚-
-

…M8oå4x´¢víÚhuLLLxxxóæÍ
�VѨV­Z*ÑÀ ªtˆEhð™õ@Rh @’5tèPxŸáB�6âb@@ü<xð lãÅ‹'Nœˆœ#FŒhÔ¨ûðÇ­éÕ«ê’A6[Žn\±b<�AÄ3>>ž“€´°†õë×ï½÷Þ“P¢‡ÃÇ«"&Ì×UªTùé§Ÿ¨8 Ñæ3S4#£ÑÑÑð�L¡":Ó“³9;;·lÙn æô¨ÐýÂ&Ç@qkPu`` l"n’d%TâINHHXºt)ž�%K–ÈÆÆÅÅá†rër*ÍF¿rDON¹á©°†P©Ù·Gî�õ5•l–OÑbçÙÛÔô˜œ‡ŒË~_³ã:™µ§
+
…M8oå4x´¢víÚhuLLLxxxóæÍ
�VѨV­Z*ÑÀ ªtˆEhð™õ@Rh @’5tèPxŸáB�6âb@@ü<xð lãÅ‹'Nœˆœ#FŒhÔ¨ûðÇ­éÕ«ê’A6[Žn\±b<�AÄ3>>ž“€´°†õë×ï½÷Þ“P¢‡ÃÇ«"&Ì×UªTùé§Ÿ¨8 Ñæ3S4#£ÑÑÑð�L¡":Ó“³9;;·lÙn æô¨ÐýÂ&Ç@qkPu`` l"n’d%TâINHHXºt)ž�%K–ÈÆÆÅÅá†rër*ÍF¿rDON¹á©°†P©Ù·Gî�õ5•l–OÑbçÙÛÔô˜œ‡ŒË~_³ã:™µ§
 %%%¥<¬¼•f# ãžH®’ Ïš3AH6¶Ü‘Ë%d× ©”¯%š=븬Éh<‘}в)�×1==iÍUkR��RÞÆo[tË"|¸{÷î�;wð§ÁëéL–á§W^y¨U¸pa¹±X±b °ÔÔÔû÷ï£Á{;€€@»†|fÍš%Ë222PÙ~ùåž�DÂòÙ³gq===ýçŸöññ)T¨êEE€#k­W‚tà9puùòå•*U¢RNO„Ï...]ºtIJJB½0DerDØçÑ£G0’’’²xñb{Ê‘Jš‚‹Æ:888	¡
 ÄMRò”$U«V
_;hìÇ��`a€<<û€é"ÙÀ»]¾|ø)Ý€ATƒøF‰Óî¦5î`“&M@…D˜<úyôèQ777$¡”ÜO•÷Ð
 ¸·ù^Û?R	´"ž‡}ûö}ðÁ0ˆºð/[Çòå˃q/�Ü×£GäÑ?`$\„K¼Ð’$¡’„0âÙÿrœWŽT¾ Pi~zi¿I×ãȽaé´/Í:DC;HÕl�n?Tj¤™¥cí¼KiSú¬ù±—�”¿EÛ8§ÒZJJJJyU¹*•”””lëÊ•+­Zµ2¤)///k‡‚.y-!  44”·6•º~ý:^	»2€)N:qℳ³3×Õ®]»LÝFð‡ÇX5jܸ1ç<vìX’®ƒ°bcc9éÈ‘#õêÕË´í~~~¼Q0Êž-�4òôôäC1®]»&çÃkûÉlÚ´‰g&K=¾Ù‚W«V­âÁDGGGt(lP%i§Ê”)³víZ*NÆ=<<sÖ­[—]���—6Y¸Ýo¿ý6“KrrrûöíŸÕ%=T*))©M›6T˜r·g÷'¥l‘áÜZ%%%%%�T*))åˆè
9»¬=~ü˜ÆïÞ½{ïÞ½G��<È“Ú~±ãh¦§§gdd€’h²K�žÂÃÃåH%@˜"J¿~ø!(€é>̃SHêØ±£¦,žÓ<‡}ü Aƒ&/¿ür‘'"híÖ­—=~üø›o¾i²Lîõööž9s&]q€ž*T¨ � G#‘WuêÔ9wî•JIIÑŒ=Ù£âŋϞ=›,€â{õêŃtMš4AõíET᪡5xØ£G@ºÙ2¼cÇ�)5ÜÕÕ5&&†‡>qsiü´ˆ«Â‚¯¯ïæÍ›©8
ƒâñÐ�rš,«2iõ+ª;zô(�wkÎÙÄ=žÏŒè*T·Œ†˜I†öY†PIÃßôHР-§®]»Ò›À}`•þ&)¨TRRR²G
-*•””rDôR�u;€”S§NM™2eüøñ€¾1cÆÐúJü·sçÎnnn™b^ìùdC³eØqݺu´ú¸4lذîÝ»<xìØ±óæÍÃÅ•+WÆÅÅ1à¦úôéÃøP¢D	üÅ‘¹"@\⊀(Áaòö§N�:mÚ´	&fadÈ�!#ŸÌ‚‹rUfZZÚ¢E‹@aAAAȉR.œ5k¾x7nÌ›áÀ1???à^XX[		#?O¤ëùûûg.�•¼¥ÌüѳgO‚JüÛ²eKÉ>H…oÑÑÑpµAƒ†Ö•°@P	ݸqcÍš5ˆ<œ

åƒ9Ì–½R‡ŽðŽ5jdf¢ÆFEEÁ¶�ššºzõj$õíÛü+'¦zzzâ^€|###Á¨ÏnG³fÍÀ¶”‡F*wîÜIÖ>|JÅ}†c\õ AƒZ´ha
-%TâqJHH@{ÇZ4Æ"ÜÓéÓ§#n¸wp­ÀcðË/¿dí�F餠RIIIÉ)¨TRRÊÕº}û6ð
CkÙHô™Oè°-ÍHåŽ;J–,	ºqpp¨\¹2ÀØuçÎ�.€4½½½ßxã
¼ðy¨PEB¥éÉ£“““ÜæTBåãÇ�Ïœ9ÓµkWZ(=÷ððøâ‹/öîÝ{óæM€'�[‘h¬æÀ�²Ýºuë×_0`@Ñ¢EálÊa5ggg È—MÑ@¬IèT‚=“²*á'p©`Á‚p�–:ZÓ@%„«h þ•mÿ믿(&²QÖD�¥Q?Mô(õ§Ÿ~’›öÀ=ܸŠ;þݰaŠ#>Û·ooÚ´)ç‘Pi~2èÌÃå$\Ùµk(ÕÚ³ÇP	ÈÆâÑB|ä#jÖ¬¹xñâ´´4zç`+)))))å T*))åjdžcÒ¦”——××_MÖðº¾jÕ*Nrss›5k%"##i"%˜±K—.|ø x­oß¾†‹¥�¡S§N\°±víÚúl •Ö­[Ûs|¤Trr²5$¥.\¸0S<×÷™¨äÑôWÆfÍš1T‚
+*•””rDôR�u;€”S§NM™2eüøñ€¾1cÆÐúJü·sçÎnnn™b^ìùdC³eØqݺu´ú¸4lذîÝ»<xìØ±óæÍÃÅ•+WÆÅÅ1à¦úôéÃøP¢D	üÅ‘¹"@\⊀(Áaòö§N�:mÚ´	&fadÈ�!#ŸÌ‚‹rUfZZÚ¢E‹@aAAAȉR.œ5k¾x7nÌ›áÀ1???à^XX[		#?O¤ëùûûg.�•¼¥ÌüѳgO‚JüÛ²eKÉ>H…oÑÑÑpµAƒ†Ö•°@P	ݸqcÍš5ˆ<œ
åƒ9Ì–½R‡ŽðŽ5jdf¢ÆFEEÁ¶�ššºzõj$õíÛü+'¦zzzâ^€|###Á¨ÏnG³fÍÀ¶”‡F*wîÜIÖ>|JÅ}†c\õ AƒZ´ha
-%TâqJHH@{ÇZ4Æ"ÜÓéÓ§#n¸wp­ÀcðË/¿dí�F餠RIIIÉ)¨TRRÊÕº}û6ð
CkÙHô™Oè°-ÍHåŽ;J–,	ºqpp¨\¹2ÀØuçÎ�.€4½½½ßxã
¼ðy¨PEB¥éÉ£“““ÜæTBåãÇ�Ïœ9ÓµkWZ(=÷ððøâ‹/öîÝ{óæM€'�[‘h¬æÀ�²Ýºuë×_0`@Ñ¢EálÊa5ggg È—MÑ@¬IèT‚=“²*á'p©`Á‚p�–:ZÓ@%„«h þ•mÿ믿(&²QÖD�¥Q?Mô(õ§Ÿ~’›öÀ=ܸŠ;þݰaŠ#>Û·ooÚ´)ç‘Pi~2èÌÃå$\Ùµk(ÕÚ³ÇP	ÈÆâÑB|ä#jÖ¬¹xñâ´´4zç`+)))))å T*))åjdžcÒ¦”——××_MÖðº¾jÕ*Nrss›5k%"##i"%˜±K—.|ø x­oß¾†‹¥�¡S§N\°±víÚúl •Ö­[Ûs|¤Trr²5$¥.\¸0S<×÷™¨äÑôWÆfÍš1T‚
 G��©5=Tþ3B´+UªdèR¹råÀ’”íòåËh ߦ:uêH¨´a¼jÕª†Æ5çTf+Uª?¢JJJJJJ/ T*))åˆèm9ëv@vÀ�LiņŠ+Æ«Áz+W®ä$''§ˆˆJzøðá”)Shôh	<ÇQÒÍ›7�ö@%P”=ß¿µjÕs¶hÑâY¡>Z+Q¢ÄŠ+2µpçÎ�‘#G>kô<==—/_Nnܸ!7ê©[·.�©Ý¿Ò¤I™ZË)¨Œ��¯Q£†¡K€ÊC‡Q68&TܵkW¦ÆÏŸ?/w!–’PyñâÅ/¿üÒš¼TIIIII锂J%%¥½-gÝ^Å{÷îͯßùòå+Z´¨··÷o¼áçç÷†u!ÕÇÇÇÃãzõê[¶l!k�?Þ¶m[É’%ñ¶_¦L™òåËGFF‚¶PËþóŸ/¾ø‚jÖ«WoÓ¦MW®\IIIÙ¾}{«V­ô§HhôÒK/5mÚôÒ¥K(ròäIXÖiáììF{뭷®]»fOó322`0!!MhÙ²¥´ò-^¼8òÉ'Ÿ8p€‹ �iii �³ÅÅÅáߤ¤$¸ôé§ŸJ
 ([¶¬¯¯/Gòõ×_×,S’EQDyæÌ™��DÕËËËÝÝ1�o-:}ú4G�T¸paDîÉó4õPyïÞ=OLL5ˆWoݺõûï¿£jý³(…˜œ;wŽZ‡0bãd�[¼Òlj´¢téÒï¿ÿ>	D,99ù×_
¤£uxÆðàÁ>yôèî,\ÅS!7t±I›tÓ_§M›†»ººâ–�"ÿý÷ßÛó<()))))åˆr5Tò‘ʦ§O™$q’þ|¨çK’Òœ©¯ÝF)ÍáY¤lÙ
 À†}%¥¼*9¾jþ€qÖ®]»nݺõ6µaÃd[°`Á×_-WÛ�V¯^½dÉ’•+WÆÄÄ>ü«¯¾êÒ¥àBòð§V­Z  ¤¾ûî»ŽŽŽ†Ô (¯]»v}úôiݺ5¨DRXlĈ‹/†?ør³gÝÜÝ»w7nÜØ¹sç:À'''6èââ‚‹óæÍ[ºtéÏ?ÿÌ
LOO?xð Õ¾}ûO…ÐÀÏ>û¬P¡B²� Â5kÖ ’ˆmÕªU£F�’'`‚¯Ë•+÷ùçŸã;ÓßßüøñݲeËfÍš…ϸÒÙ"—ð.0`¬¡½AAA
@@ -11465,7 +11465,7 @@ g
 
ásöìÙ0;vìøñãÛ·oOx´¶¶†·1cÆ T 15$C%`***
 '°D7éŒÈßÿ]†Ê2eÊ Ÿh!�1B>q²J•*‹-B>׬YƒÁB´â:bÆ÷™3g¢hÆ
ô‰°7oÞœ��@ÙÃw777ôþ·oߎѡ"PªŸŸß’%KàdŸ¸ò믿
 T–.]]Æ( ;ÞÞÞAAAä-55ÕÇÇGܬ[·nQtA%œc(Å}%޹EÚPI^oß¾ÅÍüóÏ?{zzzyyáÎÁ�-:ˆÁBº�\G6xÕ%‹Åb±þib¨d±XŸ´d¨,R¤H'###KóˆžS	‡xtוï±B¬¡XÌ)Âç•+Wìíí…YùòåçÏŸN
Ci¨víÚ111rgEÏŸ?z€mµ«ÀíÒ¥KÓÒÒ„åùóçiC êŒ3(ΫW¯ÒÂ]@% &Û±HLL<7oÞ\)§«”á|*>�4ØîÈ¡�9sFìËŠŠ_}õUHHˆ¶
¸oçÎ�ºÁttt̶•7oÞœ={V^þjÈ‘"\ÅòW___Q„A;.\ØH³ïîdz·´>lØ0‘X{ÿ±GX²X,ëß)†J‹õIK†ÊâÅ‹Ož<Y>6â=äççGÏü2T>{ölÙ²e…
-ÊÙØØÁÉIh�»»»86ñ<xÐÌÌ,[ç¶¶¶©©©ª½

mÒ¤‰vSSSùHÍ;wDÈqùòåTU¿~}Q¤Ø F—’’’¾ÿþ{š!ýúë¯é @åÂ…s”:…b0äd�#GŽP­fÍšEDDhÛ¼~ýzïÞ½º’ŒÄfÛ
+ÊÙØØÁÉIh�»»»86ñ<xÐÌÌ,[ç¶¶¶©©©ª½
mÒ¤‰vSSSùHÍ;wDÈqùòåTU¿~}Q¤Ø F—’’’¾ÿþ{š!ýúë¯é @åÂ…s”:…b0äd�#GŽP­fÍšEDDhÛ¼~ýzïÞ½º’ŒÄfÛ
 FPÞ¨Çðs*e¨´²²ò÷÷E G:³`Á‚øNµâãã»uë&ŠŒ��Áþ†¬f±X,룉¡’Åbå‰Ärîý(f*ñ(.™Sè~þùgzæWÌT®[·.§´6hа ÝÐÛ·oOœ8AË>ÅkJJJ–æýÊÍ›7Ëg êªÓzNYà�Ë—/;88hWTÒ¾:еk×êÕ«GE[·n¥¢«W¯Rx¥J•¢
jôèÑ£Gß~û­˜Pûì³Ï:vìvEOŸ>�6mZŽR§bŽeû$öСC4ÇÚ¼yóK—.i›ÁÏ�*Uª¤Ú ’"×%$#بQ#QÅÂÂÂ�×qsÊÛ™››ïÞ½[%$$T/^|Ö¬YTëæÍ›t(dÉ’%ñ?VÀi¶m±X,‹õÑÄPÉb±òDâ	9÷~Pùý÷ß?{öLá±ÿÉ“'ááá §«®DFF†……]¿~�Uê�JÁxèС ŽºuëâÙÞ�i•‰‰‰-È4:::44ôäÉ“ H±ÖÑHó.!Ünß¾�>|xàÀ�T”?þ
 * ÅÆ�7Ш~ýú
6lÚ´i¿~ývíÚoW®\AdB£¨Ëú¡"šèyzzž9s99þüŽ;lggËAƒÉ/-ÊPY°`Á:=zTäM;“ø„CÚÉqrr¢�RSS§OŸNi)P @åÊ•[¶l)ºƒOШY³&u\¤}·±±AgAU‹/Fä—4ÂÈR¨¾¤¤$Q„Oooïnݺ5kÖ¬uëÖC†AVCBBp\Ó¡â;ÌÖ®]Û½{÷&Mš´hÑ¢víÚò~J`=ð5¼ÁX¾,Í”kll,R¢?~<�SY´hQÜÁÁÁí‰,¡hË–-H55T¬X1`8B„€Ü‰'"f€pÿþý©Ñ[·n!ÿ•,‹ÅúÇŠ¡’Åb}ÒÒ•)))+�‹½½½££ãW®´k×¥@3:FPTfi^Ä»qã€Ü7räHAŽ ìv@0 �…bÒ³P¡BµjÕjÓ¦
ª”*UŠ®—+WnÑ¢E€ÐÓ§Oã3P£   ‹/:t*¶mÛv̘1`^
 @ýûï¿_¸p�ªà˹sçPp×R#@\—.]öîÝ,E‘bU*þÔ«WSÍ$ª^½º¼í�¨„ç}ûö¦DxøŽ!±†è	ªU«†<{ö,:{êÔ©9sæ ?`@$ß)Tæ¬Y³€ÏèÂ;v,z„làó—_~éÓ§zŠ9¾“pšF°A@Hy!ô¢J•*°AïfΜùøñcшÒ××·}ûöÃ14ô‡…Ï?ÿ¼téÒˆÁÁÁA;E"Kz+++J‘�‰‰	¼�ša°téR°9:{ýúu*Y,‹õC%‹Åú¤¥*ïÝ»G;áèžÒéGýP)k÷îÝ2†èR£F�h»€žìÜ@Y[[ß¼yS5†˜˜Zç‰/òºV]ÜÑK¨råʪh³4PY»víœFKmuêÔI†Jwww*•�‘•™™	‚6
@@ -11479,7 +11479,7 @@ FPި
 ~lÕªUëw²··¹¸¸lÙ²Åßß­ûúúÎ�;·gÏžŽŽŽNNN®®®Û¶mõ 6#FŒÀupb¿~ýd¸xúô©——W+�Èy›6mà|Ô¨Q ’ãÇ�Ÿ9sæÜ;�<y
͘1£K—.0k-©mÛ¶¶¶¶2*cbbDC 0´†�öìكػvíŠxàgÉ’%4™øêÕ«   1cÆ pHQáû7ß|³hÑ"äêÔ©S@餤$êEZZ(•Ú6V¯^½]»vݺuCÐ}äy@» V´‹È›&ò�žž¾~ýz´‚"9r¡ƒ
Z¾|ù¡C‡à
Ÿ«W¯8p †µ0|ò«™™¢³ܸq#F
 =‚YÕªUuñ8ª—-[¶qãÆHb066V5Ã-:~üxŠ\¼;|öìÙ[·nÑ	,þùgxx8ðîØ±ã¬Y³îÝ»÷!ÿ³a±X,냊¡’Åb}ÒÊýJCvT4hCž|ùò"@^�56*N´—=,[¶ìÊ•+ `�ø¼téRhh( ˆœ©W¯0PyñâE×…Ð((¦N�:([ùùù…k«8K"55®„gr?[·níÑ£ª7oÞH%ØÊÆÆ¦eË–@à��">åZû÷*Tfdd Y·n]8œ9s&X5""Ñ&&&Ò2T »{÷.ŠÎñÓÝݽfÍšvvvèõ¦M›¨òºâüùóÃÀÇÇ'22NðT…<ˆvÁžpˆ<DGGËy@»ÉÉɸŽÔ‰Iâ'Z‡·ÀÀ@Üè¼aÔ†fÄõË—/]1šÔw„�»¢~ýú
6éÿòË/È<z±aÚ5V¨D‰#G޶Ã!X¾}ûöº r„	òðy{{£¡¦M›>œ&—Ñ#ä<>>þÚµk¸yôìèËb±X,Vž‹¡’Åbå‰Ä3vîýè�Jr„�çT>þÜËËK¬P5\€—ôôtÕȃ‚‚@7Âng̘!–\(vïÞM‡`Ö¨QCuª~�nȹ¬’%K¢ò>9$äÍÍÍ�,AOׯ_E)))Ó¦M×,,ÊÌÌÌQ<`@ùœJ�ÍÊ=}ú}×.ŒÑ$`�U¯^]�Ú<==UO·4P�=0`Åààà@[éÞ»wOסœÈ?X•<6LÕ¬R¥Jt nôHõï
 ¨üõ×_†(211Y¹rå{÷ŽÅb±X¬<C%‹ÅʉéÜûÑ•ñññº&Œd•.]Z¼j—¥*áÖÃÃ#[o
-ÙÚÚfddh‡
¬

µ³³f€JWW×´´4-÷ïßO'Œ€ªäcDœŸ={Vžv$*׬Y£Z(7sæL²dÑ>Bb“qP9eÊBB…®ÉÎAR`IQbGXiÞ'?~<†`ee%ŠLMMyn6>MNN8p Åкuk0�(º{÷®®̸~åÊa–””4qâDU3°'X˜¥¦¦Î›7¯hÑ¢Úf
+ÙÚÚfddh‡
¬
µ³³f€JWW×´´4-÷ïßO'Œ€ªäcDœŸ={Vžv$*׬Y£Z(7sæL²dÑ>Bb“qP9eÊBB…®ÉÎAR`IQbGXiÞ'?~<†`ee%ŠLMMyn6>MNN8p Åкuk0�(º{÷®®̸~åÊa–””4qâDU3°'X˜¥¦¦Î›7¯hÑ¢Úf
 ¨¼yóf³fÍhh–-[öÞ½c±X,+ÅPÉb±>ié�J@þ	ª]»v£F�šj	ó`º:uêtìØ‘6JÕ•™™™lÙ²%¢"ª+¼á³qãÆ`ù\Œ
$&&j‡
î»téR«V­„dÔ¨Q�?EQQQÎÎÎbÙ'®ÓN°h¬)ÖÐ^¼x_ð-¯‡Ž=¤ƒ�ši„ð€™:t
 
 "3à[BBBll¬Xv;yòdkkk´%¡H˜B< ]ȃê\§�³¦OŸNii×®XR!ìmÛ¶¡³H,‚„"‰‹‹›1c%³\¹r6lPm�{HÆQäD!\¿víÚ™3g�“úõë‹EËýû÷?t讣�ÈIçÎ��,¾ˆÛfêÔ©�=
áÖÚ¹s'hù�qùòåéKŒ;A%ºæîî®zþˆ*1âsçέZµ*¢êÓ§ÏùóçU³‡â@N"""bbbTÿLÁb±X,VŠ¡’Åb}ÒR@¥‹‹-7!µNkª%°FHHhðBónz òíÛ· #Ô:qâ¨GÛ!‡~~~NNN2TÒI‹²´¡) 2K³ã
¨088øäÉ“ø"“ÔÍ›7‡Þ¶mÛf’}ò"è,ê¹sçX!æS§N¡³ÏŸ?'3´8þüN�:”ºuë¶dÉØ 
@@ -11652,7 +11652,7 @@ i
 Í‘UpÉ^½z�uÖY(^ä5ÂðáÑÔm·ÝöôÓOÃ�µp°û¤I“F��ÂAÀ¶EŠD~�GÏò‚ìï½÷Þ)jØøòŽ;îˆdQªHd»í¶KÛ'½_¿~ãÆ�»õÖ[q"pR†‚àµñç§QÉ.uiê–‘ã¤4÷ûyüñÇãÐgœqF�=Ô(QÎ85•ý™B! NBªŒÜ—’‚£“[l±né¿üòËÅ‹¿×|dÏK/½Ôš…ÕÉx C‡AU� =óÌ3Òâ6sæÌ#Ž86$�•wß}·üÁwÜqÒF3<xð¢E‹`+W®œ3g”ªØªU«Í7ß¼ÿþðÐÏò<ûì³êV°¿.]ºL�:y„-\¸0R.o‚çž{.BZ±bÅüùó%�2]í£�>Ú®];ÙÖ¹çž{¾ôÒKÈ>œ>}º#h8"¢…/wíÚŽüÕW_!�sçÎ…Ré6�DÞwß}ØE^'Nœ¸ÓN;Á†À~ûí÷â‹/já¼ûî»tJ™µúŒâ…»M›6mùòårÁ‚’݇~øÈ#�¤‰¡'.ŒìËTÀ—\rI|ûÍ6Û"d3Éw¾Õ2\²d	Š.Í—�³ëd›6m†
¶"Os¿ŸÈ8ýÑG=ùä“ú} NB©¨“„�*#÷Ã¥¤àèä¶Ûn_+%A¨¨MÐê$´îž{îQ³¬·Þz�D¨Šl	-‚(É*8RÐWH@dàn²
 Ú8hÐ }>uÔQ*P¿úÕ¯àe²
 )«3bÕa‡¦Csºuë"`šh@]wÙeMððÃ×Uþøã�&#ƒ'jià³J_D'aÍ:¨*
-5îÔ©“ºLS

ßrË-ý㾘öHV0Zœ¸{ï½WvAR�?þx–½à‰Ç{lÚq¡ÿºYF�„â[L0;.Üj«­$Aê$!„��:I©;�Ä=öK/½TJ‚";õŠ£“ãÇ�ê$l¢OŸ>o¿ý¶lùòË/«3n´ÑF×_½ªÐòåË{öì)« “§Ÿ~ºú/tòÌ3Ï”>¨P¼_ÿú×úB�Y³fm±Åº×/ùK
:ù£ý(¨B°¿K.¹$˜MD¨ƒ@[·n
�•ñwÞ¼yÇsL0A”†NL„°‡šE'q õ,ØúßÿþwÕɶmÛ>òÈ#ݵkWÿ¸ˆðœsα/µÌ˜1#­Ãf›mvÇwè©üÓŸþ”e¯õÖ['"xÜÙ³g÷îÝ[6Ë®“(–'bÅ9š>}úæ›o®	R'	!„ÔÔIBHÝáëä´iÓtíW_}µjÕªE‹-KaéÒ¥‹/^¹r¥î!²¢au*ôüóÏxà�›nº)–Ë_€{Ó‰'ž8eÊ”÷ßÿÝwß½ýöÛ·Ýv[IÁÑÉÕ«W<qbÇ�vÚé�ü£¾ÕÆŽÕ‚±bÕÈ‘#¥uûÂþ¬NB÷4à5kÖà‹°ÌªÁãÐ_|±-
ëÂ…¡½ˆñ«1Ù8”ÆUW]…¤�fûöííFì‚U²T÷Â/l®N&ùÖÏC=I!G=zô@ÖtJŸå–[Jñ
+5îÔ©“ºLS
ßrË-ý㾘öHV0Zœ¸{ï½WvAR�?þx–½à‰Ç{lÚq¡ÿºYF�„â[L0;.Üj«­$Aê$!„��:I©;�Ä=öK/½TJ‚";õŠ£“ãÇ�ê$l¢OŸ>o¿ý¶lùòË/«3n´ÑF×_½ªÐòåË{öì)« “§Ÿ~ºú/tòÌ3Ï”>¨P¼_ÿú×úB�Y³fm±Åº×/ùK
:ù£ý(¨B°¿K.¹$˜MD¨ƒ@[·n
�•ñwÞ¼yÇsL0A”†NL„°‡šE'q õ,ØúßÿþwÕɶmÛ>òÈ#ݵkWÿ¸ˆðœsα/µÌ˜1#­Ãf›mvÇwè©üÓŸþ”e¯õÖ['"xÜÙ³g÷îÝ[6Ë®“(–'bÅ9š>}úæ›o®	R'	!„ÔÔIBHÝáëä´iÓtíW_}µjÕªE‹-KaéÒ¥‹/^¹r¥î!²¢au*ôüóÏxà�›nº)–Ë_€{Ó‰'ž8eÊ”÷ßÿÝwß½ýöÛ·Ýv[IÁÑÉÕ«W<qbÇ�vÚé�ü£¾ÕÆŽÕ‚±bÕÈ‘#¥uûÂþ¬NB÷4à5kÖà‹°ÌªÁãÐ_|±-
ëÂ…¡½ˆñ«1Ù8”ÆUW]…¤�fûöííFì‚U²T÷Â/l®N&ùÖÏC=I!G=zô@ÖtJŸå–[Jñ
 ÐÀÎ�;ßvÛm2ç­žœYœ»ùóç?øàƒ;vDjØÒ™cnŽ%(m¤¹Ç{@»pt”Àœ9sF�…½6Ë£§R:¸Ú9iQ8ÒÙUÀ¹@.X°Ç}à�~ðƒ4W'‘øèÑ£m‚sd$í+
 °ÛèWå0uêÔZÐÉ\ú‹“‚“àeOVHKÁ±T|/�¬/8¹œ??¼“l|J:ŸRòN!u
u’Re䯔|�ü÷¿ÿ­k—,Y‚ÛÝþýû2îs�ÌnàÀ�·åË—Ë.�Äý<TëÉ'Ÿ„‰Œ1â²Ë.>|øW\;€^~ùåƒ
ê—–
	ê$<èµ×^ƒÍÁËÆ�»±š€‘�1cÆÜwß}Pm1œ1c†ÕÉ£�>Zóˆ½æÍ›wË-·ÜpÃ
gŸ}¶�
¢1lØ0
þ½÷Þ»ñÆÞqÇ×½{wO„jý	Ξ=y¼æškÉ©§žÔIÅE]T„N~öÙg'NÄ� §žzÊ™ŠçÅ_D^¤xœ”	JF7CΜ9áá¦ý„N@±cì…s�¬m¸á†p›6mŽ?þøqãÆáœâ4�þùÐÕòàÔ#w9’S	�ŠQ»°æ¼ÖÉ¥K—â@ØÅV×n–NÚ÷zà+Н2‚Ò~E±_Ñ«¯¾‡ÖSù¯ý«QuÒê›ÿ–aMÜÑÉÈ^öß´Ó^ž%“À;ÞZê$!d�…:I©2ÕIhÑóÏ?/ÒëùFÙk‡vxöÙge¯ˆNZ�ø—yTï¼óÎŽ;æ< pÛ²V¯¾úªÕÉ#�<2¸ÙâÅ‹áDzè�7Þ’+« q?ü°J�¥uëÖ}úôI;4ôY­mÛ¶ªÐÉ¡C‡jB'á>òâè$)M'³€Rýr-þÚ5kÖ\zé¥:«êÎ;שׂ^yå
 :tè+—U,°cB�=öX=)α{ì1«“'�t’n6eÊ”.]ºøeXœN"ÁÉ“'ãë—[û®ÿ+*�ŸÛµk§RÓÀ:鿈9çÙœ¾jJ—Gö’vLõDiˆôõ0íMÇöÐÙ¡NBÖYêQ'¥‰¼ì>òîÂf!¯€>¢”ü§šÙA½SÊî½·)ø4Õ¾Ÿ1—¹3O°‹!-H\'!‰þ�¿n×;uêôàƒÊ^uÒ²v÷ÝwgXmÓ¦��Ч8æÏŸ¯sÔ àž={=G‘öa“M69r¤æëÖ[oM+�C9$x\è!tRg}�Nj‚~øáˆ#´výõ×׎µ(
6–UEèdº_¿~?tLWAru¶Uйsg�é®Ý·o_Yް�:ê¨`â(؉'j
@@ -11676,7 +11676,7 @@ C1
 ,ÌIÀI8Æn×òåËùDÎråÊ}ÿý÷\J�„‡û÷ïç¤øøø*UªP’ˆ“@¼µk׊¥Ñ){÷îå$¤ÿþœd'‘É[ì¢SxF+á$ïœóÒ…@Á¾‘ÿ)))))©¢“ÄI))©"=Æ8nýúõ¯èAÝÌÀ;P´Æ°råÊf†aÐ
8p€’€à:‰ƒ’ø¼’‡ЧÿØÚÚ‚§Øy`Ѓ’,--Aa´Bˆ´dœtuuås"ÀVÀ=6Ná¡:$mÛ¶�“ĵ“ ¿Å‹Óu Rýúõy#µnSR�5'AIG�eúqòþýûÓ¦Mãºàª¿¿?Z”§ÂI°0ã$�´X½zuï¦M›¸7á¯L¤1Mš
 $Ÿ;wn©R¥¸”xˆÒåË—Ù
x¸{÷nNJMMEs8P<ÙÑX²d	—²··gtE“:$¶køðáœ$â$JñÚIø‰neAƒÐ)	Ñ		�ÏùÞl/&õV±RRRRRR‹Š#NÒቚ§1*N‡|ýÇ Bx§)_Ïóÿm�x…¢ÇRäçëêÓ*¥¤
 $ͬ@R°ÕK—……»vîÜéèèhfXذaCÆI`8Ž)	/øÐy$�1‚
‚£¢¢(	
-ìâ>p%óΟþ	œä…� ñÓtƇW».]ºÄnÙ²…ëBOÔDoÅcf?å1MF×ittI×	'«V­J©"N‚’–.]ʃi÷¯¿þÊSᤓ““ˆ“ŸB‹&ïØ±ƒÝƒs]4‡“qröìÙ<:	€úöÛoy©fBB·îÝ»—
"2|>cŊ׮]Ëí�ƒ©\¹2\"éðáÜœôõõå$'Ñdq%)>67nLI¶¶¶6là^

×´¾\‰ƒÚRRRRRR£Š/NâÉDÍ}ô¸òÂ<ˆ'·ÂW¦`ð5ÄIŠ¡ˆ“
+ìâ>p%óΟþ	œä…� ñÓtƇW».]ºÄnÙ²…ëBOÔDoÅcf?å1MF×ittI×	'«V­J©"N‚’–.]ʃi÷¯¿þÊSᤓ““ˆ“ŸB‹&ïØ±ƒÝƒs]4‡“qröìÙ<:	€úöÛoy©fBB·îÝ»—
"2|>cŊ׮]Ëí�ƒ©\¹2\"éðáÜœôõõå$'Ñdq%)>67nLI¶¶¶6là^
×´¾\‰ƒÚRRRRRR£Š/NâÉDÍ}ô¸òÂ<ˆ'·ÂW¦`ð5ÄIŠ¡ˆ“
 §�N3ÿË ¢ôVJJ­ëׯƒìš5kÖö¥ªM›6^^^๩:8	ŒJIIÁg�§§'JõíÛ7$$dß¾}'Nœ8xðàŒ3š';vì¸råJü—?~$€ºš6mÚºuë>}ú€’€o(&ªà
 ’P
 ÃÂÂ"""Nž<	4Çõïß=<<ºuëFc‚y*œ,]ºt»ví@@(µÿþÀÀÀ^½z}üñÇä!x
@@ -11756,7 +11756,7 @@ K
 		©éƒàd¾f¢MñR{5�õ@
 Å‹g„R·n]†'°“Ç	ØÁ¨Þ@s6ØdôèÑŒùd Œ¿þú0K{¨­¬¬´oá„e‰0Õ½{wæp²gÏž e–D£†“ PvÇ%lÞ¾}¸'OÃNIÅ¿©gÏž1ƒ §N�:±‚ì"K&;Ñ�úôé#±B²š5k‚n˜DØhbbÂT®\xÎÎ,E)À@oÁP#xbgg—˜˜È–„Eñ¢Ð(�PÄËü
’gΜQŒT£F
Ú
qõêU„”½ÏŽl"YYYCšý>çkàQr¯
  ñäÉ“-Z´`ɪV­J»;µ·õ’%Kø“”˜Š©õEÀmmm‰d=z¯X(ø”š‹Bh{¯�����Ð?¨ÂŽ“tÃÈÈQmï$F€Œ%;1iï$φJ8)ß³©]…„„þAeffN˜0�öøK�‰‰QLùäÉ“)S¦
8è!O˜]¿~=�Òcaañß&èÜÝÝ:�&Àt€ö(99ÙÔÔT‘˜*V¬PbÉ@@àbÅdึmÛ²•ÀœsçΑA”صkWr#--ÍÍÍMÑH¹råèl�ãÂ…é æ‡~`‡ê'i¦•Êƪ]§¨ç½“@cD›riÙ;Y»vmj/sĈì}ccã±cÇ’…{÷î�7Žåàà èpäÞ¤I–²V­Zú\d‰hñKˆõT£F�wçkÖHwìØQ1ê�×é†�����ÐÇVaÇÉü×KLÄñ«UyÞ¤iDZ�JKdå÷Œ�:Â@	'ó¹“]éœX¹BBBIçëWRfdd|ÿý÷Œn­Zµ:{ö¬<Y¾æ¾xöŸ�Mð�?^ñÒ@¼\½zu��;w¾UP ŒÃæÈJ”(1tèPZìš��иqcþêI–Žb;IùM‚$äµ±±71ƒñññtj(ÏÖÖ6==ý•FgΜ¡	8‰Ê”)3cÆÄ�ŽåaOž<™Í~>}útÉ’%´²”¢�’ cŠ艓aÿoܸQ¼xqy²bÅŠ5kÖì÷ßÏ×€öåË—»wïαÂl:_srÕñïׯŸ¢{0‚†l²ŠX[[ïÝ»WgË¢o'+W®¬³^¡;‘}D»W¯^ü¥Ÿ$`û�ôígBBBBBBM…'…„„
-µØxø=�ääälÞ¼|G³9rµÀxïÚµkÓ¦M>>>}ûöíÚµkŸ>}æÌ™Cø€/îß¿¿ÿþÝ»wïÛ·/,,l„	À�nݺ¹ººâEãœݸ¸¸lÙ²v:tP—�þGFFN�:Ô¯áaHHÜÀ£Õ«W»»»ƒ€Àb�;w¶×/¾ùæ777rÎ'%%�yá-R‚@�ŒŒ˜Kœ3’· eðï‚vìØ~ÁlÅÓk ¡Üððp8¼jÕ*ý$8¹xñâ‹“°6DÞ=zŒ7ŽÿŽ.++È�PØ¿"ƒ”—‡‡G`` *…ªM›6Í‚ª\»vmT±ÅÓ�7z{{£' òýû÷

UëEà²eËPŒûùù©}Uð¢=ztÏž=(ÚßßßÉÉ	.‘‡`R8ܾ}ûªU«*~KÀzѨQ£X?„K^^^è±|`vLGï
+µØxø=�ääälÞ¼|G³9rµÀxïÚµkÓ¦M>>>}ûöíÚµkŸ>}æÌ™Cø€/îß¿¿ÿþÝ»wïÛ·/,,l„	À�nݺ¹ººâEãœݸ¸¸lÙ²v:tP—�þGFFN�:Ô¯áaHHÜÀ£Õ«W»»»ƒ€Àb�;w¶×/¾ùæ777rÎ'%%�yá-R‚@�ŒŒ˜Kœ3’· eðï‚vìØ~ÁlÅÓk ¡Üððp8¼jÕ*ý$8¹xñâ‹“°6DÞ=zŒ7ŽÿŽ.++È�PØ¿"ƒ”—‡‡G`` *…ªM›6Í‚ª\»vmT±ÅÓ�7z{{£' òýû÷
UëEà²eËPŒûùù©}Uð¢=ztÏž=(ÚßßßÉÉ	.‘‡`R8ܾ}ûªU«*~KÀzѨQ£X?„K^^^è±|`vLGï
 					ýƒ8)$$TÀzœdm —jÕªÕ¯_ßÓÓSmå�;w€ìÕ
àÿÒÍ›7ÓÒÒ0ì�Ðäf^^^tttÅŠA[fff°	2±¦¦¦Þ½{—öJ$ÁIÐ
 ð‡[·n]s­Bvô¨••UPPPJJ
 \‚oM›6e‡ÍZ[[>|oâ)X,Q#�#óŠ÷äÅ‹@ãÛ·o#1*Ò®];Eœäg'屃mQeÉžG9ãTªT	y"ºœ‘p’_çì¤ÚbWЂ ÏehhȦQ_T
¤«*ó5ìvÿþ}D&ñµ"ü
@@ -11780,19 +11780,19 @@ z
 N²NA(:tè€~A46oÞçQõÞ½{ÃîÝ»#¤Iü1C4Ò`ôÊZ8)$$$$ôÑ{ƒ“EØ;©”�δQ™dhF?h%M£2‹Gx¥Nšßtâ¤d%*UDUK2Ðd¢ž8i ·BXÝyÙhp“•'…
 %È¡C‡iJA6667nÔÇ>èFöÌà R…¼Hýõ×Ô©SùÛêI€S///bÒÌÌL@ËÉ.
 âé´p«Y³f¡š¯�“Eü믿¦Ób+UªâÙ�”ššÚµkWªqÓç^èåàààòåËË6ÇÎÎŽ8îáÇü6X@¢ì¥'+T¨0{ölJÝ·oŸÎûDX©ùóçËÞD£Ž“¼
êe4sùòåR777P*KÂßR´EÖ‚ÀI!!!!¡ˆJ/Nj‹Ï#{²«¶)mœ4àX‰a—úQÞ%¥å�„{ƒÌ«ÇIþ�%I3ÊÓ'•fõq¾àÍhðwNþ«¤ôû¨¿À/k×®Õç½�—••�*zöìÙ‚´-'[¶l£ÓBvvöèÑ£eÝ066ž0am?|úôé¤I“Ê•+g ™ùêÛ·onn®NûÀ¥Ö­[ªùlï$Îm„È'ù¶€­ds‚­ÜÝÝY6`rÛ¶m¯_¿^غBCCAß²Íqvv¦œ€k~kj�5d‘üñãÇ7ÊV¥Jà*KÓ'õ	£��MXX˜¬ÃÉÉÉÐiÑhß¾=yˆfþðàT–Ú AšCÏÌÌìСƒ¬sssþ¬'!!!!!¡¿K¥'‰ÝdwümvR{'�?*R(Éq¦ü­oc±«ž3ŒTŠßªOYYîÓÓù‚7£Áç8ù¯ÿűðâÅ‹íÛ·ëóòÏËÌÌ�¨�ý'OžLŸ>]\\\ø@””““ãëë+;;ibb2eÊÚcøðáC///¶ŒÓÐп�J[ÿxeee5nܸ°¨W¯CZ4Áí5kÖÌ™ÁJ•*…ds‚­xêØ±£>³®¼€x!!!J8Ù¼ysÊ™žž@£$ ?¿ì–ôüùsêKKËÀÀ@–ôòåËýû÷ëÃÚµkoÚ´IÖaàê¨Q£tZÀ(úøã�	®Ùu3t(þž?ž%=zôãAv•/_><<¼Pñzzp²àõòTɽ“EÀI}æþd¥P*Iüô\IÅ£2OÊ‹Ú%;�«Bv²�Õÿ(ІÒ³ž×”	%$$899Xºé!OOÏ6mÚôë×�á,ÐăNž<½gÏž_4Â÷£G�FDDÈ.28;;Ó�¯^½A€~ÕèÏ?ÿ¤ûD€“&L -V¯^˜Ó®];ø3{öì#GŽÄÆÆÆÄÄÑ‘§š™50Ή'<H^ñÂÃãÇ�£ààÁƒ[·n
Lstt¤KÕ…løýݽ{w\\ܹsç@²…
;‚véÒ¥qãÆ±=¡ãÇ����—Í‰Èøûû£Éè#´zåÊ•te'81%%`‚Siã¡C‡Ðq²05kÖŒêb�‹'èåÞ½{Be]B¡�F�
ö„ÿ}ûö¥uËHºvíÚ€\]]QiÓ¦M	™
4ë“ëÔ©Ó¶m[ØG©ï¿ÿƒîÝ»Á„ÃìÇ™3gzxx 2°£tßFì :V5 wݺutÕ)8qÊ”)°�á�1àëëC|²ÁܵkWø�ñ+PØî*q½8Y ™ïà!¨g'eíHÀ‡§<ƒ7wòÞjÓ+±jI]";ͧmM€¼q SÊ â¼J4$Äì¤P¡$INNNKK{ôèQ¦.edd€_ØÕ~$”Åà¬Y³¦……ENx±733S'ÁV ÑþýûW©R¥0Œï߿ϒ$8ijj
-¶º{÷nVVÖ•+W¾ýöÛúõë[idbb"©ðRAU¨ËÁÁáçŸNÓ€–:Hòµ

ÑÞJ•*Bi©g¡ò¾±¨Ò«l¶'Ož°°ƒ[ù3usssAdø•·´´Tj#XLé&~v’UwïÞ=D‘W÷
+¶º{÷nVVÖ•+W¾ýöÛúõë[idbb"©ðRAU¨ËÁÁáçŸNÓ€–:Hòµ
ÑÞJ•*Bi©g¡ò¾±¨Ò«l¶'Ož°°ƒ[ù3usssAdø•·´´Tj#XLé&~v’UwïÞ=D‘W÷
 œçá’ö,p^^ƈk8�U„N´³³[½z5
 >xð ïããckkknnŽîcÞâÚ‚±jÆß7DƒSé–Luœ4Ьy†A°¿‹‹Kxx8;O˜ç,¤Eè;!!!!!¡×{ƒ“lFLÏ‹BH²{'•¶:òâOþa�EФ�$ٌɒ$›™ÿŒÔøïÚâÏžå¿ÓíéT‰J'ÖêÄIÉÂ]ÉsYçU¢ÁKàä¿Jì�ùïõX‘��ЫW/=)Œ@Ȱÿ~fô±}ûözõê±Ô–-[CX’'�<„®ZµJéàP=܈��eAjü–@=®ôöö~÷‘/ЬÔ:thqš5mÚôíyˆžð²ŠÊ”)Ó¢EZ$|óæÍÞ½{˺T­Z5:ë	�djjª�M²“ðF‹]y�1÷îÝûöš)$$$$$T|½78Yðš\ÖçdW•5xñ» %Æ'I&%{'ù$:þTÛ DF–MÁTNÆ•ÀM'Nª¬¤Uq^%$�“ÿ*±Áð÷úÀn]ìØ±£,¨¨Y³f‡fF€ááátª½½ý‰'XÒÓ§OÇ�O¥””››»téRYÐÐ_•+W&tûÀ�"qwwÏÏÏgRSSuNòYlf---��‹ï…ym!Úouxðò‰þðüÖ­[*—Kþøã�Ì qíÚµ²¬ùO?ý”ιý믿–/_.;!nnnNÿw!$$$$$ôÏTiÄI!!!!‰^¼x‘˜˜xÿþý$Ý»wÄÄINNö÷÷¯U«–µµuõêÕmt©J•*ÈüÅ_Ð2E6¯T£F
öò_­Z5pÜHOO¿}û¶··7qAÅŠyݼy³££#�P©®)�Bc ™·:uê3Ùµkׇ~xA)vH¬Šà2ÛÚÚŽ9’ݵ�ø¬X±bÚ´i3ߎf̘�Ïï¿ÿž-Ñ]:”ßùÁ°VSà!:EÛy`8<G¨���SRRà¹d%m‘TÌÉÉå=xðàîÝ»€AKKKtzݺu'Nœˆ‡,†ÍܹsáÂHÞÂUôf³fÍvîÜIccõêÕüVRÙ²eÝÜÜbbb0 a|:þü:uê Qƒ-[¶<yò$ï$ð£NÒ²j!!!!!¡¿W'…„„J»@kÖ¬éß¿ÿÿþïÿ÷>SìÉ�!C¦L™B$H÷ìÙ*_·n]¸‚?üðÃO?ýÄßÛÈÎäYð”×½{wÐǘ1c<Á:tˆ
-âvìØ±råJ¥7lذqãFàžöÎJmœ,ÐÐ4~A©#FáJdnnÞ«W¯¥K—¢!`±
"�
¤¡Å×àÁƒ”eee¡§'­¬¬ÐR´ίÓß7mÚ„>ýøã�)›¡¡aÓ¦Mýýý###Y� g‡
6jÔ¨õë×Q‹3„XfÏž=`ÀŸáÇûùùaT Óÿûßÿfffò™³³³£¢¢¾ûî;øÀú9Ñ›‡¦³˜NÊ.a5ÐìÇQŽ=ap‚OCCCa„Æ,àdglnÙ²eòäÉÞÞÞ(¨óÈ5!!!!!¡w �“BBBïXì�º
&$$ëÄ##£iÓ¦•`½Ú8©$	Nê)Ðn�:ud
'%óV$ %PHa7nÌã0HêÎ�;à;�­(Ž>øàÐá$0�8^)Ý�²uëVêYKKKP6%ÁG}noQØÈ;®,ŽAuœ”hÆŒlšX]þù'á¸ÏÇC!!!!!¡‘ÀI!!¡w,ö>\‚ïß¿¯Ï%Œüµõ%¢Bá$-vÕ_W¯^•]ði ÁÉ3gÎÈ–¬}õÕWÚE€oNNN@Iþ¿'ííí¯\¹¢Ý�ÜÜÜ   Z»+ÁÉßÿ�ŒW¨P�V™M’{'á­��Oqê�“`á1cÆH&@e…&W«V�•²°°PºñSHHHHHè]Jà¤��PiWRR’ì5‘YYY-Z´¨ëÕ'ÍÌÌŽ=Z(ã ¼.(]–€’,Ü%eggÏ�;W»›�Ô^!ù·ã¤ƒƒƒ6ä²ð†„„”-[–e+_¾üªU«(õܹsdÔVØðjëСC¼·£F�*޵üü|Œ
Ù½“™˜˜L�:õÉ“':mÞ¼y“þ{º|ùòâx($$$$$T"8)$$TÚœtqq‘}W³€"‘êîîÞ®]»éÓ§ÇÇÇŸ.’Nœ8qöìYþòJœD½ÎÎÎmÚ´iÞ¼¹§§çÕ«W©à_ýuñâE”Øÿý÷ßéÎDPòÐl³ÉŽ qssûôÓO÷ïßc'¦2)á$T£F�àà`9«k‹þ8	ÀYìJDº ÒÒÒRçá?ª8Y«V­�7ž9sæ×_½wïüa
yñâÅñãÇûôéƒîC?ùä“]»vQ3ÏŸ?OÆêeË–á	ŒP<Ož<‰øÜ½{Weä<þŒ§Ñ×_Í{ËãäË—/cbbN�:ÅW¡$ÄÙüüü”.0•DfÀ€€qDp”¼EÒèÑ£Û¶mÛ¬Y3Œ«={öè÷û!$$$$$ô%pRHH苽E— AœìŒ7îÒ¥KÈÜX°`�““S#�FÈÿÑGj¾ùæÚèÇNv•ÅI0ÂСCQã­[·@…©©©DI`€Cûöík×®Mn4lØ?vèÐ!**Š�SŠüp›ÇI|_±bŹsç@.\¢ÚÚÚ«ÁƒGGGS4€“sæÌQᛦ-]º”Ñ'


�yóæ-Y²d‘F‹/ž:ujƒ
t–UÁIf¹N�:h îÆ�|ç"—/_F$“““ùçüì$|CçR—Õ¯_ßÞÞ~̘1èÙa?vìØgŸ}V·n];;;ÞÛ‘#G²lè;³¶¶vttä«P’“F…ºZ£Þ‚ÑÅ999*£ÄýÛo¿ÅÇÇëýû!$$$$$ô%pRHH苽?— A "ÞÃeßÒA
+âvìØ±råJ¥7lذqãFàžöÎJmœ,ÐÐ4~A©#FáJdnnÞ«W¯¥K—¢!`±
"�
¤¡Å×àÁƒ”eee¡§'­¬¬ÐR´ίÓß7mÚ„>ýøã�)›¡¡aÓ¦Mýýý###Y� g‡
6jÔ¨õë×Q‹3„XfÏž=`ÀŸáÇûùùaT Óÿûßÿfffò™³³³£¢¢¾ûî;øÀú9Ñ›‡¦³˜NÊ.a5ÐìÇQŽ=ap‚OCCCa„Æ,àdglnÙ²eòäÉÞÞÞ(¨óÈ5!!!!!¡w �“BBBïXì�º
&$$ëÄ##£iÓ¦•`½Ú8©$	Nê)Ðn�:ud
'%óV$ %PHa7nÌã0HêÎ�;à;�­(Ž>øàÐá$0�8^)Ý�²uëVêYKKKP6%ÁG}noQØÈ;®,ŽAuœ”hÆŒlšX]þù'á¸ÏÇC!!!!!¡‘ÀI!!¡w,ö>\‚ïß¿¯Ï%Œüµõ%¢Bá$-vÕ_W¯^•]ði ÁÉ3gÎÈ–¬}õÕWÚE€oNNN@Iþ¿'ííí¯\¹¢Ý�ÜÜÜ   Z»+ÁÉßÿ�ŒW¨P�V™M’{'á­��Oqê�“`á1cÆH&@e…&W«V�•²°°PºñSHHHHHè]Jà¤��PiWRR’ì5‘YYY-Z´¨ëÕ'ÍÌÌŽ=Z(ã ¼.(]–€’,Ü%eggÏ�;W»›�Ô^!ù·ã¤ƒƒƒ6ä²ð†„„”-[–e+_¾üªU«(õܹsdÔVØðjëСC¼·£F�*޵üü|Œ
Ù½“™˜˜L�:õÉ“':mÞ¼y“þ{º|ùòâx($$$$$T"8)$$TÚœtqq‘}W³€"‘êîîÞ®]»éÓ§ÇÇÇŸ.’Nœ8qöìYþòJœD½ÎÎÎmÚ´iÞ¼¹§§çÕ«W©à_ýuñâE”Øÿý÷ßéÎDPòÐl³ÉŽ qssûôÓO÷ïßc'¦2)á$T£F�àà`9«k‹þ8	ÀYìJDº ÒÒÒRçá?ª8Y«V­�7ž9sæ×_½wïüa
yñâÅñãÇûôéƒîC?ùä“]»vQ3ÏŸ?OÆêeË–á	ŒP<Ož<‰øÜ½{Weä<þŒ§Ñ×_Í{ËãäË—/cbbN�:ÅW¡$ÄÙüüü”.0•DfÀ€€qDp”¼EÒèÑ£Û¶mÛ¬Y3Œ«={öè÷û!$$$$$ô%pRHH苽E— AœìŒ7îÒ¥KÈÜX°`�““S#�FÈÿÑGj¾ùæÚèÇNv•ÅI0ÂСCQã­[·@…©©©DI`€Cûöík×®Mn4lØ?vèÐ!**Š�SŠüp›ÇI|_±bŹsç@.\¢ÚÚÚ«ÁƒGGGS4€“sæÌQᛦ-]º”Ñ'
�yóæ-Y²d‘F‹/ž:ujƒ
t–UÁIf¹N�:h îÆ�|ç"—/_F$“““ùçüì$|CçR—Õ¯_ßÞÞ~̘1èÙa?vìØgŸ}V·n];;;ÞÛ‘#G²lè;³¶¶vttä«P’“F…ºZ£Þ‚ÑÅ999*£ÄýÛo¿ÅÇÇëýû!$$$$$ô%pRHH苽?— A "ÞÃeßÒA
  /–íÉ“'Àýßðe¤S_$÷Nò²²²ŠŒŒ”õöéÓ§J—€tïÞ<Èrò‹Ë–-Û¹sg2’‘‘¢Rýúõ£¤G�Íœ9SŸ¶´mÛ–�Dª'N²†.iHYéFIYœ$•+WnÍš5úœK¤Ò§�&&&«W¯–µ�––&{f‘�æÔ&Ú;	žÝ·oŸÒ&Ö—ƒƒƒÒ2æ‚ø+†™$ÇÏÙ¦ö­ÄiTLãBBBBBo['…„„J»þøã`£ìË9˜‹vÕ|&MšTœW}0�‹‹ád^^Þ–-[ðÆ«�ÓÔÔ”ßèLJ$Yûýû÷§õ´7nÜ ÙI†“tp’¶‹Áøsc”Žâ‘ÄäííÍŠè�“ÀÀÇ�S]¯^½JHHèÖ­›>eõÁIssóµk׿ççëìôøøx�•h¦bÿóŸÿÈZHII;v¬l)‡f'¡'NèsÖS‰#ùüùó:›ÿwI‚~lð—¬M’ÀI!!!¡R!�“BBB¥Q Ž´´´ÌÌÌääd0]ùòå%8PQ#WW×;v<ÒèìÙ³|60š™™™¥¥¥…‚�„†††”ßÙÙyß¾}̇/^àM¸k×®€ d£Rø±víÚüÔ
EÂ�Ôýû÷ƒƒƒÁ¹È&©®zõê£F�‚ŸÈ‰ÖmذÁÊÊŠ¼­_¿þ™3g𩀸=zXjäààÀŸX›››»nÝ:¶½^•)SF[ÀwdEЉ“Ý»w×§¬
 N‚ˆY[ÐÆ+V$%%eiD+„µk >ˆ›ö51è24ßÚÚºS§NGŽá~úôivv6Fâܾ}{*`qƒA[[ÛéÓ§£¥¬#vïÞíîînbbÂ|GJö�âG6”ž›ššÒùBÚ‚Ïj¸'Ÿ?^¿*%*	úá‹Áë	ÊÎ�;S+('cù?þøßÇŒSðæü&³Ãž •=¤Yx'é?m´ÿs€ÕKÅi¶Tâ=aŸÅŸTb8)$$ôŽÅ¿àY ÈI“&ùûûã³cÇŽü98bøðá‹5
 
 
 š9sæÔ©S‘8ß´	ÀiѢŌ3æÏŸ?gÎÿ75{öl<Äß±‰'6mÚ”a8¹ÿ~æØ|´sçÎE‹Íš5EXA”ßñ7<‚€$,œ‚x‘F½¬{>oÞ<xSS¦LaÙ€0D²šÃ<ûõë7mÚ4äGêwß}·dÉ’€:ù‹6^¾|yëÖ-@ÙÂ…ýüüš4i"‹-ÿœDRŸ>}
8¼téR´Àg@@ÀÅ‹•ˆT¸~ýzANoooþÿ¨Þ½{³€Þ¡M—0õðáÃU«V!þè/øC×8°¼¯¯/B:wî\ÄeÑõ舯4Âst’øþ‚OOO:o�åââçaŸrJFJ¡SZ·n�VË
 @
-ÈE~X

ÍÈÈ(æoJÉJ	'ñ…¡#G–Áà5B‚
^œÁk$dH6YqÞ>á$@‰Ke6)§¬?|N!!!!¡’’ÀI!!¡w,öÚ\ ¦½{÷ʾ�ƒðJO9ãããÛ¶m+›­fÍšJ»êx��xë$8©¿ÒÓÓÁ†¬j###‡ÒöÀððpþL%�žhO¨ŠP #YEÀIx>tèÐ_ìjccCÇÞ¦¥¥¡
+ÈE~X
ÍÈÈ(æoJÉJ	'ñ…¡#G–Áà5B‚
^œÁk$dH6YqÞ>á$@‰Ke6)§¬?|N!!!!¡’’ÀI!!¡w,öÚ\ ¦½{÷ʾ�ƒðJO9ãããÛ¶m+›­fÍšJ»êx��xë$8©¿ÒÓÓÁ†¬j###‡ÒöÀððpþL%�žhO¨ŠP #YEÀIx>tèÐ_ìjccCÇÞ¦¥¥¡
 *ò¢õ½*B/;::R©?ü^igƒ©èèhÉD6z¶S§N|æµk×Rj—.]d
Bûöí£“ˆÌÍÍõ¹‰AC/ë³ÓÄÄ$66V§Áw)õÅ®4!È(’€_øe«ü%pOÛ&› $œ$ƒ’ï|¥ì»„7%þ°µïÊ*ŽN
-		•:ååå………ɾ�R:vìH9AÍ›7—͉‰‰ÑY׋/¶mÛÆî,2Nfdd¸ºº²ªË•+‡—[Ùû PWDD„Ò¼¯J•*�;wNg½¨­[·ÊZЉ“ÿó¦˜çÈÆŸ;ÊãäÿhIR�NÖ­[—_NvïÞ�%¡Èˆ#ôYðùèÑ#¢uÈÞÞ^vRïÉ“'!!!²Ñ(S¦˜‘rö###Y:ÝÍÍíÒ¥KÚ‘-..Žz„¨tþ¯üüüãÇ�׫WOg/W¬X±ƒí­Jû(Fglš[{]+>A…<²R6eq’Q$ûÂòÒ‰“ø”õ‡Ï)$$$$TR8)$$Tê„×ø={öH¦ŒF&&&½zõ8 ϳgÏN�:Åf'‘ľ7jÔH²jp”¯¿ÀDÅnQÂÉ|UÁZRR^e


Ad666.äçø¨j`Ñ�?þhmmÍš£Íì9>á�äB
‰`ÈÌÌ

E¥²|§„“Èiii	@óòòêýZˆjÏž=W¬XA7c2�:uêÔ§O–³�F-[¶D_ðÕ)á¤��ÝÙ³g™µÛ·o{xx°$÷÷÷×gvq2d«ÅÊÊ
+		•:ååå………ɾ�R:vìH9AÍ›7—͉‰‰ÑY׋/¶mÛÆî,2Nfdd¸ºº²ªË•+‡—[Ùû PWDD„Ò¼¯J•*�;wNg½¨­[·ÊZЉ“ÿó¦˜çÈÆŸ;ÊãäÿhIR�NÖ­[—_NvïÞ�%¡Èˆ#ôYðùèÑ#¢uÈÞÞ^vRïÉ“'!!!²Ñ(S¦˜‘rö###Y:ÝÍÍíÒ¥KÚ‘-..Žz„¨tþ¯üüüãÇ�׫WOg/W¬X±ƒí­Jû(Fglš[{]+>A…<²R6eq’Q$ûÂòÒ‰“ø”õ‡Ï)$$$$TR8)$$Tê„×ø={öH¦ŒF&&&½zõ8 ϳgÏN�:Åf'‘ľ7jÔH²jp”¯¿ÀDÅnQÂÉ|UÁZRR^e
Ad666.äçø¨j`Ñ�?þhmmÍš£Íì9>á�äB
‰`ÈÌÌ
E¥²|§„“Èiii	@óòòêýZˆjÏž=W¬XA7c2�:uêÔ§O–³�F-[¶D_ðÕ)á¤��ÝÙ³g™µÛ·o{xx°$÷÷÷×gvq2d«ÅÊÊ
 ¡NMMÕÎÖž«e‘AÁÏ>û8ÿJ#Ä�®¡DÀ[´h!;KˆüGŽAKYÎÚµkïØ±C»[%#
 ýrâÄ	Éí*Ô³üC´eÆ
h*Òçx¢w �ÇæðøV �G~¯"á^Áë¹ËÂÎNjKvvRÖ�“BBBBoC'…„„ޱثr1�¤§§v€Ýºu뮾yY¹råæÍ›×¯_8qâD<ïß¿?8…Ö‘â½½qãÆÇ�gÖð¶�—ö}ûövíÚ…·}Â=àÌÎ�;Ùm Ú{'³³³�BQíVЇ……M�:È÷æÍ›wåÊâ`Âýû÷QiddäÚµk�f »~ýú�Èà!f‹‘‘‘««+š‰¤	&(E†7ˆzQ8EzôèѤI¢TœD'''{^^Þ#N€,pºd3#ªC¬�DÙ@‹øÁ·µµUÂITÇãäo¿ýƬ%&&‚L	'gÍš¥N‚¶bbbúöí;hÐ t÷–-[d³'1øfV©RÕ�Ñ/S¦LË#nè²àà`ºz]œŒ‹‹“­—ÇÉZµjmß¾�R+pͶmÛ0L"\à$ž;88ÐP¬P¡'Æs×®]ëÕ«G�ŽÇóÅ‹£E`—/_V9›èÝH	'ùM‹<ýÑ	9ÚÅÙsÂIn¥ÒÞIþxIÕüîH%N
 			½
	œzÇ*œd'»&''ß{­¤¤¤””¼�nܸ±N�:•+W,à=<##(qáÂOOOYœDGG¬­­«U«Ö¶m[º
„á¤ìì$¸àäÉ“ 5T0ùPN5jÔ¨Zµjƒ
pNµø†<{ölÕªUÕ«W733«]»ö¸qã~ÿýwFd bþ>{{{@P1C#¥È<}úXІ€�Aj¾¾¾À ÍÇ7mÚD@­Ž“Í›7S¹w´ÍQÂI~v�ULœ,x},‹Q�ÈæÁ
@@ -11892,7 +11892,7 @@ N
 R´Æö3²yL¶�dÄŠ€x½zõ¢4ª¼€E£G�&#•*UŠŽŽVìË‹/¼¼¼(©šPaÀ€ŠÞ9Nêë냓““ßfŒRRR:tè@ÎwïÞ�NZ|öìYïÞ½©¹jÕªQ\p%í,_¾üäÉ“i),®rqqy‡Ý´´´\±bÅÛôQ"4�d
 œüñÇg'Ñ£ˆˆúÇ#n°#F¨Íc
 					ýË%p²$Jž;HHè³jÛ¶mŠŒNtpp`5µãd£F�À†Ì p’OYÃ(Ô³gO¶°A…„“�¾}ûÞ¼ySî! ‘’|êi&¢¢¢û’��=~üxþxA5999)ΗÁ«-[¶yù©cÇŽ÷ïß›1zøðaçÎ�™µ2eÊÀy
-ØœRÖ@¶¶¶—/_fE@ÎN�:±÷


gÏžM'Efff>üö±J•*jIuЧG�¹ºº2ã`á	&ðGOòŠŒŒ¬]»6«‰»ÈÃÃÖ]					•,	œ,Y’ïµ*qzû{X‚“`1ðZU�‰ôáS$NÆÄÄ�Á_ýF€VVV•*Uâ7-öêÕ+%%¥@3;©'Áz ÈŒŒŒôôôÛ·o{zzV®\.ágƒ
~ÿýwžà’ÿþ÷¿Õ«W·´´¬¦"Ö5ggç‹/¦¦¦>xð U£]½zÕßßßÂÂÎK.DÓº°bhddÄÚBzôè�¶ÀGè8Ž˜N.�8ª�=S— :­
+ØœRÖ@¶¶¶—/_fE@ÎN�:±÷
gÏžM'Efff>üö±J•*jIuЧG�¹ºº2ã`á	&ðGOòŠŒŒ¬]»6«‰»ÈÃÃÖ]					•,	œ,Y’ïµ*qzû{X‚“`1ðZU�‰ôáS$NÆÄÄ�Á_ýF€VVV•*Uâ7-öêÕ+%%¥@3;©'Áz ÈŒŒŒôôôÛ·o{zzV®\.ágƒ
~ÿýwžà’ÿþ÷¿Õ«W·´´¬¦"Ö5ggç‹/¦¦¦>xð U£]½zÕßßßÂÂÎK.DÓº°bhddÄÚBzôè�¶ÀGè8Ž˜N.�8ª�=S— :­
 Nþßÿý
 =yòdxŸÿóŸÿ¸»»ÓŠÀv@([ú[¡B…3fPÓ/_¾Ü´iS³fÍÐ)xÈÇØØ˜_-Œ¾˜šš¢Šð‚rÃJûƒ
JNN†·R¹à›–•¨¯^½Bw24Š��¥ã¢poôîÝ;!!áñãÇ|dÒÒÒpoÿq[¢ût;;;|°Ó‘"Ì Y\ËçzúJà¤��ÐÖ;ÇI ÃÌ™3ׯ_¿oß>JQ‚Gñ³gÏê‚“x†ÇCþ:�À,K—.¥}ÀIp�.8™““³}ûöüqôèÑ“&MZµj\Ú°aÃÏ?ÿ¼uëVÚ})š†ÃðÕÐôf™ð&ì¬]»u\\\†þrss1bÄÈ‘#G�åêêêããƒ&`AráŠ+ºvíªNš™™ÁNHHHPPÚš7o:2nܸ±cÇ.^¼811QÑy°ä±cÇ&Nœ8lØ0øã¦¼Â…]ºtåNò³“,ñ"ƒ………]¹r…V´jÁIÐ:bxäÈ‘€€8IÝ„�©S§‚1ùû_@ÁÁÁˆÛìÙ³mmmÕz�šç~ø�…TQžžž¿üò‹â‰Ÿp	Ð%„«gÏž0H7X¥J•úõë‡Ë™6^h#ˆˆh„!öìobÔØÈNŸ>�6œ
 					ý;%pRHH¨ÄI‚“5kÖTËyGçNJp²aÆ'NœPkbÁ‚„“`FPC�†ƒþ÷¿ÿ©ádrr2.	€zçç8$$$¨eìz¨]¥e“)�:uêìß¿Ÿ®ŠŠŠ211!æÉ*ÏÈÈiÑ$*n2•HNjQvvvûöí©9âS`à AƒŠôP»0¬ŠÎkù…v�ñÓò,=t:Œ���.t
@@ -11932,7 +11932,7 @@ PC
 �\»v-waœS¨%.!�KSCƒ"k¨\ÒK—.¡/®½“'Oj²…
 AA|lH'	‚øâP¯“Œ—/_ò{sðý«W¯ÄÛpjt’ƒßÿOŸ>=pàT”íå!{ëSX¡¹¹9L‡
š‘‘±xñb¶Ó¢ŽŽ„qÅŠì…»;wîL™2rÄÒ022‚‹egg£úBôš5k¦§§‡€¦¦¦0JÌß_¾|ÙÇÇGrã"Ž˜†¡¡¡»»;¿¿‰˜(Z‹-²#¶DVP->ñ’éä“'O¼¼¼˜I¡\sæÌ‘}K‘S¨ ))iذaì¦ÔoôèÑ©©©¯HV¡u’«"TZœˆäÕE|Ó¾}{H.ªÍb9\˜>Ù�Eæ¹sç$Í�›dC‰N¢¤8¿¬q‘ãÊu…ãªÀ¼pýëíK‚ ‚øH�NñÅ¡¬“âÆ%.°~ýzõ:ùN!±±±’]-4¡jÕª|·J$¿fÍþô,T:É΄O­^½š-êׯÏïv¡ÁþýûùÞp
 ¾)z! &i´jÕ
-2Ë9r¤råÊÊÍ`+ß}÷]VVk	Ÿâ‘h®“èÞµkWÖþûý÷ßߺuK“^½{÷f½P‡Q£F©’/œñâžLvàÀ�Eæ L\\¼›iܸ±d\Y “8)\'
–/_^‚¡EnܸѠA×�ªý4	‚ ¢,!�$¢Œa¿‡KA¢“uëÖ½{÷niÂÈÂÂÂx@5:yá¾¨ŽæCIxò«V­â[™0Ñ`.ÂjCBB¸âAa¸¸!ÃÈÈH1`bb"®IÖÖÖ|˜7oÞDEEÉ6ƒ´ÚÙÙñ›_ÈÁ××—‚0àñãÇE–òˆ < †k™æææB<Y/mmmÉ]?Î¥K—Š{àÂ%Óɘ˜˜¯¿þšÁŦÉJGH{ÅŠâY

-ÁÐ"( ªYOO�¿!KAŸÒI‚ Êö{¸4”ïN&$$Àõòòò˜Ñ“'Oðç¢E‹x@e�|ýúuAAA~~þñãÇa|ºººÊ·ö؃�pquY##£½{÷"mX<kìØ±ìqÙrŠ}=؃—ì™[Ý¡“<àSÞ¾};�„ØòC»víRV'¤�$Å/4hñôéStyöìGV»`üf"Šãç瑬P¡‚™™Ùœ9sø.'TÑ$ÏŽBðíííY@ôurrß|TâL™2ÅÄÄ9À˜&Mš¤ê
A¤‡	¢�ñ{pÖPg^XI5PН¾újôèÑ’8Hß݃ƒË	
+2Ë9r¤råÊÊÍ`+ß}÷]VVk	Ÿâ‘h®“èÞµkWÖþûý÷ßߺuK“^½{÷f½P‡Q£F©’/œñâžLvàÀ�Eæ L\\¼›iܸ±d\Y “8)\'
–/_^‚¡EnܸѠA×�ªý4	‚ ¢,!�$¢Œa¿‡KA¢“uëÖ½{÷niÂÈÂÂÂx@5:yá¾¨ŽæCIxò«V­â[™0Ñ`.ÂjCBB¸âAa¸¸!ÃÈÈH1`bb"®IÖÖÖ|˜7oÞDEEÉ6ƒ´ÚÙÙñ›_ÈÁ××—‚0àñãÇE–òˆ < †k™æææB<Y/mmmÉ]?Î¥K—Š{àÂ%Óɘ˜˜¯¿þšÁŦÉJGH{ÅŠâY
-ÁÐ"( ªYOO�¿!KAŸÒI‚ Êö{¸4”ïN&$$Àõòòò˜Ñ“'Oðç¢E‹x@e�|ýúuAAA~~þñãÇa|ºººÊ·ö؃�pquY##£½{÷"mX<kìØ±ìqÙrŠ}=؃—ì™[Ý¡“<àSÞ¾};�„ØòC»víRV'¤�$Å/4hñôéStyöìGV»`üf"Šãç瑬P¡‚™™Ùœ9sø.'TÑ$ÏŽBðíííY@ôurrß|TâL™2ÅÄÄ9À˜&Mš¤ê
A¤‡	¢�ñ{pÖPg^XI5PН¾újôèÑ’8Hß݃ƒË	
 �™feeᤰ‡“Ë)–ý™1cÆóçÏѽ$7OÙS¯¸N0‘U«V¡»jÔ¨�Ó'¶„Î#8†VöeBw!Y	^ÿÝwßaš˜Ò/²žAñ±!�$â‹C¢“ð/—àà`ü·€L.&þþþèØ®];Y�„ äääÀ¡œ³gφ[Mœ8‡Ò´iS¾ó#>´iÓÂ2sæÌáÇ‹›Dà÷¿³³ó"žžžlK®“.”ÕÉ–-[–@'!b�5òññ�—
6Ì‚‚ÚtìØ%
 
 
@@ -12162,7 +12162,7 @@ w
 â>wØùÔ©S<«`|Þ A>%ŠÛÕÃÃCæÌ™³Ñ©5kÖh�ÈùúÄg-�p)Ð’¯«"´$8U,žQEKÅ%IË))))©×-‰–RRROÆh	4I
 ´üè£�@L"¼0`@JJ
 U‚ûÏ?ÿ¼hÑ¢ÈP¹reƒ¸ñ‡AxàºÿþÚµkíìì>ûì3d+]º4>î®_¿þàÁƒ»wïþ¡+Qr=zÐÁOÞ†À$4
¾øâüÅ[ '¨äÿûŸ8°ãñãǪ\™k@Ë:ZO-‘º��0Xë4!tŸÐò¥ùøã�…µ@ÚÍ›7çääk¹…pQïÞ½y—ñÚÜ KK˨¨(Ø	çÀá¼�úh	§¡SÂcä4ØŒáÞºu+¼ýðáÃììlpk…
-pÈ0ÖÁŸ´Ö³µµEºÐ¥KÚã)„. '*ùé§ŸZ¶l‰úENîCkkë°°0 ?2ŸÝÝÝùÄ%|RÔ ¼

Â3¨S1ÛˆnÖ¨QC£8ÒoqýÂ_{{ûýû÷ß3ökÝ¯OËYÍÔhNuÖRµ¶\£0BªhùÂYK))))©7&‰–RRRoQâ�9ß«U å¤I“hQå–-[h‡šB�5â{ùvEh©ÚVLLL©R¥([PPÐËFSgyzzš²_Ï××—ï×ÓÒíÛ·ù&GWWןþY$ôÜÜÜ^Ø�™! +Mõ‚ò¼¼¼L	VÃ?c T-LMMíÖ­›ÖZÜèèhÕµ�`ðZµj½”
f†‰T¾whIq–êÕ«G›Ñ"�’Ô¼ys©jüéÓ§ùæM. á�(§���–ÓpÛh
ßܹsy�a-•(QâÌ™3ÚwÁk—jÔŠ�gfD‘ª{-ÅžJТ¢6�Îì'ª¢¥êO}Œ•’’’’zM’h)%%õ%’ó½ZZŽ9’–†……ñà±\...àG‚š:˜æÂð·dÉ’ZQbvíÚE�:Á,,¸{÷®ŽmÆ»#³³³‡NûõtlgæéÓ§�?~ô葘DŽÀD<Bl»ví .]ºÄéhIQw`ó€>0è$æÚ€�;vì ý•\è…‡‡‡Öœ)ƈŸ¥BJHH ˜6$¾MÕXhÂÊÊjÿþý¢´¤ÓgàâGàóÔ©S	-5j$¦zÿúë¯GQ0ÞmÛ¶Õ¯__µ]‡øøxš@DøŒR¢×áááZóŒ«V­"3tŒÅhjßh¯]ªbÍØIÓâ­‚=™Ížñ£ñÙ%	–å©¢eîób)@±±RRRRR¯[-¥¤¤
+pÈ0ÖÁŸ´Ö³µµEºÐ¥KÚã)„. '*ùé§ŸZ¶l‰úENîCkkë°°0 ?2ŸÝÝÝùÄ%|RÔ ¼
Â3¨S1ÛˆnÖ¨QC£8ÒoqýÂ_{{ûýû÷ß3ökÝ¯OËYÍÔhNuÖRµ¶\£0BªhùÂYK))))©7&‰–RRRoQâ�9ß«U å¤I“hQå–-[h‡šB�5â{ùvEh©ÚVLLL©R¥([PPÐËFSgyzzš²_Ï××—ï×ÓÒíÛ·ù&GWWןþY$ôÜÜÜ^Ø�™! +Mõ‚ò¼¼¼L	VÃ?c T-LMMíÖ­›ÖZÜèèhÕµ�`ðZµj½”
f†‰T¾whIq–êÕ«G›Ñ"�’Ô¼ys©jüéÓ§ùæM. á�(§���–ÓpÛh
ßܹsy�a-•(QâÌ™3ÚwÁk—jÔŠ�gfD‘ª{-ÅžJТ¢6�Îì'ª¢¥êO}Œ•’’’’zM’h)%%õ%’ó½ZZŽ9’–†……ñà±\...àG‚š:˜æÂð·dÉ’ZQbvíÚE�:Á,,¸{÷®ŽmÆ»#³³³‡NûõtlgæéÓ§�?~ô葘DŽÀD<Bl»ví .]ºÄéhIQw`ó€>0è$æÚ€�;vì ý•\è…‡‡‡Öœ)ƈŸ¥BJHH ˜6$¾MÕXhÂÊÊjÿþý¢´¤ÓgàâGàóÔ©S	-5j$¦zÿúë¯GQ0ÞmÛ¶Õ¯__µ]‡øøxš@DøŒR¢×áááZóŒ«V­"3tŒÅhjßh¯]ªbÍØIÓâ­‚=™Ížñ£ñÙ%	–å©¢eîób)@±±RRRRR¯[-¥¤¤
 žh	˜š>}ú÷ß¿dÉ’–-[òã6*W®Ü§O<²zzz‚@çÏŸ¿lÙ²ÈÈÈØØØÑ£G÷ïß?  �µxñb­é´´´o¿ývÈ�!ÞÞÞ³fÍ�¨†Öâ¡7**ê›o¾‰ˆˆ8sæm¯Cþ={ö€.}||@pUšêB¬­­;uêóüüüðøÍW–^½zuË–-èêÄóó¼yó`'ìÇ_döòò6lº�Y·nÝêÕ«q¥D‰Z´bkkÛ­[7X‚²&L@þ+V,_¾|íÚµAAAð†¿¿à‹„‚p:âëë;gΜ¥K—¤ݻw+v†®_¿ÞÇ ô®lÙ²3Ñ")Ü¢„%qqqýúõã»-Z8Ü 
ð嵀Ǯ]»¢³#FŒ€+.\ˆî£)ð#«wïÞèΦM›@”¢¡»wïNž<¹X±b¢†2eÊ ³°·Ä׉{#44´sçΔ
²´´ÄÔ‰
 ÑF÷¬�={6@˜ïµï‹=³h„»fÍŒ]tt4î>¬)))ð!n'z½zõx¿*Uª„~Á±D_´âÙJIIIII½I´”’’*xÚ¿¿““=ÕôÑGÅ‹XXXðY$\HHÈåË—oÐhÓ¦�ˆZ±bÅï¾ûì´ÉÊÊR�åÂu¤‚›�íÎ�;ZQ:A.€ Á_|QªT)Ð
 
@@ -12210,11 +12210,11 @@ pR
 �…ÄU”yCÎ		½®Ø3sñíüóÏ?,¨\¹òk‘…6Zjä´Y¶lã,(::ºV­Ztiþüù´åmß¾}”%–œœüºýÊÍÍuttÔ3E*ÉÈÈ())éuÛ÷uëÖMÑ X544”ÎsÙ½{7mQ411\ó§Š�ÒÓÓ»téBxŽÈZfggÛÙÙ?Μ9ó�?þ`—0´ìŸØ´ñðøñã´O¸ÑT@Om+«†zöìyûömÅh -ÊÓ+‘™™ÙþýûõY}:zôhµu¼ÀsµóqxñhùùçŸÇÆÆ–àÖ`!!!!!¡’ÕG†–K—.5x9‰¿ô%ήÒ?ñMM…
tû¡xklf“Í~RšÜdØw=³ÃDßþ„®r„„„$*©ÿ  OOOÉfÃB¥�–«C7mÚDÅ€–@9º„�;ZqzòäIB0ccãK—.½n¿rrrFŽ)9›£P÷NŸ>ýºm½xñ¢{÷îŠ�–[¶l!Ú¹sgõêÕÙ%ðב#G
^¿~½G�d„æ=tSŸÎÎδsÉ’%ü«­­-Õâù1##ƒ&ˆ¡ü‘€jÞ¼ùkE	jÓ¦
åY’(%%E²É‘Ô¢E�»Æ4$WWWµ±
 
 *tÞ³àU´,]ºô¾}û
-­"$$$$$ô®ô‘¡%£B¼À;/)�‘ äM~&½É¬ÑÚ:¼„PZCËšà-P»'Q^Ñ!!¡7¤¿ÿþÛËË‹f-


­­­'Ož<nÜ8+++¼¯ø„¯�–€)à�ƒƒìtêÔ‰Ÿ:ìÕ«×Úµk7oÞ¹|ùr'�PØÎÎwxãÆ�6l@™1cÆŒ1nL�:o†„„„†††ÉŽZ¨sëÖ-š‹ÅÅÅMŸ>ÝÞÞŒé Þtttœ9s¦™™õ±bÅŠhð¸{÷îÜÜ\¾�yyyhnoÛ¶�R¶2ÅÆÆº»»�=züøñüTl¹råà<!3˜ÑÛÛÅF�…’«V­b›F1Öô=]³fÍ”)Sà$œAI�àêÕ«AåøØ\´h�¦&;wîìëë‹Zp^M›6
qƒåaÆÍ�;¦`<""AHk CË€€´"‘¢à<k"88ƒˆ¦Éyø€¿ B>3m�5¼,2(œ••E!ýóÏ?÷ìÙƒ±Fט˜ÂPFGGÃy6j#‰`~ª799yݺuˆXbb"¿ä•Oãƒñíׯ0œÝ`çÎ�ÓN…„„„„„Þš>´äÅ�q›j¤×<¼zÁj±Â3ù×/g9EJà”¤èÀ
+­"$$$$$ô®ô‘¡%£B¼À;/)�‘ äM~&½É¬ÑÚ:¼„PZCËšà-P»'Q^Ñ!!¡7¤¿ÿþÛËË‹f-
­­­'Ož<nÜ8+++¼¯ø„¯�–€)à�ƒƒìtêÔ‰Ÿ:ìÕ«×Úµk7oÞ¹|ùr'�PØÎÎwxãÆ�6l@™1cÆŒ1nL�:o†„„„†††ÉŽZ¨sëÖ-š‹ÅÅÅMŸ>ÝÞÞŒé Þtttœ9s¦™™õ±bÅŠhð¸{÷îÜÜ\¾�yyyhnoÛ¶�R¶2ÅÆÆº»»�=züøñüTl¹råà<!3˜ÑÛÛÅF�…’«V­b›F1Öô=]³fÍ”)Sà$œAI�àêÕ«AåøØ\´h�¦&;wîìëë‹Zp^M›6
qƒåaÆÍ�;¦`<""AHk CË€€´"‘¢à<k"88ƒˆ¦Éyø€¿ B>3m�5¼,2(œ••E!ýóÏ?÷ìÙƒ±Fט˜ÂPFGGÃy6j#‰`~ª799yݺuˆXbb"¿ä•Oãƒñíׯ0œÝ`çÎ�ÓN…„„„„„Þš>´äÅ�q›j¤×<¼zÁj±Â3ù×/g9EJà”¤èÀ
 ‚��Ћ/~úé'BËöíÛ'$$…€—/_Ü)ž!hjjŠGwÅÅœL¨ž��
¾;sæ¿Ó@wŠK
 ÜHKKCÉû÷ïƒ
 ñq׸qc\ßõéÓ'%%…å#½víZ·nÝ*Uª„*5”„÷á�:uÜÜÜ$«ú?~üÛo¿ýþûïY2áM¶µ#™´Å?+T¨P¿~}¸DÛ?ÑOOÏš5k–.]-FEEIðÿ{—æÍ›G%hÉžŸŸ�^'%%
8�ŒŒŒ��©/¨Û¡C|úݾ}‘.-\¸°nݺU«V­]»6ì#â²eË"ž°P¯^=°ÂîÝ»çççgnnÎŒK†O‚–Ïž=CyyˆÅ’ý<x°S§NlÉyôïðÙk
tû:ÓÓÓ>ᄘ€Áõn8É,ÀT�àü�7rtâ[GèøIÏ›7oöìÙƒ#¸'�¨´
S’ÆÇ@·ãî!¼p)33óuÿ§					½9}h‰Ç0z49H‹]I´¤|>¤‚Wç@ùå¬LŠh)™ $):ð†‚ $ôáŠþ÷S´üþûïùóîW¬XÁ§*%�t:¤�–¼À r�­­-øŽÜ˜3ge1íÕ«×Ý»wÙ%”Ñ3ÏLóæÍ�;¦§W$~F�WÇŽ¯\¹ÂŠÙø=‰øpV;1&&ÈŠ•/_¼óôéSy±óçÏ[YY)¶Û¬Y³ÄÄD*éíí­gž¥ððpš�ª­svwwçѲJNNæóihÔ¨Q Q¹p¢��å–AÓg1ܼNNNôS@jjªÚ–OìÅ‹‹Ó}!!!!!¡’ÕGƒ–¯.gUœ(T›µT´ÆÏTò2�¡eAa³–BBBjbÉÅ·#AË®]»ž={–ð$00ðË/¿”?œ7iÒ$))IŸ‡ÿÜÜÜ–-[*>á�=ú·ß~cÅ€i•*U2ÐMÆÙÛÛÓ%¼PË¿*ЯIx@1”2H"kkëëׯ³b¿þúkçÎ�éÒš5kÔÎ"Ù¸q#í!-S¦þ©¸ütÓ·o_ÅÃ.Ûµk—’’Báõññ©X±b¡ÝG[QQQ,IFpöìÙjٙƌƒqyÝ@ñÚ³g�žhéââ¢ØxsêÔ©Šý*W®\tt´>yzO�:E™„Y¿cOœ8ñõ×_+ºdnnžžž^œî					•¬>&´d0Èþ©H‘j{-4hÀhQ²s“öZòœh „–ò=ž…b¬��P	J‚–ß~û-�–¨5j°K ><ó³E� Bb.¹ž>}ú»NYYYGŽéÙ³gíÚµÙrG&àjóæÍW®\I‰O%h9bÄBKØÑÈdhhjÕªÒéׯ_LL0'''[E·oßF£üÊk×®
:ØÚN’‰‰ÉðáÃ>|çÎ8sèÐ!''§F�¡$Ð/!!�_™	ÌÌËËC±ÌÌLô4͈ššš._¾M ùùùÏž=£¦\ˆ|³f;ԉ…纺ºòsÇÛ·ooÓ¦�Ä=^ˆÀW_}Õ½{wR´2kÖ,5´„ÿ;vì¸{÷.b%?ȃE	1D ø_Ðß #·nÝ
-

Å  æhŽI&Ë—/�(Á+p߆
Oý@("##---YIÜZ”ÕÑe
´„‡pn X·nÝ1„C3yòä´´4xˆ~NAîðP+4‡÷cccaÃàꓱVHHHHHè�êcBË‚—ËPÐñ+Zyö¤éEZ³JËhåg—�:.S-¸±”oVî€��ÐR¡hI;õðLîîî¾mÛ6àÛùóç)g©\k×®¢Ó Aƒlmm·lÙ²gÏ|D½ŒÄÇÇ
І–¥J•8pàæÍ›A
+
Å  æhŽI&Ë—/�(Á+p߆
Oý@("##---YIÜZ”ÕÑe
´„‡pn X·nÝ1„C3yòä´´4xˆ~NAîðP+4‡÷cccaÃàꓱVHHHHHè�êcBË‚—ËPÐñ+Zyö¤éEZ³JËhåg—�:.S-¸±”oVî€��ÐR¡hI;õðLîîî¾mÛ6àÛùóç)g©\k×®¢Ó Aƒlmm·lÙ²gÏ|D½ŒÄÇÇ
І–¥J•8pàæÍ›A
 »wï^·nݘ1cÐ"š¶“ÉÞÞ~ذaýû÷€\¸p� 	Ätúôi ¹*AwíÚµzõjT0`j�9ÿD1´uìØ1É‚R0θqãÐtïÞ½%tv§NðjÆŒßÿ=ü?~<Þ!ÎB»û÷ïG4X»@-TD»—.]â×ЂÐ¶ð*JI,°¨®¼ÿ>«¢�–`·V­ZatÐ/¸GË’tKLÇŽ‹.·,Xˆ#ƒgΜ™:u*ú4CgA—»tÂøvíÚ•6�ô.\ˆž¢_Ä8ªÍnƒ^Aî)
 »¹¹Õ®]›íÕFKØtttD<áä„	Ð
 ‚ooo¸�~aà!»10”tï!†p8""ÂÅÅÕûõë‡aÅͬv'					½}èh)$$ôA‹=Æߎþhicc£ç2Bþà‡>ûÚ€–3gÎdh	èh¯%^X[[+"’‘‘ц
ˆ\Nœ8¡¶øV¢��}r„&$$ÐZÙjÕªaÔJ]ɸ““Ÿ?˜L—PŒ�ù�
@@ -12227,7 +12227,7 @@ pR
 µk×¶±±A?¢¡*UªDÕ—¨%TJŽvCCa¤)½†)QK4µ……:Ã)<<œ?B”WKÕ¢hdŽ6´µµõññ��bü`pnÙ²¥wïÞ�Ðg¾g‘¬Zµj4µ-ÔR ÿ
µeHI©%TÂ××—&qœ��ùå‘JçZêééAâHIð<Oï$Ø_m™"¡oß¾ÅÜÓZäîîNšy9{öìûf²dÉ~j²øüðüZ*߄ɿ`jjš˜˜¨ÍÁŽ
‰Zj@ò®ett4ÝÑ;räˆìÄ¥D-y<<<x!•¨%�··7I(ìRé\Kt}@@¯®�@ ||„Z
 ‚rüeîܹtr}Ÿ>}ø�?¡]²6all¼gÏRK¸ä7ß|CWããã)‡W¯^)mÂÓ«W¯ØJ”f:|øðÏ?ÿœeغuëßÿ]›·Ay‚ƒƒif¶D9rdvvv‘åB¦lmmeshܸñÞ½{•ÖŽ–	Ú«¥½½ýÍ›7éÆ˜˜j^kkkÙµ¾Ô]L{:hTKOOχ²dçÎ�ÓF-
‚‚‚Ä6>�@ ([„Z
 ‚òÁ†
5j»¬U«–‡‡GRRÒ�;w ˜ìµ;þ1Oþ•U¸¹¹]¼x‘VlþùçŸÞÞÞ‡ºuë6hÐ`Íš5pÆÜÜÜœœœÓ§O»¸¸˜˜˜ ÿÊ5jÔ1bÄ¡C‡ ‡OŸ>}^ȳgÏðS³U½yó�BêO?ýdaaQ§NxÄ”)Sx©)P‰-2ùò¥ßçß”” ««Ë®X±¢ú%CCC¾^_|ñ"�û¤¥¥ñ•’ðäÉÔzÇŽ=zô@ËÐí,7|Óµk×uëÖ¡…ÿúë¯/^¼×ÊØüü|ýúõkÍw½{÷9£�ÔçFÙ÷yyyü%uµDƒTªT	UFØüÖI¦¦¦„H „&L ~¬¬¬víÚ%{ì‹æYËÌÌLJ©A-íììØˆB¹¿ýö›££ãW_}…†¥÷@ù‘ŒàqÉÆÆ£è}ÿ9B ‚’E¨¥@ (CØr‰d‰‹‹[µjÕêÕ«—,Yâéé9lذ!C†@p €d
ÆÆÆƒ
-		Y¹rerr2 žÌ/_¾ü믿®]»6&&fÒ¤Ißÿ=dóÇDn¿üòKddä²eËÁ7(ÎÏÏoÔ¨QC‡3f̤BƪHLL„ÊFûøñcÝ8p nGÀëׯG¹(=##ƒläüùóQ‘iÓ¦�9sFicœ°°0%µ„衇–A‰´l4mÚ

]¾|9Õ�½hÑ"TÎ;IäéîîŽjDDD €   ÜŽ_YhŸÉ“'£ú÷ï?kÖ,ˆª–‹c�?>}útd>wîÜsçÎ)�Ý	SC�¼¼¼P)ÔªK—à³0tÄ%„tÓ?µÄÜ‹˜-ÂnÑ¢©7>4iÒ]�|?\›†P£F�JU-õôôœœœPýÁƒ�?áE©˜8qb­Zµ(nwssÃðCÝ!øâEK�@ ”9B-AR‚jɳaÃv.ƒúé�íÛ·W:Í�Ád3e½zõÂíLLLLØû�ÿý÷;4#‰²hÉ"WTÁ~…’(Ò‘’’B/o"T¨
“PÉ$FI*-’l
DhPËæÍ›§¦¦²dpg~ÑïŒ3èEQª›ü¢Ó+*Àr°µµ¥£=$9 Ž=zô`{ã e/^¬åË€°Ev*%JñõõUZ—kiiÉÂ066¦:x1íÉÓ AƒÃ‡³ï%jÙ¶m[:SÎÎyI¨{¢µµõîÝ»ßW-á¹¼ZBɕԒ&''Ó`ptt¤Kõë×?r䈘©Áÿëj¹iÓ&Ùÿÿþûï”FéL4IV?©�|Éß«!I]»v¥KK–,‘�J¼ä~¥KH¦¡h”Å’!¾.êõ¥ê�&)½@µ2P©hvIJ¬!x
­ÁÏ×E ø {²ûö€îÝ»§§§k“‰““#=áKزe�l"ÚuõêUÙ»NŸ>M7 Eü¹–<÷ïß<x0yœ‹Ÿ›ãÑ –ÎÎÎô6h^^äš.-]ºTi^5**J©^<
6<pà€ì²U¨e‡Èî'Ož9’-KB¿~ýè."!$$„©Jþ¤ ,ö½®®.ƛ함¥««+<ŠÁÁÁÕªU+²Ê666‡’u:
jùã�?òç�üðÃê‹“Õ177¿råŠlËXXXСœ�@ ü7P>Ô’ßǯ P¬èK<¿©;£¦<’d°6r–§Òí:
+		Y¹rerr2 žÌ/_¾ü믿®]»6&&fÒ¤Ißÿ=dóÇDn¿üòKddä²eËÁ7(ÎÏÏoÔ¨QC‡3f̤BƪHLL„ÊFûøñcÝ8p nGÀëׯG¹(=##ƒläüùóQ‘iÓ¦�9sFicœ°°0%µ„衇–A‰´l4mÚ
]¾|9Õ�½hÑ"TÎ;IäéîîŽjDDD €   ÜŽ_YhŸÉ“'£ú÷ï?kÖ,ˆª–‹c�?>}útd>wîÜsçÎ)�Ý	SC�¼¼¼P)ÔªK—à³0tÄ%„tÓ?µÄÜ‹˜-ÂnÑ¢©7>4iÒ]�|?\›†P£F�JU-õôôœœœPýÁƒ�?áE©˜8qb­Zµ(nwssÃðCÝ!øâEK�@ ”9B-AR‚jɳaÃv.ƒúé�íÛ·W:Í�Ád3e½zõÂíLLLLØû�ÿý÷;4#‰²hÉ"WTÁ~…’(Ò‘’’B/o"T¨
“PÉ$FI*-’l
DhPËæÍ›§¦¦²dpg~ÑïŒ3èEQª›ü¢Ó+*Àr°µµ¥£=$9 Ž=zô`{ã e/^¬åË€°Ev*%JñõõUZ—kiiÉÂ066¦:x1íÉÓ AƒÃ‡³ï%jÙ¶m[:SÎÎyI¨{¢µµõîÝ»ßW-á¹¼ZBɕԒ&''Ó`ptt¤Kõë×?r䈘©Áÿëj¹iÓ&Ùÿÿþûï”FéL4IV?©�|Éß«!I]»v¥KK–,‘�J¼ä~¥KH¦¡h”Å’!¾.êõ¥ê�&)½@µ2P©hvIJ¬!x
­ÁÏ×E ø {²ûö€îÝ»§§§k“‰““#=áKزe�l"ÚuõêUÙ»NŸ>M7 Eü¹–<÷ïß<x0yœ‹Ÿ›ãÑ –ÎÎÎô6h^^äš.-]ºTi^5**J©^<
6<pà€ì²U¨e‡Èî'Ož9’-KB¿~ýè."!$$„©Jþ¤ ,ö½®®.ƛ함¥««+<ŠÁÁÁÕªU+²Ê666‡’u:
jùã�?òç�üðÃê‹“Õ177¿råŠlËXXXСœ�@ ü7P>Ô’ßǯ P¬èK<¿©;£¦<’d°6r–§Òí:
 ¢Ä²e‘0á¢d,rf^�ãÕ xÿ´0
FÆÊ¢¢/¿²0cÕlµÊ¥5¯¡5ö½PKA1Ù»wï·ß~ûÙgŸ}þùçx€çç.»térîÜ9þ8H8ÅË—/ó
 yñâ³­ž={ÂJôõõñöwêÔ)$f	> Ù»wïbccÍÌÌXJ茡¡!~êééá›þýûóZ„Û_¿~Í^™„›�ZAjd÷`ÉÍÍ�3gN­ZµP•Zfff¾yó†ͧ”¨e…
 pÉÈÈ@5ÿþûïk×®õéÓA²÷p¿$˜gõêÕµ¤ùö¬W¯Þ®]»dWºBŸÛµkGëH}}}•¦\TKÑ8쨸0ÝSRËøøøæÍ›#$t1”&K—-ZDó�{ýúõl’Q¢– ieô)þW¥>k©Ž¥¥åöíÛ‘y"l^«%j‰†Bllƒ&¨åÍ›7QG6ºF�]¹re�ðÔçÖ	¼�;w¢�PPvv¶½½=]ª^½úŽ;0Y»ó��@ ŠO¹TË•ëAdØç"Õ’&þødL‹È}4(³!ÙœQ4…Á
@@ -12236,17 +12236,17 @@ y
 
 ’],
 <þ|HH‹¥#ÜŽ€ãââ²²²ø³;yµlѢŸqã`s%â?=?¨«#bž;w.”SII"""xµ¬S§Äu„ë5mÚ”©®ŽJ-!8²o€BÆÛ¶mK’ˆâ”ÔÁ_„‡z¡¿øŠÀÈ”6à}øðáæÍ›êÉÏçò{#ÔuëÖɪåÀ�I-q	ÍË¿ˆª„¾¾~ß¾}çÏŸ�€Ñ÷îÝ£6”¨¥¹¹ù°aÃÐ¨¢BéÀu>�?ÞÖÖ–ö–ëĈEÓá´?ß#¨W·nÝ0ÂquåÊ•ô>©@ eEyUK^Ü4«%MqJ’i¯–ÚL2H¦Ôscß°ŠHŒ©«zYÝeó—„'I¦£¼•°»´QKÎâµ^6Zæ¡bA쿊RRKðúõë\·nÝ‚­Ð›w¼ZæççOš4	"c`` _ˆžž~…}ÄÆÆæäää«€¶k×ß#J‰_«T©2tèгgÏB‘ìe!lU>$€@
p£¡¡!¿fRƒZ2 E,À€6ÛÕªU«¤¤$zåó—_~!#ÃU˜ÈÝ»wÒ‹/víÚÓD¨(·qãÆQQQ<@nJó•~Ö²bÅŠ0Ê›7o”áb°*cccRË�;wS-ãããQ¸6G²šåj8Ûý˜——§¾ÎV¢–k×®•UKþ¨%Ë)ÑíÛ·OHH ÷.%j	„¼£gÑnÑÑÑß|ó
›×F-\¸ðÎ�;è¬yí1
-222’Ý!Y¡Ñà°bâR eKyUK�÷™µTJ¦å‚X¦Bôÿz¥²øU©JjÉ®j¸Ä£>›)™1dèüSýXn|Àêˉ‘‰æ…¸|:jÞªMð’5º|J¡–‚ÇßߟlÂÙÙ9%%…=„ÃY”žç÷ìÙC9À¾ýö[Ùd={öÔæ\Kx„���lĪW„Îî„îÑ:O°bÅŠÚµk³K¨ì�è®#GŽ˜™™±KГ­[·jÓh+W®¤÷U!DkÖ¬¡²Ð20Jv©nݺJ³–§OŸnÓ¦
©åœ9sž>}*[DXi%ê¨Q£”¶BÒü‘$Uމ‰aÁC´çÍ›Gƒ¡oß¾ÔwhD¨Í‚X(vxx8ô–e"QKX<¹?Ô’ßßwÑ¥äädÚ�èÀ]†„„ˆMb�@P¶”Kµü€w-•’Ñ~8æ%™¦Ñ¯:jvIÛÚh˜Ý#ÕÒl�’ØŠTKÉjU*ˆŠ–$ IF-ÕRGn±æàe[£€›Äj)(qø9,¨eZZûþþýûøUéq=11‘rx÷î]óæÍe“AO´qŸ[·n5nÜX6‡jÕªEFF¾~ýºÈL‚‚‚x÷	#§ƒœR¡0ü.¸û÷ï¯_¿>»¤§§Ç+³ –45ùÙgŸmܸ‘ÊŠ��§Rü׊†’}×255•7w¥=ˆ”öÏ=z´Ò±˜<y2í¿jhh¸k×.6OýêÕ«�ž#<:B—–.]Êy©
•*U‚Óü/†Ô’®B'©ÑV¯^

§K°]Š6%%…ÜÿÃ@i¿¯@ ¥DùPKuø4²;Īg¥®–:œ71ӼޔIi	(©Ÿ$CU‰«%¿ÁŽ’ÅÃÌø´QK¥™Gm‚/øgkð‹{…Zþ«Púﱘüç?ÿyñâÅ£G�²²².]º4dÈ�&MšlذáîÝ»OŸ>½xñ¢‡‡´«fÍšx쯧¿Ö¨Q>‡ �øyíÚµöíÛÃ;(011ÁÏ…òÆ•ÈÍÍ}ðàÁÇa‹´F1''ç‡~@εkצð¹zõê-[¶\³f
BÊV‘ŸŸ¯´²VØ¥KÜ…Hðÿµ^¹ruÄ-¡¡¡–––_~ù%¾0`jMwá³½½=œW!È�”…»nß¾�©`Ùh1~×Ó¤¤¤fÍšUS�Z<x�.�9s¦]»v_|ñ.
6ùËŒRfÍšÕ¨Q#]§N�U«VÑìž82M¹J@}>Œhïܹ“)œýÞ½{’FƒCÖXktëÖ�Zãï¿ÿÞ²e‹��]UcÆŒAOÑ]ppGGG¸9
ÔÝÈȈÞ-UC�þÅ0@£¹ºº¢P4þŽ¡¿HºÑÅ4Õ&MštãÆ
-¿}ûv[[[Ö§ˆYvƒYRH$€××ã@/˜šš*m¦$ÁG£|¨%yœì‚6k©¾Ô“W!
h�)ɶ¨üI¥± VË™Gº‹iT›{eP{µä[ƒO#Ôò_E)©%-<<*7xð`<±Ó²L8&ôjàÀ�C‡7nœ¿¿dddll,DrK!øõ—_~™9s&r€¦!¥··w```tt4%ûõ×_áh�rþ‘þìÙ³ø‹çîîîéé™��@óY�˜,n�ØR›7o^¿~=Ê‚‚±há)øFivºzôèQü'†|X„#GŽ®ÂÇÇgùòåQQQˆ0%%…?ÊäÍ›7ˆR2mÚ4Ü…ÝÜÜ\Uôïßö@'q¨ÖŽ"«uëÖ­]»!ñ»ÄàÒ¾}ûV¯^�†:þ¼Òñ%°l(9”)ÑPpC¥CÑYJj	“‚£eЮ
+222’Ý!Y¡Ñà°bâR eKyUK�÷™µTJ¦å‚X¦Bôÿz¥²øU©JjÉ®j¸Ä£>›)™1dèüSýXn|Àêˉ‘‰æ…¸|:jÞªMð’5º|J¡–‚ÇßߟlÂÙÙ9%%…=„ÃY”žç÷ìÙC9À¾ýö[Ùd={öÔæ\Kx„���lĪW„Îî„îÑ:O°bÅŠÚµk³K¨ì�è®#GŽ˜™™±KГ­[·jÓh+W®¤÷U!DkÖ¬¡²Ð20Jv©nݺJ³–§OŸnÓ¦
©åœ9sž>}*[DXi%ê¨Q£”¶BÒü‘$Uމ‰aÁC´çÍ›Gƒ¡oß¾ÔwhD¨Í‚X(vxx8ô–e"QKX<¹?Ô’ßßwÑ¥äädÚ�èÀ]†„„ˆMb�@P¶”Kµü€w-•’Ñ~8æ%™¦Ñ¯:jvIÛÚh˜Ý#ÕÒl�’ØŠTKÉjU*ˆŠ–$ IF-ÕRGn±æàe[£€›Äj)(qø9,¨eZZûþþýûøUéq=11‘rx÷î]óæÍe“AO´qŸ[·n5nÜX6‡jÕªEFF¾~ýºÈL‚‚‚x÷	#§ƒœR¡0ü.¸û÷ï¯_¿>»¤§§Ç+³ –45ùÙgŸmܸ‘ÊŠ��§Rü׊†’}×255•7w¥=ˆ”öÏ=z´Ò±˜<y2í¿jhh¸k×.6OýêÕ«�ž#<:B—–.]Êy©
•*U‚Óü/†Ô’®B'©ÑV¯^
§K°]Š6%%…ÜÿÃ@i¿¯@ ¥DùPKuø4²;Īg¥®–:œ71ӼޔIi	(©Ÿ$CU‰«%¿ÁŽ’ÅÃÌø´QK¥™Gm‚/øgkð‹{…Zþ«Púﱘüç?ÿyñâÅ£G�²²².]º4dÈ�&MšlذáîÝ»OŸ>½xñ¢‡‡´«fÍšx쯧¿Ö¨Q>‡ �øyíÚµöíÛÃ;(011ÁÏ…òÆ•ÈÍÍ}ðàÁÇa‹´F1''ç‡~@εkצð¹zõê-[¶\³f
BÊV‘ŸŸ¯´²VØ¥KÜ…Hðÿµ^¹ruÄ-¡¡¡–––_~ù%¾0`jMwá³½½=œW!È�”…»nß¾�©`Ùh1~×Ó¤¤¤fÍšUS�Z<x�.�9s¦]»v_|ñ.
6ùËŒRfÍšÕ¨Q#]§N�U«VÑìž82M¹J@}>Œhïܹ“)œýÞ½{’FƒCÖXktëÖ�Zãï¿ÿÞ²e‹��]UcÆŒAOÑ]ppGGG¸9
ÔÝÈȈÞ-UC�þÅ0@£¹ºº¢P4þŽ¡¿HºÑÅ4Õ&MštãÆ
-¿}ûv[[[Ö§ˆYvƒYRH$€××ã@/˜šš*m¦$ÁG£|¨%yœì‚6k©¾Ô“W!
h�)ɶ¨üI¥± VË™Gº‹iT›{eP{µä[ƒO#Ôò_E)©%-<<*7xð`<±Ó²L8&ôjàÀ�C‡7nœ¿¿dddll,DrK!øõ—_~™9s&r€¦!¥··w```tt4%ûõ×_áh�rþ‘þìÙ³ø‹çîîîéé™��@óY�˜,n�ØR›7o^¿~=Ê‚‚±há)øFivºzôèQü'†|X„#GŽ®ÂÇÇgùòåQQQˆ0%%…?ÊäÍ›7ˆR2mÚ4Ü…ÝÜÜ\Uôïßö@'q¨ÖŽ"«uëÖ­]»!ñ»ÄàÒ¾}ûV¯^�†:þ¼Òñ%°l(9”)ÑPpC¥CÑYJj	“‚£eЮ
  7á’|£Á”7nÜ�>qâÿV)Ú­ÑCo^¸p�_Ê›››{äÈ‘�*Ð;¬›¶nÝ
 mwppPÚi§F�ß}÷	ZuâĉøCŠú"x%ßhµ„¢ÙÑq#FŒÀ]Ë–-C<(ãSö\’O>ùæ»páB$cã‡EˆÂ�@½dÛV ‚�F9SË‚Â%¬’s-?@-µ™”EƒLi¸ÄOÛ•Ô6>æOy¨^²Ó»,O¶aµßƇZCiêYË£OuNŸ>ÍŸÞ¨†ëÎ�;éB	pJ	)HMM-²\ø#4„‹Ž;V›Åœp.x%Í‹9;;Ã׊¼&5jԨʕ+³»`(J‡tð\¾|¹[·n²§] 5Nž<Yd¥4YI-µÄÚÚ:##£ô"„ñ¬PiS#‰ZòtêÔ‰‚‡}Ïž=›?¯“ÐÕÕ
Vz_U ‚2§ü©e�j„¢œµ”ÍGçŸÄŸÎ?ß(ä£U7YòÖ’:|DvúO=7‰ò™k�;¥‚×Ð’Ĭ¥ ˜ÄÇÇ›››)Õ«Wç·»‘àääD)õõõÿøã�"Ë…ZΛ7�tÏÁÁ¡ÈÛ)P½1|øpškܸñÁƒi�
Œ9’„têÔ©Js�<HÓªU+ÙÖÐÓÓÛ¿?KÝ–ð5d¿”E6%ü‹…,¾Z‚Rõâõë×׬Y³È¬¬¬:$›Chh¨Ò6°Íš5ƒòSʘ˜Ù²0®vïÞ]zu� ˜”Kµd3eZ>BȾk©ôj$¿k.(õK’—7Ù%ÉK‹,~fmüguø=lùÏô�ú4«$¥�o‹TKÉâ^É÷²Ákh
¡–ÿ*Ø3s‰dI�1aYµj6¢:ººº+V„Znݺ5??7ªï¢Ó·oß
-*°”ЮãÇ�¨œK	”›——çëëkbbÂÖß:;;Ó.1¸ÿþèÑ£«T©òÉ'Ÿ ¬.]ºœ>}Ziíh�j¡)®¢ÄaÆ‘ZN˜0ùÀ•ÂÃ]h¢7n4mÚT¶M

I´ÏŸ?¿gÏž�¥þ0�UWK´�#áÓO?ý\Åg…|ªâÌ™3’VzõêUý«´p1¼|ùRvª‘X·n�D÷$1tŸ��
ô¹©—ŶñAœü-øì»ï¾C¿Pʸ¸8ÙÑ[µjUr#Å)ͼ�@ð1)—jYPh1LñгC¬†C:xø·&%:Æ_’LJÞµä/Ñ6ªêJ€<²dê:¦¡â”¹’Ä©–VÛj^CkB-ÿU°ÁP"Y]¹reÆ
k×®
pppPHb³f͆2bÄOOÏÅ‹GFFFEEEDD¤¦¦ò‚‰Ü<<< oì5ºÐÐÐõë×GGG¯QECæÎ�‹l
4xðà-[¶(m\Ã/HHHøñÇûõë7vìØmÛ¶)Í?>}úôäÉ“111¿þú«ŸŸ_£F�èRKKËE‹ÅÆÆ*EÈÞ'…Ã*m‚jdd”””Ä
+*°”ЮãÇ�¨œK	”›——çëëkbbÂÖß:;;Ó.1¸ÿþèÑ£«T©òÉ'Ÿ ¬.]ºœ>}Ziíh�j¡)®¢ÄaÆ‘ZN˜0ùÀ•ÂÃ]h¢7n4mÚT¶M
I´ÏŸ?¿gÏž�¥þ0�UWK´�#áÓO?ý\Åg…|ªâÌ™3’VzõêUý«´p1¼|ùRvª‘X·n�D÷$1tŸ��
ô¹©—ŶñAœü-øì»ï¾C¿Pʸ¸8ÙÑ[µjUr#Å)ͼ�@ð1)—jYPh1LñгC¬†C:xø·&%:Æ_’LJÞµä/Ñ6ªêJ€<²dê:¦¡â”¹’Ä©–VÛj^CkB-ÿU°ÁP"Y]¹reÆ
k×®
pppPHb³f͆2bÄOOÏÅ‹GFFFEEEDD¤¦¦ò‚‰Ü<<< oì5ºÐÐÐõë×GGG¯QECæÎ�‹l
4xðà-[¶(m\Ã/HHHøñÇûõë7vìØmÛ¶)Í?>}úôäÉ“111¿þú«ŸŸ_£F�èRKKËE‹ÅÆÆ*EÈÞ'…Ã*m‚jdd”””Ä
 BäöööÖÖÖß”ˆÜÅÅű×T%j‰¿€,÷ìÙ³F�TGø¦…….¡­¾ÿþ{�BÜÜÜ𙬬,j¨ ¾«V­buG› kÂÃáfÙÙÙ¤íèntúæÍ›W¬X�ô·nÝR2zdBsŽPÂV­Z¡\„A1°·&Ç��á‡á„ÁÍ>|H›!ó3f`T »ú÷ïïíí�˜˜È�Ä#;‡‹BJÊF|ùòeŒ–°°0ïÞ=q®¥@ Ê–ÿuµ°áŒ
4¨V­šì»„Œ–-[ÂËnܸ�Gýôôt8&Dw}ýõ×xÔ¿víeøâÅ‹›7oÞP�ÄМzõê5Tù �¯¯ï…�ÏÕ«W5O„ñ åŸþyéÒ¥»wïjØçnèää„‚¬¬¬ ’jÂ}ÌÌÌpU6<\‚~¬•ZíFj	»¡C-K	Øå¾}ûÔÕ"	߇4Ý¿ÿúõëP0Z`lnn­FÛfffþÉ�Ĺ¹¹¼X"ÿºuëRõëׯ_§N�¦M›®\¹’Ž…Wººº¢eP:{5@éMFØ"©%Œ{ãÆ�ÉíÛ·:„q‚¬P–©©)¼�¨FRÒ-üµÔ˲³–µDn±èS$Æx@Ëð»	�@ðñj)Ê0”Y³fi4xò‡°°»²³³éR›6m”öêAþ666ÚÓìÙ³KïäúŸþ™NQ)qŒ��é=AØ7䨔
 b|ûí·”UË­[·R•çÏŸOûçtîÜú¦MCy{{+2aÂÚ¸uûöíüû�^^^JÛ.ñjiggwêÔ)Ùd/^l×®eñKU•f-«V­š��@jyáÂ(3»¤««/çZ
 � lj)Êö`\ü|`(óæÍûꫯŠ4š.]º$''³u�ééé;v¤¹¿îݻߺuK6<Ï·nݺÈÌuTjI“b%<K}þ`h—˜2TKFp3gΤ*Ãý¯^½ªMC-X°@v“ÕÏ?ÿzNî¿wï^ª&†¬Sé�M›6ÕªU‹¥lԨѮ]»d�1##ÃÉɉLY±bŸ¸¸÷íbIY<ü˰àúõë–––T/¡–�@ ([„Z
 ‚2„=?uµÄs8l¥F�’—.yµ¼xñ"Ô’^åkÑ¢E||üƒàÙ999·oß¶µµU²$<Ø×Tallìëë{ãÆ
drïÞ=É&«oß¾ÍÊÊÂ%Êùþýûø©ýÄÖÚµk†‰‰É×_]¹reÉ‚XT¢„˜Úh9@^ªW¯nRHµjÕ�'íóߣ–kÖ¬AJ„gddÔ¾}ûßÿýÑ£GÙ
 °ŽCgyxxÈNïêêêŽ3&--
™<yòõE{V­Z�†î›3gúšZÊ:ëñãÇ!!!´BØÊÊJ¢–OŸ>EÏ¢ô„„„Ö­[Óˆš;w.\ø¡
-¥˜ùàJÄ’}®zóæM–2==½C‡,øúõëGDDhób¯@ ¥‡PK�@P€µñj	5jTTT$eüøñd[f-!kvvv£G�ž:uê¤I“&2mÚ´~ýú}ù嗲Є»
¾råJØn¥bïÞ½´Sèëׯ·mÛ6nÜ8//¯I*�3ÊòööÞ¼y3ÌB›=XîÞ½ù…_ j>>>
6¤àëÕ«7cÆ¸çâÅ‹{ôè¡­ŽêìÅ€€˜È²e˃‚‚ðséÒ¥ÐIZª¥ZBÛaR={öìÕ«û‰¢­­­•£òh©–°ïíÛ·#TÔÚÏÏoæÌ™hº	& õø>bL™2?Ä™üŽ_¢¡Ð›¸-?kÖ¬E‹¡úè8ô`jj*	#ô
:vìX¤„�¢Ñèt~Ö½†Q´`ÁtëO?ýÔ©S'BêSSSWWWD‹ÀÔ£•0yòdŒ4Œ%333X¤l£¡mÈ‚Gw/\¸0@ŪU«à°ÚX#Aé!ÔR ” n¾¾¾äSŽŽŽìJ|ÿèÑ#<ÛW©R…]rvvÆ%æq×®]spp�8´¶hÀAÛÈÈÒ¡C‡“'Oâ©–”››‹0à50Ydøë¯¿X„ø«e瘰láe(¿ÚÚÚþöÛoJGcÈVÅ={öÌÝÝ�$ÎÓÓ333³@5׆x B²Ñ"°åË—#
¢ÍÏÏÏ+Dò~¨–jùõ×_¯_¿>]ÅÅ‹ñóÊ•+°?mV&k©–„Š*Ÿ={¶U«Vúúúh:9

•v–€dèô~ZZÚÕ—Ì;vý¢««‹l%¦Ì«%z|úôé5kÖ„x"±RYL6`IðšGÁBjذáñãÇ<ºOûÁ#Aé!ÔR ”!ìQ¹øùÀPðw†Ô²OŸ>ü�’+V¬011a—ºví
-›`ßÃÅ {²Ó[ÚãêêzçΖáÛ·o!V$...ôò&>4iÒDÉ‚ƒƒ?`óŸQ£FÑTçñãÇìûçÏŸwîÜY¶,##£={ö9Cª¥ZÂnNœ8!¹bX­Zµ"ï}/µd@-ÍÌÌŠÌY{œœœ¨ï$ìÛ·OéhT^-ï߿߯_¿"W —uëÖ½téÒûŽ�@ J¡–� aÉ%’UHHM–
>œß�'44”¶÷lÛ¶í‘#GØ‚Ø?þø£M›6N*цž={^¹r…ôìÙ³iÓ¦±
d�­»»ûÝ»wÙ¥œœü*ë Ð¥¸¸¸÷�xú믿zôèA+'úé'š!…Z8Pv
B—””TäÊI-Õ²Aƒû÷ïçÏ‚DÎ���ÆÆÆEÞûj‰ŽkÖ¬Y‘9kzÿÂ…²-�’’bgg'{¯–<<x°†#]J�Î�;k8mù#ÀaÌÀ7%’§ú©Çÿ§¢˜™� ´j)ÊÇŽ:th×®]]]]7mÚÄOBUj֬ɞ~ëÖ­;qâÄÍ›7Éf̘ÁÏLU¨P�¯xbwvvvrrrTÃYEË–-


é.-ÕòíÛ·Û¶msssCþ”!>wëÖÍ××÷òåË$h°-üš���˜˜x@Ž}ûöáçâÅ‹-,,È‹yµD±±±C†éÒ¥•…¹¸¸,Z´ˆ’¨öŸ9wîÊÚ¹sçÙ³góóóÙ÷Ú«%"áÕŸƒ‚‚ÞW-ÃÃÃùŽàÕýøÇ Âøøx¨§§'¼È’¬,E渶ȟZ½zõÙ³g£_ Š‡ÊÊÊ¢ùÜœœœàà`Ü‚FCž¨)Y¼ºZÒܱä�Q4ß|� ÷íííÑÔJ/WJ¨U«twõíÛ�¦t
+¥˜ùàJÄ’}®zóæM–2==½C‡,øúõëGDDhób¯@ ¥‡PK�@P€µñj	5jTTT$eüøñd[f-!kvvv£G�ž:uê¤I“&2mÚ´~ýú}ù嗲Є»
¾råJØn¥bïÞ½´Sèëׯ·mÛ6nÜ8//¯I*�3ÊòööÞ¼y3ÌB›=XîÞ½ù…_ j>>>
6¤àëÕ«7cÆ¸çâÅ‹{ôè¡­ŽêìÅ€€˜È²e˃‚‚ðséÒ¥ÐIZª¥ZBÛaR={öìÕ«û‰¢­­­•£òh©–°ïíÛ·#TÔÚÏÏoæÌ™hº	& õø>bL™2?Ä™üŽ_¢¡Ð›¸-?kÖ¬E‹¡úè8ô`jj*	#ô
:vìX¤„�¢Ñèt~Ö½†Q´`ÁtëO?ýÔ©S'BêSSSWWWD‹ÀÔ£•0yòdŒ4Œ%333X¤l£¡mÈ‚Gw/\¸0@ŪU«à°ÚX#Aé!ÔR ” n¾¾¾äSŽŽŽìJ|ÿèÑ#<ÛW©R…]rvvÆ%æq×®]spp�8´¶hÀAÛÈÈÒ¡C‡“'Oâ©–”››‹0à50Ydøë¯¿X„ø«e瘰láe(¿ÚÚÚþöÛoJGcÈVÅ={öÌÝÝ�$ÎÓÓ333³@5׆x B²Ñ"°åË—#
¢ÍÏÏÏ+Dò~¨–jùõ×_¯_¿>]ÅÅ‹ñóÊ•+°?mV&k©–„Š*Ÿ={¶U«Vúúúh:9
•v–€dèô~ZZÚÕ—Ì;vý¢««‹l%¦Ì«%z|úôé5kÖ„x"±RYL6`IðšGÁBjذáñãÇ<ºOûÁ#Aé!ÔR ”!ìQ¹øùÀPðw†Ô²OŸ>ü�’+V¬011a—ºví
+›`ßÃÅ {²Ó[ÚãêêzçΖáÛ·o!V$...ôò&>4iÒDÉ‚ƒƒ?`óŸQ£FÑTçñãÇìûçÏŸwîÜY¶,##£={ö9Cª¥ZÂnNœ8!¹bX­Zµ"ï}/µd@-ÍÌÌŠÌY{œœœ¨ï$ìÛ·OéhT^-ï߿߯_¿"W —uëÖ½téÒûŽ�@ J¡–� aÉ%’UHHM–
>œß�'44”¶÷lÛ¶í‘#GØ‚Ø?þø£M›6N*цž={^¹r…ôìÙ³iÓ¦±
d�­»»ûÝ»wÙ¥œœü*ë Ð¥¸¸¸÷�xú믿zôèA+'úé'š!…Z8Pv
B—””TäÊI-Õ²Aƒû÷ïçÏ‚DÎ���ÆÆÆEÞûj‰ŽkÖ¬Y‘9kzÿÂ…²-�’’bgg'{¯–<<x°†#]J�Î�;k8mù#ÀaÌÀ7%’§ú©Çÿ§¢˜™� ´j)ÊÇŽ:th×®]]]]7mÚÄOBUj֬ɞ~ëÖ­;qâÄÍ›7Éf̘ÁÏLU¨P�¯xbwvvvrrrTÃYEË–-
é.-ÕòíÛ·Û¶msssCþ”!>wëÖÍ××÷òåË$h°-üš���˜˜x@Ž}ûöáçâÅ‹-,,È‹yµD±±±C†éÒ¥•…¹¸¸,Z´ˆ’¨öŸ9wîÊÚ¹sçÙ³góóóÙ÷Ú«%"áÕŸƒ‚‚ÞW-ÃÃÃùŽàÕýøÇ Âøøx¨§§'¼È’¬,E渶ȟZ½zõÙ³g£_ Š‡ÊÊÊ¢ùÜœœœàà`Ü‚FCž¨)Y¼ºZÒܱä�Q4ß|� ÷íííÑÔJ/WJ¨U«twõíÛ�¦t
 çÇA¢�øoG§ØÿL$ÔR þ§j)Êp(Þ…®^½ŠGnÞwøYK]]]<ð›››óÍ7ðMþ‘âïœ|ñâÅÔÔÔ”””TüŠÌq	f×¶m[ZF«A-!¤–ªÉD8cŠ
 –!@†÷ïßç_ôËÌÌ3fL“&Má·*šqàצM›â*|„7Ü"qÆëׯŸ?žÊÂOV³9Œñ7nÜ–êàà€ôìû�¬–’YKüJjyøðá^½zÁæÌÌÌzôè
D-в”–––žž¾wïÞ:Ð1>Ì™3WÑMIIIýúõ£Ícщ–––VVV666‘‘‘ô/¨ÈÇ‘ÊÂ�Ó§O§9qkkëÝ»wk£–°{´Fæþă/‘?Äái³„ÑŽ7îèÑ£¸éÑ£Ge»o�DñA§pâ6MaSÊM›6áóŸþ©£ú—�‚Î{²|Ø7¸Ê¾D>,s^-™ÃR†<¬\º�fQ%ñÐ7ìgñ'[�@Àj)Êþa¯ôX¼x±6ËtêÔIiy¤///ÒÍjyïÞ½÷�öìÙ³-[¶,2Z	ÞÞÞÐÆ÷-köìÙü¾70Mö½–j	IOLL”¨¥ŸŸmš¤^-¡FFFt),,Œ–Ò	•pmzOV3£G�¦Eªººº			ž¯¯¯ì‘—`âĉüá#<1114ñ
ECÑ»–nnnJ;ↇ‡kc'Nœ€ÚÙbPË-[¶hSý�ƒ’ZâÓ@f‘,�N¡NÂu
 mN§P™Ržìv>RK&ƒ’|v•åI)eãáS
@@ -12265,7 +12265,7 @@ mN
 ÅP5êa17ðöOž<	ðdÅJ-?~ŒÏÛ·o¦¤¤ÐŒbAZÖ«W/00�
:¨ÐÛÛ‚±sttÔ	›ZYY¡ÀÀ�Ñ3þþþ7nLHH@Õ{öì¹wïžV�1::Z-ÑÞS§N}õÕW VŒ/ —�–Ö©S§S§N8^VÞN¸Çú÷ïß«W/Œ>ÂpŒÿ/I@ËŠ+bˆ7oÞ@FÏði¦¤¤¤¤¤¤JEe-IüXf‚æ¾â8ƒDž
ÙUfÚh	#ô�ä¥�–f†×f¥?BI)©¿§Ø‘IL
 À)xÕÿÚÂYpVëÖ­Ad*TPE¼ºƒ1ÿ¡&v\‹YxÑ^ö$ gll,›+Ë»„_322¬º6ÐÜÜà	¢|ùò¥@=ZòQK€ä—_~IÔ<|øpp7í+ƒx7„€—ñh™œœÌ£%ü¼-™Kþù§j°’$ %ððÚµkìÔýû÷Ìÿ(°jVÔÌÌÌdÍ×ùñQËfÍšZŠñ€Bêܪ÷’Î…aUEKÀ#ž)TÞÚÚ:))	n¼4HÇy)))))©’QÙ@K�”;<ZHR$‘OTnVø¨¥RªQKU$ZJI•Š€–üº¶HíôéÓª.åääŒ7NuñfµjÕÂÂÂøl¢¤§OŸH‰¤¼¼¼hÃP§““s]¾|¹P½d$Z6jÔHùeÊož¢¥"ìk) ¥ŸŸ?ÕÞÞ¾àaxS®®®ü.-:Љ‰¡mC[¶lyðàAæù/¿üâééinn^تu4zôh�²Ò‡ßÿýóÏ?§‡?þø£ñ½'%%%%%õ¶U&ÑRXähÆ‘ {"ÐÑå|ø’Òøä´Ö’O
ÄWmÆ­¦DU$ZJI•ŠðÇnkkkB0RõêÕ;qKK?ÿü³¯¯/M�åõᇆ‡‡Óf‚æÎ�‹¬$8‹ÒŠ
 3'ÛµkwéÒ¥Bõ’‘h‰2ñññÙÙÙ7oÞd?oݺ¯¬¬¬
-¼¶øh9pàÀ´´4:ƒF�§!C†‰–[¶l¡¶;v¤ÿdeeõïß_+^4ùøø¨.ùÄÁÞ½{S1ÜQ‰‰‰úq^)))))©’T™DËü7—Oš½Îòšÿ:LI¤É¯¤hf¡2ÄjQ-;KáQ¥?-¥¤òM:!ÖHmݺU-«V­Ú­[·	&|õÕW“9y{{�9²F�T²mÛ¶85nÜ8€?—ì3lØ0Ð�——W�=*W®ÌŽ×­[÷È‘#ª.�Y°æééÉj„“&MÂ÷ôiÓæÍ›·zõꈈˆõëן?ž²Ç@ééé+V¬@E@$67’üø±««+…·ìíí	-�r©©©‘‘‘!!!0xõêUU¸3-Ñc€ƒÜÝÝÇŽëææ†êŒ‰âñh™‘‘�q	


áuåÊj—€–µjÕ=z4®Š‰‰Yµjúmüøñ,8t#F]¡ºSŒ™aª0?õŸÂÂÂÖ¬YÃ|À‡uëÖmذ!((¦ÐÀ)S¦._¾<::õb˜ÐQDñ•*Uêܹ3Æñ+ƒ&FðÖüüüfÍš…J1:k×®enછ3gް'iß¾}/^ŒÑŒ‹‹ûñÇKeZ,ûÇ,Éä5ö¬¤‡¸Ž”ËUÌ´§	ÂúȞ³P¾‡˜°
+¼¶øh9pàÀ´´4:ƒF�§!C†‰–[¶l¡¶;v¤ÿdeeõïß_+^4ùøø¨.ùÄÁÞ½{S1ÜQ‰‰‰úq^)))))©’T™DËü7—Oš½Îòšÿ:LI¤É¯¤hf¡2ÄjQ-;KáQ¥?-¥¤òM:!ÖHmݺU-«V­Ú­[·	&|õÕW“9y{{�9²F�T²mÛ¶85nÜ8€?—ì3lØ0Ð�——W�=*W®ÌŽ×­[÷È‘#ª.�Y°æééÉj„“&MÂ÷ôiÓæÍ›·zõꈈˆõëן?ž²Ç@ééé+V¬@E@$67’üø±««+…·ìíí	-�r©©©‘‘‘!!!0xõêUU¸3-Ñc€ƒÜÝÝÇŽëææ†êŒ‰âñh™‘‘�q	
áuåÊj—€–µjÕ=z4®Š‰‰Yµjúmüøñ,8t#F]¡ºSŒ™aª0?õŸÂÂÂÖ¬YÃ|À‡uëÖmذ!((¦ÐÀ)S¦._¾<::õb˜ÐQDñ•*Uêܹ3Æñ+ƒ&FðÖüüüfÍš…J1:k×®enછ3gް'iß¾}/^ŒÑŒ‹‹ûñÇKeZ,ûÇ,Éä5ö¬¤‡¸Ž”ËUÌ´§	ÂúȞ³P¾‡˜°
 )))©wEï:ZVÊœ®¦•F)©B‰½þ•d�:h	ØILLüù矟<yò'üzïÞ½O?ý”J.Z´Gž>}úìÙ3Ð¥÷bnܸÁNЬ­­Ù)@�ZBþù'xUS¥øFÀ Ç:uêT¯^¼†ïRÚ“1ßÀ¤yyy(™““óâÅ:®ƒ–�=3fLÍš5A[0fyþü¹Ò#Ñí-_¾<Ⱥ‚AìƒjøUµ·	-ÁÎ�5ªV­ZuNðGæÏŸOÑXåæ#¨%­¬¬ªT©k¬7„±CÛ;tè êÈ#-Áe¸7Z¶l)¸aii	`;_»v
Ö~ûí·ääd'''€m�5pŠ_,Ù APÞÇ…[È1ÏÑ„•+Wâ9…æ£jru¡�ÂÂÌråÊ�îqƒWÊ·*ÊyNGà¹iÓÓ-õÝ+EI´”’’ú;èj4ò˜E“DK)©ÿrÅÇÇóÛCðrqqÑZ¼ôãñ/ÿ4IuûöíKÍáëŽf38pÀÆÆ†�ÒGK-�ª@‚4ßÒßßøYàU:h™��ݶm[jȲeË(+,/#Ѳ8âÑŒR-æééIsV�ß×’ÆnèСªÀËG-ÁŒAAAZñMŒnZZZ÷îÝU‹�L:dÌ^–:Ú´i“1‹Uy™››ãžÔÚ9åíÉL}|¢<“¨8h™¯H_Š’h)%%õwÐß-¥¤¤¤ ¸¸8Â=A¼~ýºêUÀ“víÚQÉàà`ŠîÝ»—B“ ¹Y³f�ìØ)­…,->|®žiÓ¦=}ú´À«îÝ»÷ÙgŸ‘·�:u"d™òénÂÃÃUë•0Z®[·ŽŸêÉk„	Ät§N�ÒAËÔÔTÕÞ3öêÕKõ’nݺeeeQ±¹sçÒfA£G�~øð!+‰›¤oß¾B`&àÞ={p·rœßPTT”1)vy-—.]j̽aZ™nüª39�ŠµÌ¸•#,™eøÉ®Z5j¡%�¥¼þ8Ï}lÝŠP>°ý©é]+Lˆ5¦
 )))©²*‰–RRR¥(á%­8Âûüƒ@UüjD¥ÎŸ??tèÐ>ø víÚBìR‰–±œœ "ÌvïÞ½Zµj DÐ"Pu=þüîÝ»sæÌ¡¬5Z¦§§2¤N�:xóoѢŹsç‡a–¸IU€…eË–5oÞÈcaa1uêÔŒŒ\äÔI€óäɸ
 ÇjÔ¨.\¸ðìÙ³¼¼¼¤¤$žÎÜÜÜNœ8ñèÑ#Á
 %íµñ–Ä|¬ \-ÑÕÀ+øïëë{åÊį¿þzüøqŒÂ¯õákYPEÏ’p?øøø €¥¥%]‚Ïï¿ÿ>¸•r±¾|ùTØ£GÖod¿V©ReìØ±™™™è@Ydd¤��¿Ë	
@@ -12296,7 +12296,7 @@ m)ZRRRReI-
 ²ÎÁtø–-[øô>ÏŸ?OKKÛ»wïž={ÐÉè�}ûöÁ%˜‚A8p .Ó­Zµ
 	ûgΜÉÍÍ¥­RþýïZBèù¹sç¢lâ›Ó˜³è±   ŠÆâŽêÖ­¡åG}Ä#‹Nƒcð�¹
 íß¿wàxzz²QèÚµk�5Tƒ¶8Σ%n]ôðرc1(,­]T¤¤¤¤¤¤JLe	-IÍØgâD ¢–ÊÔ²L 6eÔR(i$Zæs‘Sa“Þ1Õé¸L„“ªhÉfÛR[Œ¯BJªëèÑ£öööªb¯]»æííÝ¢E‹Úµkƒ>®\¹BWݺukÊ”)­ZµbûÑGGG£08ôæÍ› )kkkú›ø¤¤¤deeýôÓOªÉQ™ð¶ïææÖ¬Y3ümò7Â/¿ü‚#W^+##¿¢Æ¥K—òuéÈÝÝ-eWQ@0_�–°(C±7nà¿%Xü˜™™‰ï�NóæÍɸ€–¸
-ý#—/_<vîܹAƒ
64Òáz	?;€eô*E“Ño—.]‚ýœœ!+<A²�µk×Öš4iÒ¾}ûððpÄU|çmÌ7,6ÄÚÚÚâ*xngg‡Ï�7ÆÐ/Y²õfggÃ>ºt‰2pr¤!ÐHˆ»¢iÓ¦`LKKKÕ°¯ }´÷¡v4äÎ�;¬Óà¡ÝkÁgx‹ê†~øða:äôéÓ£F�RÍ$, %><zômd·h1·k)‚Ø3HgyH1³£›6¹:ž}ZgJWìÑ\Ú^HIII™Fe-iR¨r«e´¨Ð„hIH¨³û¤–Mæ0k‚1QË"T!%UŠbïÌ&7›””Ôºukz'÷õõ¥É¢lÓ¦
;^§N”$Ôúþûïùì7@-2qpp S«V­RÝ¿CСC‡h’<ê:qâ„1Ο9s¦K—.Zy{x¨‚©L´ttt—X/úÁÈ}-÷ìÙCDpF3éÔöíÛApìø]kËKAsçÎ¥¥‘pßxÆ\µaÃôªjç¬Y³†z&77—&Ž–/_~þüù´&Q@Ë"H-CBBÈ
x«5÷ø³Ï>õS»"""T÷µ¬Zµê¾}ûøÿ”®-•–% 8lhÌfÍ…’™vN†Rå‹(mG¤¤¤¤L£w-UŸ>ô?@%L± žêµÂs‡á¤©¢–Œ
•ÙËÉ›ä˜êZKÁNѪ�’*-½¥×*üuð¯ñ³gϦ,1
±ãß~û-]ôãÃv€PÞ&¿¢Pg¿{^øs#´„?@0cˆéòåËÎÎÎZÙuHVVVÛ¶mS�U	hÙ±cGZÿ¨/>sÑ�!Cîܹ£Z,99™Ö!$Ñ¥‘ŒŠŠª]»6;º­S¯¿¿?ßÞøøxÕ½&EFFjÍY]¿~=YÈË˻ѩ€€"Á·�–pƒ¼]·n]­ZµT� £øè9†õ£�>R-	‡�é™’Ã"þ¶$ö´’h©/ög*m_¤¤¤¤L£w-Ù7³2)«jUšË~ž\|Všk’µ–ü|!3.Ó,%›ìEZù2ì•�bÏtj&ß–«(¨S¥¤Þy�={vРAø“inÐüùóñΟ••uãÆ�ØØX`èLZžœ;w/öÙÙÙß|óÍÀ�Û´ickkkmm—™™‰³à²‹/÷ÀS­ZµêÓ§ÏÉ“'µ‚G8~ïÞ=\ˆê5kÖd_&€…#GŽã<œéÛ·/¡8ÅÆÆ^Õ¯_Ÿç/XÞ±c‡1hiooéÒ%:(†{袔””3¥¦¦¢�¨×ÃØƒÎiܸqXX˜Öf‡¦�Sàðœ¹pÆUqcNŸ>ýرc€åè„ÛvïÞݵkWØD3púôi¾pNNNzz:y‹³|¢.p\Ë–-íììªV­Ê#ØÈ‘#QC€†Ÿ8qbذa�
êÑ£ÇÎ�;éÿJ´ýaˆqc8Ô¡C|†c+VTe=}´3f¸>à–

…AxÛ¶m[Á`‹-øÚ¾};ïU•*Up7iÒ–Ñ|cn¡’Í¡ã3žMBÞrþÉÈ?…D|ì ¿²ƒ+Ñþ‘ÊjgxËŽóÙøÇ"íÿħ5öüRþGš‰‡S­ãZ®
+ý#—/_<vîܹAƒ
64Òáz	?;€eô*E“Ño—.]‚ýœœ!+<A²�µk×Öš4iÒ¾}ûððpÄU|çmÌ7,6ÄÚÚÚâ*xngg‡Ï�7ÆÐ/Y²õfggÃ>ºt‰2pr¤!ÐHˆ»¢iÓ¦`LKKKÕ°¯ }´÷¡v4äÎ�;¬Óà¡ÝkÁgx‹ê†~øða:äôéÓ£F�RÍ$, %><zômd·h1·k)‚Ø3HgyH1³£›6¹:ž}ZgJWìÑ\Ú^HIII™Fe-iR¨r«e´¨Ð„hIH¨³û¤–Mæ0k‚1QË"T!%UŠbïÌ&7›””Ôºukz'÷õõ¥É¢lÓ¦
;^§N”$Ôúþûïùì7@-2qpp S«V­RÝ¿CСC‡h’<ê:qâ„1Ο9s¦K—.Zy{x¨‚©L´ttt—X/úÁÈ}-÷ìÙCDpF3éÔöíÛApìø]kËKAsçÎ¥¥‘pßxÆ\µaÃôªjç¬Y³†z&77—&Ž–/_~þüù´&Q@Ë"H-CBBÈ
x«5÷ø³Ï>õS»"""T÷µ¬Zµê¾}ûøÿ”®-•–% 8lhÌfÍ…’™vN†Rå‹(mG¤¤¤¤L£w-UŸ>ô?@%L± žêµÂs‡á¤©¢–Œ
•ÙËÉ›ä˜êZKÁNѪ�’*-½¥×*üuð¯ñ³gϦ,1
±ãß~û-]ôãÃv€PÞ&¿¢Pg¿{^øs#´„?@0cˆéòåËÎÎÎZÙuHVVVÛ¶mS�U	hÙ±cGZÿ¨/>sÑ�!Cîܹ£Z,99™Ö!$Ñ¥‘ŒŠŠª]»6;º­S¯¿¿?ßÞøøxÕ½&EFFjÍY]¿~=YÈË˻ѩ€€"Á·�–pƒ¼]·n]­ZµT� £øè9†õ£�>R-	‡�é™’Ã"þ¶$ö´’h©/ög*m_¤¤¤¤L£w-Ù7³2)«jUšË~ž\|Všk’µ–ü|!3.Ó,%›ìEZù2ì•�bÏtj&ß–«(¨S¥¤Þy�={vРAø“inÐüùóñΟ••uãÆ�ØØX`èLZžœ;w/öÙÙÙß|óÍÀ�Û´ickkkmm—™™‰³à²‹/÷ÀS­ZµêÓ§ÏÉ“'µ‚G8~ïÞ=\ˆê5kÖd_&€…#GŽã<œéÛ·/¡8ÅÆÆ^Õ¯_Ÿç/XÞ±c‡1hiooéÒ%:(†{袔””3¥¦¦¢�¨×ÃØƒÎiܸqXX˜Öf‡¦�Sàðœ¹pÆUqcNŸ>ýرc€åè„ÛvïÞݵkWØD3púôi¾pNNNzz:y‹³|¢.p\Ë–-íììªV­Ê#ØÈ‘#QC€†Ÿ8qbذa�
êÑ£ÇÎ�;éÿJ´ýaˆqc8Ô¡C|†c+VTe=}´3f¸>à–
…AxÛ¶m[Á`‹-øÚ¾};ïU•*Up7iÒ–Ñ|cn¡’Í¡ã3žMBÞrþÉÈ?…D|ì ¿²ƒ+Ñþ‘ÊjgxËŽóÙøÇ"íÿħ5öüRþGš‰‡S­ãZ®
 b
ÿ?ƒÌ$ZJII•½ëhÉ$<ëù‡ÿØÂƒ€7å?E…=t
 …–‚3Ê'_FÈ:Ë3 ²9ôU}Æiík©Z…”TÙÖ_ý•––¶ÿþƒâç¢E‹À -à!þˆÖ¯_¿gÏß¼y³��P±W¯^ø9iÒ¤˜˜˜C‡á*ˆŸŸ_¿~ýºté#B÷íÛ<(é̆M™2lèââR·n]Zïi<ZÂ>®e‰Ë;vìþý÷ßGEEuîÜ™m§hVT´W¢@­N�:u|-|F ‹V­Z•””Ä:Mg'-Ñ™„–ëÖ­#´„ó 5 ™““úØ¥qûí·ßN�:µwïÞ£G�^½z•߈äÚµk3gÎìÝ»7yëèèØ½{w40  `×®]pëïïoeeEß{•+WÆW"†U>|åÊ• W4êÂ…OŸ>¥Ø±€–M›6]¾|9â{ò¤A§ëáÎás‘ôÑ.Tqÿà~˜:ujll,Œ?~¼ÉOØV¢%E-q¸¹¹¡gaܘiØ%&BKFjtœ=j�AKaÑ
 ‰rZYàÉTø÷²�#ÝìÍíºø]½øz7øœðJ
@@ -12334,9 +12334,9 @@ t&:
 -…i9¹¢%­Ý0å‹427[#-á[gR{2çŸZ•6éÏŒü4!f_uƯVN?s2B§T'ä‚T¡—p‹¾±TѲH‘"l`hÖ¬Y4ð~lÞ¼9;^®\¹„„BKPRëÖ­�8[Œ“É<ùð
Ðÿ_41ÕÆÆ´B§Ž=Ê2¢ºbjbä2]¹r¥0×óÛeòú�YW®\qrrþé@U4LF
 å±q[˜‚}dïÞÓW&-ѨÆ�faA	›ŒéX]™™™ýû÷·°°,+åííM“–ÓÒÒš5kËì*açMe(%¶´–FcK•*…›AØnRUhÃX4//¯Û·o³S{÷îupp`Çñ”••…Šp¾2 Öwàb"kU´d�:xð ÖÏ-[¶¼|ùr®
‘’’’’’zg*¬hÉ/a(´T=“î„XF‘‚‡&3Í)ùK)�]¨¨EZ\iR� Ÿ©À”s=;ůQ&—#–™ð­fkUˆM)é„IÅRR"-ñÀoggPêÛ·¯��Ï�h*&8eÑ¢E8Þ¦M›o¾ùFF@áááÄY¼~­®]»úûûYÐ 66–VùU®\yß¾}töÖ­[Àºž={‚Y†28§päÕ«W/”9sæm=	@“nÚ´iíÚµà,9Ož<3aÂa­%¢�VÀ ÞP¢W(ýý÷ßoܸˆ�kÇŽ‹¶õÕWðŠœ�':tÐZk	ÎÑ)ÇŸhW·nÝ€fü¸$º#::zýúõqqq¨q̘1Ý»wGIPpÙ²eµÜÊ3þôÓOQQQ Mxˆ¶téÒv´†Ÿ={†h£T‡J¡îîîpÀÏϰfdÓÜ'3fÌèÝ»7¢�Ç�k‰‰‰èÓ¡C‡ò™i]]]ÃÂÂ6oތȯÎM«V­Z·nÝÎ�;§Ôd-�ŸGŽA� ä¨Q£´Æâ%ZJIIII}h*¬hÉÏ;Õšu–§ŠøE‘¼È¸0Gð
 )ݲs渤…fٯђ¡œr=¦2É¡¨0§7û5êf«enWM¥.´”çD!DÊ­¨³yð¤¤
-JZâÞ

j]ºt	HøòåK¾0òâÅ‹)))wîÜ’j>}úôêÕ«¸
+JZâÞ
j]ºt	HøòåK¾0òâÅ‹)))wîÜ’j>}úôêÕ«¸
 ¯ÿ÷Z€;\¢šVG(ÖàÑFFP/j¿pá*ºvíÚÿ厀àdff&q%´gÏOOÏzõê¡� žãÇ�“ÿ0Õ¯_¿†
┥¥%?hX±bÅeË–¡°ÁS'ÜÚÚq¡‹‹Kdddzz:Š�¸É¼?|øp“&Mè*-ApüúÇjÕª-]ºFàüÂ…ù�_+++TÞÄkûöíW¬X�B1‡jm
	þ‚ÿ bð(p‡Kb¨BèV^àP777ÔU»vmgggÔuìØ1D7ƒ‘OX÷!ø¨ë’YK–,iÛ¶-|@‹xÊf1¬^½zƒ
jÕªU37ÙÚÚÂ+D¬dÉ’dA@Kø	èÆA”êâ%ÑRJJJJêCÓÿZæsÔRÈÎ$`Ÿq�_A©DKÞ­•ŒBþvA<Ï*SæÓ£h(Ç^M9S—+ƒ©ï!“j½J´T
£Ôÿ¸ø[(?вcÇŽ@­ü›Í�À&k×®ÕšûfZ°`±†……ì(�
-iÿG%ƒ‘X±ŒŒŒF�©ƒÁøøxÕzÞþýûÓp§Z:88P¾£'NëT—a–/_~Ó¦MdΜ9åÊ•SõЬQCô5kÖ¬O>ù„]…7qqqopÒêÕ«µv¥Ì¿´ŒŽŽF|r½J¢¥””””Ô‡¦ÂŠ–;!Vµ%Á™^sŽ@)ÑR¹7Šê¾`:‰ÙZÒ¦W¦œ´˜W´¤Úù••&µÉ±ÙÜBKfPµÐÒ¤<•»kI	âo¶üH@ËÎ�;Ÿ;w.ÿfó©;vP†ØªU«¦¥¥åÓàܹsùa¬°°0Óœ7ožµµµ*ƒ¸¹¹ýòË/¬Øï¿ÿîèè¨E+Û·oW­÷ùóçøg§�6´tqq!´D{]]]•<Mæ
üñGv

¥­<uÔªU+ƒh9nÜ8ò¶hÑ¢6lÐZ�jP@ËŠ+æêá›I@Ëàà`++«\¯’h)%%%%õ¡©°¢¥�èF-ùùZZjª[6+Í2H�D«#õÑ’ÇFŸ…ÝULÜù-É}´$±&°KtÖ]fç-õÇa¥¤ò)-Á>'NœP�ŠƒYYYׯ_Ïà„ÛûÑ£GüüØüj•aïAg<§àeÉ7nܼyÄT©R%æR…
+iÿG%ƒ‘X±ŒŒŒF�©ƒÁøøxÕzÞþýûÓp§Z:88P¾£'NëT—a–/_~Ó¦MdΜ9åÊ•SõЬQCô5kÖ¬O>ù„]…7qqqopÒêÕ«µv¥Ì¿´ŒŽŽF|r½J¢¥””””Ô‡¦ÂŠ–;!Vµ%Á™^sŽ@)ÑR¹7Šê¾`:‰ÙZÒ¦W¦œ´˜W´¤Úù••&µÉ±ÙÜBKfPµÐÒ¤<•»kI	âo¶üH@ËÎ�;Ÿ;w.ÿfó©;vP†ØªU«¦¥¥åÓàܹsùa¬°°0Óœ7ožµµµ*ƒ¸¹¹ýòË/¬Øï¿ÿîèè¨E+Û·oW­÷ùóçøg§�6´tqq!´D{]]]•<Mæ
üñGv
¥­<uÔªU+ƒh9nÜ8ò¶hÑ¢6lÐZ�jP@ËŠ+æêá›I@Ëàà`++«\¯’h)%%%%õ¡©°¢¥�èF-ùùZZjª[6+Í2H�D«#õÑ’ÇFŸ…ÝULÜù-É}´$±&°KtÖ]fç-õÇa¥¤ò)-Á>'NœP�ŠƒYYYׯ_Ïà„ÛûÑ£GüüØüj•aïAg<§àeÉ7nܼyÄT©R%æR…
 Ö®]‹28•¡&œ‚K·nÝzúô©ÖäÛøøøvíÚU«V­ºYAAA@-„KãÇ�¯ÑØÅÀ³5jÔð÷÷§t7€Äï¾û®N�:6668[ͬªfÙÙÙi¥*zöìÙˆ#,,,(¼ZhÙ¦M"hXsrr¢QK@1ó‰b»ví¢!W02ÍÖQ•*U"##¯^½Êº^ñNÞ½{
t½‡‡mßùñÇGGGÓb[Tš™™Éw–R×®]»wïßË«V­ÒBËâÅ‹ã⌦¡øQZœï³VW{-¼Ç§+Ó¤@ËmÛ¶¢Yï”.]ZkªDK))))©M…-|óUª£–ʉ£‚‡,‡*�å§Îfk§åÑ÷‡òö¨–7ˆ–‚j—òruÐ’½—K,¥Þž´;vLÐîܹ"ëÑ£G×®]»½–§§g‡‚ƒƒi�’ló}ÛÕ,*Ʋnj=šŸmH™6m,ð%!”sÑBNÓ¦Mq°›†`g»w;Æýû÷“““˜			[·nE½½{÷Æ…hN­Zµh|t3qâÄ-[¶ ÌŽ;®\¹B‡˜ÍvîÜ·5§öîÝ«µ�&hwøðáFÐÒÑÑñøñãìÔ‘#Gø}Ià$>Ià9;tèp˜:È Z‚Á¿�:ubýµiÓ&~¹åäÉ“A”ˆ¤‹‹Ÿú‘�ŠŠ"´„{ø<D¨aD«#ðQÀïl²råJ-´Ä͆³‰‰‰5Ÿoˆ››š¶Í,Š3Þ'%%988P1-ôŠÁ ···¥¥¥j½-¥¤¤¤¤>4>´T®gÌ?Zªòí-ÂþÔ•<þø9¢lP¼’®ZÄjá³³êdˆUEK!	ï˜)gªš&ÇRTÑR™;HJŠÄßBù‘q´üé§Ÿ´
 +4/ˆc
 '¨Ьב³³sjjª�_HUøgT]ÉX¶lÙýû÷ç?ª¤gÏži¡% HXkÉ£%H“<Dß	Z¶l™�ÒֈƌC[^¢¯µº•¡%Ë
@@ -12350,7 +12350,7 @@ U
 ž>}úÇ<6ëÑ£GøâÚÐ*?àCjj*Œ£ºëׯÃ8|ƒq8Ù¾}{~ÛÄló¾põ±†`ŸÒ�òÂA0_R9¦–””Ô¨Q# "c-'²F�îÞ½ûòåKÔŽV´mÛ–o&hú³„�:hÉú>À±ŸþÙÅÅ…@½�™™‰ºÐLa|
}W©R%”dƒ¼Û¶mã‹~d�:~ü¸ƒƒƒ²ƒxÁ‚@shø¦M›`vŸÀÀ@4OD{Ïœ9ãZ‘g=›mÞb¦jÕª¸ªD‰ݺuKKKÓYÊŠ;ÕÁl¿~ýTÃBàATú§Yè ;;;¸]¼xqôÑ´iÓtEÐPåûôéSºtiƒ'µjÕJIIÁqœU½7¤¤¤¤¤¤Þ±$ZJIIhd
OàwîÜ¡³óæÍ£a, ezzºª‘#GŽhmy)(&&FË“3f�]ºt!7@püÆ‹�7æ÷Ð|«Ú½{wÍš5U2þ|JÓ
 Áa#ÍGù=µtùòeš�<sæL­<3 NZÈ	­Y³FunçÿgïÌÃjLÿ?Î×2£„©	Ù&R²G!²ïÆØ"KE–±+ÑÈr5
RJR²¯aìû’TŒ²ÅX“’ìKÙ¾\~ïëÜ—ÏuŸÎ9Njäçú¼þpçyžÏý¹?÷s™óšûyîgnn®K†2±½{÷Š0h¨e™2eÄ!˜¯.+W®¤Ø
;vL—§OGŽ©I-7nÜH§ÅÅÅU­Z•É()èÖ­�V½zuM¯3Ã0L�ÀjÉ0Ì7”æBþhggwüøñ—/_fgg?yòd„	4“بQ£Ý»w?}úôÍÿòþýûØØØÀD Åÿ…¸»»§§§£QE�”””�Ò‚<â
81¿yóæMxV‰%¼H‘"Í›7?wîÜ»wïèÑÇœ=Rÿìâ$$$Ô®][­àŒ3˜••…333ûöík``PLEñˆïõôô¯\¹'}£ä¡kذ!Í!â?(»Ú###ÅN%ÀÈÈ÷øñcy&NŠ€:�È$gz˜lÎYKDœ™3gþøã�âPýúõqŸ`€p«ÈÉçœ\±b­&dff¶~ýzd¥¥8„°ãÆ�+W®œ¢žbݤE‹=xðàÕ«W¸EQ¨:uêà{Ô¶lÙ²sæÌQ<ÝŠ|·�¼LqãÆ�å½r†a¦Àaµd¦?’óG¡–†††C†Y²dI`` þý�NÒäA ,X±ê#øŒ“}}}ÝÜ܆êââ2hР�6l˜â]K++«Y³f᪨¨(–.]ŠË«W¯N‹·”)SfðàÁ.
 
-òóóóôô¯Ô! ‡‡¾		�UÅÆÆÊûÝCrñ=t†2Dðèèè´´4]¶QpúôiMj‰ï‘óâÅ‹Ñ}//¯#F g''§�ÿË 8„.L™2Ý	

…²­Rª�£8Õ¦¶¼½½5©åõë×1"Çwuu…íúøø,–Õ4@„³ŠöíÛÓ¼¤PKS­Zâ†A�ÐôòåËi(q2F6>>^Þ%<<œÔ²D‰½zõB>Zº�ñÂ	Ó¦M5jnE¹žhqäÈ‘Hƒúˆ~Mœ8qôèÑøU:{ö,ý|/oCTå]8aÙ¬–Ã0ÌW«%Ã0È¿¤–….]ºt¥J•LMMË•+÷ÝwßÑL¼O__¿B…
+òóóóôô¯Ô! ‡‡¾		�UÅÆÆÊûÝCrñ=t†2Dðèèè´´4]¶QpúôiMj‰ï‘óâÅ‹Ñ}//¯#F g''§�ÿË 8„.L™2Ý	
…²­Rª�£8Õ¦¶¼½½5©åõë×1"Çwuu…íúøø,–Õ4@„³ŠöíÛÓ¼¤PKS­Zâ†A�ÐôòåËi(q2F6>>^Þ%<<œÔ²D‰½zõB>Zº�ñÂ	Ó¦M5jnE¹žhqäÈ‘Hƒúˆ~Mœ8qôèÑøU:{ö,ý|/oCTå]8aÙ¬–Ã0ÌW«%Ã0È¿¤–….]ºt¥J•LMMË•+÷ÝwßÑL¼O__¿B…
 fff5T˜››ÿüóÏFFFÝ»wß±c4çæÍ›W¯^ýç#wîÜÙ¸q£üÈb‘"Eð#¿ZµjIªT©£QìiXªT)±,*ätÓ¦M·nÝB|âîÝ»›5k†ï+W®Ü»wï£G�Òƒ©hz…”Ðb�� /�ÍÏØ`BˬeÑ¢EQ4T	IZZZB©Ðq‘ä?9¸víá¤amm]±bEª¡ê‰j aÅ
 ±ZÔ¾üðáÃÛ·o§¤¤\¸pމÚ">JZU¢a;wqã†b€¤�Oœ8Ñ©S'ú_Zf-‘£€æ(t
 M#‡ôôtÊPžµ%K–DÑÔv_Ü8Š˜pFtGQO|Fg===qšX›·gÏž111hÝÏÌÌ”'²SSSa”8)á––—œeµd†a¾6X-†ùxýúõŒ3乪ϠI“&gÏžÕÔDÓ¦MóOÑΜ9y‡à,Ë—/'gŒ‹‹kÔ¨‘Ú òº²:‚¶4©¥‚�;wê^ÓÉmàtšÔRÁÀ�Õ.¬Z¿~ý¤¤$]"È/Þ*Ô†Kj©·¼×¤B-u$44T~•UfäÈ‘ô!ììì4-‹tòäIMïÿÖ©Sçòå˺Tƒa†a¾¬–Ã|¼ÿji``�Ûÿ2öööšVøÍš5ËKpcccY-ÿþûï5jˆC†††aaa´²kLLJm�±cÇ~†Z?~ÜÒÒR—$÷ï߯KÀ]»vU®\9·€ZÊ[¢haÀ€òV¤„îjéëëKþ(«å«W¯æÎ�KËkj)¯³ôyj¢iíÖ¡C‡Ò¼ªµµõÍ›7Õž¦E-«U«vîÜ9]ªÁ0Ã0_VK†a
@@ -12371,7 +12371,7 @@ IÓ¬%
 µ‚úÑB:T+ŽÊóª]ºtÙ¾}û©S§�$Nîܹ3eW¥¥uÀÓ§Oqz//
 „ŽË³–Ä98sÏž=ÉÉÉòNøœ””tèÐ!dxöìYWWWQ%ê>£°x”aqº3qâDy½\ÊñãÇ�;¦e»O€CpFÎܼy3úÕ¸qãvíÚ¡-Ùîj‰>¢Ý}ûö%$$È;ƒ(�ÕÑ6nÜ(ß6‰‰‰GTàŽ’ƒ@-k×®MM£›ÑÑÑè Š¿eËdˆd�¡………b2·téÒuëÖE­ptÓ¦M´P-Ã0ì–Ã|lذ¿±­­­[ä7uêÔqqq¡IÆ*Ñ€—Á’àŒ0š^½zÙØØ@ýðÿÜA   Ð̈ˆˆ¾}û
 ¿kݺõÊ•+ñ=´×®_¿¦ÙDEåÊ•¿ÿþ{zoÎØØxÖ¬Y8.sLZ�pAIàª%J” ³èرcdd¤FaU2øâª���nݺ!Cu
-…BJpFzbj)ÏZêëëã{èš¼´<—ÔŠ'577ÇåÐdG‚Á‰H-


aâhÚÒÒš	£·‘$jX¿~}œß©S§ÀÀ@E§ðWxŠæììŒ|ÐäV®\9ywÈjÕªáK[[[¨´by"^‰ªB]adhÑÖ­[‡ø[ü‰¨¼
+…BJpFzbj)ÏZêëëã{èš¼´<—ÔŠ'577ÇåÐdG‚Á‰H-
aâhÚÒÒš	£·‘$jX¿~}œß©S§ÀÀ@E§ðWxŠæììŒ|ÐäV®\9ywÈjÕªáK[[[¨´by"^‰ªB]adhÑÖ­[‡ø[ü‰¨¼
 µD&/+++ôéiÚD‹Z¢‰>}ú@c1�Dx4ù¯B-õôôpËáÆ@È%E%q9º/Onb€Æ�¿sçNE?~¬E¨†aæÀjÉ0Ì7<:f``Pèß¿öãããÕ6½víÚŠ+ŠÓ ‡Ó§O§¥{öîÝ[µjUq¨|ùòòÆ‹ˆF[–(€AsÔ¶5oÞ<Z6
 gÔåõºƒʯòÉ,X° ++Kœvÿþ}-[yÊÈj	†;Ó¡®]»Òë�
 µ”�f®Y³†æL‘Í?âüU«V©}E¦,+˜&aáÂ…j+óêÕ+___Z3§m۶ׯ_‡Þ¾}‹òjÚ|dåÊ•tUÓ¦M!ûjŸtÕ¢–aaa&&&”$þJÝW¨¥\e§eggCo©žÕ«W—÷[a†a˜‡Õ’a˜DüHÎ{xþ�Ñ´7bÞ�´jú/¿ñf̘AÓvÛ¶m«T©’øçȵ„¨m«nݺ�Aµn5wî\ê#ÌV«Ë«|'Ož´´´TÛ–ŸŸ=Â
@@ -12455,8 +12455,8 @@ endobj
 stream
 xœì�w˜Eö÷g€……a# Q¢$‰KP	+iÅ%º"%©d$HŽ*
 ,¸E‚  €( 9gü¡°ä$A�û~Þ{êéíîÛsçÞ[ß?x˜îºÕ§N�:ç{ª«ª÷ìÙS­Zµëׯû"ï½÷^÷îÝ“[
-





ôïßìØ±É-EPØ·o_||ü¿ÿýï?ýéOÿ÷ÿ—Üâ$ŒþóŸùË_’[
-





üõ¯ýÇ?þ‘ÜR$Œ‹/ÆÄÄüÛM444444ÂÄï…üç?ÿùóŸÿü¯ýK




�ð¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b‘\àÖ­[‡Z¿~ý¶mÛ‚)¯	€††††††‹Hz@ìnݺuæÌ™£ü(Uª”ºµgÏž—^ziæÌ™Ö_i ¡¡¡¡¡á"’˜âsæÌ)¡?UªTÑÑÑFpí򵯯Ø
+
ôïßìØ±É-EPØ·o_||ü¿ÿýï?ýéOÿ÷ÿ—Üâ$ŒþóŸùË_’[
+
üõ¯ýÇ?þ‘ÜR$Œ‹/ÆÄÄüÛM444444ÂÄï…üç?ÿùóŸÿü¯ýK
�ð¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b¡	€wÐ@CCCC#b‘\àÖ­[‡Z¿~ý¶mÛ‚)¯	€††††††‹Hz@ìnݺuæÌ™£ü(Uª”ºµgÏž—^ziæÌ™Ö_i ¡¡¡¡¡á"’˜âsæÌ)¡?UªTÑÑÑFpí򵯯Ø
 üú믦j ¡¡¡¡¡á"’’ÄÇÇ—.]šÐ_³fÍ•+Wž:u*{öìFj×®�"EŠ˜~«	€††††††‹HJ°nÝ:¢�5`üyçÎ�œ9sš@�=(³|ùrÓo5ÐÐÐÐÐÐpIIFŒApÿøã�åO[ðæ›oRfÑ¢E¦ßj ¡¡¡¡¡á"’’8ИÝÛ€îÝ»SféÒ¥¦ßj ¡¡¡¡¡á"’’L™2…àþî»ïÊŸVpïÞ½2eʤH‘bïÞ½¦ßj ¡¡¡¡¡á"’’=z4uêÔ¹sç>~ü¸ÏŽŒ7.::ú±Ç“EFh ¡¡¡¡¡á"’’Ü¿¿}ûöQQQÙ³g5jÔ÷ߟ-[¶âÅ‹ÿðëW¯nÒ¤I
 ?æÏŸoý­&."‰Ï¸}ûvÓ¦MIó¡êßT©RÉÉ)S¦:t(<ÁúCM444444\DÒŸH|_²dI�5bcc‰ø¤üü›!C†ºuë~óÍ7�~¥	€††††††‹HÆ�ݼyóÈ‘#û÷ïçß[·n9Ö ~ùå”sáÂ…ð«Š��?yòä¾}û~øáÓaŒ×®];tè·ÎŸ?o;E9À®PÈå˗ݪã¤ÂK—.¹Uah8~üø?nß¾�¼’üÞẅ­H�ÓS§N™Æé•+WúáŠCp4\ìi“[–äÁ®]»hþÑ£G ³°
<yRJ%H,¸{÷îúõëøòË/àöìÙ£nΞ=ëQtø_&wîÜ¡½Gý8sæÌo¿ýf¼»`Á‚4iÒ”.]:ÈÚ¾øâ‹)S¦XתU«Š)’2eJySªT)éJ¼MïÞ½zè!ye“6mÚaÆ…ß(ï0yòdR·n]·*œ5kV©RÅ­
 CΡpáÂrŽV²8Š?Þ}÷]:4‰ŸiÓ¦ñЧŸ~:ÈòŒÓ>ø®bºþé§Ÿ>úè£òÚOX¹reüƒÏg_y啌3Fû‘.]:†¹Ëm	†DZD½wï^r‹“ÔØ¼y3}AósæÌI|´-ƒ÷Æ6ðäI,›/‘€ôÄOH ¬Y³FÝmذ!Ñaûöí^Èù¿I¶lÙÒ¢E,‡&§ô;É›7o»vívîÜ)ePñØc�S!‰|¦L™(orû÷ïG½\/_¾<•ׯ_¿[·nrkÈ�!\O�:uƒ
Z·n�|õÕWá4Êk¼ÿþûü·¿ýÍ­
@@ -12489,7 +12489,7 @@ I
 ºŒG¨SƒŒ…¿øâyÃHUÄkÊ,XµÐž¦•„ÙæF…eË–1h&?1.sJðù?B!Ûçi8†�z±p˜LÉ’%•›%ÊÈž…ªÅŠ�VÎONpí.#ZF¿e4!9b£R™÷3mý û�Å¢ò,hB‘¹#ÅôR'&ÁEK¨(GŽT¥ö‰G&`œ*
SL�SÚBÕ“‘s€sçÎ-ã›I¸¢V�ZU«]»v”ÿèl’@€
Ðwøyyœ €ÒËÖ0žN¿c$EŠa8àÄTš&GbH¨�Áˆ]I_ð Ó‰"¾û\+V„ö—/_^<a‚ÅbrQþõ6Ød‰!,³^ÔcÊ8l�ÆEc®Qþ3ŠiÖK
X5Cd’­ W¤ѭ­g–ÓÈé ëHAEjÏ#Yƒ,4b˜0ÜpP�;wnÛ¶-cM:zÙºÀç˜={6F"S‚ÒÑXWŒï¹ðù‡ÏÊ•+a€tºfþÅ	Ó}ûöUI
aFm»¥z÷îÝÜÂt�1$.šö,Ó@.®[·ÎTÃwß}Çuîš"1‚ëέc`Î�;—ßJ�c·�9r¤¢<‘¸L$’Ò³ôEÇŽƒÙaD˜X¼x1&'ƒ�§PyN£D‰�LSyüç‡~ˆ6ÔÉçȃ{Á9¿e^´h�5í:gxâ
äÑØÌSO=E’âó/KƘÎK�O’vácÅàñlŒ…gžy†~´N¥2ÖàH¸YÑ�ƒ,1üa&U,]ºTT�ž!f¸ATaÝ @íDjIù©™ÈKøFæ^½zÑR놂Ç“èáu…fð\þܸ
“¡ÄomóA4Ã-‚ˆéúõëׇ^¸paQ#
 A’±cÇË`EÔŒJ�VÄŸcÆŒIðåjÁ=ªn‚Æ0Lp,33•ÇȧN�JyIçeN?~|0«GèF+Cx&½@f¤Ö£Q‚íž�7rËxø'’È�dU!ƒ×z0©8ëvx†9×kÔ¨á`áôû¬Y³ä“gb�2NéeÆÔOPã}B�ºvíš #uÂÚ…µò[L¨OŸ>Ät…`¶§è˜€¯5jý%¬•G3vL'wÑ;sæÌahËTeˆ˜&L°òðfÍšñ\Ûïî‰ñ_ÍûüÓ8dëÈ/›%‰ÔbuÒe(ÜÁ0ÐÞ´iÓp×’õ`Þ˜fu˜%µY_Ps	‘ww�†Šð[[â‚'x6pXš.79îäósãçc0<hR ÏïÝÇ€¬’Xá° ÍaWyþüyULÚ&øó7?lk½e[X.Z�Cå5ÕÀ�Aø‹/Z…W
„¨S†f&vÅ2àOø-ŽBUnÛ“<â@òXb[¡z4|^Ý•Â	Ö‰ßàWJçÂx~ÑÏÏ?ÿì %
y‘�Q˜š•s1°@~ÂS¬bÒ’/!åé"6ÿr§JZ+
 ž‹ÞD-Æ‹�*á–<&™Øgùü±[fMÝšXýØÉÄŽSgÍ›JJ«Æ…rDÎvhûÃ.`<Ɖ‡.°Ã�Näß@FB…7oÞCrö‡½¨áô©u¤£X5*‘-©|þq�’¶[gr‚—ÄAùµózQÆÔÑátcmkÖ¬éׯYIJE‹°Íýû÷;؃GàÌ™3{‚@‚»±láÐÐ
@CCC#HÉ�!ƒó§~Éh²fÍZ¼xñ�Ùˆ¼[à4ÐH^h ¡¡á€ 	ÀÍ›7³dÉgú8‘‡"4W¬X1P"¿yóf<Rhëí5ÐÐH,4ÐÐÐp@ðkäûM:t°]PJú/gC:ÿÐ÷`{»ñ#Á#	À¥K—6nÜ8þüyóæ­^½:üó�5ÐH^h ¡¡á€à	À—_~)ë0Éñ§N�J"âĉ“'OîÚµkÒ¤IræRúôéV	Êþ¬Áƒ‡ §§àøñãM›6ExãGŠÓ¤IS½zuçoŽ;C�äTö±Ç3íÔÐÐÐOîß¿?~üxÙP#‹öSù¡‚f†/^ìPÃwß}ǯjÕª•Ø…µ>/	À†
2eÊ$MàÙ²eËž=»"<ËöÓQÁ@�äÅýHnA444"‰ýÀîÝ»[µjEˆ$”ËvWþóÈ#�tíÚÕáDÁo¿ý&J|üñlj•Ó#pþüy9§N�:_ýµÚ(t÷îÝ;vÐR¤M›6­íWç„&‹Ð>DNAèÜ¿ÿÁƒÕÑ—ÁàÖ­[Í›7O“&MÏž=!Ü_í`ÍY¼ûp”ÿ´UÛ…
ˆ!‡†%öÃvM44444"Þ}
Њ£G�vèÐá™gž‘óšH®³dɒÂܹs'Ù·jÔ¨�_”¢åË—Ïál·@Ð@CCCC#b‘”@–O©R¥²žì(_¾|ÆŒ¯_¿îP¦R¥JéÒ¥s>.ÞšhhhhhD,’’\¼xñó °zõjë)߀
-*ܾõsÿþýÒ¥KÇÆÆš>*4ÐÐÐÐЈX$%ùŒ”Ãgâå“ÙeÊ”	a)µ&‹¤$ÄÐ;wî8|ãÆ�+W®$Ù"À…FGG)R„@o½{þüyùxú¨Q£B¨\



�ˆER€uëÖħOŸîP¦G�)S¦´ž&äˆ��¯^½z”ÿóÄmÚ´™={öŠ+V®\9oÞ¼Ž;fÍš•[¥K—v^$šhhhhhD,’~à|àPfܸq”ùôÓOM×½;èÒ¥Krʱ-ÐOÈÏÒ@CCCC#bi [·n”±ž(èéQÀwîÜYºt)ñºpáÂ3fŒ��-T¨PÆ
-Zd{>@�Ð@CCCC#b‘XOzÞ¥K—
Ô®]{ûöírýþýû'Ož<vì˜õÿµk׎ú1{öl‚ûСC�ÚáðáÓ'Oމ‰‰ŽŽÞ¶m›©’¤ùà½{÷nûq÷îÝðkÓ@CCCC#b‘(°wïÞ%JgÈ׬Y£î6nܘмyófÓ¯f̘‘Ò�)RÈù?)í weÖÝõç€544444\D °|ùòüÑx…?sæÌI€Ž‹‹#ý—åñFðñÇs¥OŸ>¦ª.^¼8iÒ¤5j¤K—ŽÄú?@–,YÚµkwá«<I@~ùå—3gÎìôƒúoݺf…šhhhhhD,€¾}ûæÎ�›P¨®tîÜ™ðݨQ#Yÿþûï›ÀÑ£GÉâ>>¾bÅŠèèè±cÇþÇÄ}‡‚ž€ƒ¶iÓ†öBNd9a#Mš4	ósÀéÓ§¯ü{@Ù²e+Uª”ÜR…Š+–+W.¹¥HÈY¡B…ä–â�†ßKï3štï»´Š§Jn)‚Bùòå“[„ �!C"�z•¯Ð¯_?â`Ö¬YåCxwïÞÍ—/_¦L™Ô‰¸V@¦O¼+UªT 3sîܹSµjÕ9sæ„L½#óçÏ�‰‰Q/5RûaüsÔ¨Q¡}P÷üï0Ÿ’%K&·A¡páÂôWÓ¦M“[�P°`AWäË	YE‹Mn)‚B‰%�¶qãÆÉ-Hxì±ÇpSÉ-EÂÀ>ñêùóçOnA‚B™2eÈ1#¿÷K—.ý»�È—nHÞMÁëܹs¯¼ò
+*ܾõsÿþýÒ¥KÇÆÆš>*4ÐÐÐÐЈX$%ùŒ”Ãgâå“ÙeÊ”	a)µ&‹¤$ÄÐ;wî8|ãÆ�+W®$Ù"À…FGG)R„@o½{þüyùxú¨Q£B¨\
�ˆER€uëÖħOŸîP¦G�)S¦´ž&äˆ��¯^½z”ÿóÄmÚ´™={öŠ+V®\9oÞ¼Ž;fÍš•[¥K—v^$šhhhhhD,’~à|àPfܸq”ùôÓOM×½;èÒ¥Krʱ-ÐOÈÏÒ@CCCC#bi [·n”±ž(èéQÀwîÜYºt)ñºpáÂ3fŒ��-T¨PÆ
-Zd{>@�Ð@CCCC#b‘XOzÞ¥K—
Ô®]{ûöírýþýû'Ož<vì˜õÿµk׎ú1{öl‚ûСC�ÚáðáÓ'Oމ‰‰ŽŽÞ¶m›©’¤ùà½{÷nûq÷îÝðkÓ@CCCC#b‘(°wïÞ%JgÈ׬Y£î6nܘмyófÓ¯f̘‘Ò�)RÈù?)í weÖÝõç€544444\D °|ùòüÑx…?sæÌI€Ž‹‹#ý—åñFðñÇs¥OŸ>¦ª.^¼8iÒ¤5j¤K—ŽÄú?@–,YÚµkwá«<I@~ùå—3gÎìôƒúoݺf…šhhhhhD,€¾}ûæÎ�›P¨®tîÜ™ðݨQ#Yÿþûï›ÀÑ£GÉâ>>¾bÅŠèèè±cÇþÇÄ}‡‚ž€ƒ¶iÓ†öBNd9a#Mš4	ósÀéÓ§¯ü{@Ù²e+Uª”ÜR…Š+–+W.¹¥HÈY¡B…ä–â�†ßKï3štï»´Š§Jn)‚Bùòå“[„ �!C"�z•¯Ð¯_?â`Ö¬YåCxwïÞÍ—/_¦L™Ô‰¸V@¦O¼+UªT 3sîܹSµjÕ9sæ„L½#óçÏ�‰‰Q/5RûaüsÔ¨Q¡}P÷üï0Ÿ’%K&·A¡páÂôWÓ¦M“[�P°`AWäË	YE‹Mn)‚B‰%�¶qãÆÉ-Hxì±ÇpSÉ-EÂÀ>ñêùóçOnA‚B™2eÈ1#¿÷K—.ý»�È—nHÞMÁëܹs¯¼ò
 6œ-[¶C‡]½zoöÔSO©Vpùò娨ØâÅ‹;$ò	烀Á#pàÀ‰þ„¿©S§òç?Ž92wî\èŠ|›`Ù²e!Tþ;z�6mÚ‘#G&·Aáõ×_Ç_Ý»w/¹IŸbÅŠ…fíIŒìÙ³[ßÜE&üðÃ[�
 �44ˆÀšÜR$9ê¼U«VÉ-HP?~|š4i~ýõ×ä$Œ7îw!§/¡E€7n,R¤)ðÏ?ÿœ9sæòåË«\ØJöíÛí©V­šrzD:uêD+jÕªeûƺ"ªW¯þÇ>
 Xס	€ÐÀ]hàþ0\¿~ýàÁƒ>ÿwsȅɑ底ÈþÞ½{;?‘
@@ -12510,7 +12510,7 @@ k2&VE
 ñ^BËMºHxM¥
©˜ÚÔ†"D	¢Ð’Ò¦¢›24U4…«»*hsZ
 ­Smˆ6“ÐD#Ä<Ï”©L‰9ê%oÝó~ß³ªŸzî9'Cg­-Ge}ÿPÉy޽Wö³÷ZŸ=3û)yÀòåË‘E\\\“:vìªkÓ¦MsÃ<tÿ®Kn^íº^½zˆïׯ_w{d�¼ŠqüøñH“Š€øríÚ5øp81ä‹?­‰ó`ÿþýöj`ߎqòäIË9À�ÙkH!ÄØÖ«W/²/ñÒ¥K“&MòYðª7oÞЖsq…Ñm€ñññ–�cÆŒa¦&hû#GŽ$Ã@€:tð5õY
§N�:†^�À3“�èXyåË(9rÄš¾Dÿš¿v�»ví²*$œ³õöá?ƒƒƒ­Ò¾xñ"ÇN>¬X±Â²³G�nO»víj=e®XÈÒÓÓÑRóÜHShõ¹}aÖ¬YùLžfî$HË,ñÊhé<B�a¢2äæ_¯â�B@
 ·?BÇÐÎ�ÀNF"SÏž=Cu¥N«ý¦Å@ƒÖÀ5~xòä	'5sðêÕ+Ô+²�âÌ™3ÌQžVSøùù]¹rÅ>‚í#€·l™ï÷âÅ‹[·n¡ùàu‹,«&ño¹R¥Jdg³fÍœ®õ¹sç~s	?Ð-ç-£Ð§O«¨§OŸÎO�ô5kÖ´¬B÷¯žŸI VfMàSRß¾}Ýž~õÕWÖSfËÍ`?"`Íš5ù¦óüùs*Øü1·ïL�:_È{Ÿà¼yóðϽFOÌÈÈèÔ©“çÒÐ
lß¾½Ð•�S¦L±Œq#+xtü­§{÷îåd$µðáÇ–_²z‚
-؉õ�™š ܽ{wÏž=;wîLJJBdA¿Õ¿%K–ðÓ— Õ�š;w.>Apñ58zô¨e\Š¿¿?ˆ%	œ®_¿>h_dû6Àu–�£F�:qâDãÆ�­õŸø¡aÆû÷ïgÚiÀTÖÂZРçéî…�È.€ÔÔT«ëU«V;¿²V­ZwîÜaÚÉûZ·µø¹]»vÖÓ!C†pLÍû  dQ¡B…¼k°ŠF«ðÍ<NÍ¥q˼;Ôp›øŽçövÓw TñÞ'0²zõê³gÏ2£ì¬=xð`·§ö	Væñ&úòË/? AY+l�‚ÌÝUNQX´h‘ã¿ÿߦM›Б¯¤ÀZEÙ¢EZäcßpá#@‘y.Ñó2²¿*>lܸÑ2)66Öm/	Í6%%…“‹91bD¾«p’:`Ÿì#¡«Û¿‘ƒ5ø@óéVcG?Ôz´páBû•:ƒ
☚7 ²ÃãÏùúë¯oß¾íö4ómÛ¶�E©,X�G^Ç�‡k


µ¶Ý¹	!¸R¥J Ï=wÅó2 ¸¸8ëE6Ìí©ÕÛ‚Ð7ädTÌàÂ…Öp+4~üx~šF ((hàÀ�ˆ"kØD`óæÍdº{Ö„µ
+؉õ�™š ܽ{wÏž=;wîLJJBdA¿Õ¿%K–ðÓ— Õ�š;w.>Apñ58zô¨e\Š¿¿?ˆ%	œ®_¿>h_dû6Àu–�£F�:qâDãÆ�­õŸø¡aÆû÷ïgÚiÀTÖÂZРçéî…�È.€ÔÔT«ëU«V;¿²V­ZwîÜaÚÉûZ·µø¹]»vÖÓ!C†pLÍû  dQ¡B…¼k°ŠF«ðÍ<NÍ¥q˼;Ôp›øŽçövÓw TñÞ'0²zõê³gÏ2£ì¬=xð`·§ö	Væñ&úòË/? AY+l�‚ÌÝUNQX´h‘ã¿ÿߦM›Б¯¤ÀZEÙ¢EZäcßpá#@‘y.Ñó2²¿*>lܸÑ2)66Öm/	Í6%%…“‹91bD¾«p’:`Ÿì#¡«Û¿‘ƒ5ø@óéVcG?Ôz´páBû•:ƒ
☚7 ²ÃãÏùúë¯oß¾íö4ómÛ¶�E©,X�G^Ç�‡k
µ¶Ý¹	!¸R¥J Ï=wÅó2 ¸¸8ëE6Ìí©ÕÛ‚Ð7ädTÌàÂ…Öp+4~üx~šF ((hàÀ�ˆ"kØD`óæÍdº{Ö„µ
 -ß+ÉÐr™vò`ñâÅnV!àMØíÿä“O8së†Ý@k=m©R¥ì«—9’€k×®µoßÞ­xáñÖDN™æ+­¤%¡oÒ³gO¸”¦M›º™]ðEz^•ï]ú�5¢¼¾ëÖ­Û½{÷DEE¡B{÷¨rN˜0!ow—““C'à_T	»ïB±rP™ñ¤áù‹P™ó›ÜÄ€Q£FY/zèСnOí{Á’““9g€7°LÑ­[7‘A`AHHH¨àRÙ²eÝ&ª>ûì3þˆ%>|hí­³ß¥åƒ€7²uëVô›`'°yçÎ�«W¯Fã²#f�	9vòÀ¾�ÎáZ±vêÔ)Äk„¡�¶lÙRè\�°Jj×®�ÔJ@�Õ~\Ÿ½0›5kÆ<¯Ø)tÀ†
ÜNü°d? hÒ¤Iœ\
 rЫW¯¾ýö[{É.Ù¤I”jA²C³¢…vðcˆ_áááÍ›7·vµã¯ãoâ@gAÏ›7ïûï¿ÏíteËÊ•+a0þÀBdÁ€‰'ZåìÖ+AË
´žîÚµ‹“Q±€7nv’:vìÈþ%	êa¶KYYYçÏŸG¥µ/ÿ@“a®c€ýÀ"kðŸäƒ�›@ö³
 ½ô—Ä€¹sçZÆ”/_ÐþÔ>Ì	&-È`Gl<ž§OŸ¶6�Â6ø(„{p ½3U¿~}æŽKÀ«éYÖZ6ãeÙW,]º”“KÁo|ñ⺙èæ÷ïß~²gÏžqqqx#Ç�ÿKÞ.äèyX|jrnGpÈ@ZZš}ü¥Z·n]·q*T•V­Z¢”
@@ -12664,7 +12664,7 @@ $(P
 €8*&P�EÀ*â|¸ÿþÌÿ°jÕ*~�‚�••µwïÞ#FtìØ±E‹ݺu›8qbrr2ú¯Hù‚póæÍôíÛ·uëÖ:tÀ8¸}ûvÁ¾Àü�³fÍš™.^¼È‰Ó„|úô)66±]¸pA°X)øüùóáÇ'OžÖªU«víÚ
0]éÕ«WüÂ	HOOÏáºÇÅÅñ㔀»wïNŸ>½{÷îÍš5CßG�>)YV2337mÚ4xð`\ztÿAƒíر­B¤p»I¸zõêPH³üÒLÀ½{÷bbbÂÃÃÛ¶m‹f"’±Å-
 ™sþüùQQQ]ºtéܹs�=†Âl¦‰kûèü2¥,ýB…
 Ùþ'EŠùá‡DfC"ðàÁüɸ:676lxçÎ~œv¶ W-ZÔ=Bw–/_ΉS\ÒÒÒ¾ûî;ŠméÒ¥RÅÚ%½>!!¡V­Zî­ ü?þøC$T8}út×­‹§ ¬^½ºxñâ.A¢ð�7ò€ÔÔÔ
¸4üˆÑJ*]€ŒŒŒÆ�SÀ3fÌà(+¯_¿Æ`ŠáÏ¥
 f~á²pòäI˜?&—PÑ˜}Ö´@®œöÀ¤¯^½z	-jÔ¨Q»wïNLLD%`"@}M¤óòÃS@@â)\¸0&þsæÌA‚Z±bEŸ>}ð	>¯V­Z2?T¦deeuìØ±]ö ‰Qزe'NYسg�¿¿¿Õ>½M0¤R¯/Y²$fýoëÖ­h#GޤÁ
ìܹsüPEÓR„äããƒYª{øñÇùqJ	ú;ù*ºÏ‚Ð&.\ˆvE	áÈ‘#Ìò¥ ===((Q+V	jÆ
ƒF�øf(Ò÷
	?
R^(øj×®MáÁÿçÎ�»k×.\÷íÛ·¯]»–_¾” !aÖŸÝÜÊËàÆ�.Ží=€~D¸mÛ6çÏQábpµqïÞ=æYø€x†Š™þŸþérhñâÅT«h½œS¦×üüóϵB…
-Ìþ+%™™™ÑÑÑ^ÑÂÃÃ1üy¡Ø×eâĉoÞ¼qùíƒbcžÂ.$+W®D<°`ƒü�<""h�”ü1p~Œòáú„4…æÁ9…” ï#dÑ3gÎ8~âÄ	8!aòÂ<…ÝŒ=z)~…zð6@–kÙ²%¢òóóûý÷ߥø:#%ðRç›?èòM›6…Kѵpfm˜Ö¢Ecñ3fŒÍq[ÒýÊõë×ir
'džEäÀÿuàþ9"¯Zµ*âìÔ©óvÃðìÙ3äm„:{ölfQ"€ª

E<Pk¤¦÷ïßz§äý	"®ˆÌš5ñ3ƒÉ8pॣýû÷»JNN.ä`÷îÝœSˆÀ§OŸh5~üx÷£
éЋ/8g±€×¯_W©RÕ¸~ýúúõë{›¬[·ÎæxÔ»cÇ~T€ÔÔTk�húé'$R‘ð,Ì	>мN�:^(£G�F<5jÔpJÒÒÒHøXM¿йsg›c%¿(£0mÚ4òí—/_2‹’º°hÑ"%›7o¶;¦~¥K—þæ`øðáˆ7?%ŠÀ¸qãOûöí™Á䀈 ©S½¹·v´+ÊWQQQœSˆ@bb"ÍþNž<é~ôÕ«Wtà·ß~ãœÅn@"##X�=PÃÕ«W÷*À¥¡Ç‘aaa&æþ„ˆÐ½hâ×_5­!¸xñ"ÝŸD™«V­òBHHH 	àåË—]Ñ­uŒÝOž<ažÅ´4mÚT*åš̯˕+‡8!]üÒ¤%Ü¿Ÿþ�)—~C€l€$cs¬Yâg ´ß¿f09 "tg²[·n�bž…£µk׿´1غu+å(LI<þuÿaÆqÎb—€M›6Á[Ðø?~Œ+V¬èUpýúuz¤¾oß>~HÙÁ€ÌÌLkyR­Zµ½¢kBj£F�(rL
+Ìþ+%™™™ÑÑÑ^ÑÂÃÃ1üy¡Ø×eâĉoÞ¼qùíƒbcžÂ.$+W®D<°`ƒü�<""h�”ü1p~Œòáú„4…æÁ9…” ï#dÑ3gÎ8~âÄ	8!aòÂ<…ÝŒ=z)~…zð6@–kÙ²%¢òóóûý÷ߥø:#%ðRç›?èòM›6…Kѵpfm˜Ö¢Ecñ3fŒÍq[ÒýÊõë×ir
'džEäÀÿuàþ9"¯Zµ*âìÔ©óvÃðìÙ3äm„:{ölfQ"€ª
E<Pk¤¦÷ïßz§äý	"®ˆÌš5ñ3ƒÉ8pॣýû÷»JNN.ä`÷îÝœSˆÀ§OŸh5~üx÷£
éЋ/8g±€×¯_W©RÕ¸~ýúúõë{›¬[·ÎæxÔ»cÇ~T€ÔÔTk�húé'$R‘ð,Ì	>мN�:^(£G�F<5jÔpJÒÒÒHøXM¿йsg›c%¿(£0mÚ4òí—/_2‹’º°hÑ"%›7o¶;¦~¥K—þæ`øðáˆ7?%ŠÀ¸qãOûöí™Á䀈 ©S½¹·v´+ÊWQQQœSˆ@bb"ÍþNž<é~ôÕ«Wtà·ß~ãœÅn@"##X�=PÃÕ«W÷*À¥¡Ç‘aaa&æþ„ˆÐ½hâ×_5­!¸xñ"ÝŸD™«V­òBHHH 	àåË—]Ñ­uŒÝOž<ažÅ´4mÚT*åš̯˕+‡8!]üÒ¤%Ü¿Ÿþ�)—~C€l€$cs¬Yâg ´ß¿f09 "tg²[·n�bž…£µk׿´1غu+å(LI<þuÿaÆqÎb—€M›6Á[Ðø?~Œ+V¬èUpýúuz¤¾oß>~HÙÁ€ÌÌLkyR­Zµ½¢kBj£F�(rL
 Ž;æ…€IÝ?Çhâü¬ÿÔ©S¥J•Êî¶Û_Ũ¼}ûÖ×סFGGóK3'qqq6ÇÚ0‘L¼ø-
 ÀŽ;è>•Èëu"Ð¥KÄóóÏ?óãɾdeeU¨Pq¢Á{ü…9sæØ«.ß½{—糈À¶mÛèÞojjªÇ_èÔ©~¡C‡œ³ØEàÑ£GeÊ”AËܾ};}B«k¼G–/_Žx0êa°>_µÂ€³gÏZãæ?ÿùO|òüùsŒÔÓ§O_°`ÁáÇ™ËT0yòdË[>~üÑòB°;–QÑû%J`½|ù2rÆ)èë AƒD^³5*óæÍ£–|ãÆ
~i†½•îöéÓG¤À‚)ø{?;@¦ºuëÖ„	�	ÑPÑDr—ˆ W¢1¿oݺõwß}‡±	óÓÍ›7KÍ.ùðæÍºÖè>aýúõ”¬h›7D€$ ’�;wºEj%“á'C)@ö ‡’C†±>„x•Œ9ñÔ¯_×hÿþýݺu+]º4Œ¥xñâíÚµÛ´i“HäÍ›D…æJ¯~XT«VÍ㳡¿„¸$%%a¥›ÿÇ�Ç'üñ‡w
 ÀœÔe¥"’öÆ�½p# îÞ½ëç燀‡*R !@eÚï0ž>}Z¤À‚)S§N-ç€Ö* >‘aâã㥮_	„ß–
5jÔpYÇž7ø�žžŽ^‰�/^ìñ¶lÙB1C´ò|À�¦ÏíÛ·wÑ<´H ÅÉo]JhÉ:®µóäÚÛ G�6ÇÂi´yô£¢E‹úûûÒ°es¼Î—j¾Ð2u"""‚n÷¹P¬X1÷GØ	Yøôé½_csÜa£aÔ›£Ò÷ßos¼H²�6xð`d	‘ò
	f1´ŽÈ_VG˜¤)Ú	¤eË–RCvÁZ_g�¬…)ÌØ±c³»9üW¹páÂ…¨¨¨iÓ¦ýöÛoèõIçÎ�ÛºukÊ]¨af²²K2í©µlÙ2�¿°}ûvªä”””<ŸEê5ÀP0½zõºråÊÛ·oÑß‘µBCC‘·éÕt.æYDáa�r\LÏÛ yóæˆQ¡4èÚµkŸ?Æõ”
@@ -12708,7 +12708,7 @@ Y
 ¢m‡:Ä/Ü.$ÈQ9§ýÈÈHæ)Ä lÙ²¶ìñññùøñ#ó"°ÿþÊ•+ST…@ºÆ?è“Î�;‹Ì†øн{÷êÓ"$$„ª¬ •+WŽbëÙ³§H™_�@FŒ�¦Há¡ýWªT©J•*Ö'ø7F~¨RP¼xñ.=†þ)¤`Ú´iÔ‰`S¨Ut+
 iáöíÛü8¥ 11ÑŠÍßß?((È2–Þ½{ó‡s€k¿¢P1y)SP0•®_¿>…‡±µB…
 ÁÁÁµjÕòóó»ÿ>³p)8þ¼%~p~6&Ôná�.d–o€#GŽäœö{ôèÁ<…¬ Ù[YÔ#^"æ0Ä#´ÏØØØÇ�cÊŸ••uïÞ½~ýúQ¨S§NeÆi—€‹/îÏž„„ªpþJ)@	†¢*]º´
-"

EvBؽ{÷»wï0éǘøã¢ShÛ¶-ÿŽ¥ˆ ¿PH,ðØÞ¿Ï<…]HŽ;†q¡véÒ]	µŠnuðàAô2|ˆ‘?¹€/^PHø/*
+"
EvBؽ{÷»wï0éǘøã¢ShÛ¶-ÿŽ¥ˆ ¿PH,ðØÞ¿Ï<…]HŽ;†q¡véÒ]	µŠnuðàAô2|ˆ‘?¹€/^PHø/*
 {öìÙØ±c©ïó¯š9@lˆË�´ÊŠ…‹ª@oýôé?·ˆò<Ié�¨M"6¨KÓ¦MmŽÁõë×™¡ŠÀ¦M›¾-@.µî¨øúúb0ý¯ÿIxx8¿™‰Ü@?~ü›7o\>Gó Á†ò[¬éE€³g϶9§§3‹Œ¡îI¤ñ‡GDDx¡TWv÷ú†js<JKKãœÂ.$<(ä@äVvðW¤]»v¨:\—Ç|gÏž%!\»v-3N€æÑ%NIIq94eÊ*V¬óêR,\©qãÆy›`$¥xéÒ%‘À\€¤¤$¤¶lÙâr3AzÌOÚ"°téRk¬G·ú/7æÍ›Ç<…¬@ù,¨W¯3¶ì0ý®>ݬ@å0‹2*4‘5j¿4˜5k	ÉæÍ›ñcïÞ½½Sr`çÎ�Ô€‘l™E‰À…ò²³¨àÀ“'Oè.ú’%KÜ�Ò
·V­Zå=D|ÀÐܨQ£ìfO¨�J•*á(L€yqxõêU•*UÛ²eË&L˜àm°oß>2ÕíÛ·‹D厈`Ü·9Q¹w(dº90bÄÎ)ìB0sæLK�#²pþüy+à:Hé‚iX¼x1M=zÄ,ʨ¬ZµŠnXݺu‹_šˆ o"éaÌ¢CCC¿9 ü’““™E‰ÀÁƒmŽJ>|`•|ˆ��§¼êqùõ)tæK¾¼ÿžžLÍž=Ûã/@§q´iÓ¦œg@â€I�Wðï‘#Gz›�í7nÜØ\߀ãÇ�ÛëÎ�;çrèÓ§O���8:}útÎ)ìB`=“kÖ¬a–æY dEDDDHé‚i Ûk¥J•â?­0'©IV{õê%R ‰×»víúÍ	=¶x÷î³( �yIäu¿ìàÀ¯¿þJÏU=öš¤¤$J‰‰‰Œ0àŋŊC$K—.õø‹-ÂÑ2eÊpV+‰ÀÆ�.Œf@óVoÔ•¿¿¿Í±RE$$�ˆFyZ¨€é‰Ë¢”%K–ÐÝ6þã60`€5žîÙ³‡YšGd­Ô
 ¸Y³f?ýôS�=PÆ
KHHà¿H€ÌÌÌ5j þ°°0~iæ`ûöí4á:uê”H�&³•oHð·#ùÓ2¶ì¦‡	ˆ‰‰A<uêÔA÷¹sçÎùóçSRR0ŠñÃs†/ýû÷Gœõë×÷xôÁƒT±ëÖ­Ëó)ì¢wf̘áñæÌ™C‹X8•,+¨=)`Û¶mô	R«W	À•+W(íÃô쎵@[·n����‹‹;räˆÔþRo Ò£j$yz91++kþüù(Ÿ‹dlèÖ­›5ž8ÆÓ¾}ûNš4éôéÓ"3Y }ÙQ©R%‘·,�
 À²eËèÑÉ“'ù¥\úæÍ›#Î-ZH
…P�¦¶;X¿~ý”)S‚ƒƒqÝѦN�*R¾ˆDGGÓxäããC¯ HüX³fM¤¬ŒŒ~œv	 »=­[·öxôÝ»w´cMžOaZظqãìBÅ@РAÊWœ'€‚€Y*­ 2dˆ•ó½M6oÞLó‘'Ož Å¢9gþŠ+º¯¸Ë‚û@õQ”ͱX=""¢V­Zô mùòå"«ˆP’÷½ÄôìÙ3æ)d€–׿Ä3gÎ0c6'7nÜ(Uªé–H�†àرcÐDºQàÔ©S.í³cÇŽ˜bKÝl€Õ«W#SaÄ÷óó«P¡,ºdÉ’Ö†eøKUíЪU+›c
�G‘´)ßΜ93ϧ°	À‚¨öV­Zå|­a)áááVcxúôižO!(�F(çgRÞ&$š(þdä¥zõê�3fÆŒˆ“Þ¸‡$$$0ã”Ý	ÉÓÚüÁæXõ½k×.©¾ÏDÉÏy<mذ!óµzYHNNÆÐ§BämÚ´éÔ©z�‹
òW‰€Ç�S…×­[×ýõÀ¼aHèÖPõêÕ7/-€pùòå¦5j„I
@@ -12820,7 +12820,7 @@ v
 .œœœœç¤Ì¿m¤lQ(ØBõ‘ÙsçÎe&e6oÞLÍõþýûœtD.jݺµÃyPÝãÓ-Zài‡8YXæ`þüùçqEþ­ÅL˜4i’#×òx¢!—º¦ M›6ŸÚP
Ès"Ÿìp®öæôÚÇ#FàêÕ«ÇÉŀ˗/—.]Z|ìOðI¥J•ÈZÙÓÊFÀn¢¤K—.å9)C€tì÷ëa�"ûŽ][¨z2›zÅ4PŒ(V¬óp½Ð$™2e²“‘‘Ao…X¸p!'Ë0¼{÷ŽŽƒ�3†Ÿ¶lÙÒ7õêÕ‹6°¡ÏÒ'œ�K"°mÛ6‡sòÜã©ÿ5kÖPØål€;vмJNo+ eµúõësr±äÀŽþ;v”zU±«Ä€Îû@Ç�—J“Ä€/\I�^`GÎú¯! m¤��Y¸*Pð…¢Ã#:½‚a5Pä" œ¥¤¤�gèÞ½{žÓ'‰ÀÝ»wi^zݺun�ˆ
Ðnß¾ÍÉÂ2	YYYt8Ï­ó·XÆ^lyå€×¯_ÓݤÙ7&¡`iomÆ
9mL®\¹BK<wúÙo3Sqr±„\G}¼[·n&’%
Ÿ?®]»6ÕµøÀ‡#FŒhÞ¼yTTTbb"ÊÖfff¦¦¦ÂAÙ9Ø÷À›€—/_ÒiãÆ�ü4]U CÑ{÷î¹í¤}õêÕäÉ“É?té҅߀ù°jÕª3f$%%¹^¥�zæÌêhè¼üs+R¯<x°Ã¹Óïĉ”¾{ll,m²å¿Ì’×/‹'''Óq{€ßêÕ«ùé[ Å‹SÎ�;מúðáØ1chÒ£oNú"€º®[·.ì)W®:‘«Ÿóæ
-dà+ð�Öòýš˜ªU«Viii/ssöOèFhhË–-"	ºŠÇ·c(âº'í«tjÿ×_åäb¨s‘àŽJ�€ï¿ÿž*ºråÊmÚ´ÁwGljÑ¢…}¸Aƒ"o4ã��á<+V¬Ñ©S§êÕ«¥øúúŠt4)xñâaI‘"E5j„ÞL¦V­ZU¤H¥ $$£¼Q£Fá'Â
 mƒ'\´h‘ÔÜZA0j¯^½¨¡gý?§*T¨@
ƒ/f“:péÒ%*=T:zýرc§N�
 '€Ê"·0mÚ4~àGúªfϞͱSP¿´NÏÄj…,xâõ¼yó˜vŠ|m« ¡Ã2Ì®»ví
-

%Ÿï¦*UªÌ™3GjŸ-.^¼ˆ>eý°U´hQŒX¥.-‘Ëy'pÏž=]
†©è¶_½—IÝûd¶k×®(m~ʶ
+
%Ÿï¦*UªÌ™3GjŸ-.^¼ˆ>eý°U´hQŒX¥.-‘Ëy'pÏž=]
†©è¶_½—IÝûd¶k×®(m~ʶ
 XN@<rU¡0~ᜫ"	^”œœÜ­[7Z±rU�:u¶oß.Òø@¯-þª¼N�:E´ÏßêãQ|8rä†Qt—‚›V@\gÏžåÛ)Ÿ?¾ï"peøÈ`Ù�«"›a[JJÊÑ£GQMÑÑÑëÖ­Û½{÷�;wD^ZaKd ÜQZZÚ±cÇ6nܸråJüD3FœÜ"–ÓQ?zô(&&fÍš5`?´AS¥àôéÓ(ÉåË—£?~\ðþg[æ5õðáCô,æ¥
 $A ½~ýúðáëW¯Þ°aC\\œT÷—½
 ©¡Q·‚@ÜOJJ’º]Ç’€ôôôû¹ó.8A€%d’¡í
@@ -13010,7 +13010,7 @@ T
 E�7,XiêqΟ?�@äPO_è 22�P_ù
 ?)[¶,¼"­Çùõ×_ˆŒéÓ`\øÕ³Ï>kL
 zƒÀè¥W«V-ø­q´ûU³fM¤1–�o¾ù¿zì±ÇŒã™è þ£‡ÀaÔ_A|$…hIIIzHÏž=Ò¨Q£ýû÷;œ�»:M
-à'ˆ¿|ùrùŠ7Y€MåË—Ze�×��6mÚ #0vìXë¡·‚#ýCD¿�

EÕÂÁ•’tï®ÈŽø3Ï<Ó¸qc£»*m<ßzëÈ�!Hs̘1òÂ/}
c·%ƒÞ
2†®�„@�ñ+t²ŒIIïfÔ¨QòÇ´B…
+à'ˆ¿|ùrùŠ7Y€MåË—Ze�×��6mÚ #0vìXë¡·‚#ýCD¿�
EÕÂÁ•’tï®ÈŽø3Ï<Ó¸qc£»*m<ßzëÈ�!Hs̘1òÂ/}
c·%ƒÞ
2†®�„@�ñ+t²ŒIIïfÔ¨QòÇ´B…
 ȃ~Lº!°JÔp=}ôÑð+µ1©ùóç£; {)Ž`½zõbtl¤�îÒ?pà€„À{Ÿ~úi¤öÈ#�ìØ±Ãê®H'!!!ÞÂСCE\‘7§sW!„�¼ÎsÏ=‡–Îx+<&&–3D“luWhLµjÕàlF“TÚ�l‘4ù:oÞ<|íÓ§�éçÒÄË”4Á"ϦY©ûöíCûþàƒÊ×U«V!N§N�LIõèÑá�CùÚ¢E|ݾ}»1ÔM?$S|ÿ%0%õÊ+¯ ü‹/¾�¯�;wÆWÓd(.¤´\¹r"ÞD!@ELI‰ÝMš4I¾ŠÒÏ�;×)À¬P¼¦›Î&Z¶li@‹ˆˆxþùçñ+¾+wuŠÜò^°`�|E	à«uÚ­ŒLZ§J~ôÑG2`>}útO܉h(
 =“þøã�Ý»+ºØ5t|N�:uÏ=÷˜ÜÕ)H
iBΌ+
 
_ÛµkgŠ&ƒœºaÊàðæÍ›�qÒÒÒp kÔ¨!Ý
”â<üðæ¤^{í5„GEE)m VŒî�iæ	¡‘…–ðcÇŽ¡ÎÀTMI�?IM˜0A>|8ŒþyèÐ!œ&wu
@@ -13055,14 +13055,14 @@ tWEw
 tWEwµ�¿ã®W¯^]¹reXXX÷î݇¾yóæ›·ëbçÎ�~øaJJŠW¶¾ÿþÉ“'¿ôÒK}ûöÅaß¾}öçgè'Ÿ|2pàÀ^½z
:táÂ…žœGÿ(Ë–-9rd¶çé�eÛ¶m:ãÇ´3Á·ß~þ‚Fdd¤=ÛŕڴiNËAHNN¶''J»ò£†
†š9`À€èèhO$䆃¦ç&ÎPœ§ðO´k9K‡îªè®tW�îªè®¶“cwÅÑìܹ³���ÃáÀU}}}œ••uÃ3™-3fÌ@ÕB o6o'l—.]üüüðu̘1¶åáôéÓ8þþþ²õ€€ùP³f̓Ú–
8—ƒ‚‚�
‹�ÛEãëp”ÃÎlôì*W®,[Ä•­L™2öl:==ÝT'M@_íÉ	N4Ø"š­bÅŠI--UªÔÆ�íÉ€ðþûï£yÕ/V jÕª{÷îÍARtWEwÕ »
 tWEwµ�»ëÛo¿�ë?NÉ”””ó®]»î»ï>ûí§Ô
 �½ðŠ»Ž?[òÉ'×­[‡k]FF®ÁÁÁŒ‹‹³'»wïÆYóØc�­X±y¸rå
-”6‹ÁA¹zõª=Ù0‚“�N=ûݵG�Øè´iÓÿ•ãÇ�Û™�eË–ÁÓpåÄ™’ššŠƒ‚2Éöò~£À)¹téÒÅÎ

Eù@cìÉI§N�°¹çž{.---33'Hdd$š0h¼ûæé‹žu…
-p‚ qAëùúë¯#èY ?×›ÝUÑ]5è®ÝUÑ]m'gîzñâÅ¢E‹*TÈXOœ8ˆÅ~CóèlÕ–ˆ‹í{ï½çwEsœ��`mž:u*2{´-V1ÃItç�w¢p>l[6t"""°éwß}×~w}üñDZQÛ,Ñ)0¢Ò¥Kãt°yt1[öìÙ@�ƞ͡µÂ5aÓ5¡U«V8Fß}÷�=ÙÀþ¢6šŽÅˆ#�ô=¯75º«¢»jÐ]º«¢»ÚNÎÜÇÚ©›µk×ÎÎ&éçŸ

�6mÔq„	^qW§lÙ²™ÁUÔ»Ù�‘ð;vؼÝíÛ·ûûûãª(å`³»6hÐWH\mìܨ	é¼6Ì‹yp
+”6‹ÁA¹zõª=Ù0‚“�N=ûݵG�Øè´iÓÿ•ãÇ�Û™�eË–ÁÓpåÄ™’ššŠƒ‚2Éöò~£À)¹téÒÅÎ
Eù@cìÉI§N�°¹çž{.---33'Hdd$š0h¼ûæé‹žu…
+p‚ qAëùúë¯#èY ?×›ÝUÑ]5è®ÝUÑ]m'gîzñâÅ¢E‹*TÈXOœ8ˆÅ~CóèlÕ–ˆ‹í{ï½çwEsœ��`mž:u*2{´-V1ÃItç�w¢p>l[6t"""°éwß}×~w}üñDZQÛ,Ñ)0¢Ò¥Kãt°yt1[öìÙ@�ƞ͡µÂ5aÓ5¡U«V8Fß}÷�=ÙÀþ¢6šŽÅˆ#�ô=¯75º«¢»jÐ]º«¢»ÚNÎÜÇÚ©›µk×ÎÎ&éçŸ
�6mÔq„	^qW§lÙ²™ÁUÔ»Ù�‘ð;vؼÝíÛ·ûûûãª(å`³»6hÐWH\mìܨ	é¼6Ì‹yp
 Ž26wî\{6wéÒ%(ú³¦Î]·nÝ��5kÖØ�‡óçÏ£6"¦pèÂÑŽ\ï4'º«¢»jÐ]º«¢»ÚNÎÜUÆÓ&Mšd
 �ŒŒDøÄ‰oPî²G¯*’¥\â®qqqÈLÇŽ½˜‡.ál²ù¹\.jÖ¬Y®\947h+íwתU«â”÷ʼk�fÍšùúúzå‘=7œ:u
 ML¥J•l»3‚£€6ÔÇÇ'11QLOOÇ5§páÂÙºÁ
!55•M°õ_h¶P ×ûÐÝUÑ]5è®ÝUÑ]m'gîÚ§O4.4…ã‚€ð~ýúÝ Ü]¹Ê]{÷î�ÌÌœ9Ó[8qâDëÖ­‘‡7ß|ÓæM0Ú¶jÕ*|NHH°Ù]¯\¹R¬X±Ê•+oÚ´iþüùsçÎ]¿~½=ޤƒËÄ§ÕÕ«Wq¹C>€fbçÎ�vfÃʰaÃp8Þÿ};7ºnݺ€€Htt4JfûöíÐÿØ“´•¨�h¡Lá8:*T@�\ïDhº«¢»jÐ]º«¢»ÚNÎÜ×|ñ#2— ÛÓ០÷¸«Ü1¯T©’m�¢8³:wîܱcG\mCBB¦OŸnóƒZñññ¸:
<X¾Úï®—.]’ÇÉ�…‡‡CkíÉÃéÓ§!K÷ÝwŸ<ÛŽÊ€kš<hß¿´ÔödÃÄ…
 kàƒÍ›F5(_¾<JŠ‚B¨U«–mOŠ)M�ªW¯ŽíâÄ4†ÇÄÄHõ¸Þµ8變îªAw變îj;9sW™×ºvíZSøêÕ«Þ¾}û”»ë —¸+Îß*UªøùùYçŸfË–-~¸>øøøÔ¬YsĈ¸æÛ–l«L™2uêÔÁ5JBìw׬¬¬ØØXT†¬X±—¸áÇCØ��=zØ“‡~ø›Ãå¥1wî\è4.D8Ñj×®�ð©S§Ú“
2Ÿ',,ÌþM£“‹uRÖL+UªTTT”�“:f̘�­CÛ¢££SRR p(¦ÁqWtWEw5@wUt×\IÎÜUµX¹r¥)<>>á]»v½A¹»rƒ»þüóϸVûúúz7¸’|÷Ýw]ºtA{]½zu{ô*òÔSOïŒÛï®NÙ¿?.†8.ö,È��uD·mÛfß»w/òjÿ\\´�ôkl^(Li�­¡Á‚·CœpAމ‰AçNº¶
A£À#""ЊéCñ•+W^¿~}ÕªUýýýѹ¸®Ô變îªAw變îj;9s×�âúo­Ò¸h ¼ÿþ7(w×�×Ýçoƒ
 ‹ÖGؼÚk™Ú1vìX6‡û>räÈóp…AÐÓÁg¯¼JIG_ôÕ†mÁQ±-\ Lá2ÁWïë•¥¿OTT²„îŒÍÛEQ@«U«fœ¨€š€¦ùA®ìÌü'..nΜ97nDÓ€V
.DúzçÕÐ]ÝUƒî*Ð]ÝÕvr殲�õÕQo½õ–ÓõlÀ»îŠ«Îq___›„qšiÛ–;xøá‡ÚÅü
è/\“	À6dãF�BN&L˜`öàihÜ­ÿ
 		A6lžq
-7

EÏÂ4lØß>øÀž””„ü´lÙÒæüY»v-òÖ½{÷ëý!ÝUÑ]5è®ÝUÑ]m'gîº{÷n4=­Zµ2…7mÚͦ”»ëÀ‹îŠK\£F�pVÚöžMùè£�ä•F6lkäÈ‘OZ@± åË—ÇgïÎ�!h\ÒíÙ®NÐuÓÅ—µB…
+7
EÏÂ4lØß>øÀž””„ü´lÙÒæüY»v-òÖ½{÷ëý!ÝUÑ]5è®ÝUÑ]m'gîº{÷n4=­Zµ2…7mÚͦ”»ëÀ‹îŠK\£F�pVÚöžMùè£�ä•F6lkäÈ‘OZ@± åË—ÇgïÎ�!h\ÒíÙ®NÐuÓÅ—µB…
 ÛöÔ˜ £ß87ퟫ ïçEÛm
 ?zô(. N×­²útÈ[||üõþ–îªè®tW�îªè®¶“3wÅÕ×.??¿]»vé�Û¶mCÍ		ñʲðÞr׌Œ4d¾¾¾ÞzGò`
Ä…çÊdÖ¬YögI°¾ëÅ‹­†¶sçN\y‚‚‚l{rmòäÉØñ¾}ûïGÏœ9Óþ'QÒƒXºt©�Ûd—»uëf
 G/á/¾ø¢ýYRZ™ [yFÉä`Î-ÝUÑ]5è®ÝUÑ]m'gå°ä¥äQQQ›7ož1cF©R¥Ðضl£	o¹ë#�<‚íV¯^=Üî/È7Š>}ú4mÚ422rõêÕ;vìHJJÂá@れÝ{~œMÿö»ë”)SpÑ;v,ê':S«V­5j®„ÈtŶlà‹K+N‡.]º pDÆŒˆ Í«¼&&&"¡¡¡™™™vnW@ë_¡Bd gÏž¸Jœ:u*%%EŠ]	÷mÁ
ûŽú°O#66¶]»vÈ®]9{]2ÝUÑ]5è®ÝUÑ]m'Çî
@@ -13125,7 +13125,7 @@ tW
 Ю"F»ÚÕЮB»´+€ˆÑ®†v5´«d°]Ïž=ûŸ€W›6m¢]ĉv5´«¡]%ƒíZ[[[YYùo€W×_=í
  B´«¡]
í*lײ²²o¾ùæÿ^u~Æ@±Ð®†v5´«d³]ÿö·¿]r+”ÚÕЮ†vÚ€ˆÑ®†v5´«Ð®DŒv5´«¡]…v b´«¡]
í*´+£]
íjhW¡]ˆíjhWC»
 í
-@ÄhWC»ÚUhW"F»ÚÕЮB»1ÚÕЮ†vÚ€ˆÑ®†v5´«Ð®DŒv5´«¡]…v b´«¡]
í*´+£]
íjhW¡]Ql


ÿ¸
ÚUh×¢]…vE±éY?bĈ\ÈäÉ“¯¼òÊÎ/¤´«Ð®	´«Ð®èNzÖ?ÿüóÅDJoˆ�'¢Ð®íÚ†vÚ݉v€.¢]…vM ]…vEw¢] ‹hW¡]hW¡]Ñ�hWè"ÚUh×ÚUhWt'ÚºˆvÚ5�vÚ݉v€.¢]…vM ]…v…W:-õÂ8ôŸt¶ë�nûë-·ÜRì@ÆÐ®B»&ЮB»Â·Ûn»­ì"æÏŸ_ìÑ@ÆÐ®B»&ЮB»Â7½t\¬]¿øâ‹b�2†vÚ5�vÚ¾566VUUu׺ººsçÎ{t�1´«Ð®	´«Ð®è|l@/¿Ådí*´kí*´+ºAÇÇr¹@hW¡]hW¡]Ñ
NŸ>­“Š ëhW¡]hW¡]Ñ=Ú=6À;@ahW¡]hW¡]Ñ=Ú=6ÀPÚUh×ÚUhWt�3gÎTWW[¸0àüùóÅdí*´kí*´k”-Z´ÿþb�¢«Úà�ÝjÆŒ'Nœ(ö(ºí*´kí*´k”ÒÌÌøµ=6ÀºU�=:TìQtÚUh×ÚUh×(•F»Ú/)¨««ÓË`±Ç ”Ñ®B»:´«¡]…v
®4ÚUÜc<0 »Ñ®B»:´«¡]…v
®dÚuýúõûöí+ö(”8ÚUhW‡v5´«Ð®Á•L»êTçWèn´«Ð®íjhW¡]ƒ+™v€hW¡]ÚÕЮB»G»@z´«Ð®íjhW¡]ƒ£] =ÚUhW‡v5´«Ð®ÁÑ®�í*´«C»ÚUh×àhWH�vÚÕ¡]
í*´kp´+¤G»
+@ÄhWC»ÚUhW"F»ÚÕЮB»1ÚÕЮ†vÚ€ˆÑ®†v5´«Ð®DŒv5´«¡]…v b´«¡]
í*´+£]
íjhW¡]Ql
ÿ¸
ÚUh×¢]…vE±éY?bĈ\ÈäÉ“¯¼òÊÎ/¤´«Ð®	´«Ð®èNzÖ?ÿüóÅDJoˆ�'¢Ð®íÚ†vÚ݉v€.¢]…vM ]…vEw¢] ‹hW¡]hW¡]Ñ�hWè"ÚUh×ÚUhWt'ÚºˆvÚ5�vÚ݉v€.¢]…vM ]…v…W:-õÂ8ôŸt¶ë�nûë-·ÜRì@ÆÐ®B»&ЮB»Â·Ûn»­ì"æÏŸ_ìÑ@ÆÐ®B»&ЮB»Â7½t\¬]¿øâ‹b�2†vÚ5�vÚ¾566VUUu׺ººsçÎ{t�1´«Ð®	´«Ð®è|l@/¿Ådí*´kí*´+ºAÇÇr¹@hW¡]hW¡]Ñ
NŸ>­“Š ëhW¡]hW¡]Ñ=Ú=6À;@ahW¡]hW¡]Ñ=Ú=6ÀPÚUh×ÚUhWt�3gÎTWW[¸0àüùóÅdí*´kí*´k”-Z´ÿþb�¢«Úà�ÝjÆŒ'Nœ(ö(ºí*´kí*´k”ÒÌÌøµ=6ÀºU�=:TìQtÚUh×ÚUh×(•F»Ú/)¨««ÓË`±Ç ”Ñ®B»:´«¡]…v
®4ÚUÜc<0 »Ñ®B»:´«¡]…v
®dÚuýúõûöí+ö(”8ÚUhW‡v5´«Ð®Á•L»êTçWèn´«Ð®íjhW¡]ƒ+™v€hW¡]ÚÕЮB»G»@z´«Ð®íjhW¡]ƒ£] =ÚUhW‡v5´«Ð®ÁÑ®�í*´«C»ÚUh×àhWH�vÚÕ¡]
í*´kp´+¤G»
 íêЮ†vÚ58ÚÒ£]…vuhWC»
 í\WÚµµµõ¯ýë¶mÛ>üðÓ'OúX¾Ó\ÙºISSÓž={6oÞ¼k×®³gÏeze8xðà|°}ûv=[ÏŸ?_”a´Ñ|ÿý÷ß}÷]È÷ÝÕ9yúôéÿ×A±æ†î„cÇŽéÑýgŸ}ÖÜÜf»º¡Ž;¡�ž,a†at'è…]/[·nÕ)Q¬÷aÖÏú“O>Ù²eËáÇ»òË£iW¡]ÚÕЮB»Wp»þýï7nœNÅ2§ªªJ¯x�Ï·n¢·ÂgŸ}V¯l×\sMø­ÿôÓO³fͪ­­-û'=ït<!oÐzn>øàƒzKmCyyùˆ#4eƒ�¡£•+WêHô¸\ò𿑆k.—+ë@ï¡ÁÆ`´¢7mÚ¤·x=mÃØ¸qc˜­ßÿýwB›Aƒ…†ÒÌ9rdò :Tc>ØÄÝæÏŸ¯w1€Fo�ÇR'hW¡]ÚÕЮB»WX»êÒý¯ûðÖ[o]¿~ýš5k´”ô¯¿úÕ¯ºc��8uêÔøñãí~¾]õ4Ô	¦›®¯¯_¾|ù†
ôúÓ»woÏ“O>fzå׳X·¨í%K–èUkݺu“&MÒQéØ4­Ã£�#GŽÔÔÔTTTnW½¼è®8pàÔõÛßþ6ØŒN=ºfÏž­eÛ¶mzûá‡Âlýõ×_Ÿz!7Þx£î=[Ããøñã:	õ†õè£�¾ÿþûºžxâ	}�«wº‚Ó1_ú"ÂJþ—¿ü¥¾žÒ“ô‘G©¬¬ÔCóÍ7ß°BÚUhW‡v5´«Ð®ÁÖ®úÓŸtÞu×]mߘÖC6|øp½YïÛ·Ï÷/J·uÕUWi ½òÊ+:µŠòu×—^ziëÖ­É%ß}÷�Þ«««›ššÂŒáË/¿lhhH.ÑûõôéÓõ=ýôÓaÆ�ÔÒÒ¢WN
ÈÑ£Gn×Ý»wëg=oÞ¼`[¼ M›6é¹píµ×ëµÃÅ<öØcºÖ®]fsÏ?ÿ¼nnáÂ…É…ÚÕºpæÌ™aưgÏ;z#k[¸qãÆòòr�Ÿz¦ä»BÚUhW‡v5´«Ð®ÁÖ®õõõºÛ]môj }ôQ£»„‰'öìÙóý÷ß?wî\Q¾îz1×]w�îŠâÞàÞyçý÷Þ~ÓÏ>û¬†�νbnW½Ÿêg½xñâ`[ìHg£–’¾¤*ìËzÝçôéÓzuíׯŸÞDÂlñ¡‡Òñe˖䯿þZÞtÓMaư`ÁÝÜêÕ«Û-¿ùæ›õNzäÈ‘|WH»
 íêЮ†vÚ5¸ÚU÷jMM�Fc»G:ÿñ�èåEg‚×vF·øý÷ß‹ûBŸÐxÚõúë¯×ñØØŠå•W^)ÊW ÷îÝ[YY©áÖÖÖáÇn×5kÖègýÖ[oÛbGzÖWR·Ýv[ÇpAzsÔ�óÂ/Ûâ²eËt‹Ï<óLráÛo¿rfÞ}÷ݺ¹]»vµ[þꫯêòU«Vå»BÚUhW‡v5´«Ð®ÁЮǎÓ½§û¿ã‡zõê¥S%Ø÷ÊÛèIO»ž>}Zç¹î
@@ -13427,7 +13427,7 @@ x
 ™Gõ/žðÏZUüôsk´4Ô¬§î’ÆúìâÇŽnÓw°Ø�/cOŒòu3Ög‚úÐ9ÚŒµÄÁá½3¿ôðu·ÐGK¬†®ag�€¥¿\~�z¹—½A«`©/Ï8´rš—‹ƒ¶&zNtÚY¸ù­:CSÏËý�^¸nV°�›ƒ–ºš|Îö
 y]Ýô£¹´oP/?7'¢ìihêÙwñž¿+£²Eí.ÒÌmˆ;ýë˜@{¼“�®8ž›N¤ò˜Õ{—N²4Ñkq
 t;÷¼•W/þ3£ìñHW#’}àµ,J«dÒ7Œp"鯸!÷–Á¬\<ÎËÂwÂÓRFYæý%ì�Ð^�æKú~Šø��®
-îíkef€ß]lœºM_ý8�"”»�š(—v­ðñ”&OÇÀµ›WïÉ벨Mmä€ÿŠ6k†“�þ`FRw¹ª”!

-û»!^du
§ �µ7oÛ¶mýê…�ÌÄqPðŠÓT¬&Gü°OŽ8»}ÛÖÐéƒÅOëncÖo¯¸íׇß`OaqDwdu}-µö.ó–¯Û"^¶5|ê î†âPÍyl\Ž´ë8ÎÞsx¥©¾¡³÷ )S§N�ñÝÙøB¼æ�_Ÿ¿vR�8¤°é1æ‡
݀[
+îíkef€ß]lœºM_ý8�"”»�š(—v­ðñ”&OÇÀµ›WïÉ벨Mmä€ÿŠ6k†“�þ`FRw¹ª”!
-û»!^du
§ �µ7oÛ¶mýê…�ÌÄqPðŠÓT¬&Gü°OŽ8»}ÛÖÐéƒÅOëncÖo¯¸íׇß`OaqDwdu}-µö.ó–¯Û"^¶5|ê î†âPÍyl\Ž´ë8ÎÞsx¥©¾¡³÷ )S§N�ñÝÙøB¼æ�_Ÿ¿vR�8¤°é1æ‡
݀[
 _»d@—$’ѨEGª›dõgX0ì¬Ù%`ÅÒ‰æí¬ÇÎ^¾Yœ¬­k¾ŸæŠlºþQ'רRÀª:½~º8š×Ñ·:~NØæ-?‡¯ž5%8¨ÇÈ[ÙÒ1Do¢zt4"Y�žµôgô@6}?u„¥Éĺÿñûy=�eiº‰s©½{ÿÅkÖ‹7°)|õ¤�>f6žCû{µ
 †E/#÷º[’ŒlÆÎY†ïnáäaZ$S›A§´}²[ܪŒ]Ûö%æTË­#ʺû‡�µ	ɰãði‹±ío^2ctm’�¹ÏÞ¨LézX0l§å>`ÕÂÑVN–¬þ=‡kFxè‘ÔŒ:
>üǾ>vfný'¬
 Û(ÞÌ�‹§9£�¨f¿Y¿Q¹òe
¡%w·V×6ð:mÓVñÙòcèl7u²õÚ£ID-%·öæé#Û6.÷0ÔW×°œ³-xb»Ž](©c¾¸{é—ŸÃÆ¸;�HíLZ‚/Ú¾kÏã2üíF”rn““©>ÉÄ~ÊÂUXaÛ8wl?3M’…ÓØier‰ùÁ°¹ÉˆåwÿüÙÞÌÐÖ%h"Z:§¼žÙf�ʹñëÜöºdñI=ýûMhÜ´dVˆƒ…EÀàavzŠÁ0£f/ìÙâŠëe'~2�¾þ"�£²²a×\þ¿ƒâ­�ëã"~ñ¶`3vî:}½š…~9±J†{[8tŸþÝÊŸ±LÛ¸v‰¯ƒ…IÏÎA†Ü+’�Wý×…&Zd
²ÙÀq³Ö„oÚ¶yÝì©!}|úœ}^-âÑï^8¾mã*ÿöÆ$’Ù´åáø)Øqäô;ì=úïú®A碮9›šv3	ÍÙÐ-×ðW)ñ+Ûƒck­Ûé�Ì�ç„®ÅÎéOÓ‡ö4&«[¹MŠËªÁ·#0¯n�©¯©Õ¡kïëˆ2³nå÷£úxÛ
XYDÿ²ã׸ߤ2F¸
…¡C»ª“ÛÍßÏ–,CøŒóëCô4u}¦n*ªkb]ÞDB~eFÜ�š&®Û"Óå7‚·öŸr¬^¡ž¡¤ßð4Õ2vì}ôá[^3þ4±ëKÏl˜D&‘ýgî©dã?Á°–Cg—NNË÷ß(§5rP\�oõʉØ>ÓD[§óÈ•¹”F¼–O$Ôå'�p6!·s¿òFZK„Ã$
²©½ß�˜7,._$ä7å'œ°×#Øø_Ϫ“$RôôÏŸ¬µÈF��|�ÁlâŠWFDB.§‰^G—ÔÁ"Üê´‘.æš¶›®>£_^~S]ÌÎ&Zšæþ‹K?ÒL“nýx=
r{Ÿ©	ïjˆƒ	Ù�•û–ŒÒ×TW†nåÓ¡N¦Z†ö[®§1¤»cÑný2ÏPSÓ2py·�Ý)Z­ejh¯C<;jèXn¸ô¤��·Glzâ‰u–ú:íܧä2ˆ€†Iš6îc®>/â	„xÖ7”¾\4 +‰DÖ3´è3kG9ƒ�Ÿ¡€ý6þ¨½>¹�}PDŽ4“?K™¨®Ñ.8üt�hŒ!pÓ£zYèiÙŒÊ¬‘¥�•7ͦ½ò6ÃüÚc“ú+k3Œ°Ë’üÛkëYvûöÎ;.ŠkmÀ³ô&¢Ò‹€((*Љ]Dl ° ‚½ Ø�-š¨‰%±÷5Æ$jì-±£ô*½÷»,°½Ÿofw�Ýe÷ÆÏû>¿ùCgæ”9gf÷ÙÃ9ïü|?�Á‘Ô_Ä©/ÿsÛL
’ªý”ïÊ9M­ñ12¬bÙÃÑÆzÖ¦3UuLñÝÉå·~CDM¾Õ«›®ª–ùºKoëš™MKvÎÁ„䔕aÜ3/㣣®ãì¿#_æ‰+Ž»3ÖZ_½kÿ�3Z/Kš1gXUá�0Žâp5¿*;5¯‚ÊæJÅW$àæ¿¹dg ¥ÝmØÓ‚¦?¬³þ>n«¥®ké²ï¯È›zÅ}”Ŭ§P›§1ò‚m”Îþ8&uîÖÛ¾ûŸ�áeq˲9Ò{¾&åîÀnúÖ.ÇÿIÁ?$ugÕ�ñÄ?@Ï9\%þU˪͜ëb¦gëz-ª°éO>—^O)© ó?Ÿ…¡À¿H£;,9È`IaÖ׼½¿nÆh=uu³aþq匦¯Ð†¢ðÉ=ô;Y�ø-²X.>ãú?õ~ÉXD+2̯ûcý4Óžþí
šü_ö©Yè�:Ù¿�&z•Ê0¦¢9f‘Ü0¯Nmêôžú:¦ÎçBå2òüØEM½wà>vc$7©c¤¡‹OÔÉOúq«–�4'u¶Úù0Kz6¯b›GoŒ¤xøCq†pS)ìðS«;©kö›¹§NþÏâ<J¢·m5-‹S1Umü½\TŸ:µ{í®ë/Ç)ÌÓ¤düãî`"'ÃBÖÛc+tÔ´œ~R,Ž?ÅJ_]Ïúl\ËpÁ2¥µ-Ã"nÜ/›»jiÙMÜ\#¿dRXŸ6«�±Šjç=Ï‹%)¥2ŒiÍØ}_Þ÷9a§—ó%¬\¯ÅÉŽ9#>³lÙXKÌÀîÇ¿sšr/|{i ‘¶ñ ÿè¢z¹™e?Ïü
@@ -13582,7 +13582,7 @@ n
 sÔuls,ëÀœØv‰9Ò|…ˆ~„ƒëÈeÃ�yá8¿›ÝInÆ,ÌX�ð,<»ŠËgpK¶“œ¢,\ß‹#Gð4‡�$âÄÜôGêÿÏKù�d˜ T’aB)�Q &Õ‡d˜P
 $ÃAÔH†	Bõ!&”É0Aõ’a‚P}H†	¥@2LD}€d˜ T’aB)�Q &Õ‡d˜P
 $ÃAÔH†	Bõ!&”É0Aõ’a‚P}H†	¥@2LD}€d˜ T’aB)�Q &Õ‡d˜P
-$ÃAÔH†	Bõ!&”É0Aõ’a‚P}H†	¥@2LüÓÉÎξxñâI)!!!Êî¡¢�„êC2L(’a⟗Ë}ýúõõë×»uëöµ”eË–1GâããE"‘²{G¨$áú�J�d˜øç²aÃ

�o¿ývéÒ¥ë¤èééijjvéÒ%33SÙ½#T’a‚P}H†	¥@2L¨Ìx‹ÅŠŒ:fp®]»ö‡~°²²jÙ²eS)Æ
311éÙ³grr2
]¢*$áú�J�d˜P˜ñ–žžþôéÓœœœ:snÙ²e„	FFFºººæææÓ¦M³´´9rdÿþý™‡cÆŒÉÈȨ³E±<ŠvT„¸Ê;ƒy—0ËÞ+²gÅey$åG*ÞI’*$²x§ ro<&›X¾”¤²’jõ”©Þáwj–Õ#©Ryµzª¬vÊ5•RIH†	Bõ!&”É0¡:0úºgÏ{{û/^Ôž³¸¸ØÔÔtذaŒ·nÝzÑ¢EcÇŽ]°`�¾¾~—.]ììì5j”��P{%̰?xðàÊr˜¦sssë줤Ü`¸ïé[H’) ü
+$ÃAÔH†	Bõ!&”É0Aõ’a‚P}H†	¥@2LüÓÉÎξxñâI)!!!Êî¡¢�„êC2L(’a⟗Ë}ýúõõë×»uëöµ”eË–1GâããE"‘²{G¨$áú�J�d˜øç²aÃ
�o¿ývéÒ¥ë¤èééijjvéÒ%33SÙ½#T’a‚P}H†	¥@2L¨Ìx‹ÅŠŒ:fp®]»ö‡~°²²jÙ²eS)Æ
311éÙ³grr2
]¢*$áú�J�d˜P˜ñ–žžþôéÓœœœ:snÙ²e„	FFFºººæææÓ¦M³´´9rdÿþý™‡cÆŒÉÈȨ³E±<ŠvT„¸Ê;ƒy—0ËÞ+²gÅey$åG*ÞI’*$²x§ ro<&›X¾”¤²’jõ”©Þáwj–Õ#©Ryµzª¬vÊ5•RIH†	Bõ!&”É0¡:0úºgÏ{{û/^Ôž³¸¸ØÔÔtذaŒ·nÝzÑ¢EcÇŽ]°`�¾¾~—.]ììì5j”��P{%̰?xðàÊr˜¦sssë줤Ü`¸ïé[H’) ü
 öœÁ­€�´@ü¶+W²Éí2"¹È‹ÇÑ5ðŠA–ÈA¬wÙ³NÎ8ç�x>[‰¨)þØ»½ì©?Ž (Âr=Ïy¯ãpv’>»7=qù\}¤/E!|ãÁ£²z BQ*®ì…wd_DäaǦ²šw„&ë®Ì;ûÍCÜó„çSÜß‹5NXµ
 g½˯<Ó¼p¸ï/+¸vÎ#OÈ>Å4êÉægŽ3ÿžñª,¥²�„êC2L(’aB`aRR’‡‡‡‘‘ÑO?ýtÿþýÚóW“á…<ØÖÖVqfÆü‰':vìØ¯_¿ñãÇ8°}ûöGީӇťHñÂ#X,Àùdˆ‹‘‚õ–0^�#>à†àŒ†aì8Œ‰…q5É>Ðk‚õ÷•…Äû84½FÃÄõáø'|²X_M
 ÄAL¶€ñxŒ
ÓIX~¯òQ
@@ -13627,7 +13627,7 @@ m
 ލ`Ö!{5�‹°,EbÓ|Ü¿
 pÂ…qOaÄ<$_±sÃk_Á;{QaêØÑQWaIc˜ˆzÀ±±±6›­¶¶vß¾}"hkjjÚò5:ñ‘Ðb¢`™—B¡,6˜Ù�1Ü`�+ÂçGqp–ŽÁ‚XoÇâÍg0ê=Ä_q!cX²ÃDÒÇ&¢GÄpdddqqñ�t:]›î§Üœ¨_§WàöéÎÿÚ€¹wà“%˜9ãáXƒç9Ž|8&#LuùÎÃ’Å&’>Æ0õ8"†÷ìÙsâĉ¢¢"´Ýñ’V“¸áüæ7—�Õ«î }1œ˜�É/b`f„Âw5³Ë†¤�y��D`¯Bd2’‹ÃÒÅ&’>Æ0õ8¢�ãâ⊋‹­Vk»nB×qf3ŽÁÁƒ-�ÜÜV¦6ºaHÇ–9xðNüì6]Œ˜RÃÚ½xõq<>	›åç÷Ó£áë0ýY<:C‡aø`,ElcXºÃDÒÇ&¢Çh4j4›ÍÖM%|uD›þ-.ÄÂ¥Xö
äjÈOãôq$VyWHÈSßàÀ!ä™àò½§|¿_BNó¾Õ"Ú·+ïØŸ¥µJÄíÆ19êÚtê>Œa"écuÆ0‘ô1†‰ˆˆºc˜HúÃDDD]„1L$}Œa""¢.Â&’>Æ0QaIc˜ˆˆ¨‹0†‰¤�1LDDÔEÃDÒÇ&""ê"Œa"écuÆ0‘ô1†‰ˆˆºc˜HúÃDDD]„1L$}Œa"êk\.—F£©ðÒét���Á>"êµÃDÒÇ&¢¾ÃápèõzQÂIIIÑ^Z­Vlt»Ý­Í´XpêÂÃ[­L­m×"/ÅûÜ8#ƒÚg'¿3’(Æ0‘ô1†‰¨ïÑëã‹añƒo‹Ýnom¦B�›oÆu×áî»ñ—¿\>þõ¯V¦6º¡OÄ?¦á®ßá—¿ÇÀ·qºÖN~g$QŒa"écQ�ÓèÕ�YZ­6Ú›ÍÖÚ>
 pýõøÉOðÅ()¹|èõ­¿´«%§°ú-Ü:G w Õ�¡©÷`Ic˜ˆzµZ­P(,K»’X¥R%''û‹á””ƒÁàw²/†ûõÃîÝ;æZ¶/Àmc�j€­c» ˆ1L$}Œa"êqòòòŽ?.“É_ë{	¥R鯄}´Z­ßÉ�ÃõndÀþÝØu
-ß/Á[!7[O£Ð£±ßaòvT›š&:ô(=†É«‘®F=`)A\¨çù¾±j/RTž§9MPEbþ¬¦íï¯@Dœçÿ®`-Eü·MMÁ¿Ž!ßܱ÷AíÃ&’>Æ0õ8ÙÙÙG�ÿ¬®®6


m™Õ	1üã{jrݺfC¡hË«_ÃV7ÂcÊP¼<+ãÝ™õ¿þ.¶&@]ˆ“+ðóÑÈÐÀá�¨ËÃÓððûH(‡^‰“_böŒœ�³0ûMÌÛŒð|4¡ˆÄÊù˜4ÓgcöLy!+‘gCƒ·„O‡bÎL˜�Y31ë¼>Ÿ‡Cݖ㦫Ã&’>Æ0õ8"ƒãââìv»ÉdJMMU©T‡#à,QÎâÉþJ8##Ãh4ú�ì‹áÿwÜwž}¶Ùˆ�oË1_Ã#Àããq²²·âÅç0cJkQ|ü3Bç‚hÙ¢(¼?§¢Â€œP¼7ÏOE¦¶¸4H’C^m6vÌÂÓ3S‹®Jœù�?ˆ-%¨s!û+,œŠ1kQå‚ÓŽút¼?
+ß/Á[!7[O£Ð£±ßaòvT›š&:ô(=†É«‘®F=`)A\¨çù¾±j/RTž§9MPEbþ¬¦íï¯@Dœçÿ®`-Eü·MMÁ¿Ž!ßܱ÷AíÃ&’>Æ0õ8ÙÙÙG�ÿ¬®®6
m™Õ	1üã{jrݺfC¡hË«_ÃV7ÂcÊP¼<+ãÝ™õ¿þ.¶&@]ˆ“+ðóÑÈÐÀá�¨ËÃÓððûH(‡^‰“_böŒœ�³0ûMÌÛŒð|4¡ˆÄÊù˜4ÓgcöLy!+‘gCƒ·„O‡bÎL˜�Y31ë¼>Ÿ‡Cݖ㦫Ã&’>Æ0õ8"ƒãââìv»ÉdJMMU©T‡#à,QÎâÉþJ8##Ãh4ú�ì‹áÿwÜwž}¶Ùˆ�oË1_Ã#Àããq²²·âÅç0cJkQ|ü3Bç‚hÙ¢(¼?§¢Â€œP¼7ÏOE¦¶¸4H’C^m6vÌÂÓ3S‹®Jœù�?ˆ-%¨s!û+,œŠ1kQå‚ÓŽút¼?
 oÌÁIÿo—:c˜HúÃDÔãøbØår9�Î�;wFFFŠxý°xBMM�¿¶Z­�¿@ׯ¾ù&S³álÓ2i-|2<s¢Þ‰F‘¯ÅX0ï.@ªª¼û¬8ƒ‚:4ê�Š'oÆ't&l�I£ñ�D¸šÞœbn2À̰d?rÊEó£ZƒäCXú¦F�›ÇbÖXlJ�¦Úó¨ª»æaÎ,¬Omóoœ:Š1L$}Œa"êq.İÈ×êêêo¿ýöÔ©Sfsà«`u:�¿°´Z§^3ì‹á…ïáœnx––(ǃñæTÓÀ Føt¼øDÁ�†+pã448Q!Ï`äÄ_VßJû¿¸?½?¿Þs˜büçu¸ñ&LØ�êSxí	üG?üìçM‰ñþŽÀÚ䎽jÆ0‘ô1†‰¨Ç¹ô“á={öœ<yR©T¶å›tbŠÅb12™Ì×ÀYYYuuubc€é]ËæâËÔf12GT°×Átw�–³8»«'bÜÀ	[Æ=…ópyÃãÈRÜñ',;Ž„Ldžò”áŒÂ˜�xjv\ò�JÔp±ã®Ç&’>Æ0õ8"†EǪÕꤤ¤ŒŒ•Je³µc¹2ѽZ­Ví%¸Më³uc78€*¼r?VnÀŠ…˜þ¾®{&æ>�×fà„¡ù®5ˆ\‡§À†4Ô^yÉFfÆØ·pÜpÅCÔõÃDÒÇ&¢Ç·š„ïÓÝúúúîxI__s
&NÄÆ�—�¤¤€;hG{?¢þ×ß1wFNÀÄYð$T#œ|÷B^ÂÂoá©c‘ðf(UPUA~3ŸÄë‹�¨iº·�I‡<N¸õØþ6B†cA(*=»ñܯ<¥E°téoŒ¼ÃDÒÇ&¢'777,,,**ªººÚåruÇK–•á‰'0`@ËCôp«ŒÈ9„%oà–ÁØ•
 •GÅpÚ*Œ„G&bÑɦ�¸�PÆ/áÉg°E†¸$Ȏ⻈-B­{çá±þX¼á2Èd8†µŸ ¸NòaXü2žx
 ÿ”!IŒDlýû¡¦‹gÆ0QOÀ&¢§¢¢Bôp]]]nÊÜý]¨‰Àâ1¸áÜp3„­Àò¥Ø–	—/†+±lf¾‹oqyÃßÁ‘æË+#°Î·+‰Þ{A›«±ÜÞ´ý¶¿aì×°ž_€¹,
@@ -13771,7 +13771,7 @@ Zq
 ¾Ó«
­'U6·s}YÜÄ¡†K½kº6X5é‹Ç¿î¡íUúuD‘C(r¹Üƒ—^5œ¸x-òÖÍ÷7o@�ò_/7Ä%âúõ°k×"¶{H#qÂŽm„Š
 Ñe)üò³†àÍ¿‰±œ·~ôÜ|ž‘Ù<L†h™€E§senÖÀ0>e¾É€;ÉÄa’ËJe•|ôRèa†+-«áð94F}ó-Ðƨĭ¯oæÜ0¼!;ôœ�ªö©Ð\és0#ø„›¢ÒØàܦ1ê8u£#ÏÒdCÈ&_<ÎÈÎ#›Ô4 +~ïo¬=ÄóaF«ˆƒ	9™!WŒ”uwÞú MDÅÑ×•õ|Có¤}½r¾çÌ‘ÆSöÓZw·bB~ÂýC#´†
 Äñ…ˆÏªÞà¨=|ái|S´Â„IwêôÓ½žÒÔ‰�•Ähv×8’×êߤڬ K55÷«ï¥¹QT±´Àƒ=û™�+?QC<ûDcc‰Ú™�¹ÍÉj�ݦ
-›Ë$·hæÒâ÷×vÒz>ôSY¾®žÁ`re:…0a]åFGUýETѬ®·b´�Ý‚Yxf«ó+K^$F•	÷,uõw¦H'èà×Uø,²U±YWÚê‡y‘˜GÍÛh?tä4÷OUaËýb\6�Å–­¿žxwÛ¬®ƒG=H©âÕÓ*Ê[\Y‰/}M‡Øó(±´¢ŠÉá1i4žL[ñ¥g[õÔ�W,îÆè9¯†ÔÝp.”+}†ÅìÒT3ð�,o:mA'ÕºñO¬ùæÜ ‰ƒš"ñã—o££££øï‹”


ó: �ÄñÛ¶V•”°Ùl�à¿ëÀÏ鿉1jîKÓ~�:÷5Y¼fm[Ï–Ôq‰Éwt4-–¬Úxø„¯ÿ•·®©7p°ÕœñrõÕr,q}ù{+›K¶íõ¾ìwqŸÇ
+›Ë$·hæÒâ÷×vÒz>ôSY¾®žÁ`re:…0a]åFGUýETѬ®·b´�Ý‚Yxf«ó+K^$F•	÷,uõw¦H'èà×Uø,²U±YWÚê‡y‘˜GÍÛh?tä4÷OUaËýb\6�Å–­¿žxwÛ¬®ƒG=H©âÕÓ*Ê[\Y‰/}M‡Øó(±´¢ŠÉá1i4žL[ñ¥g[õÔ�W,îÆè9¯†ÔÝp.”+}†ÅìÒT3ð�,o:mA'ÕºñO¬ùæÜ ‰ƒš"ñã—o££££øï‹”
ó: �ÄñÛ¶V•”°Ùl�à¿ëÀÏ鿉1jîKÓ~�:÷5Y¼fm[Ï–Ôq‰Éwt4-–¬Úxø„¯ÿ•·®©7p°ÕœñrõÕr,q}ù{+›K¶íõ¾ìwqŸÇ
 +u¥�zSBòÈ�OÁ �ZÛ¿¿ú,·çý|·¸:©+ëºû†5Å*>³â€³…‰ÃÎ<J«°*¨L|hm ed;ãèé‹þþ—ÿÞç>T]uüÒÓ5’ŸÆ…üºÐÀ+—ýý¯øþ½t¦½ªªþZïGM¤1.íùᕪ�­ß{îŒ÷\-Ûgé
™câŸÜ¹éïïîôѵ³ízõ×[î•ô±wã§>;e¡5Èb¢ëÉ‹Wü/_ôÚ¶tH_Õ{ÿ{÷ŵ·œ\cLÏMnòš“›b�&*¢&jTQ¬¨(*‚]±w±`{ï ìŠbAAE)"½Hd©ÛÛ<ïìRDw¯÷÷ýœ?âÌœ3ggfó³gÏx<›<N%J_6¸óOf3ÓŸÏÀ(%÷Ý�›ߨ‡õÔm{w,ž2ºÉ·ßÛ.>™§îsцÑ=;™Ÿ»xå®];—-œþWËï¾û­Çñ�Ìê2[¥±ÄÉ7z6m6Âa²ÓšMû÷ï]³tFßö¿|ó«ñö+‘Œúy(qÓ{·0hð�Åp»Jç×ÑéJxÅ'kW‰¡ÞÚ9ë?ßþ2rÊ‚mÛ7Øš~Û¼Ë^ÿ”ªSš=‰eü'΃۽÷Á7ƃFUÚï´…g¤ªxq¶ÿenã ¾6öïÛäê4Ò¢ó§ßü¼`Ç­¢ê~ Wi,1£Ø0Ù¢ƒ©õô.{öî\µ`æßm~üª¹ñžëÏ&"VørjÖ°±é˜ÙÛ¶msš?®é×_÷]p„_Ö²J�2½W›&VK¯~'­$+Šå{Ê#ñ
ÿ èèè(Bþy‘‘‘ááá!!!÷îÞõ[µ¢,Ï⤤P$&„¼{Þt$–ÜÞ9³³½SVù/ÚTÙÁG
Û¶iù¼?'Çñ¥òâìó{¦�²(Yֱר
‡ŽG¥q_%˜ìàc-;ÚÞNæiÚ–>ö»¸nÉdö­Ùºm�­Öl÷MÈ©0
 qÁÝûÇ[ta70³žuôÒýÂ
 _dç'øïÚiÅéðjžƒÁÈŸDìß´¨»¦c†}Gð¼ò$¯t�RÎ_?Õ¼dÍ$§­—ïDUÂȹW�nÐóOv«©+n'<›UŽ)J]8ÒRSµË„%|ƒ‹¥åu…8>äÆNGMã¿››vèÜíìâòŸšåÅ^³¶0uò©îÙPÊŠÃ|OÎÖ[}€{Ûï:y#·ô©sʤà«;]ç–èö}VívŠå¼`J3Uªÿ³Ö%�TˆóýÎ]4qèï%ç¨ë—M²dš]Ìyh? K5ç·½ÅþÛ)•¥ÌÔyÖÉ�*û”¹·ÏîÕÓ¨eËV–£–œŒ“<ß-IæÆaƒ'®:ÿl„¶˜7}x÷jöûGO·‹ñ*…(üöùg×{qÌqÝê}?J$¯þÂʉöji|0´dÀ6“æ»mõ|“¶šsÐÖxñ¦C÷bÒ*N4­�ð#n�›bcÑZsm:}+ƒ_þ…BvØù>¦kÎG¼þWËUfœ�JÌËËãòÏËÍÍÍÊÊJIIa?ƒÝ[·¦$ߟ3+=9Y,S$&„¼cÞt$&„¼Iøî/TG\J¦„�·B$çää$%&>ظ�"1!äÝF‘˜�Z®ÊÓ딄¼r¹œ
Æ<ïÉ“'�›6R$®ý
@@ -13801,7 +13801,7 @@ v
 ƒçR$&„Bˆv‰õ�H$
 …ÉÉÉ%I8   77—]Â^Zj¾‰HÜ
n$TXZùçuJ9ò’‹lЙ
Æö–Aü‚H<
NÆ•Fbé5ôl�Y{SÖ0Í8A!„ÝQ$ÖOlÎÖ`ó°®t~½H,ÊÅ´›¯GåâöbÀDL:Qé"0BDúÁm*F÷Áò;ài�IJ@iÇ
xPöÀ¹ÑûÐwEbB!„hG‘˜èª$·h�õë±ys¥²?¤Ò—×V
 À»�.ý°Ü‰<0Œ:ݪR°|8¬æaÛõoâ$©|ŠÍ“¥ÃOcÙ8žCV�&ÇÐeH`ÛÑ´V)ŠL¸
Åè©Øvê‘Í
-ãà6Í­)B!D;ŠÄDW®®èÕKýóºÞ½«–# j©.²°j(ì§aíaܼ	߸±¦–XäŽðB€�ü˜½ÇÎÃׇÝà<GÂQÈ6‡Öèoƒ]¸›©¢j$V)á�I£0r6NúÂ÷:.À(s4ìG‘˜B!ÚQ$&º’ÉÔC&ª-‰æ¶¯6dÉXkÆøî;uiôœ/#ª@“lÅÈ
À�hò­zU+Ì?±¼ô~òÍuÕ

Ñq9²ùðšg7œ}\‰Y
+ãà6Í­)B!D;ŠÄDW®®èÕKýóºÞ½«–# j©.²°j(ì§aíaܼ	߸±¦–XäŽðB€�ü˜½ÇÎÃׇÝà<GÂQÈ6‡Öèoƒ]¸›©¢j$V)á�I£0r6NúÂ÷:.À(s4ìG‘˜B!ÚQ$&º’ÉÔC&ª-‰æ¶¯6dÉXkÆøî;uiôœ/#ª@“lÅÈ
À�hò­zU+Ì?±¼ô~òÍuÕ
Ñq9²ùðšg7œ}\‰Y
 	n¹aŒ!¾e[n‚æSql=l—böéô B!ä]@‘˜¼U2H*¤i…ª<Ö2*È$¥k%RÈ+\}ê	Ù$³kê�¬”A¡€²òÓ�K·k6“AÉþSQ©B!„�jQ$&„B!zŽ"1!„BÑs‰	!„Bˆž£HL!„BôEbB!„¢ç(B!„=G‘˜B!„è9ŠÄ„B!DÏQ$&„B!zŽ"1!„BÑs‰õ“\.jˆD"ö¨éîB!„Ô$ŠÄúF¡‘‘‘¤ÊçóÙ%Úƒ±@¯úRX†ÑiïbóËê @åkäqF	™¢Wo�B!‰õOlllxx8†ý5îܹæbvIff¦–š..èÚµú2p :0ë â ¦/«×Ý7 ™ûê¯E�ˆ[è¹ñÕ[ „BEbýó,W‘’’¢¥¦�
ðûï8xîî•Ê™3�É^^[˜�;[0t*–m,­tä(æ­@tÄìê<$ÞÆô-x"„–†*(Ç©5h0Yç
 „B!Õ¡H\×I¥Ò¼¼<‡£P(^¾%{6333ª�Ä\îKïØ–DbssˆÅÿs/åȉÄÒÎ0sÅõÄÒe*%âï [	û�TìE£�áA÷Ö)B!ä� H\×=~üøØ±chºÀ†ç{÷îU›‡Ÿ¥â—Õ�H,'¶�°ø¢
 *¯bPÌAÔ9¬Ÿ†¯þ„›Î=Dzв�†¨4DÜÄMoÄrÀ¾<Y12"qÃÞÞðöƒÿ9¡HL!„�×F‘¸î’Ëå\.wïÞ½={ö4hP^^ÞË·3‘¸[7DF"!¡¼¤§kï+n"VµÅ¨Õ¸�Â
@@ -13887,7 +13887,7 @@ rQa
 ‹NÊ/P
 Ñë¨Ø\nÅÎJ„ÜŒ$å•Ä.ч#.&®òѨ‰”ωŒ`ñ*|’äpåGV“4Õ<ªÀ‰èLN�G$ä¢äˆÈ×YU–‰‹ã#¢³kN(ÄE1�áÌÂê·HnnH`dnÑ¿jˆD‰	�QbBCàr¹L&S�)&ÞŠÒàë†ßUy/þ§aïŒh&D|$<ÃÕÿ!
(	4Lñƒ�^0PùÚ›�ûDZÛ¶¶°½‚§>ðõÁ‰gÊ,Ze‹bqëOUV¥äˆšP‰sóö»K˾ŠgÉ•²)°bðй4w׸…#*ž×qÊÙ"T?E)åã{¿¹âE2¸DÞÃÅP”_äQÊm˃ ¤ÚÿÙ»°¨êÅÿãÝß¿{ïïw×®Õ½•-jvou+sk1Í\SsE
QÜw3w3C×Í5KMÓrOÓD‘}dAVÙa€af†ùü¿gœI‘96Ÿ×ó}zôÌ|Ïèysž3g
 (­'»¢æpWCqd\×`©;êý4Ú߀;Ib"jBLb²	&1Ù&1‘Ì1‰É&˜ÄDdW˜ÄD2Ç$&›`‘]aÉ“˜l‚ILDv…IL$sLb²	&1Ù&1‘Ì1‰É&˜ÄDdW˜ÄD2Ç$&›`‘]aÉ“˜l‚ILDv…IL$sLb²	&1Ù&1‘Ì1‰É&˜ÄDdW˜ÄD2Ç$&›`‘]aÉ“˜l‚IL¶•““sÕ$//ÏÖÛBv�IL$sLb²	&1Ù„N§+...**
-

õ3	U*•z½þv35œ;‡Ÿ®ÄÅY¹F4𫳦S¿ À]}O®*BòœO…ÞºÂX
e*.øÕÙ´Sø9éEVnŒUP%ãìiœ<‰pñ¢i%¿à— d–Ô¿‘uUæ":Dšâåñㄇq]Lb"™c“M0‰É&Ä.àw‹àà`ñÐíf¦¥¡ys<ðþþw<þøÍcñbk^Ý ƒ*á_¢ãËø§yê¿ðôøI…¢êzž¯ð†›+º¯CI…éï¢WKQRƒ±�õk²ÛâÿªÙ®ÇžÂßúbÝI”i­Ø>#*òàã‚–-¤Í›03¦âÅÿ{Íûa$J-|yHØ�‰½Ðì_hß�¢�­xMûÁ$&’9&1Ù“˜‹Ø—t:�…s¼µÏ,,,l(‰ÅCâ	
N¾–Ä»vÝÙvõH	²îxò1ìˆA¶yi)tç°Äi%õL¹!‰E‡`ÚLŒüW
¨wC¥$^��S0aOÍ’ŠRl„ñü—ú§Ü@�ÔSxç!lC†)ÂÕ—áîŠçFÀ3
‹ÓS1ã5ÌtÁY…ŧÚ#&1‘Ì1‰É&˜ÄÔ(ÄŽ”��}þüùÄÄD‹OÎÏÏ»µ‡ñ�¨â'ßu—&àÐ*t†�È­¨½Á£9jhM»¼±z­t�†4*�s+ÍI¬�¡
+
õ3	U*•z½þv35œ;‡Ÿ®ÄÅY¹F4𫳦S¿ À]}O®*BòœO…ÞºÂX
e*.øÕÙ´Sø9éEVnŒUP%ãìiœ<‰pñ¢i%¿à— d–Ô¿‘uUæ":Dšâåñㄇq]Lb"™c“M0‰É&Ä.àw‹àà`ñÐíf¦¥¡ys<ðþþw<þøÍcñbk^Ý ƒ*á_¢ãËø§yê¿ðôøI…¢êzž¯ð†›+º¯CI…éï¢WKQRƒ±�õk²ÛâÿªÙ®ÇžÂßúbÝI”i­Ø>#*òàã‚–-¤Í›03¦âÅÿ{Íûa$J-|yHØ�‰½Ðì_hß�¢�­xMûÁ$&’9&1Ù“˜‹Ø—t:�…s¼µÏ,,,l(‰ÅCâ	
N¾–Ä»vÝÙvõH	²îxò1ìˆA¶yi)tç°Äi%õL¹!‰E‡`ÚLŒüW
¨wC¥$^��S0aOÍ’ŠRl„ñü—ú§Ü@�ÔSxç!lC†)ÂÕ—áîŠçFÀ3
‹ÓS1ã5ÌtÁY…ŧÚ#&1‘Ì1‰É&˜ÄÔ(ÄŽ”��}þüùÄÄD‹OÎÏÏ»µ‡ñ�¨â'ßu—&àÐ*t†�È­¨½Á£9jhM»¼±z­t�†4*�s+ÍI¬�¡
 ¾˜4
ï»!¡åUR#ë« Ó¡ª
 ZÓ”ªJߘĆJ\Þ	§Ñ½"TÍU,â\[Yû*誥U
ÐáÒ1¼óìI@z…tµÆMIlÐCW…*ñßJT˜æju¦SÖFi�šK˜Ò¹!P�
 ‹×XØ&1‘Ì1‰É&˜ÄÔ(ÊËË7mÚ4~üø={öX|rVV–Hßz“Ø\Å·{«Ý]'qô!¸¼‡‘›�YÞà	Û¢œ^GG8Ž„ã|lû™’¸ ñ‡0×­ŸÃ3m0`*&îB©ào°ï(¶�õŽ3!E8scWk‘ãçYpÞó™f¡8[\M¯âˆQ£áž†Jãqb=Þ{ÿúÞrÀ�µ8wsÇÿ‚#;°Ç‡–a²³4ý˃ˆUA[‚ü3=­Æ_Å»³1÷ð�}“~˘ÄD2Ç$&›`Ó]Òëõ¹¹¹;vìpvvnß¾ýš5k,Niœ$4Ë–]+V "Âòæàð2è‚-Ñ(¯÷�j(bqðŒ‰9®Xê
@@ -14061,7 +14061,7 @@ tg
 „È�û»aÐH<ŽÜ„»ÒùÃò‘˜Ïƒ„gð*"_‚ÿ-é±Wþ„¸2`�K‡·^°cüÐÜÃ1_H)üwׄ¡f#1Bß«¦‰ÄóæALL­�NoÌÙëFb”ÄÁµÍ`µ"³¥;Òýà÷•0v-ìŸ#Ì¡gg:Ö\‚o°ë–} ³!LwƒûEÀ)†€}`kZ: m=ÆÁô£�U\+3‹áôpÜ›V�ó�ÐËL�a‹$—BÑ+8¶ºu
èØz­„GQMt‹j4ŒÄ5s‰ú^•——*“i955µáHL¥‚²r­Íã1g¯ŒÄÝWƒï{@P/ÏÃÌp òeÓ&Ò}aÇ04†=¯¡ˆyÃ¦é Ø
 4ÇC<*xà³fL…!ûe“„y 	…ùÎàp²%Òúu&N�‘øä8h«óB`'Á_‹A<ÜŒ†rI)¼»SLáV*5T›¡/#1BÍFb„¾WdÜe0¯^½úh$¦ÓéõÕa«‰Ä..Òjlò—Û˜³K#ñÐÓ…VÚк5èt‡±îð¶*„UïÁI#1™™×@CºG"ïCàØ\ƒ@"­™&Œ„C›a€+dšK\‰Çm„‡Ñ²À̆âggC@>ds‰ÉH|;š¢âBŸ
#1BÍFb„¾c,+,,¬Îô‰ ™ÆVœø_æ;A—Ùpø"øúÂA°'^CIu &#ñáÕ0ÑJ««?øþ+~€ƒ± –ÈRoü¶
¸@f£#ñ¢Óð<CÖÊ߀µì~ñlŒÄèëÃHŒP3‡‘¸9â3|nœÛµëø«Äz+Ç"Ô�@�———��Q™‡CBBÒÓÓÉ=lv½uÈšúõºL_8¶¦­† <¨Åd$>úØ��2NÕ!d$^=N¤þûH¼â2„æÈú’Eâñú°õ&Ä00£¯#1BÍ܉ÄBÖû×/ä¼|•SP†¥�‰M;ݪ¡mùWDÕ{LBvÁY�Y–Cç=ŽÁWåÑ¿A§ÓãeRSSÉœÜðM^q¢BÏÁ¤a°Ãè²LŒ‘ý§`$F¨™û‘X@=¦³>!GUÃÐ|¨õæ“Þ…l~“œâûF{ËÊ@YÛ|nxnEåfÊ3%ò>vÞ~+öëŽ
ýWÔDb{{éÂu¶Œ5°$ò‡EØè‘pÔÆo€�4à‰ÿU$vû}Ò?b$FߌÄ5s_ K2Në¨ÐŒz;-]êLršÿãuA¨MXv²€ÓÀoRôêÒ/:ÅrúA:»ê^ñJâ7Ï�<kéÖ·Õ!¡/«¤fÍ‚>¾-\Øà‚ÎFb2ŒÆ_óîàr"Š õ³"±à-¸L„©KàQd–»Â�ø)0s'DCIFbÔ¬a$F¨™kúH,>?º¼µÍtÞ^žXöf¹HPZ˜í{i›�²‚ªAß?B²›à,ß3þ•_&)P¨vû9ÿT‹’pY‹‡å£Ðÿ‘²³!1ñã[NÔS­B¦,
.¯ó�ð"¹¦O(Œƒ#v`9퀨@8½	œ.Byõw�'áçáðGzu$Žƒ“{a¸»¬â„DšrïmûAÐgLß¡aÆ00jí�ӈ΅?¦ÃºV9ÛˆŒ·0Ãö܃82¼3 öÌ1‡™ð/V“F臑¡f®É#±DÈ9¶|œ¡e·ù�X.À‰xùËG
 zˉ0ØÕC˜÷Ëh
-µÕþ€¼OèÛ%`AVÅA	Kn'²Þ‚(¤By1dÄCdª¿8*N‡¸�YóÚÒ“àE,p ªn[Q2DÀŒ�¢Tö‡'Oà‰„ÆIsuf¼Ï�²Êµ¢Å ,‡7¾�”'-ûB`Ò!<ò8Ј‰Ô5=ŒÄ5sM‰…œì%ƒÛ*huÚó4I>ÑI„ì�Žƒ¢õ’Ý~ò‘XÈ.ñ½}fùœq­54ŒºY®úõ\r~§ Æil¿Qö‡óX²_–"^ZTÀ�-n

4Hº]g-ñ8xüÏ:³ÞÐ(	»¾£ƒ¦îîÀ3ÏëŠçäÁÝ44´G,<RT=!$¢¢ôÈ“{×�ïmBvlhlæ¼É3&«\þù—° ¦¯I§ùÛybaAÒÏ�K:ëëjétqÜtò}.CÚ‡€ûâÞÇ)ºZZ:}Vî>÷ž^ë;e3ó›!Æã—IJ˜ùÉç÷ocÚ™<Ý€i.WžFÔù-È{5ÂHGAÕ<8¯jÞµ¨,yÅ�5´\y…ØB蛄‘¡f®É#1''x°š¢FG«»±µ¦ì‰ù¥ëlº=—ý5‘˜]œúÇÚ9úš*ÊjzúmôµµôÇ-ý=øá±>ÚªÓÖ=ª�6•$_þ±�•¦ªÓZ¿
‰lÖJCI±ýÑ€Œz#1÷ÂÚ	Eÿ„ä©õsõt4[iiii·qØú¸2h“cJ¼6Ã̘FSÕÒÕ#;ÖÕRW¤(œ¹1¾°zv#Hè¡;éµêët(áù
›aýô¤c0ÐÑT#¨-­×^e¹ÞÇÖ™u6ÒÕÓ'ÖJ]•Ü?vÕ™bþ?C+K
Û[¿ë�«ƒüï:Œ3×ÓÕ3hÓ†ŒÕ4ªfÛA÷cŠå®Bœ|º­–*­—Snul/‰{:¨«ŽBûqAåÿË�!„Ðׂ‘¡f®©#±$ÓßS™ :™/ObÔz�Ž•2¼µ²²^¯“ϳª ¿ôäªÉjÅ óØßî—°øb^E¸÷™>]LûöêBSTßð(YÚ…0õˆN¥“Ü�'J¿‚•X‰Q!G÷ŸO¯¨÷+P!ý—Q])”ÖãÇ�0l?`Ío×ßÅľ—[Ì®Z<ëù¥¡FZÍÀaÉ؜2i
¿?ÞTŸPêqÔ;©ºÑ›ëTZ³]6a�™ý†³É…L±˜Ÿt®£2Ѧ˔‹ç÷èòƒÇ‰»y¥l‘€õöÞ‚hÝe|`Æ?E_3žŸï§EkgbiÑ·Û�¹[ÃSòøb1“»a²…"EaøÂ“…ÜêÇÒ~Ð7-%•ËŽÕä䤧¿™jкL^›Ãį|B蛄‘¡f®©#17ø÷%Aô_|ª\îÕ0FnìÁeÖJµçÈ5Iå²úÄaücÏöÚ-T[¸ú"�_=íX"`^^=U•B(Òz?J‘ÍAdF[««¶Ðîw÷}Y­™bqýSmù9/u ó)¡ÑyÔ9ßX^�Ìüü£:ÑhÚ³Ö_-áT•L3³×LH(t÷ôªzI^"âœZeM£P”ÕÚ,:ò¸˜[ÕRÈNwè§¥ ¨¬¡×}ßýwaU¦å—FŽoEhwå“RSBâz•:… ¨jÃ��d0x5Cˆ½·¿3•b4bI|QÕûEb~ùÞ…Ãôœû×þð€£Ee¢ÛU†'#„Ð7	#1BÍ\ÓFb	7ïÐ+‚PµÿÍ›Ë'ñ
+µÕþ€¼OèÛ%`AVÅA	Kn'²Þ‚(¤By1dÄCdª¿8*N‡¸�YóÚÒ“àE,p ªn[Q2DÀŒ�¢Tö‡'Oà‰„ÆIsuf¼Ï�²Êµ¢Å ,‡7¾�”'-ûB`Ò!<ò8Ј‰Ô5=ŒÄ5sM‰…œì%ƒÛ*huÚó4I>ÑI„ì�Žƒ¢õ’Ý~ò‘XÈ.ñ½}fùœq­54ŒºY®úõ\r~§ Æil¿Qö‡óX²_–"^ZTÀ�-n
4Hº]g-ñ8xüÏ:³ÞÐ(	»¾£ƒ¦îîÀ3ÏëŠçäÁÝ44´G,<RT=!$¢¢ôÈ“{×�ïmBvlhlæ¼É3&«\þù—° ¦¯I§ùÛybaAÒÏ�K:ëëjétqÜtò}.CÚ‡€ûâÞÇ)ºZZ:}Vî>÷ž^ë;e3ó›!Æã—IJ˜ùÉç÷ocÚ™<Ý€i.WžFÔù-È{5ÂHGAÕ<8¯jÞµ¨,yÅ�5´\y…ØB蛄‘¡f®É#1''x°š¢FG«»±µ¦ì‰ù¥ëlº=—ý5‘˜]œúÇÚ9úš*ÊjzúmôµµôÇ-ý=øá±>ÚªÓÖ=ª�6•$_þ±�•¦ªÓZ¿
‰lÖJCI±ýÑ€Œz#1÷ÂÚ	Eÿ„ä©õsõt4[iiii·qØú¸2h“cJ¼6Ã̘FSÕÒÕ#;ÖÕRW¤(œ¹1¾°zv#Hè¡;éµêët(áù
›aýô¤c0ÐÑT#¨-­×^e¹ÞÇÖ™u6ÒÕÓ'ÖJ]•Ü?vÕ™bþ?C+K
Û[¿ë�«ƒüï:Œ3×ÓÕ3hÓ†ŒÕ4ªfÛA÷cŠå®Bœ|º­–*­—Snul/‰{:¨«ŽBûqAåÿË�!„Ðׂ‘¡f®©#±$ÓßS™ :™/ObÔz�Ž•2¼µ²²^¯“ϳª ¿ôäªÉjÅ óØßî—°øb^E¸÷™>]LûöêBSTßð(YÚ…0õˆN¥“Ü�'J¿‚•X‰Q!G÷ŸO¯¨÷+P!ý—Q])”ÖãÇ�0l?`Ío×ßÅľ—[Ì®Z<ëù¥¡FZÍÀaÉ؜2i
¿?ÞTŸPêqÔ;©ºÑ›ëTZ³]6a�™ý†³É…L±˜Ÿt®£2Ѧ˔‹ç÷èòƒÇ‰»y¥l‘€õöÞ‚hÝe|`Æ?E_3žŸï§EkgbiÑ·Û�¹[ÃSòøb1“»a²…"EaøÂ“…ÜêÇÒ~Ð7-%•ËŽÕä䤧¿™jкL^›Ãį|B蛄‘¡f®©#17ø÷%Aô_|ª\îÕ0FnìÁeÖJµçÈ5Iå²úÄaücÏöÚ-T[¸ú"�_=íX"`^^=U•B(Òz?J‘ÍAdF[««¶Ðîw÷}Y­™bqýSmù9/u ó)¡ÑyÔ9ßX^�Ìüü£:ÑhÚ³Ö_-áT•L3³×LH(t÷ôªzI^"âœZeM£P”ÕÚ,:ò¸˜[ÕRÈNwè§¥ ¨¬¡×}ßýwaU¦å—FŽoEhwå“RSBâz•:… ¨jÃ��d0x5Cˆ½·¿3•b4bI|QÕûEb~ùÞ…Ãôœû×þð€£Ee¢ÛU†'#„Ð7	#1BÍ\ÓFb	7ïÐ+‚PµÿÍ›Ë'ñ
 2ÞûÝ=;}ÌMj‹vNû%TfG!‹þËôTŠæ”uÖ.UÌù›³–"¡Üe~FåÜv¼�~E5ƒõ×ßp?ãÅ<qNÈítT	ŠšëÑ@–°Î�¢œÀ£ZѺûŒ�ìš—$E	¾z(wö ¦ ª¯`¥u'‚Pl;dyŽ\ù8AEüÌŽÊÑÂÜþ`™\Råfù÷W"Zw™œY3õ‚{jÕh‚ èö�ù<µÖËî™/Î÷W'4¬l#óXÕÝf9�îHhuÛÿÏcjÎ~G3‚¦á|6Œ�‰!„¾M‰jæš6séogXt$>@Uke6~¡wT~M¦,|w«‡2¡e2úÑûâZ]Hx~¿.ÔTPìî°¿z–€àö>'m5%BÙÐqË©èÌÆU•,Ѧ*ÝíÒØu«EI¸¿;#•‰ÛnI_Fç2³Ó]><Á‚L¿jó6Þ.áUÂ-x5Z�PPï¸ãNŒ| e&<4!uC³kùrû%ôç'U¢³™Ç?'d­2ïH¡¶t;Ê­=�ôÀ3}ÕjEbFª�•¡×cJpFõCf^Ê<£–*š=nDcí(„úVa$F¨™kÚHL�¼mÙ^�À]M{ö–±ãpèä¹§!9ò•˜@ôæÚÏŠÑsø†Tf­)Ç>ã·%c•(Úó÷xÕìä•g_Ù»ÜHG]IY­c÷áGï…–r˜U+á3[:Z‰¢5s˽˧²r#fX„¢~GS33³?ôíÖŸ•ºº~Ç>ëÏd3jÇJ
 ^_Ð!}S›çYµÆŸøðW*At»)“#×½„칄 †ÿt¥ºÒ*p3üúëi*i
ÊåBmo¯oo«@1ùqUJiå“rIš�g+‚è1bS«ª[NÊ“–*úßáDb„úVa$F¨™kÚHycG{E….Öeõ.Ü,aÝÙ8� ˆÁ«®×Y‹[š0ß¼-¡n²ûaœü~±ˆëó§“µ•:dµÚº}Ì®w…€•µtd{B³Ë®Gñ~šuoˆ­æ!v×a“-Ù¸÷Üëø,^­-x}~Ù ·ýï¥òÉ]̸½v
 AÐlö{Éï–ðò�ÌDºk.¿ªišóü´~+­1kuGÁ¿¶ÉF‘B³ä|IåÎÓ=óÈÓ�Úx«zÖ…(õñÞ–*ÔvÖ›ËpÖB}³0#ÔÌ5i$\üy
@@ -14121,7 +14121,7 @@ u:߿y
 û‰Xwô",ïŽ?þD(ò‰L¶cÔC‰%)�íÇÝ8wQ–òŽ%°7ÃÂû%vÀg	–D䡸/,è‡MÇIÇ_—0¹'ÖßFfÕg,u_ÏÃìn˜l‹�¸,Ið‚'–ü†Ùëq)¶^'�P#Ÿ[‰Ëß:™ö¦©hMrñ*àT©šB^rнæ
4×Ùyï­üÉúZ‰Kî¸XPß¾Nf²ªš�ÏŽº¶£¹x¥¼êJ,`ú.O£©èÙïg(ޏWž—XraCkMµV='ފȨzeE‰{솩©hô˜ìV 7ÂSb‘ ”U¢X?ËïhêÀû®H-{ŸŸÙ,–âZ½"aá_Ûk}Ó´½Í»R™_]Ú`ÕXU½“ÉÒTFU¥‡xïÒê}JLSo½â¤ÕyÕøìœãKÇSZ×qМð,i%‘O¦¢¡kæ_M¡…ÑwÜ{µÑ¢}ÓaÛÍ×+ÏK\šha MSÕ´Xë™ÅR4',ç”V*î§Qâòâ×IýTU5zY¬~WPªxîå%¥¥:ê«Ä¢ðÓ«Újªjõ›•̬v¶_{oêØX•Ö~LXnÕ—6QZÐ¥¡?µþx%fg„ÙèBSm`¶üx:CñåBÈ£N£ì©,Uj	ñž[Ò�FûÕÆ£ †ÞP„ÏQbÂç ´´4  `æÌ™ãÇ�§|xêÔ©¤ÄëÖ­ëÛ·¯‰‰‰ƒƒÃ<	”åRŸ,X°€ÍVl-Q€ª±±±±fffúúúmÚ´iÔ¨‘±±qxxx='4òñƆ£aGôû‰ù_!îþ°ÀÈ‘˜±�‘Y„ªw:�DZr,ŒÇ`±BþB¼7øs>´š¢Ç@„A’mà˜Ï·3_ò¶œA¬H¦Ä"!’<1ie=”øµ8åo¿ƒNÿj)›MÆö@±{ÍÁÊ­¸#‰(Wâe»á÷¹¡§NÇKš¦+àÏÐKm»BßH– µ
ÄœÝx�\Ÿ3GPB$
 )§{ÿ؈ÖløýøAåHòO¦Ä”
$=9Ö]K­‘Vg÷W±i,‡•—vûÔN“îmUT�tØ“^R1:ìô%¤<Ø«¥ªòMÓîÎîws™¥» ãÝ…«zµmÑ@C]EA‰ÁO¼¹EM…Ö°MïMÞ�Œ6»„™�•÷¾Õë¸Eñ›&õSSi¨;hòÙÛ!¹’	�ÖXÿö]Cõ懞z_åp>@‰…üÂÝ­—í=ò:Q܇•‚MÿëÁ…éÃuUT›Núãºò<rX.vs7~õ–Á’Fdļ¸í8Æ@C½É�Ç+ÎWÒ“£º­Ñ4ZL]yôeb°¸ -Ð÷Äàž]ut{¶T©y©5õÍÛ:ïóŠMÉesJs“cºÚýд¡ªÚ�+ÎÉÛåKu¨¨5hØrôŒµ·Þ09&='ìÎI#ݶj*
tǬM®\6®¦Õë„eþ§×ul¬¦©õƒ‰�ëýàWùª6•¼‹ztûÂÒ)S=C+×ÿ$JLÝ:3‚½ôškªkhŒr¼ü((5—Îá”f¼‹¸·ÁÞvó…‘?P‰‘ûòr¯öMi-í÷]Ï,¢NFinF&[ *й=¸•NS«åqÙEÔU`e…Ü<a¤«Ý¸�ø�í#•"nè¥-�›¨i6i5ÔjÕýàÈ\:•{IBTÈÓûÞ+¦M=é/»¥²²_¹8Xo;{+â]†t�VvIþó‹û�{µSQm±öêëú5å>D‰	Ÿƒ´´4GGÇÉ“'ÛØØÌ�0eÊ==½ÄÄZE­„Á`äää\¹rE[[»…„cÇŽQŸÐéô:玠j,%äYYY”Š«««kjj<˜*R}²	�ykÆ£YWL>�tºÌWye`¤#ÒSz¡Ë�ØxïªLAÁ-=~§0ìôì�C/�…ŽÐˆkéH’Là Ýò
 ų:ý ×+••ØùýJ|6R%ާ¬?žo‘Z5eÉÜR%vÞ†ËÒÖ]¹/Ý…çáx¸
º8“€jÆC)ñôІãøUI�ÚŠ˜5´ŠêCnÌãesfôn§%fÞ¢ó ™sW…fK]à*1UsxQ7šèwTØ®ÖX{ÆÚãé̪*÷%†×‰„¬ãË'6kÜ ja5í`µÎÃÿœ«v£æÕ•˜J Çe¤nCµŠ°šãçK—©A‰!•´ÑfÄwZßT;ZÕoºŒ÷	K¯ÚÌû�J\àdÜAy~Jˆ&-ù3‘^Ë:$¬-Öz5M-ÐÌtæ¦WÙ•?l‰xŒ›–µkÞ°z°¦:?
ºcÖ^³%VýÖvõùý+­[hU;ŸšÍº-Üu�Q9y²L‰[tžq‹²;�ÖÕ«‚V_Ó¡é¬*ç¦Æ�Å�mB¼¶÷íÖ¦†£iÐéX`FEÀO£Ä’¤Þ=9k9¨{
9ª·œwøIE¸UbqžUS¾×¨LOwÀºTuÃå¾8·©Sk­ê™51{ã“gÞC[h|¬‹Ÿ#e/½÷õh[ÃAitØ÷XÖ4ÄÊ¯×J9HÃ&]í6{1ê;�2á“A”˜ð9�Nƒ–››Ký›/�ú¥©<^�sUB½2§¦¦&K¨ÿ
-ááá�:u200

¥òuuu¥î0:::T"uG‚Ÿw{,›Žm‡afˆcÁ¨|þ‹Àç 7
{ÇÃvN„B±3£奈ÇfSLÛŠ‡~¸è³ðJSÁ*%3TXuÁÒ½”[7eã/Ü`êø%.BŒútÇ>J‰³pÁã‡ãd”ÇTÕ¦Äïì�1½±ÛyUE‰º,ñ˜$)O@ÈouŸ„¤ç§‡èUàïo7dn&ôu_¢§g8wÃeV¹â=¶4-pªžž±Å¢*3oYA…wp½ÈP
+ááá�:u200
¥òuuu¥î0:::T"uG‚Ÿw{,›Žm‡afˆcÁ¨|þ‹Àç 7
{ÇÃvN„B±3£奈ÇfSLÛŠ‡~¸è³ðJSÁ*%3TXuÁÒ½”[7eã/Ü`êø%.BŒútÇ>J‰³pÁã‡ãd”ÇTÕ¦Äïì�1½±ÛyUE‰º,ñ˜$)O@ÈouŸ„¤ç§‡èUàïo7dn&ôu_¢§g8wÃeV¹â=¶4-pªžž±Å¢*3oYA…wp½ÈP
 /ÙÏËI~}ÕëèL³A’¬†.ßzøŽ“«Pó„<\ôôúعx*χLÁÉ�4f¸žÞ¸'Ɋ߸œ—¾zzf37&*(?þî��†ÆËOT|yI�ÿ-OGk3ª,}ûÏXµÓ÷i$ƒÃ/ˆ¹;i”©ëá@…§=+;îªÇn‹¨àý'Ì»ðVr”B¯sõô,tó-«Þ;–Ë*{ê»sõÜ}©Ì&/<îy;.“®pHœŒK³aÔá<MQš9…_r{ã¾zFÎ'ŸÉ>	2ãB/œ9ºrÚÙ¹ÚíÈÍÇáË4¿a^Ò«+^§Ö9X÷—E¾ÈuŸÏÝ \†â‹¿ŒñüöçyÒº1bâ£Wîg–²éI«mGLœµ3•Yñ•–¶7ž¸øRqq~ø“ëëçM ‰5s;Û¯Kª]\™ßfBD;56Ôëè–Q’À'Ú�¾|/1·úPGˆJãh8h˜CD^õÛ² <#>ÂûÜqkizýGYls÷¸çŨ|=•Äݧ™ÓëBÅ»z„׎z†SÖœ*Q¬«œGâj¯7ç¸_µ:$äe%Þ¾z~µ£µ4Ǿƒ‡¯pûóÚÃÐ,zåÏ‚eaVcÅ•óq¢R]AÉ�ÍN†zF+N<©ú1—™óÌ÷ŒÃøa’smyð‚CR‘å¥o‚lt²5”d7Ê~ÕÉ«�ò™\=ÉeÆH›ùç*é+‰»e ¯?|ô¢èÊÃ^ÞFÅš¶èXn-Ý˼¬Ä¨«^'çM-=¨~#ÇoÞüŽß+:›'?nNò+ÿSÇöÏc"
Ó§ï8·Ã瞆ƽÁÂg„(1á_Uo>Ü®];###ssó=zôéÓçÎ�;uö¸ (gÃo¯x”Ü6OÄGãð\˜­ÄƒpRõ· m’9gƒ…›àˆ·�á:
¾é`¾Âã—ð—)ÉÃAÌß�çoé�Õ¿ÁÔ³ 5Œ¤Wð»…ì2Ø8?¦cÃ5ä%s‡ÀfZšÉ”¸8ÛM0b¹xÖ5ŠŒ0¬ïƒ­°—Rb."/cùHüfƒÇò.‰¯ðì:²Eµ*q6Ò±ÅÃÆÀ;âEÈJ‘—ŒgÑÔ³ž˜h‚e‡'yðy¸†¨Ô1—4�@ø,Ô:/±"uLÂF ê„(1áßU™8°IŽ———ûþn€r\Dû`Á4,=€§©à³yðòÞ„àÖ1LwÀºuX¿óÇa_Ä$ L>	[~þ܇ßÅ{×®ÅÂ¥8÷éL'ãñAÌ0†í
 8¯ï]îŠ=çÄ-ÏBñ/ÑØ0S§b‰+ÖoÀú]X2=ldJÌ-�ÿ)L5‡½½8âæ5XcCm”Ì8A¥|w/f�Ä´UX-Oyë	Õ®Äù` ø,�Æ4',¥":c‹<ÂÀá#õ9v͆Í$ØK\·Np?u¿K„OQbá‹B”˜ð¯DT�úDá±â�å[p-\Ö.JOǹ%ØtoxN–°²„¥%–{""Cܾšð›fâf:˜Y¸ºó%{­g`Ó
$Ê’eeáþ8ØŠwQ›ƒ+Ά¡Lú»™HÜŒ¼Ý“&Ár2&Å“ý•}‰)8øºb¡4S<
 O+ñè-¤3L1RñÌ3§ÉS^�c/Ä‹Ð	xð?‚s× ë÷'@iN8㔯xN6q²Eˆ8‡Eö²ˆ‹]q/
å’Y2RãÈIy¨ƒ�‚•g^¯.Øá“C”˜@ø¢%&*
@@ -14177,7 +14177,7 @@ qd.ZN
 …¢ÎÉ×’øµ×зo�qö¬3�nMâ÷ñÄ{øáNœÀ‰ÿbÓ,žƒ3ÙPKLj/íÀŒßŒ«ÒÕ$b1Ï
cfã„tu	M<^ÇÊíˆo�ïÅ=ƒIL$sLb"¢;ïv¯8ñÀعfs�aqê�nÖ$‚?<‰Vmо=žkƒñKqI%]„Íb=h¼aÆõÇZo…"<áaØè�SñU0“øÖ1‰‰dŽILDtç•••^cñ‡@‰V«­ofƒœKìŽÎ@h,23±i¦Ç·�ÖCÄމoãoï¡Uk´–F‹Áe6†1‰o“˜Hæ˜ÄDDwžÉdR©T"ŒÃÃÃmI%¾7:ø»†~{]ñi¬vÇ[c¬E…Hâ@Œé‰î#°7a‘ˆ¬	©ÈW3‰o“˜Hæ˜ÄDDw‹¨_‘ÁÅ¥RiqæÌ‡¿â„>›á>O£ H§ý0r"N•Àpãî0‰o“˜Hæ˜ÄDDM‰-‰÷;ë'–.­=N�r¼À
aË»€- ‡Ž'@U‚ƒŸÂ½?>ÙŠ„ŠÊk²¥F!1J“øÖ1‰‰dŽILDÔ”bòäÊëß8œ8t|c£ÁÿA÷v·±EH9‡u“0ð],Ü�}qð V­Â�ÇPÌ$¾
Lb"™c5%‹õS›ÕjûC¯w¸@ÎEësôÙ �&Q¹&²£±núLŹ«P‘€MSй3:t°×س”ÄIX2Û!µQŸæo“˜Hæ˜ÄDD÷³ZJ5Râ^»ÑMJ•ÐKŸÝ,¶Ñ(Q\Œ¢"ë(U¡ÂP¹¥Å•Úªs*ÈILb"™c56&1‘Ì1‰‰ˆˆ“˜Hæ˜ÄDDD��IL$sLb""¢ÆÆ$&’9&1QccÉ“˜ˆˆ¨±1‰‰dŽILDDÔØ˜ÄD2Ç$&""jlLb"™c56&1‘Ì1‰‰ˆˆ“˜Hæ˜ÄDt2ê*f³ùnïýö1‰‰dŽILD÷‹Å"bX§Óedd\¨¢P(Ä-F£±þ™(-EV–ý‘—‡z§[LÐ)‘�-mž‡L
üÌHî˜ÄD2Ç$&¢{‡èÞ¤¤¤ˆˆˆàà`¿*¡¡¡â–¬¬,ÌuÎ4°t)Ú¶Åë¯ã�7j�áíU\7}¢wàí7Ñ®=:Ųƒ(�ÜðÏ�ä‹IL$sLb"ºw†¨¨(?{RRRêKb½îî¸ï>´h�#Gj�3g ÕÖó¸¦
 Daƒ^ê„Ñ«à›‚Š†r$kLb"™cQ“#Ê6''G¥R™L7q‚˜•žž^ýøpuyyyuVñµ$îÒåÖöÙ¨BÄtŒU'¬‡ˆé^Ã$&’9&159"†/_¾\RRâààj4ÍÅ‹íö°MLLL��ÝÐI¬U )1éHÁ¹ã8|§ý‘ª„Ñ‚¢xœ�DL6*óÜu.†"ìŠõزÅE2Î�²Nã¤â
 ¡Õ!+—’‰‡áý2+àì÷…î&1‘Ì1‰‰¨É)++;~üø/¿ü’””$þ¬½ê„†Iâ×^Cpp�‘˜'V×JbQ°«ûaÌX:
#]ÐætsÁ¿¢ Qëð®fíƒVº†ÅŒK›1ff{"_�ÒD˜‡>½Ñ¶:µ‡Ë0¬òEN!¼<0{>&ÏÀ¸v8§ŠQß™tÇ1‰‰dŽILDMŽÈà'Näåå•——ggggff‡³´Zmxx¸¿¿¿Ýˆ‹‹sœÄÿû¿hݺƘ1*•ÃG¿1‰uÄ˯bÁ>„¤"ì¿X<oL@`!Tþï�Ië‘f°¾ϬÃ^w|²û.C•ƒ³_ s'|yQ9ÈIBt ¼BPX„ƒ“1Æ—áp´õ¢"§ùö=YaÉ“˜ˆš[—––šÍæèèèǧ¤¤8<¯Xl¬T*#""ì&qBB‚¶ž·È]Kâ6m¤§Ã‰+ߘÄK{£Ï<ø]�Î}.N¯Ç N8”
µßÇœi8™k]ؘŠé°l+"uHÁœ˜´	á9°þÀCÊ4Ж[“x¤V�D¹‘1,GLb"™cQ“s-‰ÅŸýýý÷ìÙSTTäðC7àŠ
t.±õĉA˜¾IEÒÝ
-nÇÐW±>¥F¬Å¢�±øŒdìA—±øþW¨òº-ŸÆöxäÕ<(®W[“xæR쎾µ½£FÇ$&’9&159Õ“8==ÝÛÛ[|©T*&±Ø ???##ãÒ¥K¶9}åÊq‹mµ:5B5s½�b{X)‰·ÄÊëQð+V.Â�¯�«Å±‰p]ƒc±@š5•?塤ÖÞII<çKˆ¿µ½£FÇ$&’9&159¶$.((ÈÍÍ


=þ|vvöM}.sIII¼$!!A§Ó9žpg“™Ø±ßÃéd|ÔK�!JDp.~‡—þ‰Ý)(¬y’“Xþ˜ÄD2Ç$&¢&Ç–Äqqq~~~ÑÑÑF£ñ¦zÒ';›«85áZ·n�èèÚ#!Ž®zqsIl†ßfÌëŒ/¶¡ûs8xy ñG1ô%|öb‹¥s‰MÖs‰êÊs‰™ÄrÆ$&’9&159"‰þùg//¯¨¨(ñç;ñ�×’øÁñðõG»vÈ̬�›Kb 徉o£ÛÄçÃî'bë0¼Øë�#n)Cv,£°�I,wLb"™cQ“£ÑhBCC322´Zm}ï‰k@âQÔjÛ
+nÇÐW±>¥F¬Å¢�±øŒdìA—±øþW¨òº-ŸÆöxäÕ<(®W[“xæR쎾µ½£FÇ$&’9&159Õ“8==ÝÛÛ[|©T*&±Ø ???##ãÒ¥K¶9}åÊq‹mµ:5B5s½�b{X)‰·ÄÊëQð+V.Â�¯�«Å±‰p]ƒc±@š5•?塤ÖÞII<çKˆ¿µ½£FÇ$&’9&159¶$.((ÈÍÍ
=þ|vvöM}.sIII¼$!!A§Ó9žpg“™Ø±ßÃéd|ÔK�!JDp.~‡—þ‰Ý)(¬y’“Xþ˜ÄD2Ç$&¢&Ç–Äqqq~~~ÑÑÑF£ñ¦zÒ';›«85áZ·n�èèÚ#!Ž®zqsIl†ßfÌëŒ/¶¡ûs8xy ñG1ô%|öb‹¥s‰MÖs‰êÊs‰™ÄrÆ$&’9&159"‰þùg//¯¨¨(ñç;ñ�×’øÁñðõG»vÈ̬�›Kb 徉o£ÛÄçÃî'bë0¼Øë�#n)Cv,£°�I,wLb"™cQ“£ÑhBCC322´Zm}ï‰k@âQÔjÛ
 Eý�Ðå!x5ž~þþô*¦~�ÐH¬©7‰Í)ðY�‡ÆÚxëÅŠ+÷ÂEöNF»ðÈ_ñ׿ m/ü�„‚R&±Ü1‰‰dŽILDMŽÉdR*•:�îõðÿµwçÑQ–‡Ç=½‹½çžÛöÜÚÓÊ-^´JµèU[¶¨ ŠR,VÀʾ†}DzT@Ù7AвË.aÉ$@{ „@ö}’ÉL&™õ{ß™L @6–À ¿ÏyþHfÞwæ™üßóžgž÷¦¹KÈO`Ï.vîdg$'“((äÂQâ3±•îá ?•£ûIÌÇQú™lä]`÷n’а—Ëm·ƒ¬8ö‡ú^j'‘Ѥ8È<Eü2¬wâãI
(‰Eœ’XDD¤¶)‰Eœ’XDD¤¶)‰Eœ’XDD¤¶)‰Eœ’XDD¤¶)‰Eœ’XDD¤¶)‰Eœ’XDD¤¶)‰Eœ’XDD¤¶)‰Eœ’XDD¤¶)‰Eœ’XDD¤¶)‰Eœ’XDD¤¶)‰Eœ’XD~€<�»Ì�ž‹ü (‰Eœ’XD~€rrrŽûœ8q¢¸¸øNOG¾ÿ”Ä"NI,"?.—+--íüùóG�
-sæÌã‘ÜÜܪÏd͆­xL�ŠÉTÅÙN3‰;ùû†cèV…Sp‹?™:%±H€S‹È‡Ãáˆ��
­HBB‚Çã©ôL»�îݹç~ñ:v¼zBNNUïkâô*Ú7澺4èÀìmTÐò}¤$	pJb¹ë¸Ýn‹Åb·Û¯k%°Ëå2™L‡®0‰O�:eµZ+­âKIÜ´)Æ1׎ê89<‡F혼…¬šOZ¾/”Ä"NI,"w›Í›’’büPÕ¥ÝkÎ2z8,,¬Â$7ªØÈæŠO.ŸÄ7Äi!f®7‰§l%ÛèsVæ",&r2IO';—"'Ƈ±’W€¹Üg—
S>ùV¼“óà°’“å=ÅY9Úqûþî
 MþÇ�QX‚ÓsŲË�esQÓ?œÜ
 Jb‘§$‘»ŽÙlÞ¶mÛÆ�ãâ⊊Šjx–qdTTT…=\êØ±c·-‰3N±¸?®cá@Ú7ä±Çhõ+ã½U|h.ï~À”ïpù.�{ܤlâý¡Œø’ßëœü’7_ñžbŒ¦m˜}€<›÷Èœf÷ó?nŒéa$Xýïîq¿˜7^ô?Õ¼ëÓ¼ï%·�’X$À)‰Eä®SPP°uëÖ„„„œœœ¬¬¬ÜÜÜš\+¾5IüÓŸòâ‹WŒ#°Z+>«œ«’8åoÂÿ5dØ|Ö‡°j&ýÚóêHbMänæ­ÞôZH¦Û{!×ídó`‚ǰ ’Â\Ž|ÆŸ‚¶ˆ5¡„naãj‡{¯*gïaø`z�g]({¶:“^aú6.BI‰«iò&³Vó­qÖJ>F“ö„dSx½z¹QJb‘§$‘»Ni›L&‡ÃgÔlFFFµUìt:SSS+«âØØØìììJ'_Jâ‡bÆŒ+Æúõ””T;çk“xÜK4~‹$׎ù+> ÅËlMÇ–Ê„nA¤É»"•Á¸Œ›GX.™'˜ù
@@ -14212,7 +14212,7 @@ x
 ˆ¶xó]�ó¼Î€úÞÏ ©UЦ.+�hÕVÍ9Þ·`¾÷#4uZKS´Ï¡Ý_\Ü‚{�š£ZçêzH;Ø2ÖÃñìÛƺ²ÞqB&»£BŸ‘+¬ªÍ^8¬—e!ƒMv«ùA+qDø�– ùÁ …âƒ&‚8U$? AY~@£²ž'Q¹àN¢‚𿣭ÆEÃsÅœG"¶ìNFSˆ‘Œ-¥Ç¢¥ôL¨ˆèAkÎàPqœ|7EE*µ}/˜Á¾;èý‚6Uü”ѹ°m¥«pö°…;4M8ò�Ú†ÑyZK8B·ª<ֻϷ^èdaÚ·]‚L,ƒË%?í,çÚ®ŸïÜ>¾Ñ2:Y^“½š¬wdD†ûžbd+Ù1Èi¾�íàš…qlZËr…ÜÖ[cßQ¬„+¹BŸïÛ0êÊšÓQWKÐQwÐBEÝAu�*2ê’ ¼E òøŽÊ‹cªahÇó^Ãs<ïådˆ¼¥Ç¢¥ôL¢nÙylO”XÿA(Ã_LÅ[Þõ¨±þéñþŸj·Ç§ë�Î{+HáÇo«01á¨oÿw«úõÍþÁVá-Ôg$j”Y/ÂuAœŽü™[‡qt	N󃪥={Vî	@ÎÒ§�¨uw�ÊçÑs¼	 ÆöŒTk�ñ½ÅàU[Tý¬:·£bf�·ah_‚ÓP‘T�2ŽÕU~N­O#«Ö±Z7|)]Ù]�^@`³*ÛÆ­ÌÊîCª±§¥EAe«4Ê%xðÒVïä� pñµMl©ýªi4“á ýÅFOW>»îx¤XÙüItn²mãí„?	ÖTÆ’ƒÎŸJ‡Bf‚ã4‰*r¢ógÜ¡”¡ò(G5HTޏR¨#!Q
ÑQ9ÒÔ�çŸr„Ä{nK]Žô{¶,¨‹Õ0&L•nòæ$
›2úÝk©úzÂñ#Ë"ªꃗ$…Jw)tR²/c°c68IZf8W±v)ZÍB´d¶ÕÛ9˜ö2Æ×ç¼*:6Ëͦ÷ÏpsD¹¥hu˜Ž¹9µÔq©}�ö3FÆÖ!‡üE)fùÙ�)?�Ñ·ôbÂBô&pÏlÞêO¿f¸£D+A×êcÄl—‡aYŽæ‰´†– Óƒ*­1h"ÒN™Ö Ay¡,#­A¢ò‚�Ö0ˆ¦5¼çhZc�ÁÓ¤ƒ–Ô3‰ÒM™CŽ›>yø‹©øÜvÓ´F*>«¿Æ³+p4õd*ñ—-°Ø»Œ0,o¼Ý›ðš³9Ûí_v§ ||q	œ)Aš8äÕwËÂ໦¡A�çRõÍ
’ùX©ú£Zä¾97G† µ.̪vŒ3®ÀÏE«ÈÁŒŠ·1=³âEÈ–à4$&Rñ™$&Vñ'DW¼ëôjö}	y—é‚>}’-ã6«ò1*»¢¢EÛϪ|Ë.¨Êã®äjnˬæ�†YÅÚÁ	°`í`s°ûZܲºÈ½¢p\—߯Wõe"c$ÈDŒ§…HÄxšðDÌ ŠJÄР9"Q9®M¡rŠD5Äíx"Æ{OÄH"×`¢&ONË8ó§¶e»mrB¿œ¢XU[t½ßJÿ#ì?eÏú ¸�ÞOö>£+¡ó§U0弉u1œi"5ë}ûâµü%Àû{“tù¸‡+íÆKW‚äŒ
›åTÛÉó�Ú±0¦.Åk¸A€÷' 0=šU�´W1Ú·¥`½úa†Wíx7ë"RñÚHà}ùèv†L·‡d$RºÄ®ÌÅpál<žïÞ0®Êá˜Î¤	2“âi!2)ž&<“2¨¢2)4(/¥3)4*/j%2)º]&%øæØÀ¿9„ˆoŽiM1©ikå¼¼}ÖŽö´`o&ýn*ÒŠÖ½vûbgºÖƒ;n[Ÿœ�îbôÞÌ…8;¡ÎÃ	�¦Cm¾Sý™ÑÚ@ õíƒû¾&ã£Í.±)s!NÎJu(ô¯ÚŽŸïÕpSæR´&Òh½Ë{ô’wî&ý>±s!PÁ[H¨Ïq«³ÝÚ‡[1¢µ¡6@«r—7êëûåFÚ£‰ý—K1V5Ó”íÑ0¾ÂçÉ‚Œ¯Z‚ޝƒ*¾šˆøêT‘ñ•åâ‰ÊQ
 •‹V$ªaüÆW*†çøJ…“!V*(=-¥gZË®3ÊéXÁLúÝThe¼èÛ [Ýž�7ÃM]j– ~¼v™Ít—£÷C.DÏxYÔôéx›ïépSäR°&Þh¿»µÉWï8¢K=oðû,SñãÿrƸÄnÄ……€Æ ËÏp¹%ò]îI\ŠÖãÐåê26ÿsK·c
ÏÉ/à S“Úô«‹‹ƒÝ$ç¨ÖèX°t='6".E-ßîĬz¶Cx~=‡Û¢µì >Œ�“ÏZ{öˆ%´æc
ÿô¯Û«šËÊÄæÃ¥…èThÊõxÈd ±“J„=h	š=Z(ö0h"؃SE²”h	ToÃQyñ˜@5#œ=Ïqöàdö@é±h)=cö z=OÂŽ-™4b†­‚e(Kœc"úº¨Fƒ¨3»�’:4Û»Çè�êT“ÛcÎÙµ%½3q!TÆœˆbÍîoeëH&²Ê¤%èU¦AµÊ4h"V™œ*r•‰åš&‰Ê
t*ׂITCFú›Q1¤;ASzc/º€•�&ÞL°gÑÊ™´˜fÕõ$ßçr*GÕé?}s1èÓ~'¶®áÀ¼Ýÿ³YS]=%jÙù“>áÌKOÏú¾‰•4¡_‚™±²è#˜“lž¬ô	lì<¤´ª±›ÁÿŒ[ðwÇ?¼¯Ú\£€¿ÿ¢PæÞŽd“ÐÈ�¯Q_¶ê›k2ÈìX9ͬ¬CÀY«sjÛ`sjÛN‚®ÎÞ¼
Éñ"àzNÖö+»ëg3L“5Çßß¼cf[ï£ì½ºÉi®©	È´dE«!UüãðuæEU"f>9�˜SˉÝÒK€›EXËîôæñ>w!údw�úõÝíŽùŠoìDÞúÕ|§MEw­)ÄÄûê.˪ÖÜ^e
ö‰­Ý‹ÀIa6£iüX#W#�9ßñ´óO>ßTQó”á_	TÖí$*�<¨†Xßåã=Œïò�]>¸‹Õ0ávp‰Yþ§§'8¤²Ô>Ë5ÚÿV7òÁ�W7:œ‰á F5¼„±BõÿKuyÇíÝNsüËöõ£º‘ž±^Ë*u÷;¡_ÏÙˆ'ÉMÈ–•—õjœÝKë>1K2ä,ÉÓBÌ’<Mø,iPEÍ’hP¶eÓ¨l/%QÙ>@£*�˜%9�ô,‰×>Å¡.³aÁ—‹ôË©	ï'õO�ï‡c׼Ņœ¸Ä™�eHYÉ`/„šžˆÌðkøÑâR¸†Ëp¿9ºoMÔ±ìšò=óÒ?'¾Z\ˆœóÎ
ŸãhÛ=g8:ülq)\Ã¥¸Ï�GµŸaêì÷Ï8T€±ÄW‹�ÑA2ŽŸíØ•ðó~Šˆ/ƒoilÿÍpc�qü°ïNýõö]ŽÓSäv!j}™|¶ÓÃÈ)Çó¿Õ4¿´PüvÐDð[§Šä·$(9iTÖó$*/ì%ø­®ÀHäT+Võ»3ƒÄ¨¼ÓA˜é·"ÎÐà‘*¨§Á˜óH°ö0X‹'Sùd!Ôdƪl¶.©Â9²t®§Q¥³õM•ÎÉ�¥Ë“ŠØ)ÆsîgnâדÈFPÊ’�‹·*Mà};To÷�ño×"hÔõéSÒ-e-½¹֟ܨœŽÔ‘bÿûé
5�[�Þ�m_ˆ¯bH²‘*æ»·îìH,«ô-\/Tã(áG}‡|­¯B¿‡Mýƒ”´}	$öæ)÷¨³Öµyz©¤÷ö/+¿1×Óðí^ÝI¥€Ôžáý•žÜ6�`n5¬0¿¼ÒEU©ŽòIVF´§sl>½ê~xu;ïÔIC~�îôMoB¹‘Kg‹íçãç;ó™®rûß7—:�|í¾ý\þÃ*¿YßÃöºäÙiíðRu±#I�ÚcŠ}·&)«MWmÁëˆé¬†�¥>RŒ0ª¦qžºK5Âe!J—êŠÐVºôî½%'¼j€„Bt™žÊ<Î ‚‘ù”»"QOèí‹ò�6z¨óøå`Ù•4œHÃñÚ»xö½?«·×ׇ}…|óz™S¯ôŠæ2 }Wô%Š4k*¡K²g¿Dîf‡é8-«M;;fŽg_•S®6]›Þ= Y¦ñ4£±wÓkø@}¯–¨þ¥×I#·ˆÇë»óc\.åûvU­ò¾Q£Ÿ * ÷ñZMˆÆjÕÞ" •%†b
 õŸTµúCäØFýdÍÇýôFýJ×çõÕá.=®3/8\P´¦š*¡Î™1$åjeoFRZ4RMîN»J4…èí«²/ˆ.jeü¶Ÿ™Í±�úÉš'†Óãûëh¯[o»e° ±¦ŽÔ0B7£Ûħ	túq1Hè!>Xchk8~—Òb«¦„P,0È&Í™§'¾!¥šÞ©Ò
?@-JHŒ%TAýˆÚJ™úA–!ªò¤†`©S.ã{'ŒQë'»uœ’±X)™	â=ä28ÐèæÄô»‰5.Æ7ý”[4LM¹¿Éýƒ�ìB‹1n¿ÊL�˜1÷Aª½OG½?ãkM†_¹$cµâHb™Çtpk/ͯü³ÞÆáŠ4¯±¬´ÙW*üf4—µ†Ú¸!•××wÔë…«œå*ôÒÃu Õk1�Är•á/Æ FÝ&ðÑU mø*�!cóÐJ›²�•uVZk¨+J´
ØèF?ãÂï¶íɼ.‡¨f^£±„JÌ"’]HÉ·ñ$„¡‚3CÒ:›U;ñ³‚Ò:C5��Óv�3Â`Ë+65äà³K°flGÐWKЗÐâMœE’ã:=$Ç5ªhŽK«²WK%8nB•ã‘Cë TÀ–Ü	Ä>ÿ1E¢d,VJfÂ^ƒd¦!AÔŽÿ:ËŒwSìU¶îf6{]dв׉E‚½.3Ó#f–ßÇÐû7×…,´ÆhšÁZ{š‘­…‡ü‰|;É`C¿’—Á™�󱥎¸«±ÉÂ:ô¼b*ç7ÃÙ–9ƒ†9$6Ñ wrfiK²¿Ðù©ËâÔçÑ„÷ý¶RŸn[Âîð9Þ¶¡W´¡—lÚM¸É·“´)€«ýÙտΜ$2¼‰˜z�­ÑnæÝt¬B¯É^¹¯ã�?›ÚðÎeŒâ;qŒ„£6ã
46rãZÜì°³k,²ÇÆøÎO+Ť€ÚUŽÚŒQ[@ª²ÔFK
Ô&¶£%¥Ê‚Ú ¶äN€ 6”ŒÅJÉŒ©
¤!D³é¦�•z5Al`œÍä5‹ÌZ3±‡³šeFú˜(o„*Ô›7¯r†tæ³['ŠŠG�¤1ÖZšÅÔeÀÈ—S$f^ãXgQ'á2šÇJ3mÄÌüRcLw:-J6§‰þaÌåq/ôbÖe)ê5¯É¬³¨ÓnMf¥•t[Ðdüž)Nåf(ëYMÄ0m.‡0ÖU@‡È—S|qfˆYeQ'Ùr‚Ì*3:Ŷ~ÁRøëÐÉPM*³‰„TŽB6״�^#´xsT³BA¤×œ2½fTÑé5Z•å Z*‘^K¨²§ èsSn÷' ”ˆÁI‰LègÛÛèñ¡	øõnŠ€Jª_iÏc ‹Z
-:±HpÐefzÄÌ›Ïaæú‡œ‘�Ÿ®Ösuro,MA­½Ú…dˆ|;IBç5�•6

Íh"k
µqCs	6KY
öý‰´4
5óx(z½m–¶$�×lVÚ4T4£Ù¬5¤Éè¼fãuOÿŽÖ•P*„f4Kk´Á.Úð�‘o'ÉèÌp³Î¦¡£9g�!CH׌&
ºýh4 ;3‚N@GY/\®.NG�IG)-nÎ.ì’	NG=µªH:šPe訑¢éhJ•cElÉ�ÁH)‹•’™pRXÄ6õŠŸr×T=ÂÞKqѦ„©­|gíöþJßé^MîtŸs¸\ƒÎþ>Ÿ­c¥Hó;cKÂÓá§ø›I^ÀÔ_ºc~½N0vË¥‹6Î5‰Ï%‰wêä˜9ž·ÁWÓyzópRS’*¥jâ“9½KWÄÕοßóàn%q'ù¹ãá–mKkÂ/3”­‚£÷beKÓeÌ¸xghË0D¢o&iIóÅÎnÖ’­þÚ^e‰Ÿ¶Ú~]Âm„ž}eî�>ßsÜÓ=¬E÷�,ÇÙé�‰ÎlÑ6ÅèÖ‰éª ×U	Þ”K$VU�jQÕ("×TiE–?´ž¯‘Õ„"‹TÁý³ÓŒW¢ma+_µnš)öÜBÞO˜‚œ€u.XÊ��Q´ÁW
ä»)Æ DQ�ú­:&çÚžw?ŒŽÇ¡ý2—öÓΗQãåÈÚ,ÑÒ
,+“ó˜
+:±HpÐefzÄÌ›Ïaæú‡œ‘�Ÿ®Ösuro,MA­½Ú…dˆ|;IBç5�•6
Íh"k
µqCs	6KY
öý‰´4
5óx(z½m–¶$�×lVÚ4T4£Ù¬5¤Éè¼fãuOÿŽÖ•P*„f4Kk´Á.Úð�‘o'ÉèÌp³Î¦¡£9g�!CH׌&
ºýh4 ;3‚N@GY/\®.NG�IG)-nÎ.ì’	NG=µªH:šPe訑¢éhJ•cElÉ�ÁH)‹•’™pRXÄ6õŠŸr×T=ÂÞKqѦ„©­|gíöþJßé^MîtŸs¸\ƒÎþ>Ÿ­c¥Hó;cKÂÓá§ø›I^ÀÔ_ºc~½N0vË¥‹6Î5‰Ï%‰wêä˜9ž·ÁWÓyzópRS’*¥jâ“9½KWÄÕοßóàn%q'ù¹ãá–mKkÂ/3”­‚£÷beKÓeÌ¸xghË0D¢o&iIóÅÎnÖ’­þÚ^e‰Ÿ¶Ú~]Âm„ž}eî�>ßsÜÓ=¬E÷�,ÇÙé�‰ÎlÑ6ÅèÖ‰éª ×U	Þ”K$VU�jQÕ("×TiE–?´ž¯‘Õ„"‹TÁý³ÓŒW¢ma+_µnš)öÜBÞO˜‚œ€u.XÊ��Q´ÁW
ä»)Æ DQ�ú­:&çÚžw?ŒŽÇ¡ý2—öÓΗQãåÈÚ,ÑÒ
,+“ó˜
 …K	cÏÄN²"Â�è·“„"€û�råí¸û³ycnùØØãK½
 k‘úÊù³MìÉ_X@8¨¤ogÕ‡
œÚ 
œA}Là'öäÓÚ’4ƒ¬ŸC¤~ÜyÁ©êI0Š6Üè¾´(}§Õ5acž2èbÙ3Â�îôÛÉè¾f”¸Æ:D\ÅÑGw�dÐàXfïÚæœ~˜Ø¹¾<Ð|ŸMBª:•ËÐt.ƒÐâæ0uF.Ãé!sF�Ë UY.¢¥¹Œ„*Ôápuç=<NÒ’�‹A‚&‚(O3ãÅÁS\Ñ2ôgdË“¥o¶�9šQRæ<œ­j-•à�”9O†0—'$Ðk“OrÊU?º﫟på›ßx§[ñòËœn5.î:Ùª§.<…8ÕêKÑ'ZEš4
  >7Ž›
@@ -14420,7 +14420,7 @@ C
 ×–Ùt,÷ÎÁ]"se›U·7)Šï85c¿fȰ½µÚueg6ÿt|à`¹oO}ÜÍØØfèˆÎÍ'L�ìn„…ømD[êÙs4_·EÏÙ×Ðî9¯Á¦+ê.©ÏJ€Z¹½CžlËúßév
 ±\—1¢uVih¶	Ò­c‚Z?"8BB:œ±ßÆÃ¯!	F�¤{ììçÚB4tmìxCׯ‡ ·»ƒlõWÛ–Ùað¶e,ˆÓVmG%�¤¾£âTNC9…çdi€p¼æ �×�㥤Ê@¥ÎŠ2—?·�°¨¡F•-�•F\m}
ŠM>›”¾¾Ê�tl[¥J§c[%¥ê6
 [TÕÒUiFÖÖT©Êð:{WyWqR$°/_bÈÈöÒÔÖïw!¤e/·§!µ+sR{Û÷ù·²+Lzº<‡²�I+›<ŽlÚ&oqŠ–O3²Ö,¨âÝâ9�×áé81kßÉhéðta¬aYK’™mn”Ò)Ðùt“*gcvwû:Í¥r%I–0Üß¶�dTS^Öq.1ªžŽè§:Q]‰Õu·iK¿¥ßdQ	g¼0á»T‡Ò´ÅB•fwe´trú9¸2Q‰±sr7JêUÕ
mÂíüÖ슂›qaØV¦§úB²¥/t „no¹ a]uüå˘´ì.MÍ+­�¬5¹¸L‘rh–­$õí"¶t�j½)Y5¢·âÏ”¢pÑãBàjé¢I’]ÖÚ!yÇD“ë]î�oä¶Àd—¿çari¯MnÑì²ø<P.9æº�È—¡\åP¹\>”K¡3TªN8”
&ÒMЛ
ÇSJ>u±é.�4êÐÏJà§“¥P–N£’s„hc·@+ƒÉh5ÂA5¢@N•Èe09rUcuƒª�°¾¶Õ>/ËÖ¬ÜPþ‹g%taq¼ òþýî¿3Ò£éÖ.ü}^®[’ˆ)]a_èÖ‘vÿËÇàD¹a!¯‘»ºàö¦”`O³JixE
-Žîû”¤¤ÅºBÉ¥ù³9¾c¾Þ®wù{–ÜcÏ	|)mŒÙ‘\J\ºLÔí?~¦wÖ¡FXc¡°´|¥"°ïÃ9Ü·´vÚ[àÇ9£§®–¶wa*qùÀ¡{¥®À,.3Û´fÁ»ÚîîIŸð€*èIn‚?�ÇTµß/].åŸ~ijh›y:B¡€ôÞ?—ôÏ¡ù–šÒ„*ßuYÖÿÐS
+Žîû”¤¤ÅºBÉ¥ù³9¾c¾Þ®wù{–ÜcÏ	|)mŒÙ‘\J\ºLÔí?~¦wÖ¡FXc¡°´|¥"°ïÃ9Ü·´vÚ[àÇ9£§®–¶wa*qùÀ¡{¥®À,.3Û´fÁ»ÚîîIŸð€*èIn‚?�ÇTµß/].åŸ~ijh›y:B¡€ôÞ?—ôÏ¡ù–šÒ„*ßuYÖÿÐS
 endstream
 endobj
 407 0 obj
@@ -14605,7 +14605,7 @@ x
 -!—å¹Úu÷ª>$M¬@#X=æ—QšT”£/qðúFí�[,7Þ>Îæ,	®W�U-¸xÿ4[¢^ï®Þ^ñÅ·³åC0¹_O¯¾	Ãû<`I”§åc�FÛsÇà.øs9p-³KÆáßäõQ3¡K‘\@ÐI·* zl‘Óœ[b,N 1�T·Dš��c$NA4}Ç캮AW`°#éR•cFpX§9M»ã'ŠXƕˆd·“SÈbÄ&9…ÎTâçÄü$ò
 É.§ê¥ŽðXÀw
 >g—Rû~Êbø �Ý+CŸê?xy˜"Ñ×IE4ò‘™aÂ^ê-ärÊ
SLù•ö³P%“ÞB]NSø—�fnágÔ“‡C]FMbé3ê)¦¹1…$˜v`mi††	Òþ!N5# �KîPyÈŒ�§š™@�œ¶d×eÌbÈQFW4ò—z`ÌK¥mœ@´Êô£©ä•™5†ÌòØñÀó,Ž€ÀŠ%ƒd¤3£”4MÇV@°aÙiÅŒYÀJKyD’ùa´’Œ|s©ˆræ0;B’Еâ	íÑ›f»gYÄ<"«	œB>6£:)'Ò,‰^éYÓôMWHN”™d–BѽOfÚg]\|WŒ 5JWÖÚiÆ#Ñ×ÞjB�`ˆÎF>aŠâ;$?g'Õ
-J=&[j}k«ijSë{È¿Ô:ÌøÍŽªì;ÝÛWšüqöôd»ÎE×»ÃË–pC}i"§¶5Òê¦ònf'èTä;Žáöðv…MÆGlŠ×»ì[;42�&Þ܆S>ùõ??΂0·ö©’ê.üòÙ2ÚCªÉ‹`9ºŒ¿eÅí…³Þ,Ð
þ¦Û௛wxÍbP–88Ýõ×÷B¨Æßáƒt_`Ã…n¼ý�ÑÈtzb
#+ÌPrG÷þ»

ǵà«[3dæëzȹLšÔLoxϬ mV¤ê7‡¡Çß«H•[ZÇVâ4¡%DG‚«ÎcÚK"ŸþÛ‘ëðÆGšG´ev°B7hï;TÿÇçõYd³LPò©·ªRCp-ðæý}hâì–NžñSmËË$«5e©fDé<±üÔìDš8|AÓf9Oç¨�[	ª"eÔEû~ôxg¸°
+J=&[j}k«ijSë{È¿Ô:ÌøÍŽªì;ÝÛWšüqöôd»ÎE×»ÃË–pC}i"§¶5Òê¦ònf'èTä;Žáöðv…MÆGlŠ×»ì[;42�&Þ܆S>ùõ??΂0·ö©’ê.üòÙ2ÚCªÉ‹`9ºŒ¿eÅí…³Þ,Ð
þ¦Û௛wxÍbP–88Ýõ×÷B¨Æßáƒt_`Ã…n¼ý�ÑÈtzb
#+ÌPrG÷þ»
ǵà«[3dæëzȹLšÔLoxϬ mV¤ê7‡¡Çß«H•[ZÇVâ4¡%DG‚«ÎcÚK"ŸþÛ‘ëðÆGšG´ev°B7hï;TÿÇçõYd³LPò©·ªRCp-ðæý}hâì–NžñSmËË$«5e©fDé<±üÔìDš8|AÓf9Oç¨�[	ª"eÔEû~ôxg¸°
 î”|‚€gRzÄuG|4º*Ãf¡C‰ žŸÔc?D-6FC¯k[‚ôJ2…kêvë§Ì›sÚk^o8p[Z9OºTɨƒäÐå½NWF!ü°['‘Ì]
 lÇ—G‰ÓöCbbŒ^ž3V“VdmØø¶¾.ÚÔ�1èC×…O8ÿõbC?ùÓÄÞZ޾¦äžÉpŒàÎ"Úí,ÄHRµÃ…Òëâ�DDqT£@ËÙÖŽB3ø)ÔsÙ¬SŠÕ!Ô
 AS#>T_ÖV�ÌžÞÈšàZâ(>O ø\`Bkaã“ÀX’¤]ìÙ*ùÜ<á²ùÃø)*—"C¦Í�fw*•"ŠÕ ½Êݤ×pGÈÁmxüÞf°tK² ÁÆOà~—ƒê½¬šm}ÞCª•¯ÖæL˜¡3‘a-nžL\t
@@ -14725,7 +14725,7 @@ ON13}
 æ&`|ºñ¿žøú™ªoÉ“9äÁãÁ�H›ÏòRÚ–w9$3ý<`œCzù#錨Qéü .‰¤zšEÎñ-f‘ééóÝ&ÔK] æLû	,ù^Ÿ}ubÅeÒàÙÓ²h,æ³ð	Ÿê3·xÙà®ã.W¥¬Âìº&‘FšÐo"W¶[EÜ	jcÛ�%´š²¦ÄºM­²KÙtIF<¼nE¼á�©¯kåûV	ñ”ÆfY‹t×;Ù¡#ñ”»H¨li�ÙºVޱo•v >'^¼žS\7;Ù´Á(¯B¸ØÌ盥ÏAˆH7HÛ»ëgMðç^A<»¿:r*§64ß3W¼•<^§²;7(ñÍ‚Q\³™Œ»1q¶Òñ‘þ©	›W|×Ìõ\:2™`n­�n¾ÅÜ:u‚«�§òVÕèžó.CÝYahåÓ©IÏq¦w]»Å ¦w˜-2¶)À´÷0W÷Ü€’»®C<;í;L´™¾g|9t"©¤7ã<ÙOðx<ä[�‡v�;_ôýiŽ&•m4Ýq'ë|J2iú@(KšˆDÌðLqt¬òPˆÚñ©P�q6’çBB¥j<þä‚Ìgðá«ÌСœ5Gsf8�¢Ž‰بžæì)Oæ5Ç&Õº…šãw“±ü¿…¡Ò.!–Û~zéÒ2ˆßÞ®¬CÃ\�2#DQ‰l¨DêØÖy ã+둪œ‡º\Û¶2Ü‹
 r;ï)!Ry
Ê•5HhkeVƒøúÏyï¶ô¹²3‚*EVŽ}Nuƒ~£M/·ó”‰Ò°íúåÖ7,¸ºžœíβ͟�…cÓô’W2Î2Ö\àpëVÛÙ£ÐÀ?Ä)ãÌ“&¬cFÇ¡Þ:Uç¡ÌNÎCçç•NDÓJzž;=˜›ÆCþE&ñgxQHex6>)ÑN�ÂÉèT4E»ÚwÒ*¯?\ÜìÚÓ“¯/nÞ5Go??ûj39&-ˆ’¯>„ƒÒ¤âž@pGO�5Ì)•½BC,CHyÊ(¾3OG¸+KÈð~•êTà›&D_Çõ‹@/t,r˜'ž›	uêÞÎ\acPçxæû§Ó+ák¦²‡¶nÆak£üÐ8‹�OÆYH%¼jJIà+øËû>ýMø€³4¿ðæ§Ì›ß}GC«�ù©éý,•³†¶
õ+1°?÷ö§´O¤ÐúÞ'Œ·o”<À1¦¾½	ò�SJúÔþ2:p²§Ž òwÒ¸"ïó÷Äq”]¯Ê¹45ÃŽ†UÃ`cðÅz6îÕ=—ûc´#©Û0Æûì`Oêèoðù<¾¾ñ•
æKo°ôqáïK	÷�\íê¡»æàsGv…G©ï;Zìq›+‰:2fY«hndUz8��„œ:½ —hú¸":˜
6±'¹ád–a2_Ýy¶™E
 ¢ä—¨PÀ6Vœ›[x]Ä’Æ™‡Ì3^õƒ1Oæ¼âç\±ãP9–²rŽuÌeÿxd ãõ4Çõ!éW#`³¯õ}¿þÀTj"á¡Îñ‹˜Tã¤G¿xzéÌ~ÓýCøéw¡RöÏ×ÿþbuoà¶å6'eQ÷f¤{ÊÝ¢[­{›ÙXWÒ=Mƒ¾� Ün2~qòrcýt|Šëë«ot·¸…58
Z¬xÒš¬ˆÓûú³ãÎÎiv/ñ–G¯‚WˆïÅQÿ6x:çíÆø}§‰kÕvC�ûætˆÎ»ÛÃîîðâ´X¿p’Z<ÁÍ¡äª‚Œ\•°VÛž«š):~à«"—¬ä«$‰ïÁ*ùÉ«[PôûµõÉyLsŒ‹údC}boF×O}‘‹©×Q'·¢ez2*†êÄ	Ž^ý¯èÑÎu?'&‹ulŸž‘¦¨ãQ¨Ã
ÁC©zËûÕ1V\¦gduü–X·ˆ^zF³?û{@”_y^ãõ?yÓ,1@
-ÜÁ!Ýç9Q‹øíÓÕ×Za�ÑÓ<—
1ÅNºyœa÷õ-:÷›

éÆ� xÌ%¶¿¬.‡q¶ºaO}}ÆqMÙRïëú~}];?Ú{T£‰KÛ²þ¨æŸÄýÆG\Q<ê_%6ý#ßO|j²’–Ô/G›>ÇÚ­w*y¿{>Çg;Ðÿéø4#â}ŧvÿOñifEWÇS�
s;몽Æ|uׄyáqâNdn¬»™Ë¬-iƒ‰$ï
+ÜÁ!Ýç9Q‹øíÓÕ×Za�ÑÓ<—
1ÅNºyœa÷õ-:÷›
éÆ� xÌ%¶¿¬.‡q¶ºaO}}ÆqMÙRïëú~}];?Ú{T£‰KÛ²þ¨æŸÄýÆG\Q<ê_%6ý#ßO|j²’–Ô/G›>ÇÚ­w*y¿{>Çg;Ðÿéø4#â}ŧvÿOñifEWÇS�
s;몽Æ|uׄyáqâNdn¬»™Ë¬-iƒ‰$ï
 
Ž£%ÈiÅ|DÚk<EÇ.Õ 38�~
¦xWhp¼SÉ|¼Ùk¬W× ÕÓìCi0Å»Bƒãý~(Eb¿ïµµ«+�hDèþ:
 Lñ®<@;*\m1`ì8¥Ó w´¦‡ÇãÄàœ>@V1(ˆàiî~ôèéy/W=äMëü~ÁdkiåAl±,a¿H <# ÐÝVДc„ˆ9*ì#‹:ì°��“‡ö™uCÓÝq6åÕa79b
 ¦Á†þ¶NWÃMð	DØE�Aƒ>yèùxäa‚Q rŒrðÄA˜æÔá»;UeÊN™ã•C+v€ÂÈ+~•ýûÛ§ì:2쨈uͳëù'£¤´5Pyl±t­”²y,ë®/lOuç\%À«EÑœ7ľBù-çx¥Î‚½coxêLoÁ%zîöâ!Q0ä<Ñ<Ê4,†}Ø•6ýX$M,ÙCŒC9ko=VŒ_�q¡Æ,Á}è ”é¡œ=Ê4ù“¨!¾�ið]‹ïS|ßBíi‰»ìB¤é¡2¤iFˆ¢"‡÷¿3	ù…­õÂÉðõíÌ4ˬFšì‰išá^Tà,ÎE¨A¥'`ñ…
@@ -14793,7 +14793,7 @@ x
 #DN¾}ñÁ&›‰M°‰ÚÝ$¤
3÷¯é—luoÿ2_Î;ô³™E¶râçÅxwïÉ:õ&ËOf¦ñ
¼pí^ÒeÄÞBFìÒ½®.õèU—23ìõOû“çÊ:>1ŸÃÍö¾Ï!DàÆÃ&‡§ÚÝ0XX$ýŒl»[&,kUµjÚîâUÕ¼á©4¼D{×™)µHű«m8>½h'Ñ	¥¶×S.öZx}ˆÆL8Ûû|€^³}<†42²¢ZÛ‡Ûè÷âíZÐ3×å
 _�px:{ùÂÚ±Àtõj¼aÒSMÅÌQÉò®1î–k›
 mo5èJˆT%F°ß¹ÊvçóîàäÃŒ”¶F-©g¢:~kw*ÀI³˜qtÚ“ú0.„ž˜£qá3`ÿ«0ûí´ïÕ] tý¯�.¸°»ÝÔð⭸G?Î…tDz£þ’�·äyˆ<=ís;rß
—tä'Ÿi¨n$ž%5føQç3”0fêMú1Ýï5p =1éçhãI¿ZYि¨ÊBÅUŒhÚPXg‘šÔÂë‚õà^	úþѪ bµhs_§6-Ì0O¦Lx4ÊçÉúºRu¾žušÞê*•ÈYú™-”E¸l–·óIK<È<ZÈv¡$—ìš
-I³>ÔPƲ°¡k>õ•~(Ÿ>s…Ê6Ær�X�)6Ÿ#ä`.ÍÉq¹´„ ¤²‚¨„[ȉ¥%…ÌZ¨½Ö)?2+‹Ê¿…™—E¦sõô��X\ Flö–7‰1q&Y‹TV#󱟔uOcÉòÙÙ‘—
Ø$;*HȤcYÕl4x^®¿'�c†þöܘ„k††Ä„œ´ BG托¼©YͶÁ½Mäå(C̼’^µæQ†Â¬©Šjéór™ÔŒ2]<™-Kš®ìr¦„`vÑ8O8+@uE©éâ„ó&ÓéºêU2WžÍ\§&3	
86ó¼ó\ƆMœzÞdC¥«A“¹Ì ;cá,gÉ“±–žPá¨Ì™SÀöÚé"K˜xIPÎófØC¸a�q�Šóf©\Ɔh¦œc6IV
L¸Ë:ˆ|¦Æ‰w#“¥Lx¦™çiÐ3EyšFÇyšœ\.MCXˆNÓ¬¦3�pT–å»)á�<iÂ!íEô)ÍÑ4"f5áR4i«MR4ºwp�‘È¿f¤õ<eƒ8ŠÆ_>‘Ó •vLèDi›~šµi]îç©…\fï1=›&€o8
™œÊ�•ÄÚJ¨µS‚f‘¥SfTÐ:

%#€ËÒ<TÕ4ct<¼ g¼?…Ž�ó]F!aÀ�Îýäk“u‹›Cs3,.ž[^÷SÄÍ£É39dXê>ç.OÃu¨ßøvàw?g”Dÿ̘­‡tŠns4zÇ5Pœñkƒé,N"·¶ñ9@.ý¸Gr¨€[Ô¥ûw†4îßu=‡ã|ÿ^ÇiÃqYÉ—ì¢JѸ•’·eüõ`œªsEØÃm-W†Å©Î¬£;ŒS]º1`2áиQ	Ç¡¼<‡|òxù`@±‚ò€ò`9ZÂ+NR’ó¢LŽ”Ð'Œå¼4•›H£ö…È‘L#Ä(¥9*«¶YþOöd™¹ßQ1HZ`ec-Å͹ØÑq@£˜s!²âp´</ï!dÆÁh$3ï‘ü3§ñ>ÌÑä14	Ï4”`heb\˜WdÃÆ!B‚:ªÈÎËå@ÑÁ.D«0´•‚CKæ&̺™™Ný´_fL§OkºZÂDn†¶R�¡¥5`m8‡pç:p6Œ ÜM6”}—šxí
l¼a“Çï?ŸÖˆýPµ-©Â1*ÀchiÂD±Ø{ˆMǡ䤲Zº™rŽÙ$¹‘ðFhY‘ÅÐP|†FP&öZ삞)ÂÐÚxã�¬\CK[ˆÄÐÖ
+I³>ÔPƲ°¡k>õ•~(Ÿ>s…Ê6Ær�X�)6Ÿ#ä`.ÍÉq¹´„ ¤²‚¨„[ȉ¥%…ÌZ¨½Ö)?2+‹Ê¿…™—E¦sõô��X\ Flö–7‰1q&Y‹TV#󱟔uOcÉòÙÙ‘—
Ø$;*HȤcYÕl4x^®¿'�c†þöܘ„k††Ä„œ´ BG托¼©YͶÁ½Mäå(C̼’^µæQ†Â¬©Šjéór™ÔŒ2]<™-Kš®ìr¦„`vÑ8O8+@uE©éâ„ó&ÓéºêU2WžÍ\§&3	
86ó¼ó\ƆMœzÞdC¥«A“¹Ì ;cá,gÉ“±–žPá¨Ì™SÀöÚé"K˜xIPÎófØC¸a�q�Šóf©\Ɔh¦œc6IV
L¸Ë:ˆ|¦Æ‰w#“¥Lx¦™çiÐ3EyšFÇyšœ\.MCXˆNÓ¬¦3�pT–å»)á�<iÂ!íEô)ÍÑ4"f5áR4i«MR4ºwp�‘È¿f¤õ<eƒ8ŠÆ_>‘Ó •vLèDi›~šµi]îç©…\fï1=›&€o8
™œÊ�•ÄÚJ¨µS‚f‘¥SfTÐ:
%#€ËÒ<TÕ4ct<¼ g¼?…Ž�ó]F!aÀ�Îýäk“u‹›Cs3,.ž[^÷SÄÍ£É39dXê>ç.OÃu¨ßøvàw?g”Dÿ̘­‡tŠns4zÇ5Pœñkƒé,N"·¶ñ9@.ý¸Gr¨€[Ô¥ûw†4îßu=‡ã|ÿ^ÇiÃqYÉ—ì¢JѸ•’·eüõ`œªsEØÃm-W†Å©Î¬£;ŒS]º1`2áиQ	Ç¡¼<‡|òxù`@±‚ò€ò`9ZÂ+NR’ó¢LŽ”Ð'Œå¼4•›H£ö…È‘L#Ä(¥9*«¶YþOöd™¹ßQ1HZ`ec-Å͹ØÑq@£˜s!²âp´</ï!dÆÁh$3ï‘ü3§ñ>ÌÑä14	Ï4”`heb\˜WdÃÆ!B‚:ªÈÎËå@ÑÁ.D«0´•‚CKæ&̺™™Ný´_fL§OkºZÂDn†¶R�¡¥5`m8‡pç:p6Œ ÜM6”}—šxí
l¼a“Çï?ŸÖˆýPµ-©Â1*ÀchiÂD±Ø{ˆMǡ䤲Zº™rŽÙ$¹‘ðFhY‘ÅÐP|†FP&öZ삞)ÂÐÚxã�¬\CK[ˆÄÐÖ
 Ó™@8Cóò04Š4á�E%žwH)†Ö2…xyM¸ÍD«ýáf>œ½�í/¾Qä5R4¢·xôºÁ¶m¶­í‹¨ÅèT«·Û6ƒNÕ2�OB© Æòq‹5ˆál©ýbªySµ_ÉjÞv¬{•ŽóÂÇf°:´ëÙ…”SÙ¨þ�ò¬Ç›=–�ט*c•æ ª•¡‰^”ƒ¨ºÖv­m(RBA5¡Í1H’W I¢H½\»@’°—+B’Ú.B’ò’Y$)Õ�"Ik%#’´aB$IBîT¯B’àÀº¬KÁ»‹$9&,’dÑH’“Ç IŽƒ$Q†‚Ä Iއ$‘’À€’$	EqH%Ë(ŒC’P‡$�ÒH$)C2‰PIB*IBª<’4²Ê#IHÇ IœbÖ…žƒ$1¼ÐCžƒ$ÑÌÐ…IÊÒ0H’Ò�)œ,Si(‰"MŒó¢"Ü©c\ÌË¢ÕÙÍQU#™[ηÔk¯C“VJvp!™›ávór"©Í VZ’ÕEåD�§›Jm¬ÉZ«J„
 ¬çxæ\	Ί1ž¹ÍŠj€-à)D	,x¸ýùÔ1¨í “}’ä€IJJSÆD·ØÇ{�%eû‡.ÞÈ +—C“ˆVJ9e›H3ÚªÂ~!�"9ñ#l’�‘Ò„WïÌû–<Ž”wKüÒ|^2‡$V¢‘¤µÒt&
 Ž‚’P�q•—Á’(Ú„Wå8Þ+LJ¸e†xtL=£'–ûáJŽ·¥<FjjQ\Û�›WŽ­ýâÝt©Í4ìˆÚ¦žy7½è©høƺ¸·~l_3<Ÿ½•ø,«ý?ÀŠf/;¨höÒù/)û:5­Dï²Æî x:¬hm»@°(­ÎQ`j0¢!´ˆ¢Ml£/çp‘ïÇ\”^zãEyÙ`”ìAJ£µ¢b´e°ñˆ‘RÞˆˆ1[LVé Ä@BF°š”ŠƒŒ�	�²HÈåå!#䓇ŒÈ¡©Èy0�-) 	Rq�‘Å@F¤¬	Ò yid4‘FAF9’i„¸å #Gå1éfþwdfxyÌ(fçœì9ЈSÍyyq¨ÃÌ{	¹q°Ã
wJ�t¹�R'Ü?š2ô^Ï1(SmÔ	(´ÀñÈDP&†“EÑ
l>SZ¯ÔÇE7Y¹ÜòökY[¯´N0LiÁì$xQk3S�3]\k³Ét°Íbº^	¬öögóãÉgHGǦMâMÛ…“�<âp‡Ð$C;K˜ˆìE¡
†vI¡MŸ(´ÉHe¡‘t|±žÙ$º¶¿,
@@ -65999,7 +65999,7 @@ xr(
 –äÖì®A|+PÖ)ˆ¯@V€PLÃH”jèü ®ØQD¬h¨€>×à¤åmß°Úwñ–æU—>@ï${�¾
 "q$…Œ	$
 }Í	Nc‚�õU÷ìÙ×fäú0Ï
7èñ-Q³ ¨ë
-‡Ù/‡èk³,Y|JVLÀ×+=-¾ÆëÎKÒ0(Cœ Cä´àõ³÷mØó€$}òu�”wœ›õTãºæÇZï…Ô«3¦ÏYY¿–ó@ó¬]…žÿuËGo½piMѾ¹�¿pyû¼{—ß^µq݇X圩ÙUcR²VkfË2ŸŽ;”½�“Ä“â@2çr™IœÖ¬MHÔÙ†XÜ’Ád(6 È
j³EÕm¢"ø)òÎ=šdõÄ

ƒL_8ÉB'ì°(S†ÓÓú—Ô^5/÷Æ_=ùþl•~ΙC§¤6~¾P2­xhÝÊŠûKÇ®eùmÛl�¸–]~{Ç7Ç¿ÝÃÒIH@™?:ꮼš]Ó:ó}nú•è€Á�QÑFû¢ Ñt%:]ºF)ó/E¬ìaÙ9]#Û•3ª`D PÎö³1¯ÁEb!)�zPqœÕÆE·¸N|\Ü-òZ&jM‹‚Z“²²ŒÐE
:C³%S©-"¥E­1í®®áúèìaKå5Ï:�J«…Ô‰ôÛœQ«rFÉkÖÃA®';­TÁ²ˆÃ
+‡Ù/‡èk³,Y|JVLÀ×+=-¾ÆëÎKÒ0(Cœ Cä´àõ³÷mØó€$}òu�”wœ›õTãºæÇZï…Ô«3¦ÏYY¿–ó@ó¬]…žÿuËGo½piMѾ¹�¿pyû¼{—ß^µq݇X圩ÙUcR²VkfË2ŸŽ;”½�“Ä“â@2çr™IœÖ¬MHÔÙ†XÜ’Ád(6 È
j³EÕm¢"ø)òÎ=šdõÄ
ƒL_8ÉB'ì°(S†ÓÓú—Ô^5/÷Æ_=ùþl•~ΙC§¤6~¾P2­xhÝÊŠûKÇ®eùmÛl�¸–]~{Ç7Ç¿ÝÃÒIH@™?:ꮼš]Ó:ó}nú•è€Á�QÑFû¢ Ñt%:]ºF)ó/E¬ìaÙ9]#Û•3ª`D PÎö³1¯ÁEb!)�zPqœÕÆE·¸N|\Ü-òZ&jM‹‚Z“²²ŒÐE
:C³%S©-"¥E­1í®®áúèìaKå5Ï:�J«…Ô‰ôÛœQ«rFÉkÖÃA®';­TÁ²ˆÃ
 ƒËF#î(*¿Ãøn%ˆór÷W©¬ìZxÈ‘°×³mØVÚØ(ÕnØ@”ìå,—Ì}‚vsCÀµDxY B6‡…˜œ§1�“óƒuÀ€D§T:ýQ)•)•HO�áÇÓ×ÖÆ^kk fm‘ÜÓ¥räøöŽÑ´Å …�øœö^)™ûÒ£ÇC
 7<Gåf±ø£³¸,­¶�ÇÏûÄ_­TÌr�‚ýëQ¢‡’²&ú”Czš*œÌnSl‡öòÅqÔn"ÞÔL»àóÌzyS9à¼äè"n©+›gÐ$n¬yh×-¯/ÉÛ3¹88«IúÇ®�¥ý»`¤¼ÿåëç¥û¥[OÀj€0î¹Ë³èF-½Ÿž\}æÞ©cÇO~sï}ïÍ�Ž’ú8Bï>ó,Ÿ“žù\zWz¾|U)¢Uƒx=øi‹´WÚv	�"ö½$üŸ4¼‹?ˆRÔ“>ÊPÏ0ýäx=­êõˆ¶üÿ¢p5z¦¢£’‹Fð«�%
 "ã&†Úî:@o£ƒ¤ŠæüXï6xM̼”Kkáù“wL•òPWŽ¢?|
e`$QÄK¦ÒE•ÊfЉ1r6ml¬ÍÈâ|b4VŽ·ÿd‚A&ì&0ò&“‘�¨[‚„cn	-?ì•¿ØÃ•¹‡³_	ï>,‡–Œ‰LøÌwž€à×®øíãÒ…óíXv>ö»ýßAbhǾ}|Ëîçïùm´¦g¨ñÕ�YÁ¬¥wÌh ý슆e‹d=]„ë¸â±:íj#‹Š¶’º •Ó	uA]K»wˆC ~ÔÔT†4K/ªSL`Yg¤ï@øî±Ã•;çH/HO>
ÙúÛÎÑ»ù$éUé¬tZ:6hK\4¬„Ú/ ´uÂcÅ(;D“¯@4UÄ${GÔœÚláõ·yÆn	r–_ÊCI˜½ÂP'}f¿‡¯�æKë¤:xÊà®W¤o¥¯Ï¥%ôïÒFi)ß"­”šÁ	îË÷á~qEö£’u–�ü…}`Y!¨ë‚`�jŒDØ"P ”¯Ršº üLn“*ÁuK Írá¡töcÛq6 }9-mßIò-[¥�[Ú/’.\¨I~ YÀyÐheFáêXƒLfë„ÇA‹LP°„¹ �µªünåêÂJvY·*k–`àmÙÚ~鉈”ùÁ(efIŒ<*íR±=‰«Ó$^§3£¬9ÞYä­?K“®î¼æîRWÜ�ìp·9ðÓ¼ó›Ñ:7´ÀMÿúù‡Z¥ËÒŸ!ôM«¥—×î�O@ëŸz&ü~–RE-þ"½ëƒ½LøxE2y�Dôÿ<Q£ÛÕéU¬.8P�¨ NýU°^*¯ðWÞÃTέTRã®áR†SK?þõóñ­í–ÖVz¶•îhŸ€õðF:C©‡Ñ�LQÖÌ
@@ -66100,7 +66100,7 @@ k˥
 9Ùè9€¿¯Ì¯E
£�kTS’Û´Äï3�ÏâÌb\ü—„ü¢ˆú;w#$ÏâiÐ…ªsˆý\q´Ü$ræª_(U“é‘;×¼½—¤hªršÑ¹¼Þ§ž©¼Ì°¤Òì³{BfSaèO)µ9à¶{�ý=F¥Örçþ;ôî1J½š^­5©h¤÷ú¥:ïÒj©· O�Rj—Âeá’$~ âÒráùœzS@¯ ÑˤIâ8ôz9H»¤»6ù��T�œ¡rcz²+DvhH�’ã~H‰kZR±Ñ�Æè5Và™¬ÑDŠ­Äì,9b%wç4µ§/jø“°é%Ûýjšý•æ¨Ï²j˜ù¿ŒÆ¬ó„�¤ŠtT>Q’æ¨ß²¨™Ó¯0j£Ïí	›(Uål“Þ¬ei茛¯|ÚLY­YOž ŸÒ›u­Ps•Ã䤾�Kc1TÖƒVWÑû�ôêÅobú9áF’h�t“17éÀÅ$Ñw詨ŠtA’¦ÛE:»@¬NÒ7êT›GÕcÌ$1&q²H¥â¢2�R¹sÚE'I¥E€%ÑiŽÀ÷$´UÛ<Í8è¶Y8*}»¢¥Õå7RŠ}*ž®<§äë½Þ EÅ’$}Faúëê�ŠÊ1ÞÈj-z2ØÔô:«CÏÒJƒî|‚zͬa�!g=D½@åX7ÑŒbÖ±=ã¬Ýð¿Z$`ÒIrMÎc?ê÷»­ûd*‘KP‰„ÚýhÃÍ��¨wÓ»¤Ü(tÔ”�øjÓaøQ
NXˆŸøì}|[G™ïœ#½ŽÞ�£§å#Éù%Y²üŠ�XIÛIœG�wÚ¤•mÅV#K²$ÇM[ÚÂÒ–À6¥ØÂ�KYvÙû»Ð„&ih·\è
ݲK¡°ìÞ]àæJ¡ü¶[÷~3sŽ$;NhùÁþîÝŸóÅGsæÌ™ù¾ÿ÷ÍÌ7çÌÌùyD¡WÀýaïÃÙð¼®÷ƒY’‡ôŒTZ©WÝ&xÍUzÕµ‹ôؤ×ð4Y×¾½§>¼=»y¯¡¾«©q°Ã¯1X�Óë‡�ô{î›4YãííC
ì�õzÞÐÙØ"´µF¶t!o«Ï`uXB>›ÝïªëÙ½G/ˆBssC3`•¬>ª²¡&Ô‹n"Xéê;Ÿaà×%Ì{“d«×ÛÏçÝsÆR×Y®,?œïï—6Z  àTÁö3YšŽë:›…”ò£øþ5V¶ëÔÔÒ"}Ï~4�<2è‹G:\Þ Y0r*³Çn÷˜¹ø¡®äá>Ïû
õñ†Æ‘hx´%¯7+^™ßݦB®A½¿¸Wø8¼ÆK_ëhŒî¾u¸q¸[léy6ÒQŸÀÛ{Ž�ä·«,PºÑa"¹ÖÝýs¢æTÒl©Ÿská3Â|ü1}�UôÓUÙ²Ü8‘>“æõñDzúZÕK�ÇUo}1¨ûvwÀ"˜TÑÔà¦û=âÆ›‡baµ‰È®zOx4Ü>ªÞojØaÿ‰Êº1‹îÊŽ”vµ551N£T@{Ê-í‰DÄÄæPÃHw ­׌Q�95£EÐ�d†^D‰?ëµX¼M™I'òÚ2µ‘Ó"^*æjyPœ×>ì*Ë»@ÍW6:­LÅKÖmeáe*„’ñ*à>±åÁ¬8ïÒ>œu•+ÛBášP»;Re]™@}®j�W•±9�mé´µeS¬i(Ðé4Æ`[¬W|øáæmLJGÀ�º_¹e8”h°±Jäq7¯ox“Þæñ¹�z-÷àÃ#ó;[Ã#G{,#Û�áÙU³�}ŽyZåC=h?yšeµ"£p‘9˜´´65�tæ‚�
 �¶æ}%cžŒ‚®Ð	ˆ¿ˆ_¢×ì�šG²�¹Öà£ÙVþhJ2œ©}1WyÂ"¬6·§:'�yšUªª6'öôF¿¨2zíPöNjòNgl[Üsh9–û[£UÇôÞÖº>—¯Îµ4ªWbý3_tÕù\=½Ý�Vc°#je^cÓœ
¢qt#ú_ô¹ð
Ì0
 #+3�ÚÐfÏS±6 Fïzü965Ú�«½íeö'Ã�ʇúóáJ:v;XÇØiSD­è�îQ¯“§{æÅÌ�ÓI‘ñ×€4ü˜x
µ¹2Om\ü+ß9r¥_ÚJæ…d‘&©›DÖ‹'cýʇ²P€ã†‡²Èa†"ôú±ÓYRÊI)=ÉÓY\˜”È5¹ˆ;"­Q„¢ÚÌ_9ÒÖ_Y¿qý¹X=WMÅ‚?õÕS±È­¤J´Û­ÆÀ†ýÝõ}V�¡Iü`d<ámÍo;¶ÑßÞìCÁÜp Ëu\àùg×õz[¼†u	_›×éŽÞrmn[2)¿çlm®ÈXÜcÐëœf«‹U±Ž¦¾`xs¢èbx£ßõ„œB[t¬Ë«â\ëìµÔ5Û;溆¥[ý~VémB¢É%âÚœ[f¹×É¡$Õ°Àüò�� 8<çÜæ‡[®TwõÁw<²î$¹–ëùÆÎvÕ‹¨Þš©;¿âLn�p+ìð˜8C°3F:ì?ÉVȺTËÂá©V¿¿¥µÞ�w)cŸC¿„þ¥fæÎ�s:óáJž¹3GY•‹_r´ÝWÉíµÀj�hIŠŸBÛ6‚r¤eë	á/F-¸M÷¡hÝì:ãÙ�óâÙþùÁž–x¡¥ä,>jg¤DÔÿ±‘:7Ïf7Î÷‹g³ËoX1ç¤fަSVžc(é„¡2ÿ§ ˜
˜è7‡U&�Íá5©ãÝÁM-²èîPÈ?ÛºÏåíŠF]ëvÆìU˜¾±ÑhÇÒÃ×:g]zø·©+Òõ5¹ù†õ}-ö@«]ÚW©Á‚k¿ñБÏx¦y¾Á)d€èÜßhŒÍÆ3Ùš53>®ƒFUz�›½+Ô¢öô…FÃ2îPÀ¿¥k`"&ÔŠ¸‹ôÐU"a &l�~íã �
z6i¿E;s
-ïq=¹Vç~Ä4úõ]jö[4¹Éšæ¹Ð‡dgå·O¬èa?Þ²«8¶«°5Ø<¾°s[nkã¦Æõ‘Öõa;þݹOñÚæÂDGóøÜèæü
í-Û綆G»ý¾Äh{ëH¢î(æ6Ëü†ý(p‹}®Iú¼¥S‡áwŸËŽØáÒuF땜·`^¨¸]ø�û•Z·K >W5i­ç…S·]gDEW{^CG×{Ú[ÃNÙ9£`zºRƒUÏk¬#<nèž×èü®6­­Î¾ô‡w>RA_uWOPQ¬3ºë8ñ¼ÚÏvD$Ïä¿]’Ÿì‚õÙ:¾—z^Qæ=I›�ïm®SC…Ö3®ùÄcÆ2·@�¯!2%¤â|	r:W뙬kÞ˜x,KÒRÿkhùyáÆŠé	‚C½Ò£

TÁƒÝÉC}žÀÆ[6¸;Ú#>•I°ÜÔyð±f’ef4àfJ^ñC)ÿm¹Fjó-2:!;€=È„]/½Gw©y>hrøŽRufÁ/.ÑÍn
ͺKÙêõ·0Ÿ€V7ºÝ-ó-V©æ4¼Éa1A�%Ô¶,®Ö¦�ÍÔàñ=oqÕœŠã]ấO-¯o£õa§F©Q� Å&öËÌ�bˆ®±ÿêgöžÛÅv½û"³/Y‡ô­§ûyŒ�õ<èîççu§¿`ù¦…µbc®îRudù6UÉÆXëé,ݶ±çÁ,¹×¢;M^åCkiá„%§[�ÍªŽ¬þæ¾WÊåï¾èê; r¥aèP·8©×«œZ©«÷4vlhݰu¨Eì¿!îïjöð\áTBC´>îݶ¡VÅbÛ¦o2é�ŒÀÍVS°Ùp:ÃÉîæÁ6A«7èàŠEÏ̆�?äÉn¸!Àë	îã(NýÎ'Q¨¾kÝl3ñõùæGÝü£¶|Û‡Õ´�ºL–/]úÅ—¿MöpÔçmÍ�fݶ¤�4kË«Û>œU—+¯D嵔ą^éa.óBñˆÇ1O¨t‚?`ºeïNžçõ;TÒøâ}pÆ¿Olõ4©”*ŽU˜¯Q)o:Ê4aóœ†S*áðâþŸXܤä­Ä¦¿ÌÞÅÙaTA÷QÕ†hu®Ã½‰%¤U´œñLe5$mgG{“”@/ž©@
ÉãFÕµ
+ïq=¹Vç~Ä4úõ]jö[4¹Éšæ¹Ð‡dgå·O¬èa?Þ²«8¶«°5Ø<¾°s[nkã¦Æõ‘Öõa;þݹOñÚæÂDGóøÜèæü
í-Û綆G»ý¾Äh{ëH¢î(æ6Ëü†ý(p‹}®Iú¼¥S‡áwŸËŽØáÒuF땜·`^¨¸]ø�û•Z·K >W5i­ç…S·]gDEW{^CG×{Ú[ÃNÙ9£`zºRƒUÏk¬#<nèž×èü®6­­Î¾ô‡w>RA_uWOPQ¬3ºë8ñ¼ÚÏvD$Ïä¿]’Ÿì‚õÙ:¾—z^Qæ=I›�ïm®SC…Ö3®ùÄcÆ2·@�¯!2%¤â|	r:W뙬kÞ˜x,KÒRÿkhùyáÆŠé	‚C½Ò£
TÁƒÝÉC}žÀÆ[6¸;Ú#>•I°ÜÔyð±f’ef4àfJ^ñC)ÿm¹Fjó-2:!;€=È„]/½Gw©y>hrøŽRufÁ/.ÑÍn
ͺKÙêõ·0Ÿ€V7ºÝ-ó-V©æ4¼Éa1A�%Ô¶,®Ö¦�ÍÔàñ=oqÕœŠã]ấO-¯o£õa§F©Q� Å&öËÌ�bˆ®±ÿêgöžÛÅv½û"³/Y‡ô­§ûyŒ�õ<èîççu§¿`ù¦…µbc®îRudù6UÉÆXëé,ݶ±çÁ,¹×¢;M^åCkiá„%§[�ÍªŽ¬þæ¾WÊåï¾èê; r¥aèP·8©×«œZ©«÷4vlhݰu¨Eì¿!îïjöð\áTBC´>îݶ¡VÅbÛ¦o2é�ŒÀÍVS°Ùp:ÃÉîæÁ6A«7èàŠEÏ̆�?äÉn¸!Àë	îã(NýÎ'Q¨¾kÝl3ñõùæGÝü£¶|Û‡Õ´�ºL–/]úÅ—¿MöpÔçmÍ�fݶ¤�4kË«Û>œU—+¯D嵔ą^éa.óBñˆÇ1O¨t‚?`ºeïNžçõ;TÒøâ}pÆ¿Olõ4©”*ŽU˜¯Q)o:Ê4aóœ†S*áðâþŸXܤä­Ä¦¿ÌÞÅÙaTA÷QÕ†hu®Ã½‰%¤U´œñLe5$mgG{“”@/ž©@
ÉãFÕµ
 Ëž²w¹CV§�ëLw
ÜTf¯Ýî6«zûc-rWS0ÅI×ÁŒ«håU-}utk´ƒÉÊç S=û?Áƒ¶£fi¯+k§÷œ³4ð,'yµ<C	hɸ£Uöºª\§$yègí*ºÿ~2ÔÔ´ü![o÷š4
 åÓ
 �=èó…:Å3§5ûì‚ϪR<È*ÞÃjÌ^Î~–ÞdX2jðJ#
¯a^Ñ[ôЖæf›�ù¸Z£R€aèé÷�QT¢=c�9‡\¨zmÄ„œ¼þ"óÇç>Êë.2O%MHñ-…ÏÕ,€l{õå+>=Ùõª6}ÍC0F�·Þ“vàNôÚš›$‘�ÒÇ+Ôjv7ǘE�ËoÓ°·½C¡µú�hV}ú*Æ$zÜu�¢\RhL^‡§ÞĪ>ÆþL«W+Y0Å瞃*J&1ú%�"UjîÙ¿Vâ1°Ú }kÆBÇ�çcô“�Îy‘9u> ˆZÁ~‘y_R¯|‡ÖTÐ'$§gùöe´…ÒÕ¤rUqI›�öö*ªOøjöóÚ©hkuÖ™åŽÕŒÑïqù,ZåCì}¬ÊRçrùMÇš¼RcÐ�e“]¯dÕz~i�ePëÀx›{Hñó<w;8
@@ -66163,7 +66163,7 @@ J
 �Òùÿч>0oaÖÂdí}(ñÇüõõ‰enšØ2ç�¹c®bËœÍÏ-s#?K-Àá9”Ô\,5K]Õ«$]2–º³ì鎄6ø§Ç¬�˜àxYDT`\rpl¼îô„(̪W	3TÖç(!ÎþoLâ/û/‹^&O†\|÷k/ûër”~ô þ&½x}‹W²‚î¥æ„ðáYëÞ^�g³nþÅdvvu¨¿®¶EgMÜ…¨E_�Y>ež{|ÜŽ-7ƒ�7*Î�š–=™ƒ»w3{õ¼‹
 NŠf6Ë<šÊ¾D>°�еñ±ù°âËû•æä˜Þo
9mgž”¢Ö!3[v¢åoF’´N,•>²u•½±mú§éºkµ,µ"'ñƒUѓׯ{¸èmÕʇÑwºÆ6U½Š±çQ©F[Ó펥yš¹ë]˜³ÞÐ3¯ªÔèËßo?©sÎoÓ>¾)³Žy¢n÷žG{¯ß”˘`?‰§?KCaaù[�Î;Úc8ë÷úfN�Ž)9�PcE¥mCµ4-„–2.a¬ª
 —w÷V.TŒ‘›o_2û‘•Vè–š©Aé5JÁƹéwott¾\´AãÞÙâܦ—Sƒ­øIü¶Ä‚6‡v�Vž¨"{,0pû­ºa”cw­O
Ð|y'TïEîû¢)ëš‘«E•¾¹Å'Gé<�J2êdùÆbKû9ÊFu7o.HIþÉq­ÊÎÏãÔï6u�<à”{ÿyb’‹g&yÉòNß®V¨MO|\ú©kÙs–àYÄØÒ.¬�â¼âîÝĨàUæò'ººø/J¨¯šòÊšYnùy{ãÖ©ÕE}fMtu´¯²9½q¶Sàù%¹ º2*jÆi�xÉ÷³\!¥Rv‘PK]ûß^¸~üq`ßÞHaj-|º�˜Aæ²Å7^€¢/ÇâÀÄkå0µ¾)\mçåƒß¿�QyÎ\Ú¼¸X9·µišu;"v	›;ó*Ôhþð;ˆ^þgCŠF
-Ôÿrf{õ~”óÝÚL¢ˆw¤·Æ­°%¡–æ{C”TêNmxt1Ç/\e·Ã’ù·FÝ1�B8§nšïsÞ7-á-Ï1äZe¦Ö½4�8ýµ»×úFæRa\_l.Ý¥ïü®bÉu§£ÞŸò¶ßݤúNYò›öËë¶ÏÆ×6¶Ü[έ—:¿qo©©Â}Å=Â�h©ÎÅ|ã5óOJ™ïýķçhוÍzãZÇÎãMíƒ]owÞ4þ .­}!ü²Ñ§/Òrw^›Q°3ÇûÚæ–z«7-HvŠZØ SxÃp®ºlZcñ‡ú¶åèî×Ë­˜zýDÞü@E¦Áb2‚uDh:ÌÛ jаú¸ÍÓàgCîŸóðûªòõòUáÐ×EB’&Üž¨÷وƒä h áš+þkâ?ÞhóÉ©˜¼¸K²ú6Qè¼·†Ê•">86ÀLô
ô�

'ÿÉ#OüAN<ùQ”LWi{äuiMtø=³ï™p_)¨\Sæ^Ý9úm]g¤ë„'‡;î{¥Ñ–©ùßOU_–5l�Oª­F{kHå[òcÆYÞ�¯)S§n×âPÑa^®¤˜·¦aÊ„€¼ÎwY$õW§WçiR¶ŒŠ¡(„zßxc|4b€2æj‘:×yÊv©�OöfíÙ¹èÚ•ÈÒü£ghëÖ°Þ�™6ËŠwPR¡lüÊc²¦NZÏœ ‘Û×lã†Y(‘>’t–šfÈËU”‡vþÑEÕÞ0Fÿ‚.ÜæQi•$ƒšüèýIg¾??ÐlfÖ¡D»âvžëõtv¾ƒlvÇ¡
šÆþV×gN›ÊW^eíŽ;eÁïÞ‘l:Õ²žVƉâ†,ˆC�ÿ�î Z
+Ôÿrf{õ~”óÝÚL¢ˆw¤·Æ­°%¡–æ{C”TêNmxt1Ç/\e·Ã’ù·FÝ1�B8§nšïsÞ7-á-Ï1äZe¦Ö½4�8ýµ»×úFæRa\_l.Ý¥ïü®bÉu§£ÞŸò¶ßݤúNYò›öËë¶ÏÆ×6¶Ü[έ—:¿qo©©Â}Å=Â�h©ÎÅ|ã5óOJ™ïýķçhוÍzãZÇÎãMíƒ]owÞ4þ .­}!ü²Ñ§/Òrw^›Q°3ÇûÚæ–z«7-HvŠZØ SxÃp®ºlZcñ‡ú¶åèî×Ë­˜zýDÞü@E¦Áb2‚uDh:ÌÛ jаú¸ÍÓàgCîŸóðûªòõòUáÐ×EB’&Üž¨÷وƒä h áš+þkâ?ÞhóÉ©˜¼¸K²ú6Qè¼·†Ê•">86ÀLô
ô�
'ÿÉ#OüAN<ùQ”LWi{äuiMtø=³ï™p_)¨\Sæ^Ý9úm]g¤ë„'‡;î{¥Ñ–©ùßOU_–5l�Oª­F{kHå[òcÆYÞ�¯)S§n×âPÑa^®¤˜·¦aÊ„€¼ÎwY$õW§WçiR¶ŒŠ¡(„zßxc|4b€2æj‘:×yÊv©�OöfíÙ¹èÚ•ÈÒü£ghëÖ°Þ�™6ËŠwPR¡lüÊc²¦NZÏœ ‘Û×lã†Y(‘>’t–šfÈËU”‡vþÑEÕÞ0Fÿ‚.ÜæQi•$ƒšüèýIg¾??ÐlfÖ¡D»âvžëõtv¾ƒlvÇ¡
šÆþV×gN›ÊW^eíŽ;eÁïÞ‘l:Õ²žVƉâ†,ˆC�ÿ�î Z
 endstream
 endobj
 6124 0 obj

+ 2 - 1
dev/resources/iso-normes/vat_number_names.txt → dev/resources/iso-normes/tax/vat_number_names.txt

@@ -4,4 +4,5 @@ terms
 (en) VAT = Value Added Tax
 (fr) TVA = Taxe sur la Valeur Ajouté
 (es) NIF / CIF
-(de) USt / MwSt
+(de) USt / MwSt = UmsatzSteuer / Mehrwertsteuer
+(it) IVA 

+ 10 - 0
dev/resources/iso-normes/tax/world_tax_rates.txt

@@ -0,0 +1,10 @@
+VAT Rates
+---------
+
+https://www.taxrates.cc/index.html
+https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates
+
+For India: VAT=IGST / CGST=Localtax1 / SGST=Localtax2
+see: 
+  https://cleartax.in/s/what-is-sgst-cgst-igst
+  https://www.mastersindia.co/blog/what-is-cgst-sgst-igst-and-ugst/

+ 0 - 8
dev/resources/iso-normes/world_tax_rates.txt

@@ -1,8 +0,0 @@
-VAT Rates
----------
-
-http://www.taxrates.cc/index.html
-https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates
-
-For India: VAT=IGST/CGST=Localtax1/SGST=Localtax2:  https://cleartax.in/s/what-is-sgst-cgst-igst
-

+ 10 - 3
dev/setup/apache/virtualhost

@@ -3,7 +3,14 @@
 	#php_admin_value mail.force_extra_parameters "-f postmaster@mydomain.com"
 	php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f postmaster@mydomain.com"
 	php_admin_value open_basedir /tmp/:/home/.../htdocs:/home/.../dolibarr_documents:
+
 	
+	# Add this to use a custom apparmor profile when using apache php handler
+    <IfModule mod_apparmor.c>
+    AADefaultHatName sellyoursaas-instances
+    </IfModule>
+
+    
 	ServerName myvirtualalias
 	ServerAlias myvirtualalias
 	
@@ -82,9 +89,9 @@
 	#   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
 	#   If both key and certificate are stored in the same file, only the
 	#   SSLCertificateFile directive is needed.
-	SSLCertificateFile    /etc/letsencrypt/live/www.mydomain.com/cert.pem
-	SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
-	SSLCertificateChainFile /etc/letsencrypt/live/www.mydomain.com/chain.pem
+	#SSLCertificateFile    /etc/letsencrypt/live/www.mydomain.com/cert.pem
+	#SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
+	#SSLCertificateChainFile /etc/letsencrypt/live/www.mydomain.com/chain.pem
 	
 	#RewriteEngine   on
 	#RewriteCond     %{SERVER_PORT} ^80$

+ 3 - 2
dev/setup/codesniffer/ruleset.xml

@@ -15,9 +15,10 @@
 	<exclude-pattern type="relative">htdocs/install/doctemplates/websites</exclude-pattern>
 	<exclude-pattern type="relative">htdocs/conf.php</exclude-pattern>
 	<exclude-pattern type="relative">*/nltechno*</exclude-pattern>
-	<exclude-pattern type="relative">*/htdocs/includes</exclude-pattern>
 	<exclude-pattern type="relative">source</exclude-pattern>
 	<exclude-pattern type="relative">.git</exclude-pattern>
+	<exclude-pattern>htdocs/includes</exclude-pattern>
+	<exclude-pattern>htdocs/install/doctemplates/websites</exclude-pattern>
 
 	<!-- List of all tests -->
 
@@ -135,7 +136,7 @@
     <rule ref="Generic.Metrics.CyclomaticComplexity">
         <properties>
             <property name="complexity" value="250" />
-            <property name="absoluteComplexity" value="300" />
+            <property name="absoluteComplexity" value="400" />
         </properties>
     </rule>
     <rule ref="Generic.Metrics.NestingLevel">

+ 19 - 0
dev/setup/fail2ban/filter.d/web-accesslog-limit403.conf

@@ -0,0 +1,19 @@
+# Fail2Ban configuration file
+#
+# Regexp to detect forbidden access on pages (public or not) so we can add mitigation on IP making too much 
+# access to your a Dolibarr instance.
+
+
+[Definition]
+
+# To test, you can inject this example into log
+# echo `myvirtualhost.com:443 1.2.3.4 - - [15/Dec/2022:09:57:47 +0000] "GET /public/abc" 403 123 "-" "Mozilla" >> /var/log/apache2/access.log
+#
+# then 
+# fail2ban-client status web-accesslog-limit403 
+#
+# To test rule file on a existing log file
+# fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/web-accesslog-limit403.conf
+
+failregex = <HOST> - - .*HTTP/[0-9]+(.[0-9]+)?" 403
+ignoreregex =

+ 19 - 0
dev/setup/fail2ban/filter.d/web-dolibarr-limitpublic.conf

@@ -0,0 +1,19 @@
+# Fail2Ban configuration file
+#
+# Regexp to detect access on public pages so we can add mitigation on IP making too much 
+# access to your a Dolibarr instance.
+
+
+[Definition]
+
+# To test, you can inject this example into log
+# echo `date +'%Y-%m-%d %H:%M:%S'`" INFO    1.2.3.4    --- Access to GET /public/clicktodial/cidlookup.php" >> /mypath/documents/dolibarr.log
+#
+# then 
+# fail2ban-client status web-dolibarr-limitpublic 
+#
+# To test rule file on a existing log file
+# fail2ban-regex /mypath/documents/dolibarr.log /etc/fail2ban/filter.d/web-dolibarr-limitpublic.conf
+
+failregex = ^ [A-Z\s]+ <HOST>\s+--- Access to .*/public/
+ignoreregex =

+ 3 - 4
dev/setup/fail2ban/filter.d/web-dolibarr-rulesbruteforce.conf

@@ -1,8 +1,7 @@
 # Fail2Ban configuration file
 #
-# Regexp to catch known spambots and software alike. Please verify
-# that it is your intent to block IPs which were driven by
-# above mentioned bots.
+# Regexp to detect try to check a couple login/password so we can add mitigation 
+# on IP making too much tries. 
 
 
 [Definition]
@@ -11,7 +10,7 @@
 # echo `date +'%Y-%m-%d %H:%M:%S'`" INFO    1.2.3.4         functions_dolibarr::check_user_password_abcd Authentication KO" >> /mypath/documents/dolibarr.log
 #
 # then 
-# fail2ban-client status web-dol-bruteforce 
+# fail2ban-client status web-dolibarr-rulesbruteforce 
 #
 # To test rule file on a existing log file
 # fail2ban-regex /mypath/documents/dolibarr.log /etc/fail2ban/filter.d/web-dolibarr-rulesbruteforce.conf

+ 3 - 4
dev/setup/fail2ban/filter.d/web-dolibarr-rulespassforgotten.conf

@@ -1,8 +1,7 @@
 # Fail2Ban configuration file
 #
-# Regexp to catch known spambots and software alike. Please verify
-# that it is your intent to block IPs which were driven by
-# above mentioned bots.
+# Regexp to detect access on passwordforgotten.php page so we can add mitigation on IP making too much 
+# access to this Dolibarr page.
 
 
 [Definition]
@@ -11,7 +10,7 @@
 # echo `date +'%Y-%m-%d %H:%M:%S'`" INFO    1.2.3.4    --- Access to GET /passwordforgotten.php - action=buildnewpassword, massaction=" >> /mypath/documents/dolibarr.log
 #
 # then 
-# fail2ban-client status web-dol-passforgotten 
+# fail2ban-client status web-dolibarr-rulespassforgotten 
 #
 # To test rule file on a existing log file
 # fail2ban-regex /mypath/documents/dolibarr.log /etc/fail2ban/filter.d/web-dolibarr-rulespassforgotten.conf

+ 16 - 2
dev/setup/fail2ban/jail.local

@@ -8,21 +8,35 @@
 enabled = true
 port    = http,https
 filter  = web-dolibarr-rulespassforgotten
-logpath = >> /mypath/documents/documents/dolibarr.log
+logpath = /mypath/documents/documents/dolibarr.log
 action  = %(action_mw)s
 bantime  = 4320000   ; 50 days
 findtime = 86400     ; 1 day
 maxretry = 10
 
+
 [web-dol-bruteforce]
 
 ; rule against bruteforce hacking (login + api)
 enabled = true
 port    = http,https
 filter  = web-dolibarr-rulesbruteforce
-logpath = >> /mypath/documents/documents/dolibarr.log
+logpath = /mypath/documents/documents/dolibarr.log
 action  = %(action_mw)s
 bantime  = 86400     ; 1 day
 findtime = 3600      ; 1 hour
 maxretry = 10
 
+
+[web-dol-limitpublic]
+
+; rule to add rate limit on some public pages
+enabled = true
+port    = http,https
+filter  = web-dolibarr-limitpublic
+logpath = /mypath/documents/documents/dolibarr.log
+action  = %(action_mw)s
+bantime  = 86400     ; 1 day
+findtime = 86400     ; 1 day
+maxretry = 500
+

+ 3 - 3
dev/tools/dolibarr-postgres2mysql.php

@@ -487,7 +487,7 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
 			$pkey = $line;
 
 			$linenumber ++;
-			if (! empty($lines[$linenumber])) {
+			if (!empty($lines[$linenumber])) {
 				$line = $lines[$linenumber];
 			} else {
 				$line = '';
@@ -517,7 +517,7 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
 		if (substr($line, 0, 12) == "CREATE INDEX") {
 			$matches = array();
 			preg_match('/CREATE INDEX "?([a-zA-Z0-9_]*)"? ON "?([a-zA-Z0-9_\.]*)"? USING btree \((.*)\);/', $line, $matches);
-			if (! empty($matches[3])) {
+			if (!empty($matches[3])) {
 				$indexname = $matches[1];
 				$tablename = str_replace('public.', '', $matches[2]);
 				$columns = $matches[3];
@@ -529,7 +529,7 @@ function pg2mysql(&$input, &$arrayofprimaryalreadyintabledef, $header = true)
 		if (substr($line, 0, 19) == "CREATE UNIQUE INDEX") {
 			$matches = array();
 			preg_match('/CREATE UNIQUE INDEX "?([a-zA-Z0-9_]*)"? ON "?([a-zA-Z0-9_\.]*)"? USING btree \((.*)\);/', $line, $matches);
-			if (! empty($matches[3])) {
+			if (!empty($matches[3])) {
 				$indexname = $matches[1];
 				$tablename = str_replace('public.', '', $matches[2]);
 				$columns = str_replace('"', '', $matches[3]);

+ 4 - 1
dev/tools/github_authors_and_commits_peryear.sh

@@ -1,5 +1,8 @@
 #!/bin/sh
-
+#
+# Count number of different contributors and number of commits for a given year.
+#
+ 
 if [ "x$1" = "x" ]; then
 	echo "Usage: $0 YEAR"
 	exit

+ 6 - 2
dev/tools/github_commits_perversion.sh

@@ -1,6 +1,10 @@
 #/bin/bash
-Releases=("3.8" "3.9" "4.0" "5.0" "6.0" " 7.0" "develop")
-Dates=("2013-01-01", "2014-01-01", "2015-01-01", "2016-07-01", "2017-02-01", "2017-07-01", "2018-02-01", "2050-01-01")
+#
+# Count number of commits per user and per versions (using date for version detection)
+#
+
+Releases=("16.0" "develop")
+Dates=("2022-01-01" "2022-08-31" "2050-01-01")
 let "counter = 1"
 
 for i in "${Releases[@]}"

+ 16 - 0
dev/tools/github_lines_perusers.sh

@@ -0,0 +1,16 @@
+#/bin/bash
+#
+# Count number of lines modified per user for a given branch
+#
+
+if [ "x$2" = "x" ]; then
+	echo "Usage: $0  tagnamestart|START  tagnameend|HEAD"
+	exit
+fi
+
+
+echo "git log $1..$2 --shortstat | grep ... | perl ... > /tmp/github_lines_perusers.tmp"
+git log $1..$2 --shortstat | grep -e 'Author:' -e 'Date:' -e ' changed' -e ' insertion' -e ' deletion' | perl -n -e '/^(.*)$/; $line = $1; if ($line =~ /(changed|insertion|deletion)/) { $line =~ s/[^0-9\s]//g; my @arr=split /\s+/, $line; $tot=0; for (1..@arr) { $tot += $arr[$_]; }; print $tot."\n"; } else { print $line."\n"; };' > /tmp/github_lines_perusers.tmp
+
+cat /tmp/github_lines_perusers.tmp | awk 'BEGIN { FS="\n"; print "user and nb of lines"; lastuser=""; } { if ($1 ~ /Author:/) { lastuser=$1 }; if ($1 ~ /^[0-9]+$/) { aaa[lastuser]+=$1; } } END { for (var in aaa) print var," ",aaa[var]; } '
+

+ 4 - 2
dev/tools/optimize_images.sh

@@ -121,9 +121,11 @@ main()
 
 	# Search of all jpg/jpeg/png in $INPUT
 	# We remove images from $OUTPUT if $OUTPUT is a subdirectory of $INPUT
-	echo "Scan $INPUT to find images with find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/' | grep -v $OUTPUT"
+	echo "Scan $INPUT to find images with find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/' | grep -v '/documents/' | grep -v $OUTPUT"
+	#echo "Scan $INPUT to find images with find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/'"
 	IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/' | grep -v '/documents/' | grep -v $OUTPUT)
-
+	#IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/')
+	
 	if [ "$QUIET" == "0" ]; then
 		echo --- Optimizing $INPUT ---
 		echo

+ 0 - 1
dev/tools/test/namespacemig/main.inc.php

@@ -1,5 +1,4 @@
 <?php
-
 /*spl_autoload_register(function ($class_name) {
 	//var_dump('class='.$class_name);
 	require $class_name;

+ 3 - 3
dev/translation/autotranslator.class.php

@@ -309,11 +309,11 @@ class autoTranslator
 	{
 		// We want to be sure that src_lang and dest_lang are using 2 chars only
 		$tmp=explode('_', $src_lang);
-		if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) {
+		if (!empty($tmp[1]) && $tmp[0] == $tmp[1]) {
 			$src_lang=$tmp[0];
 		}
 		$tmp=explode('_', $dest_lang);
-		if (! empty($tmp[1]) && $tmp[0] == $tmp[1]) {
+		if (!empty($tmp[1]) && $tmp[0] == $tmp[1]) {
 			$dest_lang=$tmp[0];
 		}
 
@@ -349,7 +349,7 @@ class autoTranslator
 		// now, process the JSON string
 		$json = json_decode($body, true);
 
-		if ((! empty($json['responseStatus']) && $json['responseStatus'] != 200)
+		if ((!empty($json['responseStatus']) && $json['responseStatus'] != 200)
 		|| count($json['data']['translations']) == 0) {
 			print "Error: ".$json['responseStatus']." ".$url."\n";
 			return false;

+ 2 - 2
dev/translation/sanity_check_en_langfiles.php

@@ -221,7 +221,7 @@ foreach ($dups as $string => $pages) {
 		// Loop on each line keword was found into file.
 		$listoffilesforthisentry=array();
 		foreach ($lines as $line => $translatedvalue) {
-			if (! empty($listoffilesforthisentry[$file])) {
+			if (!empty($listoffilesforthisentry[$file])) {
 				$duplicateinsamefile=1;
 			}
 			$listoffilesforthisentry[$file]=1;
@@ -300,7 +300,7 @@ if ($web) {
 
 // STEP 2 - Search key not used
 
-if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true')) {
+if ((!empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true')) {
 	print "***** Strings in en_US that are never used:\n";
 
 	$unused=array();

+ 2 - 2
dev/translation/strip_language_file.php

@@ -303,8 +303,8 @@ foreach ($filesToProcess as $fileToProcess) {
 
 			// String exists in both files and value into alternative language differs from main language but also from english files
 			// so we keep it.
-			if ((! empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key]
-				&& ! empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key])
+			if ((!empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key]
+				&& !empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key])
 				|| in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key)
 				) {
 				//print "Key $key differs (aSecondary=".$aSecondary[$key].", aPrimary=".$aPrimary[$key].", aEnglish=".$aEnglish[$key].") so we add it into new secondary language (line: $cnt).\n";

+ 1 - 1
dev/translation/txpull.sh

@@ -36,7 +36,7 @@ then
 	    echo "tx pull -a"
 	    tx pull -a
 	    
-	    echo "Remove some language directories (not enough translated)"
+	    echo "Remove some language directories (not enough translated) like ach, br_FR, en, frp, fy_NL, ..."
 	    rm -fr htdocs/langs/ach
 	    rm -fr htdocs/langs/br_FR
 	    rm -fr htdocs/langs/en

+ 77 - 29
htdocs/accountancy/admin/account.php

@@ -23,6 +23,7 @@
  * \brief		List accounting account
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
@@ -30,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
 
 // Load translation files required by the page
-$langs->loadLangs(array("compta", "bills", "admin", "accountancy", "salaries"));
+$langs->loadLangs(array('accountancy', 'admin', 'bills', 'compta', 'salaries'));
 
 $mesg = '';
 $action = GETPOST('action', 'aZ09');
@@ -46,20 +47,21 @@ $search_label = GETPOST('search_label', 'alpha');
 $search_labelshort = GETPOST('search_labelshort', 'alpha');
 $search_accountparent = GETPOST('search_accountparent', 'alpha');
 $search_pcgtype = GETPOST('search_pcgtype', 'alpha');
+$search_import_key = GETPOST('search_import_key', 'alpha');
 $toselect = GETPOST('toselect', 'array');
 $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
 $confirm = GETPOST('confirm', 'alpha');
 
 $chartofaccounts = GETPOST('chartofaccounts', 'int');
 
-$permissiontoadd = !empty($user->rights->accounting->chartofaccount);
-$permissiontodelete = !empty($user->rights->accounting->chartofaccount);
+$permissiontoadd = $user->hasRight('accounting', 'chartofaccount');
+$permissiontodelete = $user->hasRight('accounting', 'chartofaccount');
 
 // Security check
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 
@@ -82,21 +84,27 @@ if (!$sortorder) {
 }
 
 $arrayfields = array(
-	'aa.account_number'=>array('label'=>$langs->trans("AccountNumber"), 'checked'=>1),
-	'aa.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
-	'aa.labelshort'=>array('label'=>$langs->trans("LabelToShow"), 'checked'=>1),
-	'aa.account_parent'=>array('label'=>$langs->trans("Accountparent"), 'checked'=>1),
-	'aa.pcg_type'=>array('label'=>$langs->trans("Pcgtype"), 'checked'=>1, 'help'=>'PcgtypeDesc'),
-	'aa.reconcilable'=>array('label'=>$langs->trans("Reconcilable"), 'checked'=>1),
-	'aa.active'=>array('label'=>$langs->trans("Activated"), 'checked'=>1)
+	'aa.account_number'=>array('label'=>"AccountNumber", 'checked'=>1),
+	'aa.label'=>array('label'=>"Label", 'checked'=>1),
+	'aa.labelshort'=>array('label'=>"LabelToShow", 'checked'=>1),
+	'aa.account_parent'=>array('label'=>"Accountparent", 'checked'=>1),
+	'aa.pcg_type'=>array('label'=>"Pcgtype", 'checked'=>1, 'help'=>'PcgtypeDesc'),
+	'categories'=>array('label'=>"AccountingCategories", 'checked'=>-1, 'help'=>'AccountingCategoriesDesc'),
+	'aa.reconcilable'=>array('label'=>"Reconcilable", 'checked'=>1),
+	'aa.active'=>array('label'=>"Activated", 'checked'=>1),
+	'aa.import_key'=>array('label'=>"ImportId", 'checked'=>-1)
 );
 
 if ($conf->global->MAIN_FEATURES_LEVEL < 2) {
+	unset($arrayfields['categories']);
 	unset($arrayfields['aa.reconcilable']);
 }
 
 $accounting = new AccountingAccount($db);
 
+// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array
+$hookmanager->initHooks(array('accountancyadminaccount'));
+
 
 /*
  * Actions
@@ -109,8 +117,8 @@ if (!GETPOST('confirmmassaction', 'alpha')) {
 	$massaction = '';
 }
 
-$parameters = array();
-$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been monowraponalldified by some hooks
+$parameters = array('chartofaccounts' => $chartofaccounts, 'permissiontoadd' => $permissiontoadd, 'permissiontodelete' => $permissiontodelete);
+$reshook = $hookmanager->executeHooks('doActions', $parameters, $accounting, $action); // Note that $action and $object may have been monowraponalldified by some hooks
 if ($reshook < 0) {
 	setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
 }
@@ -222,15 +230,12 @@ if ($action == 'delete') {
 
 $pcgver = $conf->global->CHARTOFACCOUNTS;
 
-$sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.account_number, aa.account_parent , aa.label, aa.labelshort, aa.reconcilable, aa.active, ";
+$sql = "SELECT aa.rowid, aa.fk_pcg_version, aa.pcg_type, aa.account_number, aa.account_parent, aa.label, aa.labelshort, aa.fk_accounting_category,";
+$sql .= " aa.reconcilable, aa.active, aa.import_key,";
 $sql .= " a2.rowid as rowid2, a2.label as label2, a2.account_number as account_number2";
 $sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
-$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version AND aa.entity = ".$conf->entity;
-if ($db->type == 'pgsql') {
-	$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity;
-} else {
-	$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".$conf->entity;
-}
+$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version AND aa.entity = ".((int) $conf->entity);
+$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as a2 ON a2.rowid = aa.account_parent AND a2.entity = ".((int) $conf->entity);
 $sql .= " WHERE asy.rowid = ".((int) $pcgver);
 //print $sql;
 if (strlen(trim($search_account))) {
@@ -294,7 +299,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
 }
 
 // List of mass actions available
-if ($user->rights->accounting->chartofaccount) {
+if ($user->hasRight('accounting', 'chartofaccount')) {
 	$arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete");
 }
 if (in_array($massaction, array('presend', 'predelete', 'closed'))) {
@@ -333,6 +338,9 @@ if ($resql) {
 	if ($search_pcgtype) {
 		$param .= '&search_pcgtype='.urlencode($search_pcgtype);
 	}
+	if ($optioncss != '') {
+		$param .= '&search_import_key='.urlencode($search_import_key);
+	}
 	if ($optioncss != '') {
 		$param .= '&optioncss='.urlencode($optioncss);
 	}
@@ -395,9 +403,14 @@ if ($resql) {
 	}
 	print "</select>";
 	print ajax_combobox("chartofaccounts");
-	print '<input type="'.(empty($conf->use_javascript_ajax) ? 'submit' : 'button').'" class="button button-edit" name="change_chart" id="change_chart" value="'.dol_escape_htmltag($langs->trans("ChangeAndLoad")).'">';
+	print '<input type="'.(empty($conf->use_javascript_ajax) ? 'submit' : 'button').'" class="button button-edit small" name="change_chart" id="change_chart" value="'.dol_escape_htmltag($langs->trans("ChangeAndLoad")).'">';
 
 	print '<br>';
+
+	$parameters = array('chartofaccounts' => $chartofaccounts, 'permissiontoadd' => $permissiontoadd, 'permissiontodelete' => $permissiontodelete);
+	$reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $accounting, $action); // Note that $action and $object may have been modified by hook
+	print $hookmanager->resPrint;
+
 	print '<br>';
 
 	$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
@@ -427,11 +440,20 @@ if ($resql) {
 	}
 	if (!empty($arrayfields['aa.account_parent']['checked'])) {
 		print '<td class="liste_titre">';
-		print $formaccounting->select_account($search_accountparent, 'search_accountparent', 2);
+		print $formaccounting->select_account($search_accountparent, 'search_accountparent', 2, array(), 0, 0, 'maxwidth150');
 		print '</td>';
 	}
+	// Predefined group
 	if (!empty($arrayfields['aa.pcg_type']['checked'])) {
-		print '<td class="liste_titre"><input type="text" class="flat width100" name="search_pcgtype" value="'.$search_pcgtype.'"></td>';
+		print '<td class="liste_titre"><input type="text" class="flat width75" name="search_pcgtype" value="'.$search_pcgtype.'"></td>';
+	}
+	// Custom groups
+	if (!empty($arrayfields['categories']['checked'])) {
+		print '<td class="liste_titre"></td>';
+	}
+	// Import key
+	if (!empty($arrayfields['aa.import_key']['checked'])) {
+		print '<td class="liste_titre"><input type="text" class="flat width75" name="search_import_key" value="'.$search_import_key.'"></td>';
 	}
 	if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
 		if (!empty($arrayfields['aa.reconcilable']['checked'])) {
@@ -462,6 +484,12 @@ if ($resql) {
 	if (!empty($arrayfields['aa.pcg_type']['checked'])) {
 		print_liste_field_titre($arrayfields['aa.pcg_type']['label'], $_SERVER["PHP_SELF"], 'aa.pcg_type,aa.account_number', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.pcg_type']['help'], 1);
 	}
+	if (!empty($arrayfields['categories']['checked'])) {
+		print_liste_field_titre($arrayfields['categories']['label'], $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, '', $arrayfields['categories']['help'], 1);
+	}
+	if (!empty($arrayfields['aa.import_key']['checked'])) {
+		print_liste_field_titre($arrayfields['aa.import_key']['label'], $_SERVER["PHP_SELF"], 'aa.import_key', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.import_key']['help'], 1);
+	}
 	if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
 		if (!empty($arrayfields['aa.reconcilable']['checked'])) {
 			print_liste_field_titre($arrayfields['aa.reconcilable']['label'], $_SERVER["PHP_SELF"], 'aa.reconcilable', '', $param, '', $sortfield, $sortorder);
@@ -496,7 +524,7 @@ if ($resql) {
 		// Account label
 		if (!empty($arrayfields['aa.label']['checked'])) {
 			print "<td>";
-			print $obj->label;
+			print dol_escape_htmltag($obj->label);
 			print "</td>\n";
 			if (!$i) {
 				$totalarray['nbfield']++;
@@ -506,7 +534,7 @@ if ($resql) {
 		// Account label to show (label short)
 		if (!empty($arrayfields['aa.labelshort']['checked'])) {
 			print "<td>";
-			print $obj->labelshort;
+			print dol_escape_htmltag($obj->labelshort);
 			print "</td>\n";
 			if (!$i) {
 				$totalarray['nbfield']++;
@@ -540,10 +568,30 @@ if ($resql) {
 			}
 		}
 
-		// Chart of accounts type
+		// Predefined group (deprecated)
 		if (!empty($arrayfields['aa.pcg_type']['checked'])) {
 			print "<td>";
-			print $obj->pcg_type;
+			print dol_escape_htmltag($obj->pcg_type);
+			print "</td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
+		// Custom accounts
+		if (!empty($arrayfields['categories']['checked'])) {
+			print "<td>";
+			// TODO Get all custom groups labels the account is in
+			print dol_escape_htmltag($obj->fk_accounting_category);
+			print "</td>\n";
+			if (!$i) {
+				$totalarray['nbfield']++;
+			}
+		}
+
+		// Import id
+		if (!empty($arrayfields['aa.import_key']['checked'])) {
+			print "<td>";
+			print dol_escape_htmltag($obj->import_key);
 			print "</td>\n";
 			if (!$i) {
 				$totalarray['nbfield']++;
@@ -590,7 +638,7 @@ if ($resql) {
 
 		// Action
 		print '<td class="center nowraponall">';
-		if ($user->rights->accounting->chartofaccount) {
+		if ($user->hasRight('accounting', 'chartofaccount')) {
 			print '<a class="editfielda" href="./card.php?action=update&token='.newToken().'&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?'.$param).'">';
 			print img_edit();
 			print '</a>';

+ 3 - 2
htdocs/accountancy/admin/accountmodel.php

@@ -32,6 +32,7 @@
  *		\brief      Page to administer model of chart of accounts
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
@@ -44,7 +45,7 @@ if (isModEnabled('accounting')) {
 }
 
 // Load translation files required by the page
-$langs->loadLangs(array("errors", "admin", "companies", "resource", "holiday", "compta", "accountancy", "hrm"));
+$langs->loadLangs(array('accountancy', 'admin', 'companies', 'compta', 'errors', 'holiday', 'hrm', 'resource'));
 
 $action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view';
 $confirm = GETPOST('confirm', 'alpha');
@@ -78,7 +79,7 @@ $search_country_id = GETPOST('search_country_id', 'int');
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 

+ 14 - 14
htdocs/accountancy/admin/card.php

@@ -23,6 +23,7 @@
  *  \brief      Card of accounting account
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php';
@@ -32,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
 $error = 0;
 
 // Load translation files required by the page
-$langs->loadLangs(array("bills", "accountancy", "compta"));
+$langs->loadLangs(array('accountancy', 'bills', 'compta'));
 
 $action = GETPOST('action', 'aZ09');
 $backtopage = GETPOST('backtopage', 'alpha');
@@ -48,7 +49,7 @@ $label = GETPOST('label', 'alpha');
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 
@@ -66,7 +67,7 @@ if (GETPOST('cancel', 'alpha')) {
 	exit;
 }
 
-if ($action == 'add' && $user->rights->accounting->chartofaccount) {
+if ($action == 'add' && $user->hasRight('accounting', 'chartofaccount')) {
 	if (!$cancel) {
 		if (!$account_number) {
 			setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
@@ -84,7 +85,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
 			// Clean code
 
 			// To manage zero or not at the end of the accounting account
-			if ($conf->global->ACCOUNTING_MANAGE_ZERO == 1) {
+			if (!empty($conf->global->ACCOUNTING_MANAGE_ZERO)) {
 				$account_number = $account_number;
 			} else {
 				$account_number = clean_account($account_number);
@@ -127,7 +128,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
 			}
 		}
 	}
-} elseif ($action == 'edit' && $user->rights->accounting->chartofaccount) {
+} elseif ($action == 'edit' && $user->hasRight('accounting', 'chartofaccount')) {
 	if (!$cancel) {
 		if (!$account_number) {
 			setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("AccountNumber")), null, 'errors');
@@ -147,7 +148,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
 			// Clean code
 
 			// To manage zero or not at the end of the accounting account
-			if (isset($conf->global->ACCOUNTING_MANAGE_ZERO) && $conf->global->ACCOUNTING_MANAGE_ZERO == 1) {
+			if (!empty($conf->global->ACCOUNTING_MANAGE_ZERO)) {
 				$account_number = $account_number;
 			} else {
 				$account_number = clean_account($account_number);
@@ -184,7 +185,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
 		header("Location: ".$urltogo);
 		exit();
 	}
-} elseif ($action == 'delete' && $user->rights->accounting->chartofaccount) {
+} elseif ($action == 'delete' && $user->hasRight('accounting', 'chartofaccount')) {
 	$result = $object->fetch($id);
 
 	if (!empty($object->id)) {
@@ -328,7 +329,8 @@ if ($action == 'create') {
 			// Account parent
 			print '<tr><td>'.$langs->trans("Accountparent").'</td>';
 			print '<td>';
-			print $formaccounting->select_account($object->account_parent, 'account_parent', 1);
+			// Note: We accept disabled account as parent account so we can build a hierarchy and use only childs
+			print $formaccounting->select_account($object->account_parent, 'account_parent', 1, array(), 0, 0, 'minwidth100 maxwidth300 maxwidthonsmartphone', 1, '');
 			print '</td></tr>';
 
 			// Chart of accounts type
@@ -419,17 +421,15 @@ if ($action == 'create') {
 			 */
 			print '<div class="tabsAction">';
 
-			if (!empty($user->rights->accounting->chartofaccount)) {
+			if ($user->hasRight('accounting', 'chartofaccount')) {
 				print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=update&token='.newToken().'&id='.$object->id.'">'.$langs->trans('Modify').'</a>';
 			} else {
 				print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Modify').'</a>';
 			}
 
-			if (!empty($user->rights->accounting->chartofaccount)) {
-				print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$object->id.'">'.$langs->trans('Delete').'</a>';
-			} else {
-				print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Delete').'</a>';
-			}
+			// Delete
+			$permissiontodelete = $user->hasRight('accounting', 'chartofaccount');
+			print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete);
 
 			print '</div>';
 		}

+ 20 - 15
htdocs/accountancy/admin/categories.php

@@ -1,6 +1,7 @@
 <?php
 /* Copyright (C) 2016       Jamal Elbaz         <jamelbaz@gmail.pro>
  * Copyright (C) 2017-2022  Alexandre Spangaro  <aspangaro@open-dsi.fr>
+ * Copyright (C) 2022       Laurent Destailleur <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,6 +23,7 @@
  * \brief	Page to assign mass categories to accounts
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancycategory.class.php';
@@ -30,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
 $error = 0;
 
 // Load translation files required by the page
-$langs->loadLangs(array("bills", "accountancy"));
+$langs->loadLangs(array("bills", "accountancy", "compta"));
 
 $id = GETPOST('id', 'int');
 $cancel = GETPOST('cancel', 'alpha');
@@ -44,7 +46,7 @@ if ($cat_id == 0) {
 }
 
 // Security check
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 
@@ -109,18 +111,22 @@ print '<table class="border centpercent">';
 // Select the category
 print '<tr><td class="titlefield">'.$langs->trans("AccountingCategory").'</td>';
 print '<td>';
-$formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 1);
-print '<input type="submit" class="button" value="'.$langs->trans("Select").'">';
+$formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 0);
+print '<input type="submit" class="button small" value="'.$langs->trans("Select").'">';
 print '</td></tr>';
 
+print '</table>';
+
+print dol_get_fiche_end();
+
+
 // Select the accounts
 if (!empty($cat_id)) {
 	$return = $accountingcategory->getAccountsWithNoCategory($cat_id);
 	if ($return < 0) {
 		setEventMessages(null, $accountingcategory->errors, 'errors');
 	}
-	print '<tr><td>'.$langs->trans("AddAccountFromBookKeepingWithNoCategories").'</td>';
-	print '<td>';
+	print '<br>';
 
 	$arraykeyvalue = array();
 	foreach ($accountingcategory->lines_cptbk as $key => $val) {
@@ -129,8 +135,9 @@ if (!empty($cat_id)) {
 	}
 
 	if (is_array($accountingcategory->lines_cptbk) && count($accountingcategory->lines_cptbk) > 0) {
-		print $form->multiselectarray('cpt_bk', $arraykeyvalue, GETPOST('cpt_bk', 'array'), null, null, null, null, "90%");
-		print '<br>';
+		print img_picto($langs->trans("AccountingAccount"), 'accounting_account', 'class="pictofixedwith"');
+		print $form->multiselectarray('cpt_bk', $arraykeyvalue, GETPOST('cpt_bk', 'array'), null, null, '', 0, "80%", '', '', $langs->transnoentitiesnoconv("AddAccountFromBookKeepingWithNoCategories"));
+		//print '<br>';
 		/*print '<select class="flat minwidth200" size="8" name="cpt_bk[]" multiple>';
 		foreach ( $accountingcategory->lines_cptbk as $cpt ) {
 			print '<option value="' . length_accountg($cpt->numero_compte) . '">' . length_accountg($cpt->numero_compte) . ' (' . $cpt->label_compte . ' ' . $cpt->doc_ref . ')</option>';
@@ -138,20 +145,16 @@ if (!empty($cat_id)) {
 		print '</select><br>';
 		print ajax_combobox('cpt_bk');
 		*/
-		print '<input type="submit" class="button button-add" id="" class="action-delete" value="'.$langs->trans("Add").'"> ';
+		print '<input type="submit" class="button button-add small" id="" class="action-delete" value="'.$langs->trans("Add").'"> ';
 	}
-	print '</td></tr>';
 }
 
-print '</table>';
-
-print dol_get_fiche_end();
-
 print '</form>';
 
 
 if ($action == 'display' || $action == 'delete') {
-	print "<table class='noborder' width='100%'>\n";
+	print '<br>';
+	print '<table class="noborder centpercent">'."\n";
 	print '<tr class="liste_titre">';
 	print '<td class="liste_titre">'.$langs->trans("AccountAccounting")."</td>";
 	print '<td class="liste_titre" colspan="2">'.$langs->trans("Label")."</td>";
@@ -176,6 +179,8 @@ if ($action == 'display' || $action == 'delete') {
 				print "</td>";
 				print "</tr>\n";
 			}
+		} else {
+			print '<tr><td colspan="3"><span class="opacitymedium">'.$langs->trans("NoRecordFound").'</span></td></tr>';
 		}
 	}
 

+ 9 - 8
htdocs/accountancy/admin/categories_list.php

@@ -22,6 +22,7 @@
  *		\brief      Page to administer data tables
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
@@ -42,7 +43,7 @@ $rowid = GETPOST('rowid', 'alpha');
 $code = GETPOST('code', 'alpha');
 
 // Security access
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 
@@ -189,7 +190,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
 			setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors');
 		}
 	}
-	if (!is_numeric(GETPOST('position', 'alpha'))) {
+	if (GETPOST('position') && !is_numeric(GETPOST('position', 'alpha'))) {
 		$langs->loadLangs(array("errors"));
 		$ok = 0;
 		setEventMessages($langs->transnoentities('ErrorFieldMustBeANumeric', $langs->transnoentities("Position")), null, 'errors');
@@ -604,7 +605,7 @@ if ($resql) {
 		if ($showfield) {
 			if ($value == 'country') {
 				print '<td class="liste_titre">';
-				print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth200 maxwidthonsmartphone');
+				print $form->select_country($search_country_id, 'search_country_id', '', 28, 'maxwidth150 maxwidthonsmartphone');
 				print '</td>';
 				$filterfound++;
 			} else {
@@ -724,11 +725,11 @@ if ($resql) {
 				print '<td></td>';
 				print '<td></td>';
 				print '<td class="center">';
+				print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"></div>';
 				print '<input type="hidden" name="page" value="'.$page.'">';
 				print '<input type="hidden" name="rowid" value="'.$rowid.'">';
-				print '<input type="submit" class="button button-edit" name="actionmodify" value="'.$langs->trans("Modify").'">';
-				print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"></div>';
-				print '<input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'">';
+				print '<input type="submit" class="button button-edit smallpaddingimp" name="actionmodify" value="'.$langs->trans("Modify").'">';
+				print '<input type="submit" class="button button-cancel smallpaddingimp" name="actioncancel" value="'.$langs->trans("Cancel").'">';
 				print '</td>';
 				print '<td></td>';
 			} else {
@@ -886,10 +887,10 @@ function fieldListAccountingCategories($fieldlist, $obj = '', $tabname = '', $co
 			if ($context == 'add') {
 				$fieldname = 'country_id';
 				$preselectcountrycode = GETPOSTISSET('country_id') ? GETPOST('country_id', 'int') : $mysoc->country_code;
-				print $form->select_country($preselectcountrycode, $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
+				print $form->select_country($preselectcountrycode, $fieldname, '', 28, 'maxwidth150 maxwidthonsmartphone');
 			} else {
 				$preselectcountrycode = (empty($obj->country_code) ? (empty($obj->country) ? $mysoc->country_code : $obj->country) : $obj->country_code);
-				print $form->select_country($preselectcountrycode, $fieldname, '', 28, 'maxwidth200 maxwidthonsmartphone');
+				print $form->select_country($preselectcountrycode, $fieldname, '', 28, 'maxwidth150 maxwidthonsmartphone');
 			}
 			print '</td>';
 		} elseif ($fieldlist[$field] == 'country_id') {

+ 2 - 1
htdocs/accountancy/admin/closure.php

@@ -22,6 +22,7 @@
  * \brief		Setup page to configure accounting expert module
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
@@ -31,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
 $langs->loadLangs(array("compta", "admin", "accountancy"));
 
 // Security check
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 

+ 48 - 1
htdocs/accountancy/admin/defaultaccounts.php

@@ -38,7 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
 $langs->loadLangs(array("compta", "bills", "admin", "accountancy", "salaries", "loan"));
 
 // Security check
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 
@@ -133,6 +133,12 @@ if ($action == 'update') {
 		$error++;
 	}
 
+	$constname = 'ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT';
+	$constvalue = GETPOST($constname, 'int');
+	if (!dolibarr_set_const($db, $constname, $constvalue, 'chaine', 0, '', $conf->entity)) {
+		$error++;
+	}
+
 
 	if (!$error) {
 		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
@@ -155,6 +161,20 @@ if ($action == 'setACCOUNTING_ACCOUNT_CUSTOMER_USE_AUXILIARY_ON_DEPOSIT') {
 	}
 }
 
+if ($action == 'setACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT') {
+	$setDisableAuxiliaryAccountOnSupplierDeposit = GETPOST('value', 'int');
+	$res = dolibarr_set_const($db, "ACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT", $setDisableAuxiliaryAccountOnSupplierDeposit, 'yesno', 0, '', $conf->entity);
+	if (!($res > 0)) {
+		$error++;
+	}
+
+	if (!$error) {
+		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
+	} else {
+		setEventMessages($langs->trans("Error"), null, 'mesgs');
+	}
+}
+
 
 /*
  * View
@@ -281,6 +301,33 @@ if (isModEnabled('societe') && getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER_D
 	print '</tr>';
 }
 
+// Supplier deposit account
+print '<tr class="oddeven value">';
+// Param
+print '<td>';
+print img_picto('', 'supplier_invoice', 'class="pictofixedwidth"') . $langs->trans('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT');
+print '</td>';
+// Value
+print '<td class="right">'; // Do not force class=right, or it align also the content of the select box
+print $formaccounting->select_account(getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT'), 'ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT', 1, '', 1, 1, 'minwidth100 maxwidth300 maxwidthonsmartphone', 'accounts');
+print '</td>';
+print '</tr>';
+
+if (isModEnabled('societe') && getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT') && getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT') != '-1') {
+	print '<tr class="oddeven">';
+	print '<td>' . img_picto('', 'supplier_invoice', 'class="pictofixedwidth"') . $langs->trans("UseAuxiliaryAccountOnSupplierDeposit") . '</td>';
+	if (getDolGlobalInt('ACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT')) {
+		print '<td class="right"><a class="reposition" href="' . $_SERVER['PHP_SELF'] . '?token=' . newToken() . '&action=setACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT&value=0">';
+		print img_picto($langs->trans("Activated"), 'switch_on', '', false, 0, 0, '', 'warning');
+		print '</a></td>';
+	} else {
+		print '<td class="right"><a class="reposition" href="' . $_SERVER['PHP_SELF'] . '?token=' . newToken() . '&action=setACCOUNTING_ACCOUNT_SUPPLIER_USE_AUXILIARY_ON_DEPOSIT&value=1">';
+		print img_picto($langs->trans("Disabled"), 'switch_off');
+		print '</a></td>';
+	}
+	print '</tr>';
+}
+
 print "</table>\n";
 print "</div>\n";
 

+ 3 - 3
htdocs/accountancy/admin/export.php

@@ -36,7 +36,7 @@ require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php';
 $langs->loadLangs(array("compta", "bills", "admin", "accountancy"));
 
 // Security access
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 
@@ -269,9 +269,9 @@ if ($num2) {
 		// Value
 		print '<td>';
 		if (is_array($key['param'])) {
-			print $form->selectarray($label, $key['param'], $conf->global->$label, 0);
+			print $form->selectarray($label, $key['param'], getDolGlobalString($label), 0);
 		} else {
-			print '<input type="text" size="20" id="'.$label.'" name="'.$key['label'].'" value="'.$conf->global->$label.'">';
+			print '<input type="text" size="20" id="'.$label.'" name="'.$key['label'].'" value="'.getDolGlobalString($label).'">';
 		}
 
 		print '</td></tr>';

+ 3 - 2
htdocs/accountancy/admin/fiscalyear.php

@@ -21,6 +21,7 @@
  *  \brief      Setup page to configure fiscal year
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
@@ -52,7 +53,7 @@ $langs->loadLangs(array("admin", "compta"));
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->fiscalyear->write)) {              // If we can read accounting records, we should be able to see fiscal year.
+if (!$user->hasRight('accounting', 'fiscalyear', 'write')) {              // If we can read accounting records, we should be able to see fiscal year.
 	accessforbidden();
 }
 
@@ -121,7 +122,7 @@ if ($result) {
 	$i = 0;
 
 
-	$addbutton .= dolGetButtonTitle($langs->trans('NewFiscalYear'), '', 'fa fa-plus-circle', 'fiscalyear_card.php?action=create', '', $user->rights->accounting->fiscalyear->write);
+	$addbutton .= dolGetButtonTitle($langs->trans('NewFiscalYear'), '', 'fa fa-plus-circle', 'fiscalyear_card.php?action=create', '', $user->hasRight('accounting', 'fiscalyear', 'write'));
 
 
 	$title = $langs->trans('AccountingPeriods');

+ 4 - 3
htdocs/accountancy/admin/fiscalyear_card.php

@@ -22,6 +22,7 @@
  * \brief       Page to show a fiscal year
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 
 require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php';
@@ -34,7 +35,7 @@ $langs->loadLangs(array("admin", "compta"));
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->fiscalyear->write)) {
+if (!$user->hasRight('accounting', 'fiscalyear', 'write')) {
 	accessforbidden();
 }
 
@@ -299,12 +300,12 @@ if ($action == 'create') {
 			/*
 			 * Action bar
 			 */
-			if (!empty($user->rights->accounting->fiscalyear->write)) {
+			if ($user->hasRight('accounting', 'fiscalyear', 'write')) {
 				print '<div class="tabsAction">';
 
 				print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&token='.newToken().'&id='.$id.'">'.$langs->trans('Modify').'</a>';
 
-				// print '<a class="butActionDelete" href="' . $_SERVER["PHP_SELF"] . '?action=delete&token='.newToken().'&id=' . $id . '">' . $langs->trans('Delete') . '</a>';
+				//print dolGetButtonAction($langs->trans("Delete"), '', 'delete', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=delete&token='.newToken(), 'delete', $permissiontodelete);
 
 				print '</div>';
 			}

+ 2 - 1
htdocs/accountancy/admin/fiscalyear_info.php

@@ -21,6 +21,7 @@
  * \brief	    Page to show info of a fiscal year
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
@@ -33,7 +34,7 @@ $langs->loadLangs(array("admin", "compta"));
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->fiscalyear->write)) {
+if (!$user->hasRight('accounting', 'fiscalyear', 'write')) {
 	accessforbidden();
 }
 

+ 68 - 2
htdocs/accountancy/admin/index.php

@@ -29,6 +29,7 @@
  * \brief		Setup page to configure accounting expert module
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
@@ -38,7 +39,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
 $langs->loadLangs(array("compta", "bills", "admin", "accountancy", "other"));
 
 // Security access
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 
@@ -246,6 +247,34 @@ if ($action == 'setdisablebindingonexpensereports') {
 	}
 }
 
+if ($action == 'setenablelettering') {
+	$setenablelettering = GETPOST('value', 'int');
+	$res = dolibarr_set_const($db, "ACCOUNTING_ENABLE_LETTERING", $setenablelettering, 'yesno', 0, '', $conf->entity);
+	if (!($res > 0)) {
+		$error++;
+	}
+
+	if (!$error) {
+		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
+	} else {
+		setEventMessages($langs->trans("Error"), null, 'mesgs');
+	}
+}
+
+if ($action == 'setenableautolettering') {
+	$setenableautolettering = GETPOST('value', 'int');
+	$res = dolibarr_set_const($db, "ACCOUNTING_ENABLE_AUTOLETTERING", $setenableautolettering, 'yesno', 0, '', $conf->entity);
+	if (!($res > 0)) {
+		$error++;
+	}
+
+	if (!$error) {
+		setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
+	} else {
+		setEventMessages($langs->trans("Error"), null, 'mesgs');
+	}
+}
+
 
 /*
  * View
@@ -415,7 +444,7 @@ foreach ($list_binding as $key) {
 		print $form->selectDate((!empty($conf->global->$key) ? $db->idate($conf->global->$key) : -1), $key, 0, 0, 1);
 	} elseif ($key == 'ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER') {
 		$array = array(0=>$langs->trans("PreviousMonth"), 1=>$langs->trans("CurrentMonth"), 2=>$langs->trans("Fiscalyear"));
-		print $form->selectarray($key, $array, (isset($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER) ? $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER : 0));
+		print $form->selectarray($key, $array, (isset($conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER) ? $conf->global->ACCOUNTING_DEFAULT_PERIOD_ON_TRANSFER : 0), 0, 0, 0, '', 0, 0, 0, '', 'onrightofpage');
 	} else {
 		print '<input type="text" class="maxwidth100" id="'.$key.'" name="'.$key.'" value="'.getDolGlobalString($key).'">';
 	}
@@ -463,6 +492,43 @@ if (!empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) {
 }
 print '</tr>';
 
+print '</table>';
+print '<br>';
+
+// Lettering params
+print '<table class="noborder centpercent">';
+print '<tr class="liste_titre">';
+print '<td colspan="2">'.$langs->trans('Options').' '.$langs->trans('Lettering').'</td>';
+print "</tr>\n";
+
+print '<tr class="oddeven">';
+print '<td>'.$langs->trans("ACCOUNTING_ENABLE_LETTERING").'</td>';
+if (!empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) {
+	print '<td class="right"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?token='.newToken().'&action=setenablelettering&value=0">';
+	print img_picto($langs->trans("Activated"), 'switch_on');
+	print '</a></td>';
+} else {
+	print '<td class="right"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?token='.newToken().'&action=setenablelettering&value=1">';
+	print img_picto($langs->trans("Disabled"), 'switch_off');
+	print '</a></td>';
+}
+print '</tr>';
+
+if (!empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) {
+	print '<tr class="oddeven">';
+	print '<td>' . $langs->trans("ACCOUNTING_ENABLE_AUTOLETTERING") . '</td>';
+	if (!empty($conf->global->ACCOUNTING_ENABLE_AUTOLETTERING)) {
+		print '<td class="right"><a class="reposition" href="' . $_SERVER['PHP_SELF'] . '?token=' . newToken() . '&action=setenableautolettering&value=0">';
+		print img_picto($langs->trans("Activated"), 'switch_on');
+		print '</a></td>';
+	} else {
+		print '<td class="right"><a class="reposition" href="' . $_SERVER['PHP_SELF'] . '?token=' . newToken() . '&action=setenableautolettering&value=1">';
+		print img_picto($langs->trans("Disabled"), 'switch_off');
+		print '</a></td>';
+	}
+	print '</tr>';
+}
+
 print '</table>';
 
 print '<div class="center"><input type="submit" class="button button-edit" name="button" value="'.$langs->trans('Modify').'"></div>';

+ 2 - 7
htdocs/accountancy/admin/journals_list.php

@@ -26,6 +26,7 @@ if (!defined('CSRFCHECK_WITH_TOKEN')) {
 	define('CSRFCHECK_WITH_TOKEN', '1'); // Force use of CSRF protection with tokens even for GET
 }
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
@@ -45,7 +46,7 @@ $rowid = GETPOST('rowid', 'alpha');
 $code = GETPOST('code', 'alpha');
 
 // Security access
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 
@@ -610,12 +611,6 @@ if ($id) {
 						if (($obj->code == '0' || $obj->code == '' || preg_match('/unknown/i', $obj->code))) {
 							$iserasable = 0;
 							$canbedisabled = 0;
-						} elseif ($obj->code == 'RECEP') {
-							$iserasable = 0;
-							$canbedisabled = 0;
-						} elseif ($obj->code == 'EF0') {
-							$iserasable = 0;
-							$canbedisabled = 0;
 						}
 					}
 

+ 2 - 2
htdocs/accountancy/admin/productaccount.php

@@ -45,7 +45,7 @@ $langs->loadLangs(array("companies", "compta", "accountancy", "products"));
 if (!isModEnabled('accounting')) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->bind->write)) {
+if (!$user->hasRight('accounting', 'bind', 'write')) {
 	accessforbidden();
 }
 
@@ -522,7 +522,7 @@ if ($resql) {
 
 	// Filter on categories
 	$moreforfilter = '';
-	if (isModEnabled('categorie') && $user->rights->categorie->lire) {
+	if (isModEnabled('categorie') && $user->hasRight('categorie', 'lire')) {
 		$moreforfilter .= '<div class="divsearchfield">';
 		$moreforfilter .= img_picto($langs->trans('Categories'), 'category', 'class="pictofixedwidth"');
 		$categoriesProductArr = $form->select_all_categories(Categorie::TYPE_PRODUCT, '', '', 64, 0, 1);

+ 3 - 2
htdocs/accountancy/admin/subaccount.php

@@ -23,6 +23,7 @@
  * \brief		List of accounting sub-account (auxiliary accounts)
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
@@ -47,7 +48,7 @@ $search_type = GETPOST('search_type', 'int');
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->chartofaccount)) {
+if (!$user->hasRight('accounting', 'chartofaccount')) {
 	accessforbidden();
 }
 
@@ -407,7 +408,7 @@ if ($resql) {
 				$s .= '<a class="vendor-back" style="padding-left: 6px; padding-right: 6px" title="'.$langs->trans("Supplier").'" href="'.DOL_URL_ROOT.'/fourn/card.php?socid='.$obj->rowid.'">'.$langs->trans("Supplier").'</a>';
 			} elseif ($obj->type == 3) {
 				// User
-				$s .= '<a class="user-back" style="padding-left: 6px; padding-right: 6px" title="'.$langs->trans("Employee").'" href="'.DOL_URL_ROOT.'/user/card.php?id='.$obj->id.'">'.$langs->trans("Employee").'</a>';
+				$s .= '<a class="user-back" style="padding-left: 6px; padding-right: 6px" title="'.$langs->trans("Employee").'" href="'.DOL_URL_ROOT.'/user/card.php?id='.$obj->rowid.'">'.$langs->trans("Employee").'</a>';
 			}
 			print $s;
 			print '</td>';

+ 6 - 1
htdocs/accountancy/bookkeeping/balance.php

@@ -24,6 +24,7 @@
  *  \brief 		Balance of book keeping
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 
 // Class
@@ -149,7 +150,7 @@ if (!isModEnabled('accounting')) {
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->mouvements->lire)) {
+if (!$user->hasRight('accounting', 'mouvements', 'lire')) {
 	accessforbidden();
 }
 
@@ -503,6 +504,10 @@ if ($action != 'export_csv') {
 	print "<td></td>\n";
 	print '</tr>';
 
+	$parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql);
+	$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
+	print $hookmanager->resPrint;
+
 	print "</table>";
 	print '</form>';
 }

+ 20 - 12
htdocs/accountancy/bookkeeping/card.php

@@ -25,6 +25,7 @@
  * \brief		Page to show book-entry
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php';
@@ -85,7 +86,7 @@ if (!isModEnabled('accounting')) {
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->mouvements->lire)) {
+if (!$user->hasRight('accounting', 'mouvements', 'lire')) {
 	accessforbidden();
 }
 
@@ -332,7 +333,9 @@ if ($action == 'valid') {
 $html = new Form($db);
 $formaccounting = new FormAccounting($db);
 
-llxHeader('', $langs->trans("CreateMvts"));
+$title = $langs->trans("CreateMvts");
+
+llxHeader('', $title);
 
 // Confirmation to delete the command
 if ($action == 'delete') {
@@ -341,7 +344,7 @@ if ($action == 'delete') {
 }
 
 if ($action == 'create') {
-	print load_fiche_titre($langs->trans("CreateMvts"));
+	print load_fiche_titre($title);
 
 	$object = new BookKeeping($db);
 	$next_num_mvt = $object->getNextNumMvt('_tmp');
@@ -409,7 +412,11 @@ if ($action == 'create') {
 	if (!empty($object->piece_num)) {
 		$backlink = '<a href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?restore_lastsearch_values=1">'.$langs->trans('BackToList').'</a>';
 
-		print load_fiche_titre($langs->trans("UpdateMvts"), $backlink);
+		if ($mode == '_tmp') {
+			print load_fiche_titre($langs->trans("CreateMvts"), $backlink);
+		} else {
+			print load_fiche_titre($langs->trans("UpdateMvts"), $backlink);
+		}
 
 		$head = array();
 		$h = 0;
@@ -614,6 +621,7 @@ if ($action == 'create') {
 		if ($result < 0) {
 			setEventMessages($object->error, $object->errors, 'errors');
 		} else {
+			// List of movements
 			print load_fiche_titre($langs->trans("ListeMvts"), '', '');
 
 			print '<form action="'.$_SERVER["PHP_SELF"].'?piece_num='.$object->piece_num.'" method="post">';
@@ -641,8 +649,8 @@ if ($action == 'create') {
 				print_liste_field_titre("AccountAccountingShort");
 				print_liste_field_titre("SubledgerAccount");
 				print_liste_field_titre("LabelOperation");
-				print_liste_field_titre("Debit", "", "", "", "", 'class="right"');
-				print_liste_field_titre("Credit", "", "", "", "", 'class="right"');
+				print_liste_field_titre("AccountingDebit", "", "", "", "", 'class="right"');
+				print_liste_field_titre("AccountingCredit", "", "", "", "", 'class="right"');
 				if (empty($object->date_validation)) {
 					print_liste_field_titre("Action", "", "", "", "", 'width="60"', "", "", 'center ');
 				} else {
@@ -661,14 +669,14 @@ if ($action == 'create') {
 				}
 
 				foreach ($object->linesmvt as $line) {
-					print '<tr class="oddeven">';
+					print '<tr class="oddeven" data-lineid="'.((int) $line->id).'">';
 					$total_debit += $line->debit;
 					$total_credit += $line->credit;
 
 					if ($action == 'update' && $line->id == $id) {
 						print '<!-- td columns in edit mode -->';
 						print '<td>';
-						print $formaccounting->select_account((GETPOSTISSET("accountingaccount_number") ? GETPOST("accountingaccount_number", "alpha") : $line->numero_compte), 'accountingaccount_number', 1, array(), 1, 1, '');
+						print $formaccounting->select_account((GETPOSTISSET("accountingaccount_number") ? GETPOST("accountingaccount_number", "alpha") : $line->numero_compte), 'accountingaccount_number', 1, array(), 1, 1, 'minwidth200 maxwidth500');
 						print '</td>';
 						print '<td>';
 						// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because:
@@ -694,7 +702,7 @@ if ($action == 'create') {
 						if ($action == "" || $action == 'add') {
 							print '<!-- td columns in add mode -->';
 							print '<td>';
-							print $formaccounting->select_account('', 'accountingaccount_number', 1, array(), 1, 1, '');
+							print $formaccounting->select_account('', 'accountingaccount_number', 1, array(), 1, 1, 'minwidth200 maxwidth500');
 							print '</td>';
 							print '<td>';
 							// TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because:
@@ -711,7 +719,7 @@ if ($action == 'create') {
 							print '<td><input type="text" class="minwidth200" name="label_operation" value="' . $label_operation . '"/></td>';
 							print '<td class="right"><input type="text" size="6" class="right" name="debit" value=""/></td>';
 							print '<td class="right"><input type="text" size="6" class="right" name="credit" value=""/></td>';
-							print '<td class="center"><input type="submit" class="button" name="save" value="' . $langs->trans("Add") . '"></td>';
+							print '<td class="center"><input type="submit" class="button small" name="save" value="' . $langs->trans("Add") . '"></td>';
 						}
 					} else {
 						print '<!-- td columns in display mode -->';
@@ -729,8 +737,8 @@ if ($action == 'create') {
 						}
 						print '</td>';
 						print '<td>'.$line->label_operation.'</td>';
-						print '<td class="right nowraponall amount">'.price($line->debit).'</td>';
-						print '<td class="right nowraponall amount">'.price($line->credit).'</td>';
+						print '<td class="right nowraponall amount">'.($line->debit != 0 ? price($line->debit) : '').'</td>';
+						print '<td class="right nowraponall amount">'.($line->credit != 0 ? price($line->credit) : '').'</td>';
 
 						print '<td class="center nowraponall">';
 						if (empty($line->date_export) && empty($line->date_validation)) {

+ 212 - 85
htdocs/accountancy/bookkeeping/list.php

@@ -25,6 +25,7 @@
  * \brief 		List operation of book keeping
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
@@ -154,7 +155,7 @@ $hookmanager->initHooks(array('bookkeepinglist'));
 $formaccounting = new FormAccounting($db);
 $form = new Form($db);
 
-if (!in_array($action, array('export_file', 'delmouv', 'delmouvconfirm')) && !GETPOSTISSET('begin') && !GETPOSTISSET('formfilteraction') && GETPOST('page', 'int') == '' && !GETPOST('noreset', 'int') && $user->rights->accounting->mouvements->export) {
+if (!in_array($action, array('export_file', 'delmouv', 'delmouvconfirm')) && !GETPOSTISSET('begin') && !GETPOSTISSET('formfilteraction') && GETPOST('page', 'int') == '' && !GETPOST('noreset', 'int') && $user->hasRight('accounting', 'mouvements', 'export')) {
 	if (empty($search_date_start) && empty($search_date_end) && !GETPOSTISSET('restore_lastsearch_values') && !GETPOST('search_accountancy_code_start')) {
 		$query = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
 		$query .= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."' limit 1";
@@ -191,8 +192,8 @@ $arrayfields = array(
 	't.numero_compte'=>array('label'=>$langs->trans("AccountAccountingShort"), 'checked'=>1),
 	't.subledger_account'=>array('label'=>$langs->trans("SubledgerAccount"), 'checked'=>1),
 	't.label_operation'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
-	't.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1),
-	't.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1),
+	't.debit'=>array('label'=>$langs->trans("AccountingDebit"), 'checked'=>1),
+	't.credit'=>array('label'=>$langs->trans("AccountingCredit"), 'checked'=>1),
 	't.lettering_code'=>array('label'=>$langs->trans("LetteringCode"), 'checked'=>1),
 	't.date_creation'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0),
 	't.tms'=>array('label'=>$langs->trans("DateModification"), 'checked'=>0),
@@ -220,7 +221,7 @@ if (!isModEnabled('accounting')) {
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->mouvements->lire)) {
+if (!$user->hasRight('accounting', 'mouvements', 'lire')) {
 	accessforbidden();
 }
 
@@ -234,7 +235,7 @@ $param = '';
 if (GETPOST('cancel', 'alpha')) {
 	$action = 'list'; $massaction = '';
 }
-if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'preunlettering' && $massaction != 'predeletebookkeepingwriting') {
+if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'preunletteringauto' && $massaction != 'preunletteringmanual' && $massaction != 'predeletebookkeepingwriting') {
 	$massaction = '';
 }
 
@@ -437,7 +438,7 @@ if (empty($reshook)) {
 		$param .= '&search_import_key='.urlencode($search_import_key);
 	}
 
-	//if ($action == 'delbookkeepingyearconfirm' && $user->rights->accounting->mouvements->supprimer_tous) {
+	//if ($action == 'delbookkeepingyearconfirm' && !$user->hasRight('accounting', 'mouvements', 'supprimer_tous')) {
 	//	$delmonth = GETPOST('delmonth', 'int');
 	//	$delyear = GETPOST('delyear', 'int');
 	//	if ($delyear == -1) {
@@ -473,7 +474,7 @@ if (empty($reshook)) {
 			if ($conf->global->ACCOUNTING_REEXPORT == 1) {
 				setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsEnable"), null, 'mesgs');
 			} else {
-				setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsDisable"), null, 'mesgs');
+				setEventMessages($langs->trans("ExportOfPiecesAlreadyExportedIsDisable"), null, 'warnings');
 			}
 		} else {
 			setEventMessages($langs->trans("Error"), null, 'errors');
@@ -483,50 +484,71 @@ if (empty($reshook)) {
 	// Mass actions
 	$objectclass = 'Bookkeeping';
 	$objectlabel = 'Bookkeeping';
-	$permissiontoread = $user->rights->societe->lire;
-	$permissiontodelete = $user->rights->societe->supprimer;
+	$permissiontoread = $user->hasRight('societe', 'lire');
+	$permissiontodelete = $user->hasRight('societe', 'supprimer');
 	$permissiontoadd = $user->rights->societe->creer;
 	$uploaddir = $conf->societe->dir_output;
 	include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
 
-	if (!$error && $action == 'deletebookkeepingwriting' && $confirm == "yes" && $user->rights->accounting->mouvements->supprimer) {
+	if (!$error && $action == 'deletebookkeepingwriting' && $confirm == "yes" && $user->hasRight('accounting', 'mouvements', 'supprimer')) {
+		$db->begin();
+
+		if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING')) {
+			$lettering = new Lettering($db);
+			$nb_lettering = $lettering->bookkeepingLetteringAll($toselect, true);
+			if ($nb_lettering < 0) {
+				setEventMessages('', $lettering->errors, 'errors');
+				$error++;
+			}
+		}
+
 		$nbok = 0;
-		foreach ($toselect as $toselectid) {
-			$result = $object->fetch($toselectid);
-			if ($result > 0 && (!isset($object->date_validation) || $object->date_validation === '')) {
-				$result = $object->deleteMvtNum($object->piece_num);
-				if ($result > 0) {
-					$nbok++;
-				} else {
+		if (!$error) {
+			foreach ($toselect as $toselectid) {
+				$result = $object->fetch($toselectid);
+				if ($result > 0 && (!isset($object->date_validation) || $object->date_validation === '')) {
+					$result = $object->deleteMvtNum($object->piece_num);
+					if ($result > 0) {
+						$nbok++;
+					} else {
+						setEventMessages($object->error, $object->errors, 'errors');
+						$error++;
+						break;
+					}
+				} elseif ($result < 0) {
 					setEventMessages($object->error, $object->errors, 'errors');
 					$error++;
 					break;
-				}
-			} elseif ($result < 0) {
-				setEventMessages($object->error, $object->errors, 'errors');
-				$error++;
-				break;
+                } elseif (isset($object->date_validation) || $object->date_validation != '') {
+                    setEventMessages($langs->trans("ValidatedRecordWhereFound"), null, 'errors');
+                    $error++;
+                    break;
+                }
 			}
 		}
 
-		// Message for elements well deleted
-		if ($nbok > 1) {
-			setEventMessages($langs->trans("RecordsDeleted", $nbok), null, 'mesgs');
-		} elseif ($nbok > 0) {
-			setEventMessages($langs->trans("RecordDeleted", $nbok), null, 'mesgs');
-		} elseif (!$error) {
-			setEventMessages($langs->trans("NoRecordDeleted"), null, 'mesgs');
-		}
-
 		if (!$error) {
+			$db->commit();
+
+			// Message for elements well deleted
+			if ($nbok > 1) {
+				setEventMessages($langs->trans("RecordsDeleted", $nbok), null, 'mesgs');
+			} elseif ($nbok > 0) {
+				setEventMessages($langs->trans("RecordDeleted", $nbok), null, 'mesgs');
+			} else {
+				setEventMessages($langs->trans("NoRecordDeleted"), null, 'mesgs');
+			}
+
 			header("Location: ".$_SERVER["PHP_SELF"]."?noreset=1".($param ? '&'.$param : ''));
 			exit;
+		} else {
+			$db->rollback();
 		}
 	}
 
 	// others mass actions
-	if (!$error && getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->rights->accounting->mouvements->creer) {
-		if ($massaction == 'lettering') {
+	if (!$error && getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->hasRight('accounting', 'mouvements', 'creer')) {
+		if ($massaction == 'letteringauto') {
 			$lettering = new Lettering($db);
 			$nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
 			if ($nb_lettering < 0) {
@@ -547,7 +569,17 @@ if (empty($reshook)) {
 				header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param);
 				exit();
 			}
-		} elseif ($action == 'unlettering' && $confirm == "yes") {
+		} elseif ($massaction == 'letteringmanual') {
+			$lettering = new Lettering($db);
+			$result = $lettering->updateLettering($toselect);
+			if ($result < 0) {
+				setEventMessages('', $lettering->errors, 'errors');
+			} else {
+				setEventMessages($langs->trans('AccountancyOneLetteringModifiedSuccessfully'), array(), 'mesgs');
+				header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param);
+				exit();
+			}
+		} elseif ($action == 'unletteringauto' && $confirm == "yes") {
 			$lettering = new Lettering($db);
 			$nb_lettering = $lettering->bookkeepingLetteringAll($toselect, true);
 			if ($nb_lettering < 0) {
@@ -568,6 +600,16 @@ if (empty($reshook)) {
 				header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param);
 				exit();
 			}
+		} elseif ($action == 'unletteringmanual' && $confirm == "yes") {
+			$lettering = new Lettering($db);
+			$nb_lettering = $lettering->deleteLettering($toselect);
+			if ($result < 0) {
+				setEventMessages('', $lettering->errors, 'errors');
+			} else {
+				setEventMessages($langs->trans('AccountancyOneUnletteringModifiedSuccessfully'), array(), 'mesgs');
+				header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param);
+				exit();
+			}
 		}
 	}
 }
@@ -655,22 +697,40 @@ if (!empty($sortfield)) {
 
 // Export into a file with format defined into setup (FEC, CSV, ...)
 // Must be after definition of $sql
-if ($action == 'export_fileconfirm' && $user->rights->accounting->mouvements->export) {
-	// TODO Replace the fetchAll to get all ->line followed by call to ->export(). It consumew too much memory on large export. Replace this with the query($sql) and loop on each line to export them.
+if ($action == 'export_fileconfirm' && $user->hasRight('accounting', 'mouvements', 'export')) {
+	// TODO Replace the fetchAll to get all ->line followed by call to ->export(). It currently consumes too much memory on large export.
+	// Replace this with the query($sql) and loop on each line to export them.
 	$result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter, 'AND', (empty($conf->global->ACCOUNTING_REEXPORT) ? 0 : 1));
 
 	if ($result < 0) {
 		setEventMessages($object->error, $object->errors, 'errors');
 	} else {
-		// Export files
+		// Export files then exit
 		$accountancyexport = new AccountancyExport($db);
+
+		$notexportlettering = GETPOST('notexportlettering', 'alpha');
+
+		if (!empty($notexportlettering)) {
+			if (is_array($object->lines)) {
+				foreach ($object->lines as $k => $movement) {
+					unset($object->lines[$k]->lettering_code);
+					unset($object->lines[$k]->date_lettering);
+				}
+			}
+		}
+
+		$mimetype = $accountancyexport->getMimeType($formatexportset);
+
+		top_httphead($mimetype, 1);
+
+		// Output data on screen
 		$accountancyexport->export($object->lines, $formatexportset);
 
 		$notifiedexportdate = GETPOST('notifiedexportdate', 'alpha');
 		$notifiedvalidationdate = GETPOST('notifiedvalidationdate', 'alpha');
 
 		if (!empty($accountancyexport->errors)) {
-			setEventMessages('', $accountancyexport->errors, 'errors');
+			dol_print_error('', '', $accountancyexport->errors);
 		} elseif (!empty($notifiedexportdate) || !empty($notifiedvalidationdate)) {
 			// Specify as export : update field date_export or date_validated
 			$error = 0;
@@ -704,11 +764,10 @@ if ($action == 'export_fileconfirm' && $user->rights->accounting->mouvements->ex
 
 			if (!$error) {
 				$db->commit();
-				// setEventMessages($langs->trans("AllExportedMovementsWereRecordedAsExportedOrValidated"), null, 'mesgs');
 			} else {
 				$error++;
 				$db->rollback();
-				setEventMessages($langs->trans("NotAllExportedMovementsCouldBeRecordedAsExportedOrValidated"), null, 'errors');
+				dol_print_error('', $langs->trans("NotAllExportedMovementsCouldBeRecordedAsExportedOrValidated"));
 			}
 		}
 		exit;
@@ -762,6 +821,28 @@ $formconfirm = '';
 if ($action == 'export_file') {
 	$form_question = array();
 
+	$form_question['notexportlettering'] = array(
+		'name' => 'notexportlettering',
+		'type' => 'other',
+		'label' => '',		// TODO  Use Selectmodelcsv and show a select combo
+		'value' => $langs->trans('Modelcsv').' : <b>'.$listofformat[$formatexportset].'</b>'
+	);
+
+	$form_question['separator0'] = array('name'=>'separator0', 'type'=>'separator');
+
+	if (getDolGlobalInt("ACCOUNTING_ENABLE_LETTERING")) {
+		// If 1, we check by default.
+		$checked = !empty($conf->global->ACCOUNTING_DEFAULT_NOT_EXPORT_LETTERING) ? 'true' : 'false';
+		$form_question['notexportlettering'] = array(
+			'name' => 'notexportlettering',
+			'type' => 'checkbox',
+			'label' => $langs->trans('NotExportLettering'),
+			'value' => $checked,
+		);
+
+		$form_question['separator1'] = array('name'=>'separator1', 'type'=>'separator');
+	}
+
 	// If 1 or not set, we check by default.
 	$checked = (!isset($conf->global->ACCOUNTING_DEFAULT_NOT_NOTIFIED_EXPORT_DATE) || !empty($conf->global->ACCOUNTING_DEFAULT_NOT_NOTIFIED_EXPORT_DATE));
 	$form_question['notifiedexportdate'] = array(
@@ -771,7 +852,7 @@ if ($action == 'export_file') {
 		'value' => (!empty($conf->global->ACCOUNTING_DEFAULT_NOT_NOTIFIED_EXPORT_DATE) ? 'false' : 'true'),
 	);
 
-	$form_question['separator'] = array('name'=>'separator', 'type'=>'separator');
+	$form_question['separator2'] = array('name'=>'separator2', 'type'=>'separator');
 
 	if (!getDolGlobalString("ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")) {
 		// If 0 or not set, we NOT check by default.
@@ -783,10 +864,10 @@ if ($action == 'export_file') {
 			'value' => $checked,
 		);
 
-		$form_question['separator2'] = array('name'=>'separator2', 'type'=>'separator');
+		$form_question['separator3'] = array('name'=>'separator3', 'type'=>'separator');
 	}
 
-	$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', $langs->trans('ConfirmExportFile'), 'export_fileconfirm', $form_question, '', 1, 300, 600);
+	$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans("ExportFilteredList").'...', $langs->trans('ConfirmExportFile'), 'export_fileconfirm', $form_question, '', 1, 350, 600);
 }
 
 //if ($action == 'delbookkeepingyear') {
@@ -843,16 +924,16 @@ if ($limit > 0 && $limit != $conf->liste_limit) {
 
 // List of mass actions available
 $arrayofmassactions = array();
-/*
 if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->rights->accounting->mouvements->creer) {
-	$arrayofmassactions['lettering'] = img_picto('', 'check', 'class="pictofixedwidth"') . $langs->trans('Lettering');
-	$arrayofmassactions['preunlettering'] = img_picto('', 'uncheck', 'class="pictofixedwidth"') . $langs->trans('Unlettering');
+	$arrayofmassactions['letteringauto'] = img_picto('', 'check', 'class="pictofixedwidth"') . $langs->trans('LetteringAuto');
+	$arrayofmassactions['preunletteringauto'] = img_picto('', 'uncheck', 'class="pictofixedwidth"') . $langs->trans('UnletteringAuto');
+	$arrayofmassactions['letteringmanual'] = img_picto('', 'check', 'class="pictofixedwidth"') . $langs->trans('LetteringManual');
+	$arrayofmassactions['preunletteringmanual'] = img_picto('', 'uncheck', 'class="pictofixedwidth"') . $langs->trans('UnletteringManual');
 }
-*/
-if ($user->rights->accounting->mouvements->supprimer) {
+if ($user->hasRight('accounting', 'mouvements', 'supprimer')) {
 	$arrayofmassactions['predeletebookkeepingwriting'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
 }
-if (GETPOST('nomassaction', 'int') || in_array($massaction, array('preunlettering', 'predeletebookkeepingwriting'))) {
+if (GETPOST('nomassaction', 'int') || in_array($massaction, array('preunletteringauto', 'preunletteringmanual', 'predeletebookkeepingwriting'))) {
 	$arrayofmassactions = array();
 }
 $massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
@@ -885,14 +966,17 @@ $newcardbutton = empty($hookmanager->resPrint) ? '' : $hookmanager->resPrint;
 if (empty($reshook)) {
 	// Button re-export
 	if (!empty($conf->global->ACCOUNTING_REEXPORT)) {
-		$newcardbutton .= '<a class="valignmiddle" href="'.$_SERVER['PHP_SELF'].'?action=setreexport&token='.newToken().'&value=0'.($param ? '&'.$param : '').'">'.img_picto($langs->trans("Activated"), 'switch_on').'</a> ';
+		$newcardbutton .= '<a class="valignmiddle" href="'.$_SERVER['PHP_SELF'].'?action=setreexport&token='.newToken().'&value=0'.($param ? '&'.$param : '').'">'.img_picto($langs->trans("ClickToHideAlreadyExportedLines"), 'switch_off', 'class="small size15x valignmiddle"');
+		$newcardbutton .= '<span class="valignmiddle marginrightonly paddingleft">'.$langs->trans("ClickToHideAlreadyExportedLines").'</span>';
+		$newcardbutton .= '</a>';
 	} else {
-		$newcardbutton .= '<a class="valignmiddle" href="'.$_SERVER['PHP_SELF'].'?action=setreexport&token='.newToken().'&value=1'.($param ? '&'.$param : '').'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a> ';
+		$newcardbutton .= '<a class="valignmiddle" href="'.$_SERVER['PHP_SELF'].'?action=setreexport&token='.newToken().'&value=1'.($param ? '&'.$param : '').'">'.img_picto($langs->trans("DocsAlreadyExportedAreExcluded"), 'switch_on', 'class="warning size15x valignmiddle"');
+		$newcardbutton .= '<span class="valignmiddle marginrightonly paddingleft">'.$langs->trans("DocsAlreadyExportedAreExcluded").'</span>';
+		$newcardbutton .= '</a>';
 	}
-	$newcardbutton .= '<span class="valignmiddle marginrightonly">'.$langs->trans("IncludeDocsAlreadyExported").'</span>';
 
-	if (!empty($user->rights->accounting->mouvements->export)) {
-		$newcardbutton .= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file'.($param ? '&'.$param : ''), $user->rights->accounting->mouvements->export);
+	if ($user->hasRight('accounting', 'mouvements', 'export')) {
+		$newcardbutton .= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file&token='.newToken().($param ? '&'.$param : ''), $user->hasRight('accounting', 'mouvements', 'export'));
 	}
 
 	$newcardbutton .= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected'));
@@ -903,13 +987,15 @@ if (empty($reshook)) {
 	if (!empty($socid)) {
 		$url .= '&socid='.$socid;
 	}
-	$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', $url, '', $user->rights->accounting->mouvements->creer);
+	$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', $url, '', $user->hasRight('accounting', 'mouvements', 'creer'));
 }
 
 print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1);
 
-if ($massaction == 'preunlettering') {
-	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassUnlettering"), $langs->trans("ConfirmMassUnletteringQuestion", count($toselect)), "unlettering", null, '', 0, 200, 500, 1);
+if ($massaction == 'preunletteringauto') {
+	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassUnletteringAuto"), $langs->trans("ConfirmMassUnletteringQuestion", count($toselect)), "unletteringauto", null, '', 0, 200, 500, 1);
+} elseif ($massaction == 'preunletteringmanual') {
+	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassUnletteringManual"), $langs->trans("ConfirmMassUnletteringQuestion", count($toselect)), "unletteringmanual", null, '', 0, 200, 500, 1);
 } elseif ($massaction == 'predeletebookkeepingwriting') {
 	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDeleteBookkeepingWriting"), $langs->trans("ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)), "deletebookkeepingwriting", null, '', 0, 200, 500, 1);
 }
@@ -921,7 +1007,7 @@ if ($massaction == 'preunlettering') {
 include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
 
 $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
-$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
+$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN', '')); // This also change content of $arrayfields
 if ($massactionbutton && $contextpage != 'poslist') {
 	$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
 }
@@ -929,7 +1015,7 @@ if ($massactionbutton && $contextpage != 'poslist') {
 $moreforfilter = '';
 
 $parameters = array();
-$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook
+$reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // Note that $action and $object may have been modified by hook
 if (empty($reshook)) {
 	$moreforfilter .= $hookmanager->resPrint;
 } else {
@@ -937,11 +1023,17 @@ if (empty($reshook)) {
 }
 
 print '<div class="div-table-responsive">';
-print '<table class="tagtable liste centpercent">';
+print '<table class="tagtable liste'.($moreforfilter ? " listwithfilterbefore" : "").'">';
 
 // Filters lines
 print '<tr class="liste_titre_filter">';
-
+// Action column
+if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print '<td class="liste_titre center">';
+	$searchpicto = $form->showFilterButtons('left');
+	print $searchpicto;
+	print '</td>';
+}
 // Movement number
 if (!empty($arrayfields['t.piece_num']['checked'])) {
 	print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).'"></td>';
@@ -949,7 +1041,7 @@ if (!empty($arrayfields['t.piece_num']['checked'])) {
 // Code journal
 if (!empty($arrayfields['t.code_journal']['checked'])) {
 	print '<td class="liste_titre center">';
-	print $formaccounting->multi_select_journal($search_ledger_code, 'search_ledger_code', 0, 1, 1, 1, 'small maxwidth150');
+	print $formaccounting->multi_select_journal($search_ledger_code, 'search_ledger_code', 0, 1, 1, 1, 'small maxwidth75');
 	print '</td>';
 }
 // Date document
@@ -992,14 +1084,14 @@ if (!empty($arrayfields['t.subledger_account']['checked'])) {
 		print $formaccounting->select_auxaccount($search_accountancy_aux_code_end, 'search_accountancy_aux_code_end', $langs->trans('to'), 'maxwidth250', 'subledgeraccount');
 		print '</div>';
 	} else {
-		print '<input type="text" class="maxwidth75" name="search_accountancy_aux_code" value="'.$search_accountancy_aux_code.'">';
+		print '<input type="text" class="maxwidth75" name="search_accountancy_aux_code" value="'.dol_escape_htmltag($search_accountancy_aux_code).'">';
 	}
 	print '</td>';
 }
 // Label operation
 if (!empty($arrayfields['t.label_operation']['checked'])) {
 	print '<td class="liste_titre">';
-	print '<input type="text" size="7" class="flat" name="search_mvt_label" value="'.$search_mvt_label.'"/>';
+	print '<input type="text" size="7" class="flat" name="search_mvt_label" value="'.dol_escape_htmltag($search_mvt_label).'"/>';
 	print '</td>';
 }
 // Debit
@@ -1017,7 +1109,7 @@ if (!empty($arrayfields['t.credit']['checked'])) {
 // Lettering code
 if (!empty($arrayfields['t.lettering_code']['checked'])) {
 	print '<td class="liste_titre center">';
-	print '<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.'"/>';
+	print '<input type="text" size="3" class="flat" name="search_lettering_code" value="'.dol_escape_htmltag($search_lettering_code).'"/>';
 	print '<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled == 'notreconciled' ? ' checked' : '').'>'.$langs->trans("NotReconciled").'</span>';
 	print '</td>';
 }
@@ -1077,13 +1169,17 @@ if (!empty($arrayfields['t.import_key']['checked'])) {
 	print '</td>';
 }
 // Action column
-print '<td class="liste_titre center">';
-$searchpicto = $form->showFilterButtons();
-print $searchpicto;
-print '</td>';
+if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print '<td class="liste_titre center">';
+	$searchpicto = $form->showFilterButtons();
+	print $searchpicto;
+	print '</td>';
+}
 print "</tr>\n";
 
 print '<tr class="liste_titre">';
+if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch actioncolumn ');}
 if (!empty($arrayfields['t.piece_num']['checked'])) {
 	print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder);
 }
@@ -1125,15 +1221,17 @@ if (!empty($arrayfields['t.tms']['checked'])) {
 	print_liste_field_titre($arrayfields['t.tms']['label'], $_SERVER['PHP_SELF'], "t.tms", "", $param, '', $sortfield, $sortorder, 'center ');
 }
 if (!empty($arrayfields['t.date_export']['checked'])) {
-	print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export", "", $param, '', $sortfield, $sortorder, 'center ');
+	print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export,t.doc_date", "", $param, '', $sortfield, $sortorder, 'center ');
 }
 if (!empty($arrayfields['t.date_validated']['checked'])) {
-	print_liste_field_titre($arrayfields['t.date_validated']['label'], $_SERVER['PHP_SELF'], "t.date_validated", "", $param, '', $sortfield, $sortorder, 'center ');
+	print_liste_field_titre($arrayfields['t.date_validated']['label'], $_SERVER['PHP_SELF'], "t.date_validated,t.doc_date", "", $param, '', $sortfield, $sortorder, 'center ');
 }
 if (!empty($arrayfields['t.import_key']['checked'])) {
 	print_liste_field_titre($arrayfields['t.import_key']['label'], $_SERVER["PHP_SELF"], "t.import_key", "", $param, '', $sortfield, $sortorder, 'center ');
 }
-print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
+if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
+}
 print "</tr>\n";
 
 
@@ -1143,10 +1241,10 @@ $line = new BookKeepingLine();
 // --------------------------------------------------------------------
 $i = 0;
 $totalarray = array();
-$totalarray['val'] = array ();
 $totalarray['nbfield'] = 0;
 $total_debit = 0;
 $total_credit = 0;
+$totalarray['val'] = array ();
 $totalarray['val']['totaldebit'] = 0;
 $totalarray['val']['totalcredit'] = 0;
 
@@ -1188,6 +1286,18 @@ while ($i < min($num, $limit)) {
 	$total_credit += $line->credit;
 
 	print '<tr class="oddeven">';
+	// Action column
+	if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+		print '<td class="nowraponall center">';
+		if (($massactionbutton || $massaction) && $contextpage != 'poslist') {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
+			$selected = 0;
+			if (in_array($line->id, $arrayofselected)) {
+				$selected = 1;
+			}
+			print '<input id="cb'.$line->id.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$line->id.'"'.($selected ? ' checked="checked"' : '').' />';
+		}
+		print '</td>';
+	}
 
 	// Piece number
 	if (!empty($arrayfields['t.piece_num']['checked'])) {
@@ -1206,7 +1316,7 @@ while ($i < min($num, $limit)) {
 		$accountingjournal = new AccountingJournal($db);
 		$result = $accountingjournal->fetch('', $line->code_journal);
 		$journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal);
-		print '<td class="center">'.$journaltoshow.'</td>';
+		print '<td class="center tdoverflowmax150">'.$journaltoshow.'</td>';
 		if (!$i) {
 			$totalarray['nbfield']++;
 		}
@@ -1354,7 +1464,7 @@ while ($i < min($num, $limit)) {
 
 	// Creation operation date
 	if (!empty($arrayfields['t.date_creation']['checked'])) {
-		print '<td class="center">'.dol_print_date($line->date_creation, 'dayhour').'</td>';
+		print '<td class="center">'.dol_print_date($line->date_creation, 'dayhour', 'tzuserrel').'</td>';
 		if (!$i) {
 			$totalarray['nbfield']++;
 		}
@@ -1362,7 +1472,7 @@ while ($i < min($num, $limit)) {
 
 	// Modification operation date
 	if (!empty($arrayfields['t.tms']['checked'])) {
-		print '<td class="center">'.dol_print_date($line->date_modification, 'dayhour').'</td>';
+		print '<td class="center">'.dol_print_date($line->date_modification, 'dayhour', 'tzuserrel').'</td>';
 		if (!$i) {
 			$totalarray['nbfield']++;
 		}
@@ -1370,7 +1480,7 @@ while ($i < min($num, $limit)) {
 
 	// Exported operation date
 	if (!empty($arrayfields['t.date_export']['checked'])) {
-		print '<td class="center nowraponall">'.dol_print_date($line->date_export, 'dayhour').'</td>';
+		print '<td class="center nowraponall">'.dol_print_date($line->date_export, 'dayhour', 'tzuserrel').'</td>';
 		if (!$i) {
 			$totalarray['nbfield']++;
 		}
@@ -1378,7 +1488,7 @@ while ($i < min($num, $limit)) {
 
 	// Validated operation date
 	if (!empty($arrayfields['t.date_validated']['checked'])) {
-		print '<td class="center nowraponall">'.dol_print_date($line->date_validation, 'dayhour').'</td>';
+		print '<td class="center nowraponall">'.dol_print_date($line->date_validation, 'dayhour', 'tzuserrel').'</td>';
 		if (!$i) {
 			$totalarray['nbfield']++;
 		}
@@ -1392,15 +1502,17 @@ while ($i < min($num, $limit)) {
 	}
 
 	// Action column
-	print '<td class="nowraponall center">';
-	if (($massactionbutton || $massaction) && $contextpage != 'poslist') {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
-		$selected = 0;
-		if (in_array($line->id, $arrayofselected)) {
-			$selected = 1;
+	if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+		print '<td class="nowraponall center">';
+		if (($massactionbutton || $massaction) && $contextpage != 'poslist') {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
+			$selected = 0;
+			if (in_array($line->id, $arrayofselected)) {
+				$selected = 1;
+			}
+			print '<input id="cb'.$line->id.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$line->id.'"'.($selected ? ' checked="checked"' : '').' />';
 		}
-		print '<input id="cb'.$line->id.'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$line->id.'"'.($selected ? ' checked="checked"' : '').' />';
+		print '</td>';
 	}
-	print '</td>';
 
 	if (!$i) {
 		$totalarray['nbfield']++;
@@ -1414,6 +1526,20 @@ while ($i < min($num, $limit)) {
 // Show total line
 include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php';
 
+// If no record found
+if ($num == 0) {
+	$colspan = 1;
+	foreach ($arrayfields as $key => $val) {
+		if (!empty($val['checked'])) {
+			$colspan++;
+		}
+	}
+	print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("NoRecordFound").'</span></td></tr>';
+}
+
+$parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql);
+$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
+print $hookmanager->resPrint;
 
 print "</table>";
 print '</div>';
@@ -1429,4 +1555,5 @@ print '</form>';
 
 // End of page
 llxFooter();
+
 $db->close();

+ 145 - 59
htdocs/accountancy/bookkeeping/listbyaccount.php

@@ -25,6 +25,7 @@
  * \brief 		List operation of ledger ordered by account number
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
@@ -162,8 +163,8 @@ $arrayfields = array(
 	't.doc_date'=>array('label'=>$langs->trans("Docdate"), 'checked'=>1),
 	't.doc_ref'=>array('label'=>$langs->trans("Piece"), 'checked'=>1),
 	't.label_operation'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
-	't.debit'=>array('label'=>$langs->trans("Debit"), 'checked'=>1),
-	't.credit'=>array('label'=>$langs->trans("Credit"), 'checked'=>1),
+	't.debit'=>array('label'=>$langs->trans("AccountingDebit"), 'checked'=>1),
+	't.credit'=>array('label'=>$langs->trans("AccountingCredit"), 'checked'=>1),
 	't.lettering_code'=>array('label'=>$langs->trans("LetteringCode"), 'checked'=>1),
 	't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>1),
 	't.date_validated'=>array('label'=>$langs->trans("DateValidation"), 'checked'=>1, 'enabled'=>!getDolGlobalString("ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")),
@@ -193,7 +194,7 @@ if (!isModEnabled('accounting')) {
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->mouvements->lire)) {
+if (!$user->hasRight('accounting', 'mouvements', 'lire')) {
 	accessforbidden();
 }
 
@@ -208,7 +209,7 @@ if (GETPOST('cancel', 'alpha')) {
 	$action = 'list';
 	$massaction = '';
 }
-if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'preunlettering' && $massaction != 'predeletebookkeepingwriting') {
+if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'preunletteringauto' && $massaction != 'preunletteringmanual' && $massaction != 'predeletebookkeepingwriting') {
 	$massaction = '';
 }
 
@@ -394,50 +395,71 @@ if (empty($reshook)) {
 	// Mass actions
 	$objectclass = 'Bookkeeping';
 	$objectlabel = 'Bookkeeping';
-	$permissiontoread = $user->rights->societe->lire;
-	$permissiontodelete = $user->rights->societe->supprimer;
+	$permissiontoread = $user->hasRight('societe', 'lire');
+	$permissiontodelete = $user->hasRight('societe', 'supprimer');
 	$permissiontoadd = $user->rights->societe->creer;
 	$uploaddir = $conf->societe->dir_output;
 	include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
 
-	if (!$error && $action == 'deletebookkeepingwriting' && $confirm == "yes" && $user->rights->accounting->mouvements->supprimer) {
+	if (!$error && $action == 'deletebookkeepingwriting' && $confirm == "yes" && $user->hasRight('accounting', 'mouvements', 'supprimer')) {
+		$db->begin();
+
+		if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING')) {
+			$lettering = new Lettering($db);
+			$nb_lettering = $lettering->bookkeepingLetteringAll($toselect, true);
+			if ($nb_lettering < 0) {
+				setEventMessages('', $lettering->errors, 'errors');
+				$error++;
+			}
+		}
+
 		$nbok = 0;
-		foreach ($toselect as $toselectid) {
-			$result = $object->fetch($toselectid);
-			if ($result > 0 && (!isset($object->date_validation) || $object->date_validation === '')) {
-				$result = $object->deleteMvtNum($object->piece_num);
-				if ($result > 0) {
-					$nbok++;
-				} else {
+		if (!$error) {
+			foreach ($toselect as $toselectid) {
+				$result = $object->fetch($toselectid);
+				if ($result > 0 && (!isset($object->date_validation) || $object->date_validation === '')) {
+					$result = $object->deleteMvtNum($object->piece_num);
+					if ($result > 0) {
+						$nbok++;
+					} else {
+						setEventMessages($object->error, $object->errors, 'errors');
+						$error++;
+						break;
+					}
+				} elseif ($result < 0) {
 					setEventMessages($object->error, $object->errors, 'errors');
 					$error++;
 					break;
-				}
-			} elseif ($result < 0) {
-				setEventMessages($object->error, $object->errors, 'errors');
-				$error++;
-				break;
+				} elseif (isset($object->date_validation) || $object->date_validation != '') {
+                    setEventMessages($langs->trans("ValidatedRecordWhereFound"), null, 'errors');
+                    $error++;
+                    break;
+                }
 			}
 		}
 
-		// Message for elements well deleted
-		if ($nbok > 1) {
-			setEventMessages($langs->trans("RecordsDeleted", $nbok), null, 'mesgs');
-		} elseif ($nbok > 0) {
-			setEventMessages($langs->trans("RecordDeleted", $nbok), null, 'mesgs');
-		} elseif (!$error) {
-			setEventMessages($langs->trans("NoRecordDeleted"), null, 'mesgs');
-		}
-
 		if (!$error) {
+			$db->commit();
+
+			// Message for elements well deleted
+			if ($nbok > 1) {
+				setEventMessages($langs->trans("RecordsDeleted", $nbok), null, 'mesgs');
+			} elseif ($nbok > 0) {
+				setEventMessages($langs->trans("RecordDeleted", $nbok), null, 'mesgs');
+			} elseif (!$error) {
+				setEventMessages($langs->trans("NoRecordDeleted"), null, 'mesgs');
+			}
+
 			header("Location: ".$_SERVER["PHP_SELF"]."?noreset=1".($param ? '&'.$param : ''));
 			exit;
+		} else {
+			$db->rollback();
 		}
 	}
 
 	// others mass actions
-	if (!$error && getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->rights->accounting->mouvements->creer) {
-		if ($massaction == 'lettering') {
+	if (!$error && getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->hasRight('accounting', 'mouvements', 'creer')) {
+		if ($massaction == 'letteringauto') {
 			$lettering = new Lettering($db);
 			$nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
 			if ($nb_lettering < 0) {
@@ -458,7 +480,17 @@ if (empty($reshook)) {
 				header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param);
 				exit();
 			}
-		} elseif ($action == 'unlettering' && $confirm == "yes") {
+		} elseif ($massaction == 'letteringmanual') {
+			$lettering = new Lettering($db);
+			$result = $lettering->updateLettering($toselect);
+			if ($result < 0) {
+				setEventMessages('', $lettering->errors, 'errors');
+			} else {
+				setEventMessages($langs->trans('AccountancyOneLetteringModifiedSuccessfully'), array(), 'mesgs');
+				header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param);
+				exit();
+			}
+		} elseif ($action == 'unletteringauto' && $confirm == "yes") {
 			$lettering = new Lettering($db);
 			$nb_lettering = $lettering->bookkeepingLetteringAll($toselect, true);
 			if ($nb_lettering < 0) {
@@ -479,6 +511,16 @@ if (empty($reshook)) {
 				header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param);
 				exit();
 			}
+		} elseif ($action == 'unletteringmanual' && $confirm == "yes") {
+			$lettering = new Lettering($db);
+			$nb_lettering = $lettering->deleteLettering($toselect);
+			if ($result < 0) {
+				setEventMessages('', $lettering->errors, 'errors');
+			} else {
+				setEventMessages($langs->trans('AccountancyOneUnletteringModifiedSuccessfully'), array(), 'mesgs');
+				header('Location: ' . $_SERVER['PHP_SELF'] . '?noreset=1' . $param);
+				exit();
+			}
 		}
 	}
 }
@@ -578,14 +620,16 @@ print $formconfirm;
 
 // List of mass actions available
 $arrayofmassactions = array();
-if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->rights->accounting->mouvements->creer) {
-	$arrayofmassactions['lettering'] = img_picto('', 'check', 'class="pictofixedwidth"') . $langs->trans('Lettering');
-	$arrayofmassactions['preunlettering'] = img_picto('', 'uncheck', 'class="pictofixedwidth"') . $langs->trans('Unlettering');
+if (getDolGlobalInt('ACCOUNTING_ENABLE_LETTERING') && $user->hasRight('accounting', 'mouvements', 'creer')) {
+	$arrayofmassactions['letteringauto'] = img_picto('', 'check', 'class="pictofixedwidth"') . $langs->trans('LetteringAuto');
+	$arrayofmassactions['preunletteringauto'] = img_picto('', 'uncheck', 'class="pictofixedwidth"') . $langs->trans('UnletteringAuto');
+	$arrayofmassactions['letteringmanual'] = img_picto('', 'check', 'class="pictofixedwidth"') . $langs->trans('LetteringManual');
+	$arrayofmassactions['preunletteringmanual'] = img_picto('', 'uncheck', 'class="pictofixedwidth"') . $langs->trans('UnletteringManual');
 }
-if ($user->rights->accounting->mouvements->supprimer) {
+if ($user->hasRight('accounting', 'mouvements', 'supprimer')) {
 	$arrayofmassactions['predeletebookkeepingwriting'] = img_picto('', 'delete', 'class="pictofixedwidth"').$langs->trans("Delete");
 }
-if (GETPOST('nomassaction', 'int') || in_array($massaction, array('preunlettering', 'predeletebookkeepingwriting'))) {
+if (GETPOST('nomassaction', 'int') || in_array($massaction, array('preunletteringauto', 'preunletteringmanual', 'predeletebookkeepingwriting'))) {
 	$arrayofmassactions = array();
 }
 $massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
@@ -631,8 +675,10 @@ if ($limit > 0 && $limit != $conf->liste_limit) {
 
 print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $result, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1);
 
-if ($massaction == 'preunlettering') {
-	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassUnlettering"), $langs->trans("ConfirmMassUnletteringQuestion", count($toselect)), "unlettering", null, '', 0, 200, 500, 1);
+if ($massaction == 'preunletteringauto') {
+	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassUnletteringAuto"), $langs->trans("ConfirmMassUnletteringQuestion", count($toselect)), "unletteringauto", null, '', 0, 200, 500, 1);
+} elseif ($massaction == 'preunletteringmanual') {
+	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassUnletteringManual"), $langs->trans("ConfirmMassUnletteringQuestion", count($toselect)), "unletteringmanual", null, '', 0, 200, 500, 1);
 } elseif ($massaction == 'predeletebookkeepingwriting') {
 	print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDeleteBookkeepingWriting"), $langs->trans("ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)), "deletebookkeepingwriting", null, '', 0, 200, 500, 1);
 }
@@ -650,7 +696,7 @@ if ($massaction == 'preunlettering') {
 include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
 
 $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
-$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
+$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage, getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')); // This also change content of $arrayfields
 if ($massactionbutton && $contextpage != 'poslist') {
 	$selectedfields .= $form->showCheckAddButtons('checkforselect', 1);
 }
@@ -704,15 +750,21 @@ print '<table class="tagtable liste centpercent">';
 
 // Filters lines
 print '<tr class="liste_titre_filter">';
-
+// Action column
+if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print '<td class="liste_titre center">';
+	$searchpicto = $form->showFilterButtons('left');
+	print $searchpicto;
+	print '</td>';
+}
 // Movement number
 if (!empty($arrayfields['t.piece_num']['checked'])) {
-	print '<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).'"></td>';
+	print '<td class="liste_titre"><input type="text" name="search_mvt_num" class="width50" value="'.dol_escape_htmltag($search_mvt_num).'"></td>';
 }
 // Code journal
 if (!empty($arrayfields['t.code_journal']['checked'])) {
 	print '<td class="liste_titre center">';
-	print $formaccounting->multi_select_journal($search_ledger_code, 'search_ledger_code', 0, 1, 1, 1);
+	print $formaccounting->multi_select_journal($search_ledger_code, 'search_ledger_code', 0, 1, 1, 1, 'maxwidth75');
 	print '</td>';
 }
 // Date document
@@ -783,15 +835,20 @@ $reshook = $hookmanager->executeHooks('printFieldListOption', $parameters); // N
 print $hookmanager->resPrint;
 
 // Action column
-print '<td class="liste_titre center">';
-$searchpicto = $form->showFilterButtons();
-print $searchpicto;
-print '</td>';
+if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print '<td class="liste_titre center">';
+	$searchpicto = $form->showFilterButtons();
+	print $searchpicto;
+	print '</td>';
+}
 print "</tr>\n";
 
 print '<tr class="liste_titre">';
+if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
+}
 if (!empty($arrayfields['t.piece_num']['checked'])) {
-	print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, '', $sortfield, $sortorder);
+	print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, '', $sortfield, $sortorder, 'tdoverflowmax80imp ');
 }
 if (!empty($arrayfields['t.code_journal']['checked'])) {
 	print_liste_field_titre($arrayfields['t.code_journal']['label'], $_SERVER['PHP_SELF'], "t.code_journal", "", $param, '', $sortfield, $sortorder, 'center ');
@@ -827,7 +884,9 @@ if (!empty($arrayfields['t.import_key']['checked'])) {
 $parameters = array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
 $reshook = $hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
 print $hookmanager->resPrint;
-print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
+if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+	print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
+}
 print "</tr>\n";
 
 $displayed_account_number = null; // Start with undefined to be able to distinguish with empty
@@ -940,7 +999,18 @@ while ($i < min($num, $limit)) {
 	}
 
 	print '<tr class="oddeven">';
-
+	// Action column
+	if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+		print '<td class="nowraponall center">';
+		if (($massactionbutton || $massaction) && $contextpage != 'poslist') {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
+			$selected = 0;
+			if (in_array($line->id, $arrayofselected)) {
+				$selected = 1;
+			}
+			print '<input id="cb' . $line->id . '" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id . '"' . ($selected ? ' checked="checked"' : '') . ' />';
+		}
+		print '</td>';
+	}
 	// Piece number
 	if (!empty($arrayfields['t.piece_num']['checked'])) {
 		print '<td>';
@@ -958,7 +1028,7 @@ while ($i < min($num, $limit)) {
 		$accountingjournal = new AccountingJournal($db);
 		$result = $accountingjournal->fetch('', $line->code_journal);
 		$journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0, '', 0) : $line->code_journal);
-		print '<td class="center">'.$journaltoshow.'</td>';
+		print '<td class="center tdoverflowmax80">'.$journaltoshow.'</td>';
 		if (!$i) {
 			$totalarray['nbfield']++;
 		}
@@ -1054,7 +1124,7 @@ while ($i < min($num, $limit)) {
 
 	// Amount debit
 	if (!empty($arrayfields['t.debit']['checked'])) {
-		print '<td class="right nowraponall amount">'.($line->debit ? price($line->debit) : '').'</td>';
+		print '<td class="right nowraponall amount">'.($line->debit != 0 ? price($line->debit) : '').'</td>';
 		if (!$i) {
 			$totalarray['nbfield']++;
 		}
@@ -1066,7 +1136,7 @@ while ($i < min($num, $limit)) {
 
 	// Amount credit
 	if (!empty($arrayfields['t.credit']['checked'])) {
-		print '<td class="right nowraponall amount">'.($line->credit ? price($line->credit) : '').'</td>';
+		print '<td class="right nowraponall amount">'.($line->credit != 0 ? price($line->credit) : '').'</td>';
 		if (!$i) {
 			$totalarray['nbfield']++;
 		}
@@ -1113,15 +1183,17 @@ while ($i < min($num, $limit)) {
 	print $hookmanager->resPrint;
 
 	// Action column
-	print '<td class="nowraponall center">';
-	if (($massactionbutton || $massaction) && $contextpage != 'poslist') {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
-		$selected = 0;
-		if (in_array($line->id, $arrayofselected)) {
-			$selected = 1;
+	if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
+		print '<td class="nowraponall center">';
+		if (($massactionbutton || $massaction) && $contextpage != 'poslist') {   // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
+			$selected = 0;
+			if (in_array($line->id, $arrayofselected)) {
+				$selected = 1;
+			}
+			print '<input id="cb' . $line->id . '" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id . '"' . ($selected ? ' checked="checked"' : '') . ' />';
 		}
-		print '<input id="cb' . $line->id . '" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id . '"' . ($selected ? ' checked="checked"' : '') . ' />';
+		print '</td>';
 	}
-	print '</td>';
 	if (!$i) {
 		$totalarray['nbfield']++;
 	}
@@ -1164,6 +1236,20 @@ if ($num > 0 && $colspan > 0) {
 // Show total line
 include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php';
 
+// If no record found
+if ($num == 0) {
+	$colspan = 1;
+	foreach ($arrayfields as $key => $val) {
+		if (!empty($val['checked'])) {
+			$colspan++;
+		}
+	}
+	print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("NoRecordFound").'</span></td></tr>';
+}
+
+$parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql);
+$reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
+print $hookmanager->resPrint;
 
 print "</table>";
 print '</div>';

+ 34 - 69
htdocs/accountancy/class/accountancycategory.class.php

@@ -446,61 +446,11 @@ class AccountancyCategory // extends CommonObject
 		} else {
 			$this->error = "Error ".$this->db->lasterror();
 			$this->errors[] = $this->error;
-			dol_syslog(__METHOD__." ".implode(','.$this->errors), LOG_ERR);
-
-			return -1;
-		}
-	}
-
-	/**
-	 * Function to fill ->lines_cptbk with accounting account used (into bookkeeping) and not yet into a custom group
-	 *
-	 * @param 	int $id 	Id of custom group
-	 * @return 	int 		<0 if KO, 0 if not found, >0 if OK
-	 */
-	/*
-	public function getCptBK($id)
-	{
-		global $conf;
-
-		$sql = "SELECT DISTINCT t.numero_compte, t.label_operation, t.doc_ref";
-		$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as t";
-		$sql .= " WHERE t.numero_compte NOT IN (";	// account not into a custom group
-		$sql .= " SELECT t.account_number";
-		$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as t";
-		$sql .= " WHERE t.fk_accounting_category = ".((int) $id)." AND t.entity = ".$conf->entity.")";
-		$sql .= " AND t.numero_compte IN (";		// account into current chart of account
-		$sql .= " SELECT DISTINCT aa.account_number";
-		$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
-		$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
-		$sql .= " AND asy.rowid = ".((int) $conf->global->CHARTOFACCOUNTS);
-		$sql .= " AND aa.active = 1";
-		$sql .= " AND aa.entity = ".$conf->entity.")";
-		$sql .= " GROUP BY t.numero_compte, t.label_operation, t.doc_ref";
-		$sql .= " ORDER BY t.numero_compte";
-
-		$this->lines_cptbk = array();
-
-		dol_syslog(__METHOD__, LOG_DEBUG);
-		$resql = $this->db->query($sql);
-		if ($resql) {
-			$num = $this->db->num_rows($resql);
-			if ($num) {
-				while ($obj = $this->db->fetch_object($resql)) {
-					$this->lines_cptbk[] = $obj;
-				}
-			}
-
-			return $num;
-		} else {
-			$this->error = "Error ".$this->db->lasterror();
-			$this->errors[] = $this->error;
-			dol_syslog(__METHOD__." ".implode(','.$this->errors), LOG_ERR);
+			dol_syslog(__METHOD__." ".implode(',', $this->errors), LOG_ERR);
 
 			return -1;
 		}
 	}
-	*/
 
 	/**
 	 * Function to fill ->lines_cptbk with accounting account (defined in chart of account) and not yet into a custom group
@@ -538,7 +488,7 @@ class AccountancyCategory // extends CommonObject
 		} else {
 			$this->error = "Error ".$this->db->lasterror();
 			$this->errors[] = $this->error;
-			dol_syslog(__METHOD__." ".implode(','.$this->errors), LOG_ERR);
+			dol_syslog(__METHOD__." ".implode(',', $this->errors), LOG_ERR);
 
 			return -1;
 		}
@@ -728,21 +678,30 @@ class AccountancyCategory // extends CommonObject
 		$this->sdc = 0;
 		$this->sdcpermonth = array();
 
+		if (is_array($cpt)) {
+			$listofaccount = '';
+			foreach ($cpt as $cptcursor) {
+				if (! is_null($cptcursor)) {
+					if ($listofaccount) {
+						$listofaccount .= ",";
+					}
+					$listofaccount .= "'".$cptcursor."'";
+				}
+			}
+			if (empty($listofaccount)) {
+				// List of account is empty, so we do no try sql request, we can say result is empty.
+				return 0;
+			}
+		}
+
 		$sql = "SELECT SUM(t.debit) as debit, SUM(t.credit) as credit";
 		if (is_array($cpt)) {
 			$sql .= ", t.numero_compte as accountancy_account";
 		}
 		$sql .= " FROM ".MAIN_DB_PREFIX."accounting_bookkeeping as t";
 		//if (in_array($this->db->type, array('mysql', 'mysqli'))) $sql.=' USE INDEX idx_accounting_bookkeeping_doc_date';
-		$sql .= " WHERE t.entity = ".$conf->entity;
+		$sql .= " WHERE t.entity = ".((int) $conf->entity);
 		if (is_array($cpt)) {
-			$listofaccount = '';
-			foreach ($cpt as $cptcursor) {
-				if ($listofaccount) {
-					$listofaccount .= ",";
-				}
-				$listofaccount .= "'".$cptcursor."'";
-			}
 			$sql .= " AND t.numero_compte IN (".$this->db->sanitize($listofaccount, 1).")";
 		} else {
 			$sql .= " AND t.numero_compte = '".$this->db->escape($cpt)."'";
@@ -759,22 +718,28 @@ class AccountancyCategory // extends CommonObject
 		if (is_array($cpt)) {
 			$sql .= " GROUP BY t.numero_compte";
 		}
-		//print $sql;
 
 		$resql = $this->db->query($sql);
 		if ($resql) {
 			$num = $this->db->num_rows($resql);
 			if ($num) {
-				$obj = $this->db->fetch_object($resql);
-				if ($sens == 1) {
-					$this->sdc = $obj->debit - $obj->credit;
-				} else {
-					$this->sdc = $obj->credit - $obj->debit;
-				}
-				if (is_array($cpt)) {
-					$this->sdcperaccount[$obj->accountancy_account] = $this->sdc;
+				$i = 0;
+				while ($i < $num) {
+					$obj = $this->db->fetch_object($resql);
+					if ($obj) {
+						if ($sens == 1) {
+							$this->sdc = $obj->debit - $obj->credit;
+						} else {
+							$this->sdc = $obj->credit - $obj->debit;
+						}
+						if (is_array($cpt)) {
+							$this->sdcperaccount[$obj->accountancy_account] = $this->sdc;
+						}
+					}
+					$i++;
 				}
 			}
+
 			return $num;
 		} else {
 			$this->error = "Error ".$this->db->lasterror();

+ 30 - 4
htdocs/accountancy/class/accountancyexport.class.php

@@ -286,6 +286,28 @@ class AccountancyExport
 	}
 
 
+	/**
+	 * Return the MIME type of a file
+	 *
+	 * @param	int		$formatexportset	Id of export format
+	 * @return 	string						MIME type.
+	 */
+	public function getMimeType($formatexportset)
+	{
+		$mime = 'text/csv';
+
+		switch ($formatexportset) {
+			case self::$EXPORT_TYPE_FEC:
+				$mime = 'text/tab-separated-values';
+				break;
+			default:
+				$mime = 'text/csv';
+				break;
+		}
+
+		return $mime;
+	}
+
 	/**
 	 * Function who chose which export to use with the default config, and make the export into a file
 	 *
@@ -1016,7 +1038,9 @@ class AccountancyExport
 				print $line->code_journal . $separator;
 
 				// FEC:JournalLib
-				print dol_string_unaccent($langs->transnoentities($line->journal_label)) . $separator;
+				$labeljournal = dol_string_unaccent($langs->transnoentities($line->journal_label));
+				$labeljournal = dol_string_nospecial($labeljournal, ' ');
+				print $labeljournal . $separator;
 
 				// FEC:EcritureNum
 				print $line->piece_num . $separator;
@@ -1147,7 +1171,9 @@ class AccountancyExport
 				print $line->code_journal . $separator;
 
 				// FEC:JournalLib
-				print dol_string_unaccent($langs->transnoentities($line->journal_label)) . $separator;
+				$labeljournal = dol_string_unaccent($langs->transnoentities($line->journal_label));
+				$labeljournal = dol_string_nospecial($labeljournal, ' ');
+				print $labeljournal . $separator;
 
 				// FEC:EcritureNum
 				print $line->piece_num . $separator;
@@ -1386,7 +1412,7 @@ class AccountancyExport
 			}
 			print $nature_piece.$separator;
 			// RACI
-			//			if (! empty($line->subledger_account)) {
+			//			if (!empty($line->subledger_account)) {
 			//              if ($line->doc_type == 'supplier_invoice') {
 			//                  $racine_subledger_account = '40';
 			//              } elseif ($line->doc_type == 'customer_invoice') {
@@ -1649,7 +1675,7 @@ class AccountancyExport
 			}
 			print $nature_piece.$separator;
 			// RACI
-			//			if (! empty($line->subledger_account)) {
+			//			if (!empty($line->subledger_account)) {
 			//				if ($line->doc_type == 'supplier_invoice') {
 			//					$racine_subledger_account = '40';
 			//				} elseif ($line->doc_type == 'customer_invoice') {

+ 50 - 20
htdocs/accountancy/class/accountingaccount.class.php

@@ -723,16 +723,18 @@ class AccountingAccount extends CommonObject
 	}
 
 	/**
-	 * Return Suggest accounting accounts to bind
+	 * Return a suggested account (from chart of accounts) to bind
 	 *
 	 * @param 	Societe 							$buyer 				Object buyer
 	 * @param 	Societe 							$seller 			Object seller
 	 * @param 	Product 							$product 			Product object sell or buy
 	 * @param 	Facture|FactureFournisseur 			$facture 			Facture
 	 * @param 	FactureLigne|SupplierInvoiceLine	$factureDet 		Facture Det
-	 * @param 	array 								$accountingAccount 	Array of Account account
+	 * @param 	array 								$accountingAccount 	Array of Accounting account
 	 * @param 	string 								$type 				Customer / Supplier
 	 * @return	array|int      											Accounting accounts suggested or < 0 if technical error.
+	 * 																	'suggestedaccountingaccountbydefaultfor'=>Will be used for the label to show on tooltip for account by default on any product
+	 * 																	'suggestedaccountingaccountfor'=>Is the account suggested for this product
 	 */
 	public function getAccountingCodeToBind(Societe $buyer, Societe $seller, Product $product, $facture, $factureDet, $accountingAccount = array(), $type = '')
 	{
@@ -811,9 +813,9 @@ class AccountingAccount extends CommonObject
 			$suggestedaccountingaccountfor = '';
 			if ((($buyer->country_code == $seller->country_code) || empty($buyer->country_code))) {
 				// If buyer in same country than seller (if not defined, we assume it is same country)
-				if ($type=='customer' && !empty($product->accountancy_code_sell)) {
+				if ($type == 'customer' && !empty($product->accountancy_code_sell)) {
 					$code_p = $product->accountancy_code_sell;
-				} elseif ($type=='supplier' && !empty($product->accountancy_code_buy)) {
+				} elseif ($type == 'supplier' && !empty($product->accountancy_code_buy)) {
 					$code_p = $product->accountancy_code_buy;
 				}
 				$suggestedid = $accountingAccount['dom'];
@@ -821,36 +823,36 @@ class AccountingAccount extends CommonObject
 			} else {
 				if ($isSellerInEEC && $isBuyerInEEC && $factureDet->tva_tx != 0) {
 					// European intravat sale, but with VAT
-					if ($type=='customer' && !empty($product->accountancy_code_sell)) {
+					if ($type == 'customer' && !empty($product->accountancy_code_sell)) {
 						$code_p = $product->accountancy_code_sell;
-					} elseif ($type=='supplier' && !empty($product->accountancy_code_buy)) {
+					} elseif ($type == 'supplier' && !empty($product->accountancy_code_buy)) {
 						$code_p = $product->accountancy_code_buy;
 					}
 					$suggestedid = $accountingAccount['dom'];
 					$suggestedaccountingaccountfor = 'eecwithvat';
 				} elseif ($isSellerInEEC && $isBuyerInEEC && empty($buyer->tva_intra)) {
 					// European intravat sale, without VAT intra community number
-					if ($type=='customer' && !empty($product->accountancy_code_sell)) {
+					if ($type == 'customer' && !empty($product->accountancy_code_sell)) {
 						$code_p = $product->accountancy_code_sell;
-					} elseif ($type=='supplier' && !empty($product->accountancy_code_buy)) {
+					} elseif ($type == 'supplier' && !empty($product->accountancy_code_buy)) {
 						$code_p = $product->accountancy_code_buy;
 					}
 					$suggestedid = $accountingAccount['dom']; // There is a doubt for this case. Is it an error on vat or we just forgot to fill vat number ?
 					$suggestedaccountingaccountfor = 'eecwithoutvatnumber';
 				} elseif ($isSellerInEEC && $isBuyerInEEC && !empty($product->accountancy_code_sell_intra)) {
 					// European intravat sale
-					if ($type=='customer' && !empty($product->accountancy_code_sell_intra)) {
+					if ($type == 'customer' && !empty($product->accountancy_code_sell_intra)) {
 						$code_p = $product->accountancy_code_sell_intra;
-					} elseif ($type=='supplier' && !empty($product->accountancy_code_buy_intra)) {
+					} elseif ($type == 'supplier' && !empty($product->accountancy_code_buy_intra)) {
 						$code_p = $product->accountancy_code_buy_intra;
 					}
 					$suggestedid = $accountingAccount['intra'];
 					$suggestedaccountingaccountfor = 'eec';
 				} else {
 					// Foreign sale
-					if ($type=='customer' && !empty($product->accountancy_code_sell_export)) {
+					if ($type == 'customer' && !empty($product->accountancy_code_sell_export)) {
 						$code_p = $product->accountancy_code_sell_export;
-					} elseif ($type=='supplier' && !empty($product->accountancy_code_buy_export)) {
+					} elseif ($type == 'supplier' && !empty($product->accountancy_code_buy_export)) {
 						$code_p = $product->accountancy_code_buy_export;
 					}
 					$suggestedid = $accountingAccount['export'];
@@ -868,16 +870,44 @@ class AccountingAccount extends CommonObject
 			}
 
 			// Manage Deposit
-			if ($factureDet->desc == "(DEPOSIT)" || $facture->type == $facture::TYPE_DEPOSIT) {
-				$accountdeposittoventilated = new self($this->db);
-				$result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT, 1);
-				if ($result < 0) {
-					return -1;
+			if (getDolGlobalString('ACCOUNTING_ACCOUNT_' . strtoupper($type) . '_DEPOSIT')) {
+				if ($factureDet->desc == "(DEPOSIT)" || $facture->type == $facture::TYPE_DEPOSIT) {
+					$accountdeposittoventilated = new self($this->db);
+					if ($type == 'customer') {
+						$result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT, 1);
+					} elseif ($type == 'supplier') {
+						$result = $accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT, 1);
+					}
+					if (isset($result) && $result < 0) {
+						return -1;
+					}
+
+					$code_l = $accountdeposittoventilated->ref;
+					$code_p = '';
+					$code_t = '';
+					$suggestedid = $accountdeposittoventilated->rowid;
+					$suggestedaccountingaccountfor = 'deposit';
 				}
 
-				$code_l = $accountdeposittoventilated->ref;
-				$suggestedid = $accountdeposittoventilated->rowid;
-				$suggestedaccountingaccountfor = 'deposit';
+				// For credit note invoice, if origin invoice is a deposit invoice, force also on specific customer/supplier deposit account
+				if (!empty($facture->fk_facture_source)) {
+					$invoiceSource = new $facture($this->db);
+					$invoiceSource->fetch($facture->fk_facture_source);
+
+					if ($facture->type == $facture::TYPE_CREDIT_NOTE && $invoiceSource->type == $facture::TYPE_DEPOSIT) {
+						$accountdeposittoventilated = new self($this->db);
+						if ($type == 'customer') {
+							$accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER_DEPOSIT, 1);
+						} elseif ($type == 'supplier') {
+							$accountdeposittoventilated->fetch('', $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER_DEPOSIT, 1);
+						}
+						$code_l = $accountdeposittoventilated->ref;
+						$code_p = '';
+						$code_t = '';
+						$suggestedid = $accountdeposittoventilated->rowid;
+						$suggestedaccountingaccountfor = 'deposit';
+					}
+				}
 			}
 
 			// If $suggestedid could not be guessed yet, we set it from the generic default accounting code $code_l

+ 13 - 8
htdocs/accountancy/class/accountingjournal.class.php

@@ -231,7 +231,7 @@ class AccountingJournal extends CommonObject
 	 * Return clicable name (with picto eventually)
 	 *
 	 * @param	int		$withpicto		0=No picto, 1=Include picto into link, 2=Only picto
-	 * @param	int		$withlabel		0=No label, 1=Include label of journal
+	 * @param	int		$withlabel		0=No label, 1=Include label of journal, 2=Include nature of journal
 	 * @param	int  	$nourl			1=Disable url
 	 * @param	string  $moretitle		Add more text to title tooltip
 	 * @param	int  	$notooltip		1=Disable tooltip
@@ -281,9 +281,14 @@ class AccountingJournal extends CommonObject
 		}
 
 		$label_link = $this->code;
-		if ($withlabel && !empty($this->label)) {
+		if ($withlabel != 2 && !empty($this->label)) {
 			$label_link .= ' - '.($nourl ? '<span class="opacitymedium">' : '').$langs->transnoentities($this->label).($nourl ? '</span>' : '');
 		}
+		if ($withlabel == 2 && !empty($this->nature)) {
+			$key = $langs->trans("AccountingJournalType".strtoupper($this->nature));
+			$transferlabel = ($this->nature && $key != "AccountingJournalType".strtoupper($langs->trans($this->nature)) ? $key : $this->label);
+			$label_link .= ' - '.($nourl ? '<span class="opacitymedium">' : '').$transferlabel.($nourl ? '</span>' : '');
+		}
 
 		$result .= $linkstart;
 		if ($withpicto) {
@@ -982,8 +987,8 @@ class AccountingJournal extends CommonObject
 					$langs->transnoentitiesnoconv("LedgerAccount"),
 					$langs->transnoentitiesnoconv("SubledgerAccount"),
 					$langs->transnoentitiesnoconv("Label"),
-					$langs->transnoentitiesnoconv("Debit"),
-					$langs->transnoentitiesnoconv("Credit"),
+					$langs->transnoentitiesnoconv("AccountingDebit"),
+					$langs->transnoentitiesnoconv("AccountingCredit"),
 					$langs->transnoentitiesnoconv("Journal"),
 					$langs->transnoentitiesnoconv("Note"),
 				);
@@ -993,8 +998,8 @@ class AccountingJournal extends CommonObject
 					$langs->transnoentitiesnoconv("Piece"),
 					$langs->transnoentitiesnoconv("AccountAccounting"),
 					$langs->transnoentitiesnoconv("LabelOperation"),
-					$langs->transnoentitiesnoconv("Debit"),
-					$langs->transnoentitiesnoconv("Credit"),
+					$langs->transnoentitiesnoconv("AccountingDebit"),
+					$langs->transnoentitiesnoconv("AccountingCredit"),
 				);
 			} elseif ($this->nature == 1) {
 				$header = array(
@@ -1002,8 +1007,8 @@ class AccountingJournal extends CommonObject
 					$langs->transnoentitiesnoconv("Piece"),
 					$langs->transnoentitiesnoconv("AccountAccounting"),
 					$langs->transnoentitiesnoconv("LabelOperation"),
-					$langs->transnoentitiesnoconv("Debit"),
-					$langs->transnoentitiesnoconv("Credit"),
+					$langs->transnoentitiesnoconv("AccountingDebit"),
+					$langs->transnoentitiesnoconv("AccountingCredit"),
 				);
 			}
 

+ 1 - 1
htdocs/accountancy/class/bookkeeping.class.php

@@ -798,7 +798,7 @@ class BookKeeping extends CommonObject
 				$this->piece_num = $obj->piece_num;
 				$this->date_creation = $this->db->jdate($obj->date_creation);
 				$this->date_export = $this->db->jdate($obj->date_export);
-				$this->date_validation = isset($obj->date_validated) ? $this->db->jdate($obj->date_validated) : '';
+				$this->date_validation = isset($obj->date_validation) ? $this->db->jdate($obj->date_validation) : '';
 			}
 			$this->db->free($resql);
 

+ 316 - 204
htdocs/accountancy/class/lettering.class.php

@@ -33,11 +33,52 @@ include_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php";
  */
 class Lettering extends BookKeeping
 {
-	/**
-	 * @var BookKeeping[] 	Bookkeeping cached
-	 */
-	public static $bookkeeping_cached = array();
-
+	public static $doc_type_infos = array(
+		'customer_invoice' => array(
+			'payment_table' => 'paiement',
+			'payment_table_fk_bank' => 'fk_bank',
+			'doc_payment_table' => 'paiement_facture',
+			'doc_payment_table_fk_payment' => 'fk_paiement',
+			'doc_payment_table_fk_doc' => 'fk_facture',
+			'linked_info' => array(
+				array(
+					'table' => 'paiement_facture',
+					'fk_doc' => 'fk_facture',
+					'fk_link' => 'fk_paiement',
+					'prefix' => 'p',
+				),
+				array(
+					'table' => 'societe_remise_except',
+					'fk_doc' => 'fk_facture_source',
+					'fk_link' => 'fk_facture',
+					'prefix' => 'a',
+					'is_fk_link_is_also_fk_doc' => true,
+				),
+			),
+		),
+		'supplier_invoice' => array(
+			'payment_table' => 'paiementfourn',
+			'payment_table_fk_bank' => 'fk_bank',
+			'doc_payment_table' => 'paiementfourn_facturefourn',
+			'doc_payment_table_fk_payment' => 'fk_paiementfourn',
+			'doc_payment_table_fk_doc' => 'fk_facturefourn',
+			'linked_info' => array(
+				array(
+					'table' => 'paiementfourn_facturefourn',
+					'fk_doc' => 'fk_facturefourn',
+					'fk_link' => 'fk_paiementfourn',
+					'prefix' => 'p',
+				),
+				array(
+					'table' => 'societe_remise_except',
+					'fk_doc' => 'fk_invoice_supplier_source',
+					'fk_link' => 'fk_invoice_supplier',
+					'prefix' => 'a',
+					'is_fk_link_is_also_fk_doc' => true,
+				),
+			),
+		),
+	);
 
 	/**
 	 * letteringThirdparty
@@ -250,26 +291,17 @@ class Lettering extends BookKeeping
 		$lettre = 'AAA';
 
 		$sql = "SELECT DISTINCT ab2.lettering_code";
-		$sql .=	" FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping As ab";
-		$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url AS bu ON bu.fk_bank = ab.fk_doc";
-		$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url AS bu2 ON bu2.url_id = bu.url_id";
-		$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab2 ON ab2.fk_doc = bu2.fk_bank";
-		$sql .= " WHERE ab.rowid IN (" . $this->db->sanitize(implode(',', $ids)) . ")";
-		$sql .= " AND ab.doc_type = 'bank'";
-		$sql .= " AND ab2.doc_type = 'bank'";
-		$sql .= " AND bu.type = 'company'";
-		$sql .= " AND bu2.type = 'company'";
-		$sql .= " AND ab.subledger_account != ''";
-		$sql .= " AND ab2.subledger_account != ''";
-		$sql .= " AND ab.lettering_code IS NULL";
-		$sql .= " AND ab2.lettering_code != ''";
-		$sql .= " ORDER BY ab2.lettering_code DESC";
-		$sql .= " LIMIT 1 ";
+		$sql .=	" FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab";
+		$sql .=	" LEFT JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab2 ON ab2.subledger_account = ab.subledger_account";
+		$sql .=	" WHERE ab.rowid IN (" . $this->db->sanitize(implode(',', $ids)) . ")";
+		$sql .=	" AND ab2.lettering_code != ''";
+		$sql .=	" ORDER BY ab2.lettering_code DESC";
+		$sql .=	" LIMIT 1 ";
 
 		$resqla = $this->db->query($sql);
 		if ($resqla) {
 			$obj = $this->db->fetch_object($resqla);
-			$lettre = (empty($obj->lettering_code) ? 'AAA' : $obj->lettering_code);
+			$lettre = (empty($obj->lettering_code) ? $lettre : $obj->lettering_code);
 			if (!empty($obj->lettering_code)) {
 				$lettre++;
 			}
@@ -302,7 +334,7 @@ class Lettering extends BookKeeping
 		if (!$error) {
 			$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping SET";
 			$sql .= " lettering_code='".$this->db->escape($lettre)."'";
-			$sql .= " , date_lettering = '".$this->db->idate($now)."'"; // todo correct date it's false
+			$sql .= ", date_lettering = '".$this->db->idate($now)."'"; // todo correct date it's false
 			$sql .= "  WHERE rowid IN (".$this->db->sanitize(implode(',', $ids)).") AND lettering_code IS NULL AND subledger_account != ''";
 
 			dol_syslog(get_class($this)."::update", LOG_DEBUG);
@@ -339,7 +371,7 @@ class Lettering extends BookKeeping
 
 		$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping SET";
 		$sql .= " lettering_code = NULL";
-		$sql .= " , date_lettering = NULL";
+		$sql .= ", date_lettering = NULL";
 		$sql .= " WHERE rowid IN (".$this->db->sanitize(implode(',', $ids)).")";
 		$sql .= " AND subledger_account != ''";
 
@@ -377,16 +409,7 @@ class Lettering extends BookKeeping
 		$errors = array();
 		$nb_lettering = 0;
 
-		$result = $this->bookkeepingLettering($bookkeeping_ids, 'customer_invoice', $unlettering);
-		if ($result < 0) {
-			$error++;
-			$errors = array_merge($errors, $this->errors);
-			$nb_lettering += abs($result) - 2;
-		} else {
-			$nb_lettering += $result;
-		}
-
-		$result = $this->bookkeepingLettering($bookkeeping_ids, 'supplier_invoice', $unlettering);
+		$result = $this->bookkeepingLettering($bookkeeping_ids, $unlettering);
 		if ($result < 0) {
 			$error++;
 			$errors = array_merge($errors, $this->errors);
@@ -407,11 +430,10 @@ class Lettering extends BookKeeping
 	 * Lettering bookkeeping lines
 	 *
 	 * @param	array		$bookkeeping_ids		Lettering specific list of bookkeeping id
-	 * @param	string		$type					Type of bookkeeping type to lettering ('customer_invoice' or 'supplier_invoice')
 	 * @param	bool		$unlettering			Do unlettering
 	 * @return	int									<0 if error (nb lettered = result -1), 0 if noting to lettering, >0 if OK (nb lettered)
 	 */
-	public function bookkeepingLettering($bookkeeping_ids, $type = 'customer_invoice', $unlettering = false)
+	public function bookkeepingLettering($bookkeeping_ids, $unlettering = false)
 	{
 		global $langs;
 
@@ -419,11 +441,14 @@ class Lettering extends BookKeeping
 
 		// Clean parameters
 		$bookkeeping_ids = is_array($bookkeeping_ids) ? $bookkeeping_ids : array();
-		$type = trim($type);
 
 		$error = 0;
 		$nb_lettering = 0;
-		$grouped_lines = $this->getLinkedLines($bookkeeping_ids, $type);
+		$grouped_lines = $this->getLinkedLines($bookkeeping_ids);
+		if (!is_array($grouped_lines)) {
+			return -2;
+		}
+
 		foreach ($grouped_lines as $lines) {
 			$group_error = 0;
 			$total = 0;
@@ -481,128 +506,162 @@ class Lettering extends BookKeeping
 	/**
 	 * Lettering bookkeeping lines
 	 *
-	 * @param	array			$bookkeeping_ids		Lettering specific list of bookkeeping id
-	 * @param	string			$type					Type of bookkeeping type to lettering ('customer_invoice' or 'supplier_invoice')
-	 * @return	array|int								<0 if error otherwise all linked lines by block
+	 * @param	array			$bookkeeping_ids				Lettering specific list of bookkeeping id
+	 * @param	bool			$only_has_subledger_account		Get only lines who have subledger account
+	 * @return	array|int										<0 if error otherwise all linked lines by block
 	 */
-	public function getLinkedLines($bookkeeping_ids, $type = 'customer_invoice')
+	public function getLinkedLines($bookkeeping_ids, $only_has_subledger_account = true)
 	{
 		global $conf, $langs;
 		$this->errors = array();
 
 		// Clean parameters
 		$bookkeeping_ids = is_array($bookkeeping_ids) ? $bookkeeping_ids : array();
-		$type = trim($type);
-
-		if ($type == 'customer_invoice') {
-			$doc_type = 'customer_invoice';
-			$bank_url_type = 'payment';
-			$payment_element = 'paiement_facture';
-			$fk_payment_element = 'fk_paiement';
-			$fk_element = 'fk_facture';
-			$account_number = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
-		} elseif ($type == 'supplier_invoice') {
-			$doc_type = 'supplier_invoice';
-			$bank_url_type = 'payment_supplier';
-			$payment_element = 'paiementfourn_facturefourn';
-			$fk_payment_element = 'fk_paiementfourn';
-			$fk_element = 'fk_facturefourn';
-			$account_number = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
-		} else {
-			$langs->load('errors');
-			$this->errors[] = $langs->trans('ErrorBadParameters');
-			return -1;
-		}
-
-		$payment_ids = array();
 
-		// Get all payment id from bank lines
-		$sql = "SELECT DISTINCT bu.url_id AS payment_id";
+		// Get all bookkeeping lines
+		$sql = "SELECT DISTINCT ab.doc_type, ab.fk_doc";
 		$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab";
-		$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url AS bu ON bu.fk_bank = ab.fk_doc";
-		$sql .= " WHERE ab.doc_type = 'bank'";
-		//	$sql .= " AND ab.subledger_account != ''";
-		//	$sql .= " AND ab.numero_compte = '" . $this->db->escape($account_number) . "'";
-		$sql .= " AND bu.type = '" . $this->db->escape($bank_url_type) . "'";
-		if (!empty($bookkeeping_ids)) $sql .= " AND ab.rowid IN (" . $this->db->sanitize(implode(',', $bookkeeping_ids)) . ")";
-
-		dol_syslog(__METHOD__ . " - Get all payment id from bank lines", LOG_DEBUG);
+		$sql .= " WHERE ab.entity IN (" . getEntity('accountancy') . ")";
+		$sql .= " AND ab.fk_doc > 0";
+		if (!empty($bookkeeping_ids)) {
+			// Get all bookkeeping lines of piece number
+			$sql .= " AND EXISTS (";
+			$sql .= "  SELECT rowid";
+			$sql .= "  FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS pn";
+			$sql .= "  WHERE pn.entity IN (" . getEntity('accountancy') . ")";
+			$sql .= "  AND pn.rowid IN (" . $this->db->sanitize(implode(',', $bookkeeping_ids)) . ")";
+			$sql .= "  AND pn.piece_num = ab.piece_num";
+			$sql .= " )";
+		}
+		if ($only_has_subledger_account) $sql .= " AND ab.subledger_account != ''";
+
+		dol_syslog(__METHOD__ . " - Get all bookkeeping lines", LOG_DEBUG);
 		$resql = $this->db->query($sql);
 		if (!$resql) {
 			$this->errors[] = "Error " . $this->db->lasterror();
 			return -1;
 		}
 
+		$bookkeeping_lines_by_type = array();
 		while ($obj = $this->db->fetch_object($resql)) {
-			$payment_ids[$obj->payment_id] = $obj->payment_id;
+			$bookkeeping_lines_by_type[$obj->doc_type][$obj->fk_doc] = $obj->fk_doc;
 		}
 		$this->db->free($resql);
 
-		// Get all payment id from payment lines
-		$sql = "SELECT DISTINCT pe.$fk_payment_element AS payment_id";
-		$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab";
-		$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "$payment_element AS pe ON pe.$fk_element = ab.fk_doc";
-		$sql .= " WHERE ab.doc_type = '" . $this->db->escape($doc_type) . "'";
-		//	$sql .= " AND ab.subledger_account != ''";
-		//	$sql .= " AND ab.numero_compte = '" . $this->db->escape($account_number) . "'";
-		$sql .= " AND pe.$fk_payment_element IS NOT NULL";
-		if (!empty($bookkeeping_ids)) $sql .= " AND ab.rowid IN (" . $this->db->sanitize(implode(',', $bookkeeping_ids)) . ")";
-
-		dol_syslog(__METHOD__ . " - Get all payment id from bank lines", LOG_DEBUG);
-		$resql = $this->db->query($sql);
-		if (!$resql) {
-			$this->errors[] = "Error " . $this->db->lasterror();
-			return -1;
+		if (empty($bookkeeping_lines_by_type)) {
+			return array();
 		}
 
-		while ($obj = $this->db->fetch_object($resql)) {
-			$payment_ids[$obj->payment_id] = $obj->payment_id;
+		if (!empty($bookkeeping_lines_by_type['bank'])) {
+			$new_bookkeeping_lines_by_type = $this->getDocTypeAndFkDocFromBankLines($bookkeeping_lines_by_type['bank']);
+			if (!is_array($new_bookkeeping_lines_by_type)) {
+				return -1;
+			}
+			foreach ($new_bookkeeping_lines_by_type as $doc_type => $fk_docs) {
+				foreach ($fk_docs as $fk_doc) {
+					$bookkeeping_lines_by_type[$doc_type][$fk_doc] = $fk_doc;
+				}
+			}
 		}
-		$this->db->free($resql);
 
-		if (empty($payment_ids)) {
-			return array();
-		}
+		$grouped_lines = array();
+		foreach (self::$doc_type_infos as $doc_type => $doc_type_info) {
+			if (!is_array($bookkeeping_lines_by_type[$doc_type])) {
+				continue;
+			}
 
-		// Get all payments linked by group
-		$payment_by_group = $this->getLinkedPaymentByGroup($payment_ids, $type);
+			// Get all document ids grouped
+			$doc_grouped = $this->getLinkedDocumentByGroup($bookkeeping_lines_by_type[$doc_type], $doc_type);
+			if (!is_array($doc_grouped)) {
+				return -1;
+			}
 
-		$groups = array();
-		foreach ($payment_by_group as $payment_list) {
-			$lines = array();
+			// Group all lines by document/piece number
+			foreach ($doc_grouped as $doc_ids) {
+				$bank_ids = $this->getBankLinesFromFkDocAndDocType($doc_ids, $doc_type);
+				if (!is_array($bank_ids)) {
+					return -1;
+				}
 
-			// Get bank lines
-			$sql = "SELECT DISTINCT ab.rowid, ab.piece_num, ab.lettering_code, ab.debit, ab.credit";
-			$sql .=	" FROM " . MAIN_DB_PREFIX . "bank_url AS bu";
-			$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab ON ab.fk_doc = bu.fk_bank";
-			$sql .= " WHERE bu.url_id IN (" . $this->db->sanitize(implode(',', $payment_list)) . ")";
-			$sql .= " AND bu.type = '" . $this->db->escape($bank_url_type) . "'";
-			$sql .= " AND ab.doc_type = 'bank'";
-			$sql .= " AND ab.subledger_account != ''";
-			$sql .= " AND ab.numero_compte = '" . $this->db->escape($account_number) . "'";
+				// Get all bookkeeping lines linked
+				$sql = "SELECT DISTINCT ab.rowid, ab.piece_num, ab.debit, ab.credit, ab.lettering_code";
+				$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab";
+				$sql .= " WHERE ab.entity IN (" . getEntity('accountancy') . ")";
+				$sql .= " AND (";
+				if (!empty($bank_ids)) {
+					$sql .= " EXISTS (";
+					$sql .= "  SELECT bpn.rowid";
+					$sql .= "  FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS bpn";
+					$sql .= "  WHERE bpn.entity IN (" . getEntity('accountancy') . ")";
+					$sql .= "  AND bpn.doc_type = 'bank'";
+					$sql .= "  AND bpn.fk_doc IN (" . $this->db->sanitize(implode(',', $bank_ids)) . ")";
+					$sql .= "  AND bpn.piece_num = ab.piece_num";
+					$sql .= " ) OR ";
+				}
+				$sql .= " EXISTS (";
+				$sql .= "  SELECT dpn.rowid";
+				$sql .= "  FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping AS dpn";
+				$sql .= "  WHERE dpn.entity IN (" . getEntity('accountancy') . ")";
+				$sql .= "  AND dpn.doc_type = '" . $this->db->escape($doc_type) . "'";
+				$sql .= "  AND dpn.fk_doc IN (" . $this->db->sanitize(implode(',', $doc_ids)) . ")";
+				$sql .= "  AND dpn.piece_num = ab.piece_num";
+				$sql .= " )";
+				$sql .= ")";
+				if ($only_has_subledger_account) $sql .= " AND ab.subledger_account != ''";
+
+				dol_syslog(__METHOD__ . " - Get all bookkeeping lines linked", LOG_DEBUG);
+				$resql = $this->db->query($sql);
+				if (!$resql) {
+					$this->errors[] = "Error " . $this->db->lasterror();
+					return -1;
+				}
 
-			dol_syslog(__METHOD__ . " - Get bank lines", LOG_DEBUG);
-			$resql = $this->db->query($sql);
-			if (!$resql) {
-				$this->errors[] = "Error " . $this->db->lasterror();
-				return -1;
-			}
+				$group = array();
+				while ($obj = $this->db->fetch_object($resql)) {
+					$group[$obj->rowid] = array(
+						'id' => $obj->rowid,
+						'piece_num' => $obj->piece_num,
+						'debit' => $obj->debit,
+						'credit' => $obj->credit,
+						'lettering_code' => $obj->lettering_code,
+					);
+				}
+				$this->db->free($resql);
 
-			while ($obj = $this->db->fetch_object($resql)) {
-				$lines[$obj->rowid] = array('id' => $obj->rowid, 'piece_num' => $obj->piece_num, 'lettering_code' => $obj->lettering_code, 'debit' => $obj->debit, 'credit' => $obj->credit);
+				if (!empty($group)) $grouped_lines[] = $group;
 			}
-			$this->db->free($resql);
+		}
 
-			// Get payment lines
-			$sql = "SELECT DISTINCT ab.rowid, ab.piece_num, ab.lettering_code, ab.debit, ab.credit";
-			$sql .=	" FROM " . MAIN_DB_PREFIX . "$payment_element AS pe";
-			$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping AS ab ON ab.fk_doc = pe.$fk_element";
-			$sql .= " WHERE pe.$fk_payment_element IN (" . $this->db->sanitize(implode(',', $payment_list)) . ")";
-			$sql .= " AND ab.doc_type = '" . $this->db->escape($doc_type) . "'";
-			$sql .= " AND ab.subledger_account != ''";
-			$sql .= " AND ab.numero_compte = '" . $this->db->escape($account_number) . "'";
+		return $grouped_lines;
+	}
 
-			dol_syslog(__METHOD__ . " - Get payment lines", LOG_DEBUG);
+	/**
+	 * Get all fk_doc by doc_type from list of bank ids
+	 *
+	 * @param	array			$bank_ids		List of bank ids
+	 * @return	array|int						<0 if error otherwise all fk_doc by doc_type
+	 */
+	public function getDocTypeAndFkDocFromBankLines($bank_ids)
+	{
+		dol_syslog(__METHOD__ . " - bank_ids=".json_encode($bank_ids), LOG_DEBUG);
+
+		// Clean parameters
+		$bank_ids = is_array($bank_ids) ? $bank_ids : array();
+
+		if (empty($bank_ids)) {
+			return array();
+		}
+
+		$bookkeeping_lines_by_type = array();
+		foreach (self::$doc_type_infos as $doc_type => $doc_type_info) {
+			// Get all fk_doc by doc_type from bank ids
+			$sql = "SELECT DISTINCT dp." . $doc_type_info['doc_payment_table_fk_doc'] . " AS fk_doc";
+			$sql .= " FROM " . MAIN_DB_PREFIX . $doc_type_info['payment_table'] . " AS p";
+			$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . $doc_type_info['doc_payment_table'] . " AS dp ON dp." . $doc_type_info['doc_payment_table_fk_payment'] . " = p.rowid";
+			$sql .= " WHERE p." . $doc_type_info['payment_table_fk_bank'] . " IN (" . $this->db->sanitize(implode(',', $bank_ids)) . ")";
+			$sql .= " AND dp." . $doc_type_info['doc_payment_table_fk_doc'] . " > 0";
+
+			dol_syslog(__METHOD__ . " - Get all fk_doc by doc_type from list of bank ids for '" . $doc_type . "'", LOG_DEBUG);
 			$resql = $this->db->query($sql);
 			if (!$resql) {
 				$this->errors[] = "Error " . $this->db->lasterror();
@@ -610,142 +669,195 @@ class Lettering extends BookKeeping
 			}
 
 			while ($obj = $this->db->fetch_object($resql)) {
-				$lines[$obj->rowid] = array('id' => $obj->rowid, 'piece_num' => $obj->piece_num, 'lettering_code' => $obj->lettering_code, 'debit' => $obj->debit, 'credit' => $obj->credit);
+				$bookkeeping_lines_by_type[$doc_type][$obj->fk_doc] = $obj->fk_doc;
 			}
 			$this->db->free($resql);
-
-			if (!empty($lines)) {
-				$groups[] = $lines;
-			}
 		}
 
-		return $groups;
+		return $bookkeeping_lines_by_type;
 	}
 
 	/**
-	 * Linked payment by group
+	 * Get all bank ids from list of document ids of a type
 	 *
-	 * @param	array			$payment_ids			list of payment id
-	 * @param	string			$type					Type of bookkeeping type to lettering ('customer_invoice' or 'supplier_invoice')
-	 * @return	array|int								<0 if error otherwise all linked lines by block
+	 * @param	array			$document_ids	List of document id
+	 * @param	string			$doc_type		Type of document ('customer_invoice' or 'supplier_invoice', ...)
+	 * @return	array|int						<0 if error otherwise all all bank ids from list of document ids of a type
 	 */
-	public function getLinkedPaymentByGroup($payment_ids, $type)
+	public function getBankLinesFromFkDocAndDocType($document_ids, $doc_type)
 	{
 		global $langs;
 
+		dol_syslog(__METHOD__ . " - bank_ids=".json_encode($document_ids) . ", doc_type=$doc_type", LOG_DEBUG);
+
 		// Clean parameters
-		$payment_ids = is_array($payment_ids) ? $payment_ids : array();
-		$type = trim($type);
+		$document_ids = is_array($document_ids) ? $document_ids : array();
+		//remove empty entries
+		$document_ids = array_filter($document_ids);
 
-		if (empty($payment_ids)) {
+		$doc_type = trim($doc_type);
+
+		if (empty($document_ids)) {
 			return array();
 		}
-
-		if ($type == 'customer_invoice') {
-			$payment_element = 'paiement_facture';
-			$fk_payment_element = 'fk_paiement';
-			$fk_element = 'fk_facture';
-		} elseif ($type == 'supplier_invoice') {
-			$payment_element = 'paiementfourn_facturefourn';
-			$fk_payment_element = 'fk_paiementfourn';
-			$fk_element = 'fk_facturefourn';
-		} else {
+		if (!is_array(self::$doc_type_infos[$doc_type])) {
 			$langs->load('errors');
 			$this->errors[] = $langs->trans('ErrorBadParameters');
 			return -1;
 		}
 
-		// Get payment lines
-		$sql = "SELECT DISTINCT pe2.$fk_payment_element, pe2.$fk_element";
-		$sql .=	" FROM " . MAIN_DB_PREFIX . "$payment_element AS pe";
-		$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "$payment_element AS pe2 ON pe2.$fk_element = pe.$fk_element";
-		$sql .=	" WHERE pe.$fk_payment_element IN (" . $this->db->sanitize(implode(',', $payment_ids)) . ")";
+		$doc_type_info = self::$doc_type_infos[$doc_type];
+		$bank_ids = array();
 
-		dol_syslog(__METHOD__ . " - Get payment lines", LOG_DEBUG);
+		// Get all fk_doc by doc_type from bank ids
+		$sql = "SELECT DISTINCT p." . $doc_type_info['payment_table_fk_bank'] . " AS fk_doc";
+		$sql .= " FROM " . MAIN_DB_PREFIX . $doc_type_info['payment_table'] . " AS p";
+		$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . $doc_type_info['doc_payment_table'] . " AS dp ON dp." . $doc_type_info['doc_payment_table_fk_payment'] . " = p.rowid";
+		$sql .= " WHERE dp." . $doc_type_info['doc_payment_table_fk_doc'] . " IN (" . $this->db->sanitize(implode(',', $document_ids)) . ")";
+		$sql .= " AND p." . $doc_type_info['payment_table_fk_bank'] . " > 0";
+
+		dol_syslog(__METHOD__ . " - Get all bank ids from list of document ids of a type '" . $doc_type . "'", LOG_DEBUG);
 		$resql = $this->db->query($sql);
 		if (!$resql) {
 			$this->errors[] = "Error " . $this->db->lasterror();
 			return -1;
 		}
 
-		$current_payment_ids = array();
-		$payment_by_element = array();
-		$element_by_payment = array();
 		while ($obj = $this->db->fetch_object($resql)) {
-			$current_payment_ids[$obj->$fk_payment_element] = $obj->$fk_payment_element;
-			$element_by_payment[$obj->$fk_payment_element][$obj->$fk_element] = $obj->$fk_element;
-			$payment_by_element[$obj->$fk_element][$obj->$fk_payment_element] = $obj->$fk_payment_element;
+			$bank_ids[$obj->fk_doc] = $obj->fk_doc;
 		}
 		$this->db->free($resql);
 
-		if (count(array_diff($payment_ids, $current_payment_ids))) {
-			return $this->getLinkedPaymentByGroup($current_payment_ids, $type);
+		return $bank_ids;
+	}
+
+	/**
+	 * Get all linked document ids by group and type
+	 *
+	 * @param	array			$document_ids	List of document id
+	 * @param	string			$doc_type		Type of document ('customer_invoice' or 'supplier_invoice', ...)
+	 * @return	array|int						<0 if error otherwise all linked document ids by group and type [ [ 'doc_type' => [ doc_id, ... ], ... ], ... ]
+	 */
+	public function getLinkedDocumentByGroup($document_ids, $doc_type)
+	{
+		global $langs;
+
+		// Clean parameters
+		$document_ids = is_array($document_ids) ? $document_ids : array();
+		$doc_type = trim($doc_type);
+		//remove empty entries
+		$document_ids = array_filter($document_ids);
+
+		if (empty($document_ids)) {
+			return array();
+		}
+
+		if (!is_array(self::$doc_type_infos[$doc_type])) {
+			$langs->load('errors');
+			$this->errors[] = $langs->trans('ErrorBadParameters');
+			return -1;
+		}
+
+		$doc_type_info = self::$doc_type_infos[$doc_type];
+
+		// Get document lines
+		$current_document_ids = array();
+		$link_by_element = array();
+		$element_by_link = array();
+		foreach ($doc_type_info['linked_info'] as $linked_info) {
+			$sql = "SELECT DISTINCT tl2." . $linked_info['fk_link'] . " AS fk_link, tl2." . $linked_info['fk_doc'] . " AS fk_doc";
+			$sql .= " FROM " . MAIN_DB_PREFIX . $linked_info['table'] . " AS tl";
+			$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . $linked_info['table'] . " AS tl2 ON tl2." . $linked_info['fk_link'] . " = tl." . $linked_info['fk_link'];
+			$sql .= " WHERE tl." . $linked_info['fk_doc'] . " IN (" . $this->db->sanitize(implode(',', $document_ids)) . ")";
+
+			dol_syslog(__METHOD__ . " - Get document lines", LOG_DEBUG);
+			$resql = $this->db->query($sql);
+			if (!$resql) {
+				$this->errors[] = "Error " . $this->db->lasterror();
+				return -1;
+			}
+
+			$is_fk_link_is_also_fk_doc = !empty($linked_info['is_fk_link_is_also_fk_doc']);
+			while ($obj = $this->db->fetch_object($resql)) {
+				$current_document_ids[$obj->fk_doc] = $obj->fk_doc;
+
+				$link_key = $linked_info['prefix'] . $obj->fk_link;
+				$element_by_link[$link_key][$obj->fk_doc] = $obj->fk_doc;
+				$link_by_element[$obj->fk_doc][$link_key] = $link_key;
+				if ($is_fk_link_is_also_fk_doc) {
+					$element_by_link[$link_key][$obj->fk_link] = $obj->fk_link;
+					$link_by_element[$obj->fk_link][$link_key] = $link_key;
+				}
+			}
+			$this->db->free($resql);
+		}
+
+		if (count(array_diff($document_ids, $current_document_ids))) {
+			return $this->getLinkedDocumentByGroup($current_document_ids, $doc_type);
 		}
 
-		return $this->getGroupElements($payment_by_element, $element_by_payment);
+		return $this->getGroupElements($link_by_element, $element_by_link);
 	}
 
 	/**
-	 * Get payment ids grouped by payment id and element id in common
+	 * Get element ids grouped by link or element in common
 	 *
-	 * @param	array	$payment_by_element		List of payment ids by element id
-	 * @param	array	$element_by_payment		List of element ids by payment id
-	 * @param	int		$element_id				Element Id (used for recursive function)
-	 * @param	array	$current_group			Current group (used for recursive function)
-	 * @return	array							List of payment ids grouped by payment id and element id in common
+	 * @param	array	$link_by_element	List of payment ids by link key
+	 * @param	array	$element_by_link	List of element ids by link key
+	 * @param	string	$link_key			Link key (used for recursive function)
+	 * @param	array	$current_group		Current group (used for recursive function)
+	 * @return	array						List of element ids grouped by link or element in common
 	 */
-	public function getGroupElements(&$payment_by_element, &$element_by_payment, $element_id = 0, &$current_group = array())
+	public function getGroupElements(&$link_by_element, &$element_by_link, $link_key = '', &$current_group = array())
 	{
-		$grouped_payments = array();
-		if ($element_id > 0 && !isset($payment_by_element[$element_id])) {
-			// Return if specific element id not found
-			return $grouped_payments;
+		$grouped_elements = array();
+		if (!empty($link_key) && !isset($element_by_link[$link_key])) {
+			// Return if specific link key not found
+			return $grouped_elements;
 		}
 
-		$save_payment_by_element = null;
-		$save_element_by_payment = null;
-		if ($element_id == 0) {
+		if (empty($link_key)) {
 			// Save list when is the begin of recursive function
-			$save_payment_by_element = $payment_by_element;
-			$save_element_by_payment = $element_by_payment;
+			$save_link_by_element = $link_by_element;
+			$save_element_by_link = $element_by_link;
 		}
 
 		do {
 			// Get current element id, get this payment id list and delete the entry
-			$current_element_id = $element_id > 0 ? $element_id : array_keys($payment_by_element)[0];
-			$payment_ids = $payment_by_element[$current_element_id];
-			unset($payment_by_element[$current_element_id]);
+			$current_link_key = !empty($link_key) ? $link_key : array_keys($element_by_link)[0];
+			$element_ids = $element_by_link[$current_link_key];
+			unset($element_by_link[$current_link_key]);
 
-			foreach ($payment_ids as $payment_id) {
-				// Continue if payment id in not found
-				if (!isset($element_by_payment[$payment_id])) continue;
+			foreach ($element_ids as $element_id) {
+				// Continue if element id in not found
+				if (!isset($link_by_element[$element_id])) continue;
 
-				// Set the payment in the current group
-				$current_group[$payment_id] = $payment_id;
+				// Set the element in the current group
+				$current_group[$element_id] = $element_id;
 
-				// Get current element ids, get this payment id list and delete the entry
-				$element_ids = $element_by_payment[$payment_id];
-				unset($element_by_payment[$payment_id]);
+				// Get current link keys, get this element id list and delete the entry
+				$link_keys = $link_by_element[$element_id];
+				unset($link_by_element[$element_id]);
 
-				// Set payment id on the current group for each element id of the payment
-				foreach ($element_ids as $id) {
-					$this->getGroupElements($payment_by_element, $element_by_payment, $id, $current_group);
+				// Set element id on the current group for each link key of the element
+				foreach ($link_keys as $key) {
+					$this->getGroupElements($link_by_element, $element_by_link, $key, $current_group);
 				}
 			}
 
-			if ($element_id == 0) {
+			if (empty($link_key)) {
 				// Save current group and reset the current group when is the begin of recursive function
-				$grouped_payments[] = $current_group;
+				$grouped_elements[] = $current_group;
 				$current_group = array();
 			}
-		} while (!empty($payment_by_element) && $element_id == 0);
+		} while (!empty($element_by_link) && empty($link_key));
 
-		if ($element_id == 0) {
+		if (empty($link_key)) {
 			// Restore list when is the begin of recursive function
-			$payment_by_element = $save_payment_by_element;
-			$element_by_payment = $save_element_by_payment;
+			$link_by_element = $save_link_by_element;
+			$element_by_link = $save_element_by_link;
 		}
 
-		return $grouped_payments;
+		return $grouped_elements;
 	}
 }

+ 3 - 2
htdocs/accountancy/closure/index.php

@@ -21,6 +21,7 @@
  * \brief 	    Home closure page
  */
 
+// Load Dolibarr environment
 require '../../main.inc.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
@@ -63,7 +64,7 @@ if (!isModEnabled('accounting')) {
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->fiscalyear->write)) {
+if (!$user->hasRight('accounting', 'fiscalyear', 'write')) {
 	accessforbidden();
 }
 
@@ -75,7 +76,7 @@ if (empty($user->rights->accounting->fiscalyear->write)) {
 
 $now = dol_now();
 
-if ($action == 'validate_movements_confirm' && !empty($user->rights->accounting->fiscalyear->write)) {
+if ($action == 'validate_movements_confirm' && $user->hasRight('accounting', 'fiscalyear', 'write')) {
 	$date_start = dol_mktime(0, 0, 0, GETPOST('date_startmonth', 'int'), GETPOST('date_startday', 'int'), GETPOST('date_startyear', 'int'));
 	$date_end = dol_mktime(23, 59, 59, GETPOST('date_endmonth', 'int'), GETPOST('date_endday', 'int'), GETPOST('date_endyear', 'int'));
 

+ 2 - 2
htdocs/accountancy/customer/card.php

@@ -44,7 +44,7 @@ if (!isModEnabled('accounting')) {
 if ($user->socid > 0) {
 	accessforbidden();
 }
-if (empty($user->rights->accounting->mouvements->lire)) {
+if (!$user->hasRight('accounting', 'mouvements', 'lire')) {
 	accessforbidden();
 }
 
@@ -54,7 +54,7 @@ if (empty($user->rights->accounting->mouvements->lire)) {
  * Actions
  */
 
-if ($action == 'ventil' && $user->rights->accounting->bind->write) {
+if ($action == 'ventil' && $user->hasRight('accounting', 'bind', 'write')) {
 	if (!$cancel) {
 		if ($codeventil < 0) {
 			$codeventil = 0;

部分文件因为文件数量过多而无法显示